mirror of
https://github.com/holub/mame
synced 2025-06-05 20:33:45 +03:00
dynax/royalmah.cpp: preliminary address map for cafepara
This commit is contained in:
parent
fa84d2ba67
commit
ac3c4190ee
@ -35,16 +35,16 @@ Year + Game Board(s) CPU Company Not
|
||||
89 Mahjong Shinkirou D210301BL2 + FRM-00? TLCS-90 Dynax
|
||||
89 Mahjong Derringer D2203018L Z80 Dynax Larger palette
|
||||
90 Mahjong If..? D2909278L TLCS-90 Dynax Larger palette
|
||||
91 Mahjong Vegas D5011308L1 + FRM-00 TLCS-90 Dynax Undumped internal rom (mjvegas set)
|
||||
91 Mahjong Vegas D5011308L1 + FRM-00 TLCS-90 Dynax Larger palette, RTC
|
||||
92 Mahjong Cafe Time D6310128L1-1 TLCS-90 Dynax Larger palette, RTC
|
||||
93 Mahjong Cafe Doll D76052208L-2 TLCS-90 Dynax Larger palette, RTC, Undumped internal rom
|
||||
93 Mahjong Cafe Doll D76052208L-2 TLCS-90 Dynax Larger palette, RTC, Undumped internal ROM
|
||||
93 Ichi Ban Jian MJ911 Z80 Excel Larger palette, additional YM2413
|
||||
95 Mahjong Tensinhai D10010318L1 TLCS-90 Dynax Larger palette, RTC
|
||||
96 Janputer '96 NS503X0727 Z80 Dynax Larger palette, RTC
|
||||
97 Pong Boo! 2 NEW PONG-BOO Z80(?) OCT OKI M6295, no PROMs
|
||||
97 Janputer Special CS166P008 + NS5110207 Z80 Dynax Larger palette, RTC
|
||||
99 Mahjong Cafe Break NS528-9812 TLCS-90 Nakanihon / Dynax Undumped internal rom
|
||||
99 Mahjong Cafe Paradise ? + TSS001-0001 TLCS-90 Techno-Top Undumped internal rom
|
||||
99 Mahjong Cafe Break NS528-9812 TLCS-90 Nakanihon / Dynax Undumped internal ROM
|
||||
99 Mahjong Cafe Paradise ? + TSS001-0001 TLCS-90 Techno-Top Larger palette, RTC
|
||||
-----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
TODO:
|
||||
@ -90,8 +90,8 @@ Stephh's notes (based on the games Z80 code and some tests) :
|
||||
front of a random combination. It's value remains *1 though.
|
||||
Could it be a leftover from another game ('tontonb' for exemple) ?
|
||||
|
||||
- janptr96, janptrsp: in service mode press in sequence N,Ron,Ron,N to access some
|
||||
hidden options. (thanks bnathan)
|
||||
- cafepara, janptr96, janptrsp: in service mode press in sequence N,Ron,Ron,N to
|
||||
access some hidden options. (thanks bnathan)
|
||||
|
||||
****************************************************************************/
|
||||
|
||||
@ -254,6 +254,7 @@ public:
|
||||
void mjifb(machine_config &config) ATTR_COLD;
|
||||
void mjdejavu(machine_config &config) ATTR_COLD;
|
||||
void mjtensin(machine_config &config) ATTR_COLD;
|
||||
void cafepara(machine_config &config) ATTR_COLD;
|
||||
void cafetime(machine_config &config) ATTR_COLD;
|
||||
void mjvegas(machine_config &config) ATTR_COLD;
|
||||
void mjvegasa(machine_config &config) ATTR_COLD;
|
||||
@ -366,6 +367,7 @@ private:
|
||||
void mjdejavu_map(address_map &map) ATTR_COLD;
|
||||
void mjtensin_map(address_map &map) ATTR_COLD;
|
||||
void mjvegasa_map(address_map &map) ATTR_COLD;
|
||||
void cafepara_map(address_map &map) ATTR_COLD;
|
||||
void cafetime_map(address_map &map) ATTR_COLD;
|
||||
|
||||
void chalgirl_iomap(address_map &map) ATTR_COLD;
|
||||
@ -1447,6 +1449,29 @@ void royalmah_prgbank_state::cafetime_map(address_map &map)
|
||||
}
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
Mahjong Cafe Paradise
|
||||
****************************************************************************/
|
||||
|
||||
void royalmah_prgbank_state::cafepara_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x5fff).rom();
|
||||
map(0x6000, 0x7eff).ram().share("nvram");
|
||||
map(0x7fe1, 0x7fe1).r(m_ay, FUNC(ay8910_device::data_r));
|
||||
map(0x7fe2, 0x7fe3).w(m_ay, FUNC(ay8910_device::data_address_w));
|
||||
map(0x7ff0, 0x7ff0).w(FUNC(royalmah_prgbank_state::janptr96_coin_counter_w));
|
||||
map(0x7ff1, 0x7ff1).portr("SYSTEM").nopw();
|
||||
map(0x7ff3, 0x7ff3).w(FUNC(royalmah_prgbank_state::input_port_select_w));
|
||||
map(0x7ff4, 0x7ff4).lw8(NAME([this] (uint8_t data) { m_mainbank->set_entry(data); logerror("mainbank_w: %02x\n", data); }));
|
||||
map(0x7ff5, 0x7ff5).lw8(NAME([this] (uint8_t data) { logerror("0x7ff5 write: %02x\n", data); })); // bit 1 seems coin counter but it's actually at 0x7ff0
|
||||
map(0x7ff6, 0x7ff6).w(FUNC(royalmah_prgbank_state::mjderngr_palbank_w));
|
||||
map(0x7ff7, 0x7ff7).w(FUNC(royalmah_prgbank_state::cafetime_7fe3_w));
|
||||
map(0x8000, 0xffff).bankr(m_mainbank);
|
||||
map(0x8000, 0xffff).writeonly().share(m_videoram);
|
||||
map(0xfff0, 0xffff).rw(m_rtc, FUNC(msm6242_device::read), FUNC(msm6242_device::write)); // TODO: this should probably be behind a view
|
||||
}
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
Mahjong Vegas
|
||||
****************************************************************************/
|
||||
@ -4112,6 +4137,25 @@ void royalmah_prgbank_state::cafetime(machine_config &config)
|
||||
MSM6242(config, m_rtc, 32.768_kHz_XTAL).out_int_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ1);
|
||||
}
|
||||
|
||||
void royalmah_prgbank_state::cafepara(machine_config &config)
|
||||
{
|
||||
cafetime(config);
|
||||
tmp91640_device &tmp(TMP91640(config.replace(), m_maincpu, XTAL(8'000'000))); // XTAL is verified, should it be divided?
|
||||
tmp.set_addrmap(AS_PROGRAM, &royalmah_prgbank_state::cafepara_map);
|
||||
tmp.port_read<3>().set([this] () { logerror("%s: p3 in\n", machine().describe_context()); return uint8_t(0); }); // read sometimes
|
||||
tmp.port_read<4>().set([this] () { logerror("%s: p4 in\n", machine().describe_context()); return uint8_t(0); }); // not seen yet
|
||||
tmp.port_read<5>().set([this] () { logerror("%s: p5 in\n", machine().describe_context()); return uint8_t(0); }); // dips
|
||||
tmp.port_read<6>().set([this] () { logerror("%s: p6 in\n", machine().describe_context()); return uint8_t(0); }); // dips
|
||||
tmp.port_read<7>().set([this] () { logerror("%s: p7 in\n", machine().describe_context()); return uint8_t(0); }); // not seen yet
|
||||
tmp.port_read<8>().set([this] () { logerror("%s: p8 in\n", machine().describe_context()); return uint8_t(0); });
|
||||
tmp.port_write<3>().set([this] (uint8_t data) { logerror("%s: p3 out %02X\n", machine().describe_context(), data); }); // 0x6c at startup, remnant of older games?
|
||||
tmp.port_write<4>().set([this] (uint8_t data) { logerror("%s: p4 out %02X\n", machine().describe_context(), data); }); // 0x00 at startup
|
||||
tmp.port_write<5>().set([this] (uint8_t data) { logerror("%s: p5 out %02X\n", machine().describe_context(), data); }); // not seen yet
|
||||
tmp.port_write<6>().set([this] (uint8_t data) { logerror("%s: p6 out %02X\n", machine().describe_context(), data); }); // not seen yet
|
||||
tmp.port_write<7>().set([this] (uint8_t data) { logerror("%s: p7 out %02X\n", machine().describe_context(), data); }); // seen 0x07, 0x0b, 0x0d, 0x0f. ???
|
||||
tmp.port_write<8>().set([this] (uint8_t data) { logerror("%s: p8 out %02X\n", machine().describe_context(), data); }); // 0x00 or 0x08, most probably view
|
||||
}
|
||||
|
||||
void royalmah_prgbank_state::mjvegasa(machine_config &config)
|
||||
{
|
||||
mjderngr(config);
|
||||
@ -4986,10 +5030,10 @@ and a PLCC68 chip (likely FPGA)
|
||||
ROM_START( cafepara )
|
||||
ROM_REGION( 0x290000, "maincpu", 0 )
|
||||
// VIDEO & AM MICRO COMPUTER SYSTEMS 1999 TECHNO-TOP,LIMITED NAGOYA JAPAN MAHJONG CAFE PARADISE TSS001 VER. 1.00
|
||||
ROM_LOAD( "00101.1h", 0x000000, 0x080000, CRC(f5917280) SHA1(e6180e36643075ab9fa5bc27baef2a464a23f581) )
|
||||
ROM_LOAD( "cafepara.tmp91640", 0x000000, 0x004000, CRC(0575607c) SHA1(e641ffd1bd44f2b4a0cdf72c49990933a0f0ff22) )
|
||||
ROM_LOAD( "00101.1h", 0x000000, 0x080000, CRC(f5917280) SHA1(e6180e36643075ab9fa5bc27baef2a464a23f581) ) // external ROM with first 0x4000 empty
|
||||
ROM_LOAD( "cafepara.tmp91640", 0x000000, 0x004000, CRC(0575607c) SHA1(e641ffd1bd44f2b4a0cdf72c49990933a0f0ff22) ) // internal ROM
|
||||
|
||||
// bank switched ROMs follow
|
||||
// bank switched ROMs follow (test mode checks 0x50 banks)
|
||||
ROM_COPY( "maincpu", 0x000000, 0x010000, 0x080000 )
|
||||
ROM_LOAD( "00102.1d", 0x090000, 0x200000, CRC(ed3b5447) SHA1(ac24e9c00c94c35d2b2ec35f0c4262ceeda5408f) )
|
||||
|
||||
@ -5946,4 +5990,4 @@ GAME( 1996, janptr96, 0, janptr96, janptr96, royalmah_prgbank_state, ini
|
||||
GAME( 1997, janptrsp, 0, janptr96, janptr96, royalmah_prgbank_state, init_janptr96, ROT0, "Dynax", "Janputer Special (Japan)", 0 )
|
||||
GAME( 1997, pongboo2, 0, pongboo2, ichiban, royalmah_prgbank_state, init_pongboo2, ROT0, "OCT", "Pong Boo! 2 (Ver. 1.31)", MACHINE_NOT_WORKING | MACHINE_WRONG_COLORS ) // banking, palette, inputs
|
||||
GAME( 1999, cafebrk, 0, mjifb, mjifb, royalmah_prgbank_state, init_mjifb, ROT0, "Nakanihon / Dynax", "Mahjong Cafe Break", MACHINE_NOT_WORKING ) // missing internal ROM dump
|
||||
GAME( 1999, cafepara, 0, mjvegasa, mjvegasa, royalmah_prgbank_state, init_mjvegasa, ROT0, "Techno-Top", "Mahjong Cafe Paradise", MACHINE_NOT_WORKING ) // needs correct memory map and CPU ports
|
||||
GAME( 1999, cafepara, 0, cafepara, cafetime, royalmah_prgbank_state, init_mjtensin, ROT0, "Techno-Top", "Mahjong Cafe Paradise (Ver. 1.00)", MACHINE_NOT_WORKING ) // needs correct memory map and CPU ports
|
||||
|
@ -71,7 +71,7 @@ Merit Riviera Notes - There are several known versions:
|
||||
|
||||
NOTE: Based on tests and observations, the CRT-209 module seems to use the Z80's M1 signal when it fetches
|
||||
an opcode to activate and overlay the module's built in 2816 EEPROM. While this prevents a simple
|
||||
memory read of the 2816's memory region, it does limit the usuable instructions to single byte opcodes.
|
||||
memory read of the 2816's memory region, it does limit the usable instructions to single byte opcodes.
|
||||
|
||||
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user