diff options
| author | 2025-06-05 23:25:42 +0200 | |
|---|---|---|
| committer | 2025-06-05 23:25:42 +0200 | |
| commit | 4ee76d20b3fa126e5cf5a0ef9bc14831e7e1d64c (patch) | |
| tree | ac28599d21c00db439b50275d1b641d7d8ec33d7 | |
| parent | 53df6d90b8a42d6d281191a8626bf8343ae631bc (diff) | |
New systems marked not working
------------------------------
Majiang Xingyun Shenlong (China, D121) [little0]
New clones marked not working
-----------------------------
Happy Farm (Ver. IN.01.02.B) [Ioannis Bampoulas]
Little Witch (Ver. EN.01.A) [Ioannis Bampoulas]
- astrocorp/astrocrp.cpp: added sprite banking for the newer games, added "CPU code" for wwitch
- sega/system16.cpp: added MCU dump for wb3bble [f205v]
| -rw-r--r-- | hash/a7800.xml | 8 | ||||
| -rw-r--r-- | src/mame/astrocorp/astrcorp.cpp | 216 | ||||
| -rw-r--r-- | src/mame/atari/a7800.cpp | 20 | ||||
| -rw-r--r-- | src/mame/dynax/ddenlovr.cpp | 17 | ||||
| -rw-r--r-- | src/mame/mame.lst | 3 | ||||
| -rw-r--r-- | src/mame/sega/system16.cpp | 6 |
6 files changed, 199 insertions, 71 deletions
diff --git a/hash/a7800.xml b/hash/a7800.xml index de59d1110c5..780e17eaed2 100644 --- a/hash/a7800.xml +++ b/hash/a7800.xml @@ -6,7 +6,7 @@ license:CC0-1.0 Atari 7800 Software List Prototype information obtained from http://www.atariprotos.com Other list info obtained from http://www.atari7800.org and http://www.atariage.com -Some hardware and software information obtained from Dan Boris https://www.atarihq.com/danb/ +Some hardware and software information obtained from Dan Boris https://atarihq.com/danb/7800cart/a7800cart.shtml Atari 7800 Known Model Numbers @@ -224,7 +224,7 @@ Notes: - Cart PCB numbers are documented where known. Many PAL carts use a different PCB vs the NTSC cart. In some cases they are assumed to be the same but some have been found to be different. Most PAL carts are completely undocumented - and have made up ROM names because the info in not available and they are too expensive to buy just to open it to + and have made up ROM names because the info is not available and they are too expensive to buy just to open it to document a couple of numbers. If you have A7800 carts and want to help, please provide information and verification of ROM numbers and cart PCB @@ -1631,7 +1631,7 @@ Saarna for debugging the problem) <year>1988</year> <publisher>Atari / Nintendo</publisher> <info name="serial" value="CX7850"/> - <info name="pcb" value="C100339 REV. 7800 SUPERCART"/> <!-- not verified --> + <info name="pcb" value="C100339 REV. 7800 SUPERCART"/> <!-- PCB type not verified --> <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="a7800_cart"> <feature name="slot" value="a78_rom" /> @@ -1964,7 +1964,7 @@ almost nothing like the prototype. <!-- One On One (NTSC) PCB Type "C026445-001 7800 48K ROM REV A" - C300048-024A.U1 (32kB) and C028424-001.U2 (16kB), both (C)1987 - One On One (NTSC), old ROM name for U2, possibly earlier release or identical? + C300048-024A.U1 (16kB) and C028424-001.U2 (32kB), both (C)1987 - One On One (NTSC), old ROM name for U2, possibly earlier release or identical? --> <software name="1on1"> diff --git a/src/mame/astrocorp/astrcorp.cpp b/src/mame/astrocorp/astrcorp.cpp index a57f78a6550..3a9486c6001 100644 --- a/src/mame/astrocorp/astrcorp.cpp +++ b/src/mame/astrocorp/astrcorp.cpp @@ -15,37 +15,39 @@ OTHER: EEPROM, Battery 512 sprites, each made of N x M tiles. Tiles are 16x16x8 (16x32x8 in Stone Age) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -Year + Game PCB ID CPU Video Chips Notes ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -00 Show Hand CHE-B50-4002A MC68HC000FN12 ASTRO V01 pLSI1016-60LJ, ASTRO 0001B MCU? (28 pins) -00 Wangpai Duijue CHE-B50-4002A MC68HC000FN12 ASTRO V01 pLSI1016, MDT2020AP MCU (28 pins) -01 Magic Bomb (NB4.5) None ASTRO V03 ASTRO V02 pLSI1016 Encrypted -02 Skill Drop GA None JX-1689F1028N ASTRO V02 pLSI1016-60LJ -02? Keno 21 ? ASTRO V102? ASTRO V05 ASTRO F02? not dumped -03 Magic Bomb (AB5.3) CS350P003 ASTRO V102PX-014? ASTRO V01 ASTRO F02 2003-03-31 Encrypted -03 Speed Drop None JX-1689HP ASTRO V05 pLSI1016-60LJ -03 Speed Master (V1.0) M02 AST-V102PX scratched scratched Encrypted -04 Zoo M1.1 ASTRO V102PX-005? ASTRO V06 ASTRO F02 2005-02-18 Encrypted -04 Magic Bomb (NB6.1) J (CS350P001 + CS350P033) ASTRO V102PX-014? ASTRO V07 ?, Encrypted, select CGA / VGA via jumper -04 Go & Stop K2 (CS350P011) no markings ASTRO V05 ASTRO F01 2007-06-03 Encrypted -04 Magic Bomb (AA.72C) M1.1 ASTRO V102PX-014? ASTRO V05 ASTRO F02 2005-02-18 Encrypted -04 Speed Master (V1.0) M02 AST-V102PX scratched scratched Encrypted -04 Speed Master (V1.0) CS350P003 scratched scratched scratched Encrypted -05 Monkey Land (AA.13B) M1 ASTRO V102PX-005? ASTRO V06 ASTRO F02 2004-05-18 Encrypted -05 Monkey Land (AA.21A) M1.1 ASTRO V102PX-005? ASTRO V06 ASTRO F02 2004-12-04 Encrypted -05 Monkey Land (AA.21C) M1.2 ASTRO V102PX-005? ASTRO V07 ASTRO F01 2006-12-17 Encrypted -05 Dino Dino T-3802A ASTRO V102PX-010? ASTRO V05 ASTRO F02 2003-03-12 Encrypted -05 Stone Age L1 ASTRO V102PX-012? ASTRO V05(x2) ASTRO F02 2004-09-04 Encrypted -05? Hacher (hack) M1.2 ? ? ASTRO F02 2005-02-18 Encrypted -05 Wicked Witch O (CS350P032) ASTRO V102PX-016? ASTRO V06 ASTRO F02 2005-09-17 Encrypted -06 Captain Shark M1.2 ASTRO V102PX-006? ASTRO V06 ASTRO F02 2005-05-29 Encrypted -06 Win Win Bingo M1.2 ASTRO V102PX-006? ASTRO V06 ASTRO F02 2005-09-17 Encrypted -07? Western Venture O (CS350P032) ASTRO V102? ASTRO V07 ASTRO F01 2007-06-03 Encrypted -07 Happy Farm _P_ROHS ASTRO V102PX-008? ASTRO V07 ASTRO ROHS BA21C00009 M835KK01 Encrypted -13 Monkey Land (EN.20B) N1 ASTRO V102PX-005? ASTRO V05 ? Encrypted -14 Magic Bomb (BR.71A) P1 ASTRO V102PX-014? ASTRO V07 ASTRO ROHS BA21C00009 JF13022 Encrypted ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Year + Game PCB ID CPU Video Chips Notes +----------------------------------------------------------------------------------------------------------------------------------------------------------------------- +00 Show Hand CHE-B50-4002A MC68HC000FN12 ASTRO V01 pLSI1016-60LJ, ASTRO 0001B MCU? (28 pins) +00 Wangpai Duijue CHE-B50-4002A MC68HC000FN12 ASTRO V01 pLSI1016, MDT2020AP MCU (28 pins) +01 Magic Bomb (NB4.5) None ASTRO V03 ASTRO V02 pLSI1016 Encrypted +02 Skill Drop GA None JX-1689F1028N ASTRO V02 pLSI1016-60LJ +02? Keno 21 ? ASTRO V102? ASTRO V05 ASTRO F02? not dumped +03 Magic Bomb (AB5.3) CS350P003 ASTRO V102PX-014? ASTRO V01 ASTRO F02 2003-03-31 Encrypted +03 Speed Drop None JX-1689HP ASTRO V05 pLSI1016-60LJ +03 Speed Master (V1.0) M02 AST-V102PX scratched scratched Encrypted +04 Zoo M1.1 ASTRO V102PX-005? ASTRO V06 ASTRO F02 2005-02-18 Encrypted +04 Magic Bomb (NB6.1) J (CS350P001 + CS350P033) ASTRO V102PX-014? ASTRO V07 ?, Encrypted, select CGA / VGA via jumper +04 Go & Stop K2 (CS350P011) no markings ASTRO V05 ASTRO F01 2007-06-03 Encrypted +04 Magic Bomb (AA.72C) M1.1 ASTRO V102PX-014? ASTRO V05 ASTRO F02 2005-02-18 Encrypted +04 Speed Master (V1.0) M02 AST-V102PX scratched scratched Encrypted +04 Speed Master (V1.0) CS350P003 scratched scratched scratched Encrypted +05 Monkey Land (AA.13B) M1 ASTRO V102PX-005? ASTRO V06 ASTRO F02 2004-05-18 Encrypted +05 Monkey Land (AA.21A) M1.1 ASTRO V102PX-005? ASTRO V06 ASTRO F02 2004-12-04 Encrypted +05 Monkey Land (AA.21C) M1.2 ASTRO V102PX-005? ASTRO V07 ASTRO F01 2006-12-17 Encrypted +05 Dino Dino T-3802A ASTRO V102PX-010? ASTRO V05 ASTRO F02 2003-03-12 Encrypted +05 Stone Age L1 ASTRO V102PX-012? ASTRO V05(x2) ASTRO F02 2004-09-04 Encrypted +05? Hacher (hack) M1.2 ? ? ASTRO F02 2005-02-18 Encrypted +05 Wicked Witch O (CS350P032) ASTRO V102PX-016? ASTRO V06 ASTRO F02 2005-09-17 Encrypted +06 Captain Shark M1.2 ASTRO V102PX-006? ASTRO V06 ASTRO F02 2005-05-29 Encrypted +06 Little Witch (EN.01A) P1 ASTRO V102PX-016? ASTRO V07 ASTRO ROHS BA21C00009 JF13022 Encrypted +06 Win Win Bingo M1.2 ASTRO V102PX-006? ASTRO V06 ASTRO F02 2005-09-17 Encrypted +07? Western Venture O (CS350P032) ASTRO V102? ASTRO V07 ASTRO F01 2007-06-03 Encrypted +07 Happy Farm (US.01.02B) _P_ROHS ASTRO V102PX-008? ASTRO V07 ASTRO ROHS BA21C00009 M835KK01 Encrypted +11 Happy Farm (IN.01.02B) P1 ASTRO V102PX-008? ASTRO V07 ASTRO ROHS BA21C00009 N011483 Encrypted +13 Monkey Land (EN.20B) N1 ASTRO V102PX-005? ASTRO V05 ? Encrypted +14 Magic Bomb (BR.71A) P1 ASTRO V102PX-014? ASTRO V07 ASTRO ROHS BA21C00009 JF13022 Encrypted +------------------------------------------------------------------------------------------------------------------------------------------------------------------------ - astoneag, magibomb, winbingo, etc.: to initialize EEPROM (and self test in some games), keep keyout (W) pressed during boot. Needs ticket (or reserve switch) and hopper lines to be 0 though (disconnected?). @@ -68,16 +70,15 @@ TODO: - Fix mirror ROM checksum / ROM overlay without code patches (in games with heavier encryption). - Find source of level 2 interrupt (sprite DMA end?). - magibomba, westvent: need a redump of one of the program ROMs. -- magibombg, hacher: need a redump of the sprite ROMs. +- magibombm, hacher: need a redump of the sprite ROMs. - astoneag, dinodino, magibombd, magibombg: exiting from test menu goes haywire (requires a soft-reset with F3). - magibombg,m: need RE of the CPU code and correct EEPROM. - gostopac: stops with 'S4' message during boot. Needs RE of the CPU code and emulation of its peculiarities. - monkeyl and clones: need RE of the CPU code, inputs and layout. After reset it initializes. - speedmst,a,b: need RE of the CPU code, correct EEPROM. Won't boot right now. - cptshark: needs verifying of inputs and layout -- wwitch: needs correct GFX ROMs loading / decode, RE of the CPU code, inputs, outputs. Currently starts but then freezes. -- hapfarm: doesn't work, possibly wrong interrupts. Code base differs significantly, needs studying. Probably the link between - this generation of hardware and the one in astrocorp/hummer.cpp. +- wwitch, lwitch: need RE of the CPU code, inputs, outputs. Currently start but then freeze. +- hapfarm,a: needs verifying of inputs, outputs and layout. *************************************************************************************************************/ @@ -305,6 +306,8 @@ public: void dinodino(machine_config &config) ATTR_COLD; void gostop(machine_config &config) ATTR_COLD; void hapfarm(machine_config &config) ATTR_COLD; + void hapfarma(machine_config &config) ATTR_COLD; + void lwitch(machine_config &config) ATTR_COLD; void magibombd(machine_config &config) ATTR_COLD; void magibombg(machine_config &config) ATTR_COLD; void magibombm(machine_config &config) ATTR_COLD; @@ -322,6 +325,7 @@ public: void init_gostop() ATTR_COLD; void init_hacher() ATTR_COLD; void init_hapfarm() ATTR_COLD; + void init_hapfarma() ATTR_COLD; void init_magibombd() ATTR_COLD; void init_magibombg() ATTR_COLD; void init_magibombm() ATTR_COLD; @@ -369,6 +373,8 @@ private: void gostop_map(address_map &map) ATTR_COLD; void hacher_map(address_map &map) ATTR_COLD; void hapfarm_map(address_map &map) ATTR_COLD; + void hapfarma_map(address_map &map) ATTR_COLD; + void lwitch_map(address_map &map) ATTR_COLD; void magibombd_map(address_map &map) ATTR_COLD; void magibombg_map(address_map &map) ATTR_COLD; void magibombm_map(address_map &map) ATTR_COLD; @@ -469,6 +475,7 @@ void astrocorp_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &clipre if (!(sx & 0x8000)) return; + const int code_bank = (BIT(m_sprite_dma, 9) << 16); const int dimx = (size >> 8) & 0xff; const int dimy = (size >> 0) & 0xff; @@ -491,7 +498,7 @@ void astrocorp_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &clipre int resx = flipx ? (sx + 1) - ((x + 1) * 16 + xwrap) : sx + x * 16 - xwrap; int resy = flipy ? (sy + 1) - ((y + 1) * 16 + ywrap) : sy + y * 16 - ywrap; gfx->transpen(bitmap,cliprect, - code, 0, + code | code_bank, 0, flipx, flipy, resx, resy * yfactor, 0xff); } @@ -1057,6 +1064,23 @@ void zoo_state::wwitch_map(address_map &map) // map(0x??0001, 0x??0001).w(FUNC(zoo_state::screen_enable_w)); // unknown location } +void zoo_state::lwitch_map(address_map &map) +{ + map(0x000000, 0x03ffff).rom().mirror(0x800000); // POST checks for ROM checksum at mirror + map(0xa00001, 0xa00001).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0xa80000, 0xa80fff).ram().share("spriteram"); + map(0xa82000, 0xa82001).nopr().w(FUNC(zoo_state::draw_sprites_w)); + map(0xa84000, 0xa84001).portr("INPUTS"); + map(0xa88001, 0xa88001).w(FUNC(zoo_state::eeprom_w)); + map(0xa8a000, 0xa8a001).w(FUNC(zoo_state::magibomb_outputs_w)); + map(0xa8e000, 0xa8e001).portr("EEPROM_IN"); + map(0xb00000, 0xb00000).w(FUNC(zoo_state::oki_bank_w)); + map(0xc00000, 0xc00001).portr("CPUCODE_IN"); + map(0xd00000, 0xd001ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); + map(0xd80000, 0xd83fff).ram().share("nvram"); // battery +// map(0x??0001, 0x??0001).w(FUNC(zoo_state::screen_enable_w)); // unknown location +} + void zoo_state::hapfarm_map(address_map &map) // TODO: verify everything { map(0x000000, 0x03ffff).rom().mirror(0x800000); // POST checks for ROM checksum at mirror @@ -1074,6 +1098,23 @@ void zoo_state::hapfarm_map(address_map &map) // TODO: verify everything // map(0x??0001, 0x??0001).w(FUNC(zoo_state::screen_enable_w)); // unknown location } +void zoo_state::hapfarma_map(address_map &map) // TODO: verify everything +{ + map(0x000000, 0x03ffff).rom().mirror(0x800000); // POST checks for ROM checksum at mirror + map(0x300000, 0x303fff).ram().share("nvram"); // battery + map(0xa80000, 0xa80001).portr("CPUCODE_IN"); + map(0xb80000, 0xb80fff).ram().share("spriteram"); + map(0xb82000, 0xb82001).nopr().w(FUNC(zoo_state::draw_sprites_w)); + map(0xb84000, 0xb84001).portr("INPUTS"); + map(0xb88001, 0xb88001).w(FUNC(zoo_state::eeprom_w)); + map(0xb8a000, 0xb8a001).w(FUNC(zoo_state::magibomb_outputs_w)); + map(0xb8e000, 0xb8e001).portr("EEPROM_IN"); + map(0xd00000, 0xd001ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); + map(0xd80000, 0xd80000).w(FUNC(zoo_state::oki_bank_w)); + map(0xe00001, 0xe00001).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); +// map(0x??0001, 0x??0001).w(FUNC(zoo_state::screen_enable_w)); // unknown location +} + void astoneag_state::astoneag_map(address_map &map) { map(0x000000, 0x03ffff).rom().mirror(0x800000); // POST checks for ROM checksum at mirror @@ -1545,12 +1586,24 @@ void zoo_state::wwitch(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &zoo_state::wwitch_map); } +void zoo_state::lwitch(machine_config &config) +{ + winbingo(config); + m_maincpu->set_addrmap(AS_PROGRAM, &zoo_state::lwitch_map); +} + void zoo_state::hapfarm(machine_config &config) { winbingo(config); m_maincpu->set_addrmap(AS_PROGRAM, &zoo_state::hapfarm_map); } +void zoo_state::hapfarma(machine_config &config) +{ + winbingo(config); + m_maincpu->set_addrmap(AS_PROGRAM, &zoo_state::hapfarma_map); +} + void astoneag_state::ramdac_map(address_map &map) { map(0x000, 0x2ff).rw(m_ramdac, FUNC(ramdac_device::ramdac_pal_r), FUNC(ramdac_device::ramdac_rgb666_w)); @@ -1972,7 +2025,7 @@ ROM_START( magibombg ) ROM_FILL( 0x20000, 0x20000, 0xff ) ROM_REGION( 0x200000, "sprites", 0 ) - ROM_LOAD( "mx29f1610mc.u26", 0x000000, 0x200000, BAD_DUMP CRC(042f7992) SHA1(2e175994d0b14200a92bdb46e82847b1a1c88265) ) // wasn't dumped, different from all the other sets + ROM_LOAD( "mx29f1610mc.u26", 0x000000, 0x200000, BAD_DUMP CRC(ec43e200) SHA1(bf30d2e99751a93c0b72dd782fce77e9b582c89c) ) // wasn't dumped, magibombo's one seems to work correctly ROM_REGION( 0x80000, "oki", 0 ) ROM_LOAD( "5 magic bomb", 0x00000, 0x80000, CRC(c9edbf1b) SHA1(8e3a96a38aea23950d6add66a5a3d079013bc217) ) @@ -2103,7 +2156,7 @@ ROM_START( magibombo ) ROM_LOAD16_BYTE( "2_m.b.br.71.a.u25", 0x00001, 0x20000, CRC(b3c24e55) SHA1(34e2e2e2862c761e6b869aaac003a73615ab730b) ) // A290011T ROM_REGION( 0x200000, "sprites", 0 ) - ROM_LOAD( "gfx.u51", 0x000000, 0x200000, BAD_DUMP CRC(ec43e200) SHA1(bf30d2e99751a93c0b72dd782fce77e9b582c89c) ) // MX29F1610MC + ROM_LOAD( "gfx.u51", 0x000000, 0x200000, CRC(ec43e200) SHA1(bf30d2e99751a93c0b72dd782fce77e9b582c89c) ) // MX29F1610MC ROM_REGION( 0x80000, "oki", 0 ) ROM_LOAD( "5_magic_bomb", 0x00000, 0x80000, CRC(c9edbf1b) SHA1(8e3a96a38aea23950d6add66a5a3d079013bc217) ) // A29040 @@ -2144,10 +2197,10 @@ ROM_START( westvent ) ROM_LOAD16_BYTE( "1_w.v.aa.02.d.bin", 0x00000, 0x20000, CRC(5e208192) SHA1(5a35a419fe95513b68423d4eb6c77fdd375667f3) ) // good? ROM_LOAD16_BYTE( "2_w.v.aa.02.d.bin", 0x00001, 0x20000, BAD_DUMP CRC(f56d3ead) SHA1(2cf8960eab221cfce1c7ac6a20d002c4b05d8cc6) ) // FIXED BITS (xxxxxx0xxxxxxxxx) - ROM_REGION( 0x600000, "sprites", 0 ) - ROM_LOAD( "mx29f1610mc_bottom.bin", 0x000000, 0x200000, CRC(e2dd58d5) SHA1(9ab881cfb2ee6cbc48aa28ba28529adb00803e44) ) // no U location on the PCB - ROM_LOAD( "mx29f1610mc_middle.u51", 0x200000, 0x200000, CRC(7348fd37) SHA1(b5ec0994afb5bceae5627c37f1b35c7abcfd2f0a) ) - ROM_LOAD( "mx29f1610mc_top.u30", 0x400000, 0x200000, CRC(75bbaae0) SHA1(ef35775dd481ff343df1ee071ccd52b024d084b7) ) + ROM_REGION( 0x1800000, "sprites", ROMREGION_ERASE00 ) + ROM_LOAD( "mx29f1610mc_top.u30", 0x0000000, 0x200000, CRC(75bbaae0) SHA1(ef35775dd481ff343df1ee071ccd52b024d084b7) ) + ROM_LOAD( "mx29f1610mc_middle.u51", 0x0800000, 0x200000, CRC(7348fd37) SHA1(b5ec0994afb5bceae5627c37f1b35c7abcfd2f0a) ) + ROM_LOAD( "mx29f1610mc_bottom.bin", 0x1000000, 0x200000, CRC(e2dd58d5) SHA1(9ab881cfb2ee6cbc48aa28ba28529adb00803e44) ) // no U location on the PCB ROM_REGION( 0x80000, "oki", 0 ) ROM_LOAD( "5.bin", 0x00000, 0x80000, CRC(92dc09d1) SHA1(6b448b3372e78047d054c5e42fcfcff7f75ff9b9) ) @@ -2826,7 +2879,7 @@ ROM_END /*************************************************************************** -Wicked Witch +Wicked Witch / Little Witch Astro Corp. ***************************************************************************/ @@ -2836,10 +2889,10 @@ ROM_START( wwitch ) ROM_LOAD16_BYTE( "1_wicked_w_aa.01.a.u26", 0x00000, 0x20000, CRC(6c654105) SHA1(b07e807864d7d0ccb80111369f8dc205fe45aea4) ) // F29C51001T ROM_LOAD16_BYTE( "2_wicked_w_aa.01.a.u25", 0x00001, 0x20000, CRC(66206bb4) SHA1(80513d7dc7cd664238f01a6c1b3e40e7696e2211) ) // F29C51001T - ROM_REGION( 0x600000, "sprites", 0 ) - ROM_LOAD( "mx29f1610mc.bin", 0x000000, 0x200000, CRC(8dad2fc0) SHA1(88c4bda8e247839029a8c9a84d3bd598892b1775) ) // no U location on the PCB, silkscreened 'ROM # 7' on PCB under the chip - ROM_LOAD( "mx29f1610mc.u30", 0x200000, 0x200000, CRC(d4e7b00d) SHA1(2689d19fcdd828d0d47265362f6625377a90c1e4) ) // silkscreened 'ROM # 4' on PCB under the chip - ROM_LOAD( "mx29f1610mc.u51", 0x400000, 0x200000, CRC(05bc898d) SHA1(c88c14e4858943b2ea719abe0cc9ac0738d682dd) ) // silkscreened 'ROM # 3' on PCB under the chip + ROM_REGION( 0x1800000, "sprites", ROMREGION_ERASE00 ) + ROM_LOAD( "mx29f1610mc.u51", 0x0000000, 0x200000, CRC(05bc898d) SHA1(c88c14e4858943b2ea719abe0cc9ac0738d682dd) ) // silkscreened 'ROM # 3' on PCB under the chip + ROM_LOAD( "mx29f1610mc.u30", 0x0800000, 0x200000, CRC(d4e7b00d) SHA1(2689d19fcdd828d0d47265362f6625377a90c1e4) ) // silkscreened 'ROM # 4' on PCB under the chip + ROM_LOAD( "mx29f1610mc.bin", 0x1000000, 0x200000, CRC(8dad2fc0) SHA1(88c4bda8e247839029a8c9a84d3bd598892b1775) ) // no U location on the PCB, silkscreened 'ROM # 7' on PCB under the chip ROM_REGION( 0x80000, "oki", 0 ) ROM_LOAD( "5_wicked_w_aa.01.a.bin", 0x00000, 0x80000, CRC(298014f3) SHA1(98da24e84ec69c48e8754f8406e11e68fb352e28) ) @@ -2851,6 +2904,26 @@ ROM_START( wwitch ) ROM_LOAD( "wwitch_cpucode.key", 0x00, 0x02, NO_DUMP ) ROM_END +ROM_START( lwitch ) + ROM_REGION( 0x40000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "1_l.w.en.01.a.u26", 0x00000, 0x20000, CRC(dadf2a55) SHA1(ed60182624d48c3bbfc80e0469221fbfc1a8b7ca) ) // A290011T + ROM_LOAD16_BYTE( "2_l.w.en.01.a.u25", 0x00001, 0x20000, CRC(307ce189) SHA1(cebc5a1393fbea2a2be9cc953ebf52b859255def) ) // A290011T + + ROM_REGION( 0x18000000, "sprites", ROMREGION_ERASE00 ) + ROM_LOAD( "mx29f1610mc.rom3.u51", 0x0000000, 0x200000, CRC(05bc898d) SHA1(c88c14e4858943b2ea719abe0cc9ac0738d682dd) ) // same as wwitch + ROM_LOAD( "mx29f1610mc.rom4.u30", 0x0800000, 0x200000, CRC(cdedc2fc) SHA1(fb4f36a923db3b49e96aa8dde28c862c2ac063e3) ) + ROM_LOAD( "mx29f1610mc.rom7", 0x1000000, 0x200000, CRC(5ac66b7d) SHA1(c5acba5a600e3f6b3b592451fd3897c275bb1851) ) + + ROM_REGION( 0x80000, "oki", 0 ) + ROM_LOAD( "5_little_witch.rom5", 0x00000, 0x80000, CRC(298014f3) SHA1(98da24e84ec69c48e8754f8406e11e68fb352e28) ) // A29040, same as wwitch + + ROM_REGION16_LE( 0x80, "eeprom", 0 ) + ROM_LOAD( "93c46.u13", 0x00, 0x80, CRC(dffedf0e) SHA1(45f52366003e7a3d0ef72dbac17cda8737f6b8e2) ) + + ROM_REGION16_LE( 0x02, "astro_cpucode", 0 ) + ROM_LOAD( "lwitch_cpucode.key", 0x00, 0x02, NO_DUMP ) +ROM_END + /*************************************************************************** Happy Farm @@ -2863,20 +2936,39 @@ ROM_START( hapfarm ) // also has Hot Runner N3.00 string, so probably derived fr ROM_LOAD16_BYTE( "1_happy_farm_us.01.02.b.u26", 0x00000, 0x20000, CRC(c60bbc39) SHA1(fcf23c9c75bc221a310b87de58dea75f018065c2) ) // EV29001TSC-70R read as F29C51001T ROM_LOAD16_BYTE( "2_happy_farm_us.01.02.b.u25", 0x00001, 0x20000, CRC(186a3e0f) SHA1(8e2474beb9264dbadc154cdfdc7b911cc1a3a601) ) // EV29001TSC-70R read as F29C51001T - ROM_REGION( 0x600000, "sprites", 0 ) - ROM_LOAD( "mx29f1610mc.bin", 0x000000, 0x200000, CRC(fea5629e) SHA1(cbee315f7264dc6f3dd2a973cf948854138827e3) ) // no U location on the PCB, silkscreened 'ROM # 7' on PCB under the chip - ROM_LOAD( "mx29f1610mc.u30", 0x200000, 0x200000, CRC(97af8968) SHA1(344834f7fae193e9f505d451cb6fc7240e5e84b9) ) // silkscreened 'ROM # 4' on PCB under the chip - ROM_LOAD( "mx29f1610mc.u51", 0x400000, 0x200000, CRC(42faf0e8) SHA1(de596978c9a57d7667b78755ea111972857b6313) ) // silkscreened 'ROM # 3' on PCB under the chip + ROM_REGION( 0x1800000, "sprites", ROMREGION_ERASE00 ) + ROM_LOAD( "mx29f1610mc.u51", 0x0000000, 0x200000, CRC(42faf0e8) SHA1(de596978c9a57d7667b78755ea111972857b6313) ) // silkscreened 'ROM # 3' on PCB under the chip + ROM_LOAD( "mx29f1610mc.u30", 0x0800000, 0x200000, CRC(97af8968) SHA1(344834f7fae193e9f505d451cb6fc7240e5e84b9) ) // silkscreened 'ROM # 4' on PCB under the chip + ROM_LOAD( "mx29f1610mc.bin", 0x1000000, 0x200000, CRC(fea5629e) SHA1(cbee315f7264dc6f3dd2a973cf948854138827e3) ) // no U location on the PCB, silkscreened 'ROM # 7' on PCB under the chip ROM_REGION( 0x80000, "oki", 0 ) - ROM_LOAD( "5_happy_farm.bin", 0x00000, 0x40000, CRC(859a6086) SHA1(2821ae6f86df8a3bbff0f348cf6a36c1c3fec68a) ) // 0xxxxxxxxxxxxxxxxxx = 0xFF - ROM_CONTINUE( 0x00000, 0x40000 ) + ROM_LOAD( "5_happy_farm.bin", 0x00000, 0x80000, CRC(f6b7cc89) SHA1(3a5863a643b9259db95522e1a7f1b1eea457d28a) ) ROM_REGION16_LE( 0x80, "eeprom", 0 ) ROM_LOAD( "93c46.u13", 0x00, 0x80, CRC(c11f2b48) SHA1(174681a01b30b036e948a90313add8e7de9aef55) ) ROM_REGION16_LE( 0x02, "astro_cpucode", 0 ) - ROM_LOAD( "hapfarm_cpucode.key", 0x00, 0x02, NO_DUMP ) + ROM_LOAD( "hapfarm_cpucode.key", 0x00, 0x02, CRC(f442d91a) SHA1(c6286f7cc262e52f35472a6c340f202cfbba6094) ) +ROM_END + +ROM_START( hapfarma ) + ROM_REGION( 0x40000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "1_happy_farm_in.01.02.b.u26", 0x00000, 0x20000, CRC(c7b32cbe) SHA1(08414711180485ebbb19583aaddb1cfaf19f2ac6) ) + ROM_LOAD16_BYTE( "2_happy_farm_in.01.02.b.u25", 0x00001, 0x20000, CRC(8a3885a6) SHA1(adc74aaacda583b1d8ef3dcdc9c2075e89bfe7b7) ) + + ROM_REGION( 0x1800000, "sprites", ROMREGION_ERASE00 ) + ROM_LOAD( "mx29f1610mc.rom3.u51", 0x0000000, 0x200000, CRC(8cd1274e) SHA1(308f4de0e7f9addbbbfd9526abc8b3c55167c856) ) + ROM_LOAD( "mx29f1610mc.rom4.u30", 0x0800000, 0x200000, CRC(e580f09f) SHA1(15965601dbc4f85ca50a82fd325d00e3f09d7188) ) + ROM_LOAD( "mx29f1610mc.rom7", 0x1000000, 0x200000, CRC(b44439d2) SHA1(15b48111c37aac145d1f6cce62df0e8c6638cdbd) ) + + ROM_REGION( 0x80000, "oki", 0 ) + ROM_LOAD( "5_happy_farm.rom5", 0x00000, 0x80000, CRC(f6b7cc89) SHA1(3a5863a643b9259db95522e1a7f1b1eea457d28a) ) + + ROM_REGION16_LE( 0x80, "eeprom", 0 ) + ROM_LOAD( "93c46.u13", 0x00, 0x80, CRC(59df0bbf) SHA1(701b485b23c124172a80cfffdea579fb91cbf37c) ) + + ROM_REGION16_LE( 0x02, "astro_cpucode", 0 ) + ROM_LOAD( "hapfarma_cpucode.key", 0x00, 0x02, CRC(3e92abb0) SHA1(8e0eb6b43a45a4a4d402d06c32a25b64c7503f0c) ) // TODO: is this needed? game doesn't seem to check it ROM_END void astrocorp_state::init_showhand() @@ -3497,6 +3589,20 @@ void zoo_state::init_hapfarm() #endif } +void zoo_state::init_hapfarma() +{ + decrypt_rom(v102_px008_table); +#if 1 + // TODO: There's more stuff happening for addresses < 0x400... + // override reset vector for now + u16 * const rom = (u16 *)memregion("maincpu")->base(); + rom[0x00004/2] = 0x0000; + rom[0x00006/2] = 0x0400; + + rom[0x32490/2] = 0x4e75; // Mirror ROM word checksum (it expects 0) +#endif +} + const astoneag_state::decryption_info astoneag_state::v102_px012_table = { { { @@ -3607,4 +3713,6 @@ GAMEL( 2006, winbingoa, winbingo, winbingo, winbingo, zoo_state, init_w GAMEL( 2005, hacher, winbingo, hacher, winbingo, zoo_state, init_hacher, ROT0, "bootleg (Gametron)", "Hacher (hack of Win Win Bingo EN.01.6)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_GRAPHICS, layout_winbingo ) // 14:25:46 Mar 10 2005. One bad sprite ROM GAME ( 2007?, westvent, 0, skilldrp, skilldrp, astrocorp_state, empty_init, ROT0, "Astro Corp.", "Western Venture (Ver. AA.02.D)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // One bad program ROM GAME ( 2005, wwitch, 0, wwitch, magibombd, zoo_state, init_wwitch, ROT0, "Astro Corp.", "Wicked Witch (Ver. AA.01.A)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // 29/12/05 09:29 +GAME ( 2006, lwitch, wwitch, lwitch, magibombd, zoo_state, init_wwitch, ROT0, "Astro Corp.", "Little Witch (Ver. EN.01.A)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // 06/01/06 14:08 GAME ( 2008, hapfarm, 0, hapfarm, magibombd, zoo_state, init_hapfarm, ROT0, "Astro Corp.", "Happy Farm (Ver. US.01.02.B)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // 2008/10/16 +GAME ( 2011, hapfarma, hapfarm, hapfarma, magibombd, zoo_state, init_hapfarma, ROT0, "Astro Corp.", "Happy Farm (Ver. IN.01.02.B)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // 2011/06/02 diff --git a/src/mame/atari/a7800.cpp b/src/mame/atari/a7800.cpp index 39b4d3ed658..0f46bdb369a 100644 --- a/src/mame/atari/a7800.cpp +++ b/src/mame/atari/a7800.cpp @@ -2,8 +2,6 @@ // copyright-holders:Dan Boris, Fabio Priuli, Mike Saarna, Robert Tuccitto /*************************************************************************** - a7800.c - Driver file to handle emulation of the Atari 7800. Dan Boris @@ -102,8 +100,8 @@ #include "bus/a7800/a78_carts.h" #include "cpu/m6502/m6502.h" -#include "machine/timer.h" #include "machine/mos6530.h" +#include "machine/timer.h" #include "sound/tiaintf.h" #include "emupal.h" @@ -133,12 +131,12 @@ public: } protected: - void a7800_common(machine_config &config, uint32_t clock); + void a7800_common(machine_config &config, uint32_t clock) ATTR_COLD; uint8_t bios_or_cart_r(offs_t offset); uint8_t tia_r(offs_t offset); void tia_w(offs_t offset, uint8_t data); - virtual void a7800_palette(palette_device &palette) const; + virtual void a7800_palette(palette_device &palette) const ATTR_COLD; TIMER_DEVICE_CALLBACK_MEMBER(interrupt); TIMER_CALLBACK_MEMBER(maria_startdma); uint8_t riot_joystick_r(); @@ -177,19 +175,19 @@ class a7800_ntsc_state : public a7800_state { public: using a7800_state::a7800_state; - void init_a7800_ntsc(); - void a7800_ntsc(machine_config &config); + void init_a7800_ntsc() ATTR_COLD; + void a7800_ntsc(machine_config &config) ATTR_COLD; }; class a7800_pal_state : public a7800_state { public: using a7800_state::a7800_state; - void init_a7800_pal(); - void a7800_pal(machine_config &config); + void init_a7800_pal() ATTR_COLD; + void a7800_pal(machine_config &config) ATTR_COLD; protected: - virtual void a7800_palette(palette_device &palette) const override; + virtual void a7800_palette(palette_device &palette) const override ATTR_COLD; }; @@ -1413,6 +1411,8 @@ void a7800_ntsc_state::a7800_ntsc(machine_config &config) // basic machine hardware m_screen->set_raw(14'318'180/2, 454, 0, 320, 263, 27, 27 + 192 + 32); + m_cart->set_must_be_loaded(true); + // software lists SOFTWARE_LIST(config, "cart_list").set_original("a7800").set_filter("NTSC"); } diff --git a/src/mame/dynax/ddenlovr.cpp b/src/mame/dynax/ddenlovr.cpp index a066544a432..5814ad07a57 100644 --- a/src/mame/dynax/ddenlovr.cpp +++ b/src/mame/dynax/ddenlovr.cpp @@ -11271,6 +11271,21 @@ ROM_START( mjdchuka ) ROM_LOAD( "1.1b", 0x00000, 0x80000, CRC(9759c65e) SHA1(cf098c07616b6d2a2ba10ff6ae0006442b675326) ) ROM_END +ROM_START( mjxysl ) // 麻将 幸运神龙 (Májiàng Xìngyùn Shénlóng) + ROM_REGION( 0x80000, "maincpu", 0 ) // Z80 Code + ROM_LOAD( "b.5b", 0x00000, 0x80000, CRC(3b0761c9) SHA1(cb9cf9dc693c2ac9b91ee21db51c9b279412340e) ) + + ROM_REGION( 0x200000, "blitter", ROMREGION_ERASEFF ) + ROM_LOAD16_BYTE( "c.11c", 0x000000, 0x080000, CRC(83bfc841) SHA1(36547e737244f95004c598adeb46cebce9ab3231) ) + ROM_LOAD16_BYTE( "d.11a", 0x000001, 0x080000, CRC(1bf6220a) SHA1(ea18fdf6e1298a3b4c91fbf6219b1edcfecaeca3) ) + ROM_LOAD16_BYTE( "e.12c", 0x100000, 0x020000, CRC(bec823ac) SHA1(2c82c376618fe937e3b7e0fef357f10dbbae00ae) ) + ROM_LOAD16_BYTE( "f.12a", 0x100001, 0x020000, CRC(a1030162) SHA1(25f3c27d8197d6c1a801219aec7c8dbad214892d) ) + // 13c and 13a not populated + + ROM_REGION( 0x80000, "oki", 0 ) // samples + ROM_LOAD( "a.1b", 0x00000, 0x80000, CRC(ce32dcbc) SHA1(89a96e34d05b97f74b9427303316486e6aae3e6d) ) +ROM_END + /*************************************************************************** @@ -12729,6 +12744,8 @@ GAME( 1995, ddenlovrk, ddenlovj, ddenlovrk, ddenlovr, ddenlovr_state, empty_ GAME( 1995, ddenlovrb, ddenlovj, ddenlovr, ddenlovr, ddenlovr_state, empty_init, ROT0, "bootleg", "Don Den Lover Vol. 1 - Heukbaeg-euro Jeonghaja (Korea, bootleg)", MACHINE_NO_COCKTAIL ) GAME( 1996, ddenlovr, ddenlovj, ddenlovr, ddenlovr, ddenlovr_state, empty_init, ROT0, "Dynax", "Don Den Lover Vol. 1 (Hong Kong)", MACHINE_NO_COCKTAIL ) +GAME( 1996, mjxysl, 0, mjchuuka, mjchuuka, hanakanz_state, empty_init, ROT0, "Dynax", "Majiang Xingyun Shenlong (China, D121)", MACHINE_NO_COCKTAIL ) + GAME( 1996, hanakanz, 0, hanakanz, hanakanz, hanakanz_state, empty_init, ROT0, "Dynax", "Hana Kanzashi (Japan)", MACHINE_NO_COCKTAIL ) GAME( 1997, kotbinyo, hanakanz, kotbinyo, kotbinyo, hanakanz_state, empty_init, ROT0, "Dynax / Shinwhajin", "Kkotbinyeo (Korea)", MACHINE_NO_COCKTAIL ) GAME( 1997, kotbinyosu, hanakanz, kotbinyo, kotbinyosu, hanakanz_state, empty_init, ROT0, "Dynax / Shinwhajin", "Speed Up / Kkotbinyeo (Korea)", MACHINE_NOT_WORKING | MACHINE_NO_COCKTAIL ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 6ecfcc07d9c..71c4edba952 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -1471,7 +1471,9 @@ dinodino gostopac hacher hapfarm +hapfarma luckycoin +lwitch magibomb magibomba magibombb @@ -17681,6 +17683,7 @@ mjreach1 mjreach1a mjschuka mjtenho +mjxysl mmpanic momotaro nettoqc diff --git a/src/mame/sega/system16.cpp b/src/mame/sega/system16.cpp index 7c93915bc78..6b6dd90693e 100644 --- a/src/mame/sega/system16.cpp +++ b/src/mame/sega/system16.cpp @@ -2823,11 +2823,11 @@ ROM_START( wb3bble ) /* Appears to be a pre-system 16 bootleg with encryption ROM_LOAD16_BYTE( "epr12093.b4", 0x60001, 0x010000, CRC(4891e7bb) SHA1(1be04fcabe9bfa8cf746263a5bcca67902a021a0) ) // 12- ic71 ROM_LOAD16_BYTE( "epr12097.b8", 0x60000, 0x010000, CRC(e645902c) SHA1(497cfcf6c25cc2e042e16dbcb1963d2223def15a) ) // 16- ic103 - ROM_REGION( 0x10000, "soundcpu", 0 ) /* sound CPU */ + ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "a-1 ic68", 0x0000, 0x8000, CRC(8321eb0b) SHA1(61cf95833c0aa38e35fc18db39d4ec74e4aaf01e) ) - ROM_REGION( 0x1000, "mcu", 0 ) /* MCU code */ - ROM_LOAD( "d8749h.mcu", 0x0000, 0x1000, NO_DUMP ) + ROM_REGION( 0x800, "mcu", 0 ) + ROM_LOAD( "d8749h.mcu", 0x000, 0x800, CRC(4d4fa98d) SHA1(3c1500e7d008232a0eac8394a8d077e159aa43d1) ) ROM_END /****************************** |
