Skip to content

Commit 630fb6b

Browse files
committed
New working clones
------------------ Stone Age (Astro, Ver. AA.05.H, 2007/03/15) [Ioannis Bampoulas] New systems marked not working ------------------------------ Crazy Circus (Ver. US.01.7) [Ioannis Bampoulas] Krazy Keno (V105US) [Ioannis Bampoulas] New clones marked not working ----------------------------- Haunted House (IGS, V107US) [Ioannis Bampoulas]
1 parent 6347042 commit 630fb6b

File tree

3 files changed

+162
-2
lines changed

3 files changed

+162
-2
lines changed

src/mame/astrocorp/astrcorp.cpp

Lines changed: 98 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ Note: ASTRO F01 is a QuickLogic pASIC 3 FPGA (die-marked as QL3161A/1999).
111111
- zulu: needs verifying of inputs, outputs and layout.
112112
- westvent and clones: needs verifying of inputs, outputs and layout.
113113
- keno21: doesn't manage to read the CPU code. bp 1160,1,{D5=0x2188;g} for now to go further.
114+
- crzcircus: needs verifying of inputs, outputs and layout.
114115
115116
magibomb sets Q/A as of 18.07.2025:
116117
MAGIC BOMB\A3.0 (magibomb_a30 run protected)
@@ -370,9 +371,10 @@ class zoo_state : public astrocorp_state
370371
m_cpucode_out(*this, "CPUCODE_OUT")
371372
{ }
372373

373-
void hacher(machine_config &config) ATTR_COLD;
374+
void crzcircus(machine_config &config) ATTR_COLD;
374375
void dinodino(machine_config &config) ATTR_COLD;
375376
void gostopac(machine_config &config) ATTR_COLD;
377+
void hacher(machine_config &config) ATTR_COLD;
376378
void hapfarm(machine_config &config) ATTR_COLD;
377379
void hapfarm_in0102b(machine_config &config) ATTR_COLD;
378380
void keno21(machine_config &config) ATTR_COLD;
@@ -416,6 +418,7 @@ class zoo_state : public astrocorp_state
416418

417419
TIMER_DEVICE_CALLBACK_MEMBER(irq_1_2_scanline_cb);
418420

421+
void crzcircus_map(address_map &map) ATTR_COLD;
419422
void dinodino_map(address_map &map) ATTR_COLD;
420423
void gostopac_map(address_map &map) ATTR_COLD;
421424
void hacher_map(address_map &map) ATTR_COLD;
@@ -1180,8 +1183,8 @@ void zoo_state::speedmst_map(address_map &map)
11801183
map(0x88a000, 0x88a001).w(FUNC(zoo_state::magibomb_outputs_w));
11811184
map(0x890000, 0x890001).portr("EEPROM_IN");
11821185
map(0x8a0000, 0x8a0001).portr("CPUCODE_IN");
1186+
map(0x8b0001, 0x8b0001).w(FUNC(zoo_state::oki_bank_w));
11831187
map(0x8c0001, 0x8c0001).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
1184-
//map(0x??0001, 0x??0001).w(FUNC(zoo_state::oki_bank_w))
11851188
}
11861189

11871190
void zoo_state::wwitch_map(address_map &map)
@@ -1274,6 +1277,24 @@ void zoo_state::westvent_map(address_map &map)
12741277
// map(0x??0001, 0x??0001).w(FUNC(zoo_state::screen_enable_w)); // unknown location
12751278
}
12761279

