@@ -111,6 +111,7 @@ Note: ASTRO F01 is a QuickLogic pASIC 3 FPGA (die-marked as QL3161A/1999).
111
111
- zulu: needs verifying of inputs, outputs and layout.
112
112
- westvent and clones: needs verifying of inputs, outputs and layout.
113
113
- 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.
114
115
115
116
magibomb sets Q/A as of 18.07.2025:
116
117
MAGIC BOMB\A3.0 (magibomb_a30 run protected)
@@ -370,9 +371,10 @@ class zoo_state : public astrocorp_state
370
371
m_cpucode_out (*this , " CPUCODE_OUT" )
371
372
{ }
372
373
373
- void hacher (machine_config &config) ATTR_COLD;
374
+ void crzcircus (machine_config &config) ATTR_COLD;
374
375
void dinodino (machine_config &config) ATTR_COLD;
375
376
void gostopac (machine_config &config) ATTR_COLD;
377
+ void hacher (machine_config &config) ATTR_COLD;
376
378
void hapfarm (machine_config &config) ATTR_COLD;
377
379
void hapfarm_in0102b (machine_config &config) ATTR_COLD;
378
380
void keno21 (machine_config &config) ATTR_COLD;
@@ -416,6 +418,7 @@ class zoo_state : public astrocorp_state
416
418
417
419
TIMER_DEVICE_CALLBACK_MEMBER (irq_1_2_scanline_cb);
418
420
421
+ void crzcircus_map (address_map &map) ATTR_COLD;
419
422
void dinodino_map (address_map &map) ATTR_COLD;
420
423
void gostopac_map (address_map &map) ATTR_COLD;
421
424
void hacher_map (address_map &map) ATTR_COLD;
@@ -1180,8 +1183,8 @@ void zoo_state::speedmst_map(address_map &map)
1180
1183
map (0x88a000 , 0x88a001 ).w (FUNC (zoo_state::magibomb_outputs_w));
1181
1184
map (0x890000 , 0x890001 ).portr (" EEPROM_IN" );
1182
1185
map (0x8a0000 , 0x8a0001 ).portr (" CPUCODE_IN" );
1186
+ map (0x8b0001 , 0x8b0001 ).w (FUNC (zoo_state::oki_bank_w));
1183
1187
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))
1185
1188
}
1186
1189
1187
1190
void zoo_state::wwitch_map (address_map &map)
@@ -1274,6 +1277,24 @@ void zoo_state::westvent_map(address_map &map)
1274
1277
// map(0x??0001, 0x??0001).w(FUNC(zoo_state::screen_enable_w)); // unknown location
1275
1278
}
1276
1279
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
+
1277
1298
void astoneag_state::astoneag_map (address_map &map)
1278
1299
{
1279
1300
map (0x000000 , 0x03ffff ).rom ().region (" maincpu" , 0 );
@@ -1782,6 +1803,12 @@ void zoo_state::westvent(machine_config &config)
1782
1803
m_maincpu->set_addrmap (AS_PROGRAM, &zoo_state::westvent_map);
1783
1804
}
1784
1805
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
+
1785
1812
void astoneag_state::ramdac_map (address_map &map)
1786
1813
{
1787
1814
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 )
3215
3242
ROM_LOAD( " astoneag_cpucode.key" , 0x00 , 0x02 , CRC(fd3642ce) SHA1(8b4e630e114f36c9c15b1a6e6185156786ec9502) )
3216
3243
ROM_END
3217
3244
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
+
3218
3275
/* **************************************************************************
3219
3276
3220
3277
Dino Dino
@@ -3794,6 +3851,43 @@ ROM_START( hapfarm_in0102b )
3794
3851
ROM_LOAD( " hapfarm_in0102b_cpucode.key" , 0x00 , 0x02 , CRC(3e92abb0) SHA1(8e0eb6b43a45a4a4d402d06c32a25b64c7503f0c) ) // TODO: is this needed? game doesn't seem to check it
3795
3852
ROM_END
3796
3853
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
+
3797
3891
void astrocorp_state::init_showhand()
3798
3892
{
3799
3893
#if 0
@@ -4288,7 +4382,9 @@ GAMEL( 2002, magibomb_nb45, magibomb, magibomb_nb45, magibomb, magibo
4288
4382
4289
4383
// Heavier encryption
4290
4384
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 )
4291
4386
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
4292
4388
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
4293
4389
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 )
4294
4390
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
0 commit comments