summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2025-06-05 23:25:42 +0200
committer Ivan Vangelista <mesgnet@yahoo.it>2025-06-05 23:25:42 +0200
commit4ee76d20b3fa126e5cf5a0ef9bc14831e7e1d64c (patch)
treeac28599d21c00db439b50275d1b641d7d8ec33d7
parent53df6d90b8a42d6d281191a8626bf8343ae631bc (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.xml8
-rw-r--r--src/mame/astrocorp/astrcorp.cpp216
-rw-r--r--src/mame/atari/a7800.cpp20
-rw-r--r--src/mame/dynax/ddenlovr.cpp17
-rw-r--r--src/mame/mame.lst3
-rw-r--r--src/mame/sega/system16.cpp6
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
/******************************