1280+
void zoo_state::crzcircus_map(address_map &map)
1281+
{
1282+
map(0x000000, 0x03ffff).rom().region("maincpu", 0);
1283+
map(0x800000, 0x83ffff).rom().region("encrypted_rom", 0); // POST checks for encrypted ROM checksum here
1284+
map(0xa00001, 0xa00001).w(FUNC(zoo_state::oki_bank_w));
1285+
map(0xa80001, 0xa80001).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
1286+
map(0xb00000, 0xb00001).portr("CPUCODE_IN");
1287+
map(0xb80000, 0xb80fff).ram().share(m_spriteram);
1288+
map(0xb82000, 0xb82001).nopr().w(FUNC(zoo_state::draw_sprites_w));
1289+
map(0xb84000, 0xb84001).portr("INPUTS");
1290+
map(0xb88001, 0xb88001).w(FUNC(zoo_state::eeprom_w));
1291+
map(0xb8a000, 0xb8a001).w(FUNC(zoo_state::magibomb_outputs_w));
1292+
map(0xb8e000, 0xb8e001).portr("EEPROM_IN");
1293+
map(0xc00000, 0xc00001).nopr().w(FUNC(zoo_state::screen_enable_w)).umask16(0x00ff);
1294+
map(0xd00000, 0xd03fff).ram().share("nvram"); // battery
1295+
map(0xd80000, 0xd801ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
1296+
}
1297+
12771298
void astoneag_state::astoneag_map(address_map &map)
12781299
{
12791300
map(0x000000, 0x03ffff).rom().region("maincpu", 0);
@@ -1782,6 +1803,12 @@ void zoo_state::westvent(machine_config &config)
17821803
m_maincpu->set_addrmap(AS_PROGRAM, &zoo_state::westvent_map);
17831804
}
17841805

1806+
void zoo_state::crzcircus(machine_config &config)
1807+
{
1808+
westvent(config);
1809+
m_maincpu->set_addrmap(AS_PROGRAM, &zoo_state::crzcircus_map);
1810+
}
1811+
17851812
void astoneag_state::ramdac_map(address_map &map)
17861813
{
17871814
map(0x000, 0x2ff).rw(m_ramdac, FUNC(ramdac_device::ramdac_pal_r), FUNC(ramdac_device::ramdac_rgb666_w));
@@ -3215,6 +3242,36 @@ ROM_START( astoneag )
32153242
ROM_LOAD( "astoneag_cpucode.key", 0x00, 0x02, CRC(fd3642ce) SHA1(8b4e630e114f36c9c15b1a6e6185156786ec9502) )
32163243
ROM_END
32173244

3245+
/*
3246+
PCB VGA L1.1 CS350P027
3247+
3248+
V102PX-012
3249+
V06 0430 x2
3250+
F02 2005-02-18
3251+
*/
3252+
ROM_START( astoneag_aa05h )
3253+
ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
3254+
3255+
ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
3256+
ROM_LOAD16_BYTE( "1_s.a.aa.05.h.rom1.u28", 0x00000, 0x20000, CRC(90d57d2f) SHA1(a90449cf0a72a0a0d4e0762dcc773ab3bb6e1657) )
3257+
ROM_LOAD16_BYTE( "2_s.a.aa.05.h.rom2.u29", 0x00001, 0x20000, CRC(9e6aab79) SHA1(7c43c500bf3066a9eddac58eec27ae837d94de38) )
3258+
3259+
ROM_REGION( 0x2000000, "sprites", 0 ) // 16 x 32 tiles !! Not dumped for this set but seem correct
3260+
ROM_LOAD16_BYTE( "29f1610.rom4", 0x0000000, 0x200000, CRC(1affd8db) SHA1(2523f156933c61d36b6646944b5da874f8424864) )
3261+
ROM_LOAD16_BYTE( "29f1610.rom5", 0x0000001, 0x200000, CRC(2b77d827) SHA1(b082254e1c8a7945e2a406b1b937a763b30cb496) )
3262+
ROM_LOAD16_BYTE( "29f1610.rom3", 0x1000000, 0x200000, CRC(8d4e66f0) SHA1(744f83b35684aa6653b0d93b303f2914cd0250ba) )
3263+
ROM_LOAD16_BYTE( "29f1610.rom6", 0x1000001, 0x200000, CRC(eb8ee0e7) SHA1(c6c973460ca96b54151f7523f6afc0184b8fbd40) )
3264+
3265+
ROM_REGION( 0x80000, "oki", 0 )
3266+
ROM_LOAD( "5_s.a._en.01.rom7", 0x00000, 0x80000, CRC(1b13b0c2) SHA1(d6d8c8070ba146b444958fa0b896cebc12b32f5c) )
3267+
3268+
ROM_REGION16_LE( 0x80, "eeprom", 0 )
3269+
ROM_LOAD( "93c46.u15", 0x00, 0x80, CRC(39b9b320) SHA1(d41f583fed297a2e4ba895a529701b17de1d7287) ) // factory default
3270+
3271+
ROM_REGION16_LE( 0x02, "astro_cpucode", 0 )
3272+
ROM_LOAD( "astoneag_aa05h_cpucode.key", 0x00, 0x02, CRC(ece19f31) SHA1(2ca65113bea133e99e1ee6de62dfd5076f7962d2) )
3273+
ROM_END
3274+
32183275
/***************************************************************************
32193276
32203277
Dino Dino
@@ -3794,6 +3851,43 @@ ROM_START( hapfarm_in0102b )
37943851
ROM_LOAD( "hapfarm_in0102b_cpucode.key", 0x00, 0x02, CRC(3e92abb0) SHA1(8e0eb6b43a45a4a4d402d06c32a25b64c7503f0c) ) // TODO: is this needed? game doesn't seem to check it
37953852
ROM_END
37963853

3854+
/***************************************************************************
3855+
3856+
Crazy Circus
3857+
Astro Corp.
3858+
3859+
***************************************************************************/
3860+
3861+
/*
3862+
PCB ASTRO _o CS350P032
3863+
3864+
V102PX-001
3865+
V07 0610
3866+
F01 2007-06-12
3867+
*/
3868+
ROM_START( crzcircus )
3869+
ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
3870+
3871+
ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
3872+
ROM_LOAD16_BYTE( "1_crazy_circus_us.01.7.u26", 0x00000, 0x20000, CRC(f6e85e79) SHA1(6d491e27735b1ca8bceb5ec05c07b1229a30fe9f) )
3873+
ROM_LOAD16_BYTE( "2_crazy_circus_us.01.7.u25", 0x00001, 0x20000, CRC(c17f1fad) SHA1(20511e8933854782d0ea4f0afdb9844496777cee) )
3874+
3875+
ROM_REGION( 0x1000000, "sprites", ROMREGION_ERASE00 )
3876+
ROM_LOAD( "mx29f1610mc_middle.u51", 0x0000000, 0x200000, CRC(9e790804) SHA1(87ecf27ab965cd1d3049d9f88a0a6dc8c0b73e08) )
3877+
ROM_LOAD( "mx29f1610mc_top.u30", 0x0800000, 0x200000, CRC(ffa4405f) SHA1(6632b5fe8b1791a2c3762278b3b0c7fda3b7e401) )
3878+
// ROM 7 not populated
3879+
3880+
ROM_REGION( 0x80000, "oki", 0 )
3881+
ROM_LOAD( "5_crazy_circus.rom5", 0x00000, 0x80000, CRC(4585da76) SHA1(b6cc051d14b378632269b51302e98f42bba4bddb) )
3882+
3883+
ROM_REGION16_LE( 0x80, "eeprom", 0 )
3884+
ROM_LOAD( "93c46.u13", 0x00, 0x80, CRC(d2d64727) SHA1(53a66c4c807de7685b8064d131e16ca219d66aec) ) // factory default
3885+
3886+
ROM_REGION16_LE( 0x02, "astro_cpucode", 0 )
3887+
ROM_LOAD( "crzcircus_cpucode.key", 0x00, 0x02, CRC(ab1539f0) SHA1(051861faa374e2de66f629b3789bdfb04c80e138) )
3888+
ROM_END
3889+
3890+
37973891
void astrocorp_state::init_showhand()
37983892
{
37993893
#if 0
@@ -4288,7 +4382,9 @@ GAMEL( 2002, magibomb_nb45, magibomb, magibomb_nb45, magibomb, magibo
42884382

42894383
// Heavier encryption
42904384
GAMEL( 2005, astoneag, 0, astoneag, astoneag, astoneag_state, init_astoneag, ROT0, "Astro Corp.", "Stone Age (Astro, Ver. EN.03.A, 2005/02/21)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION, layout_astoneag )
4385+
GAMEL( 2007, astoneag_aa05h, astoneag, astoneag, astoneag, astoneag_state, init_astoneag, ROT0, "Astro Corp.", "Stone Age (Astro, Ver. AA.05.H, 2007/03/15)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION, layout_astoneag )
42914386
GAMEL( 2006, cptshark, 0, winbingo, winbingo, zoo_state, init_px006, ROT0, "Astro Corp. / American Alpha", "Captain Shark (Ver. CS.01.6, Apr 21 2006)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING, layout_winbingo ) // 13:50:11 Apr 21 2006
4387+
GAME( 2007, crzcircus, 0, crzcircus, winbingo, zoo_state, init_px001, ROT0, "Astro Corp.", "Crazy Circus (Ver. US.01.7)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // Dec 25 2007
42924388
GAMEL( 2005, dinodino, 0, dinodino, dinodino, zoo_state, init_px010, ROT0, "Astro Corp.", "Dino Dino (Ver. A1.1, 01/13/2005)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION, layout_dinodino ) // 13/01.2005 10:59
42934389
GAME( 2004, gostopac, 0, gostopac, dinodino, zoo_state, init_gostopac, ROT0, "Astro Corp.", "Go & Stop (Ver. EN1.10)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
42944390
GAME ( 2008, hapfarm, 0, hapfarm, magibomb_aa72d, zoo_state, init_px008, ROT0, "Astro Corp.", "Happy Farm (Ver. US.01.02.B)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // 2008/10/16

src/mame/igs/igs_m027xa.cpp

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ class igs_m027xa_state : public driver_device
6262
void init_crzybugsj() ATTR_COLD;
6363
void init_hauntedh() ATTR_COLD;
6464
void init_jking04() ATTR_COLD;
65+
void init_krzykeno() ATTR_COLD;
6566
void init_tripfev() ATTR_COLD;
6667
void init_wldfruit() ATTR_COLD;
6768

@@ -552,6 +553,32 @@ ROM_START( haunthig )
552553
ROM_LOAD( "hu_u39.u39", 0x200, 0x2dd, CRC(75f58b46) SHA1(7cb136a41899ddd50c95a67ca6353ce5d8d92149) ) // AT22V10
553554
ROM_END
554555

556+
ROM_START( haunthig107us ) // IGS PCB-0575-04-HU - Has IGS027A, MX10EXAQC, IGS031, Oki M6295, two banks of 8 DIP switches
557+
ROM_REGION( 0x04000, "maincpu", 0 )
558+
// Internal ROM of IGS027A ARM based MCU
559+
ROM_LOAD( "h2_igs027a.u42", 0x00000, 0x4000, NO_DUMP )
560+
561+
ROM_REGION32_LE( 0x200000, "user1", 0 ) // external ARM data / prg
562+
ROM_LOAD( "hauntedhouse_v-107us.u34", 0x000000, 0x200000, CRC(dd01f631) SHA1(34106caf3c3086f611c67852c5296dba6a0fb38a) ) // 11xxxxxxxxxxxxxxxxxxx = 0xFF
563+
564+
ROM_REGION( 0x10000, "xa:mcu", 0 )
565+
ROM_LOAD( "e9.u17", 0x000000, 0x10000, CRC(3c76b157) SHA1(d8d3a434fd649577a30d5855e3fb34998041f4e5) )
566+
567+
ROM_REGION( 0x80000, "igs017_igs031:tilemaps", 0 )
568+
ROM_LOAD16_WORD_SWAP( "haunted-h_text.u15", 0x000000, 0x80000, CRC(c23f48c8) SHA1(0cb1b6c61611a081ae4a3c0be51812045ff632fe) )
569+
570+
ROM_REGION( 0x800000, "igs017_igs031:sprites", 0 )
571+
ROM_LOAD( "haunted-h_ani_cg.u32", 0x000000, 0x400000, CRC(e0ea10e6) SHA1(e81be78fea93e72d4b1f4c0b58560bda46cf7948) ) // FIXED BITS (xxxxxxx0xxxxxxxx)
572+
ROM_LOAD( "haunted-h_ext_cg.u12", 0x400000, 0x400000, CRC(662eb883) SHA1(831ebe29e1e7a8b2c2fff7fbc608975771c3486c) ) // FIXED BITS (xxxxxxxx0xxxxxxx)
573+
574+
ROM_REGION( 0x200000, "oki", 0 ) // Oki M6295 samples
575+
ROM_LOAD( "haunted-h_sp.u3", 0x00000, 0x200000, CRC(fe3fcddf) SHA1(ac57ab6d4e4883747c093bd19d0025cf6588cb2c) )
576+
577+
ROM_REGION( 0x500, "plds", ROMREGION_ERASE00 )
578+
ROM_LOAD( "hu_u38a.u38", 0x000, 0x117, NO_DUMP ) // ATF16V8B, protected
579+
ROM_LOAD( "hu_u39.u39", 0x200, 0x2dd, CRC(75f58b46) SHA1(7cb136a41899ddd50c95a67ca6353ce5d8d92149) ) // AT22V10
580+
ROM_END
581+
555582
ROM_START( haunthig101us ) // IGS PCB-0575-04-HU - Has IGS027A, MX10EXAQC, IGS031, Oki M6295, two banks of 8 DIP switches
556583
ROM_REGION( 0x04000, "maincpu", 0 )
557584
// Internal ROM of IGS027A ARM based MCU
@@ -802,6 +829,29 @@ ROM_START( jking04 ) // IGS PCB-0447-03-GM - Has IGS027A, MX10EXAQC, IGS031, Oki
802829
ROM_LOAD( "j_k_2004_sp.u15", 0x000000, 0x200000, CRC(e6870430) SHA1(e90ab3b41c5a60bf4ad8caa27293a870a63faaaf) ) // M27C160
803830
ROM_END
804831

832+
ROM_START( krzykeno ) // IGS PCB-0575-03-HU PCB
833+
ROM_REGION( 0x04000, "maincpu", 0 )
834+
// Internal ROM of IGS027A ARM based MCU
835+
ROM_LOAD( "v21_igs027a.u42", 0x00000, 0x4000, NO_DUMP )
836+
837+
ROM_REGION32_LE( 0x200000, "user1", 0 ) // external ARM data / prg
838+
ROM_LOAD( "krazy_keno_v-105us.u34", 0x000000, 0x200000, CRC(98d8797e) SHA1(0de2500e85df5611baa275267d711f57bc5f60ee) )
839+
840+
ROM_REGION( 0x10000, "xa:mcu", 0 ) // MX10EXAQC (80C51 XA based MCU)
841+
ROM_LOAD( "v6.u17", 0x00000, 0x10000, CRC(0a05a8c9) SHA1(63a86b17709c7991e499ffe45197dfb5db74f272) )
842+
843+
ROM_REGION( 0x200000, "igs017_igs031:tilemaps", 0 )
844+
ROM_LOAD16_WORD_SWAP( "krazy_keno_text_u14.u14", 0x000000, 0x200000, CRC(a48fc7ae) SHA1(2deeec6f7c7dea816472865b766239733010d2c7) )
845+
// u15 not populated
846+
847+
ROM_REGION( 0x800000, "igs017_igs031:sprites", 0 )
848+
ROM_LOAD( "krazy_keno_ani_cg_u32.u32", 0x000000, 0x400000, CRC(0d0f1bf7) SHA1(9381ba32cebeaf1bf109fe360f624a8577b433e7) ) // FIXED BITS (xxxxxxx0xxxxxxxx)
849+
ROM_LOAD( "krazy_keno_ext_cg_u12.u12", 0x400000, 0x400000, CRC(ea0014b4) SHA1(603c6a146e6d9523e76f957a7f8f44dca6a4c6b5) ) // FIXED BITS (xxxxxxx0xxxxxxxx)
850+
851+
ROM_REGION( 0x200000, "oki", 0 ) // plain Oki M6295 samples
852+
ROM_LOAD( "krazy_keno_sp_u3.u3", 0x000000, 0x200000, CRC(1af3e67f) SHA1(65d5f466192f476815f02f9d2c2f6bb26a9adde2) )
853+
ROM_END
854+
805855

806856
void igs_m027xa_state::pgm_create_dummy_internal_arm_region()
807857
{
@@ -868,11 +918,19 @@ void igs_m027xa_state::init_jking04()
868918
m_igs017_igs031->tarzan_decrypt_sprites(0, 0);
869919
}
870920

921+
void igs_m027xa_state::init_krzykeno()
922+
{
923+
pgm_create_dummy_internal_arm_region();
924+
m_igs017_igs031->sdwx_gfx_decrypt();
925+
m_igs017_igs031->tarzan_decrypt_sprites(0, 0);
926+
}
927+
871928
} // anonymous namespace
872929

873930
// These use the MX10EXAQC (80c51XA from Philips)
874931
// the PCBs are closer to igs_fear.cpp in terms of layout
875932
GAME( 2008, haunthig, 0, base, base, igs_m027xa_state, init_hauntedh, ROT0, "IGS", "Haunted House (IGS, V109US)", MACHINE_NOT_WORKING ) // IGS FOR V109US 2008 10 14
933+
GAME( 2007, haunthig107us, haunthig, base, base, igs_m027xa_state, init_hauntedh, ROT0, "IGS", "Haunted House (IGS, V107US)", MACHINE_NOT_WORKING ) // IGS FOR V107US 2007 07 03
876934
GAME( 2006, haunthig101us, haunthig, base, base, igs_m027xa_state, init_hauntedh, ROT0, "IGS", "Haunted House (IGS, V101US)", MACHINE_NOT_WORKING ) // IGS FOR V101US 2006 08 23
877935

878936
GAMEL( 2009, crzybugs, 0, base_xor, crzybugs_us, igs_m027xa_state, init_crzybugs, ROT0, "IGS", "Crazy Bugs (V204US)", 0, layout_crzybugs ) // IGS FOR V204US 2009 5 19
@@ -889,3 +947,5 @@ GAMEL( 2006, tripfev105us, tripfev, base_xor, tripfev, igs_m027xa_state,
889947
GAME( 200?, wldfruit, 0, base, base, igs_m027xa_state, init_wldfruit, ROT0, "IGS", "Wild Fruit (V208US)", MACHINE_NOT_WORKING ) // IGS-----97----V208US
890948

891949
GAME( 200?, jking04, 0, base, base, igs_m027xa_state, init_jking04, ROT0, "IGS", "Jungle King 2004 (V101US)", MACHINE_NOT_WORKING ) // no IGS027A dump
950+
951+
GAME( 200?, krzykeno, 0, base, base, igs_m027xa_state, init_krzykeno, ROT0, "IGS", "Krazy Keno (V105US)", MACHINE_NOT_WORKING ) // no IGS027A dump

src/mame/mame.lst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1488,7 +1488,9 @@ rcasino2
14881488

14891489
@source:astrocorp/astrcorp.cpp
14901490
astoneag
1491+
astoneag_aa05h
14911492
cptshark
1493+
crzcircus
14921494
dinodino
14931495
gostopac
14941496
hacher
@@ -20860,7 +20862,9 @@ crzybugs200us
2086020862
crzybugs202us
2086120863
haunthig
2086220864
haunthig101us
20865+
haunthig107us
2086320866
jking04
20867+
krzykeno
2086420868
tripfev
2086520869
tripfev105us
2086620870
tripfev107us

0 commit comments

Comments
 (0)