Skip to content

Commit a9c42cc

Browse files
committed
New systems marked not working
------------------------------ Wicked Witch (Ver. AA.01.A) [Ioannis Bampoulas] - misc/ez2d.cpp, pinball/idsa.cpp, unico/unianapc.cpp: renounced copyright
1 parent 524c10b commit a9c42cc

File tree

5 files changed

+131
-25
lines changed

5 files changed

+131
-25
lines changed

src/mame/mame.lst

+1
Original file line numberDiff line numberDiff line change
@@ -28732,6 +28732,7 @@ speedmstb // (c) 2004 D2 Enterprises
2873228732
westvent // (c) 2007? Astro Corp.
2873328733
winbingo // (c) 2006 Astro Corp.
2873428734
winbingoa // (c) 2006 Astro Corp.
28735+
wwitch // (c) 2005 Astro Corp.
2873528736
zoo // (c) 2004 Astro Corp.
2873628737

2873728738
@source:misc/astropc.cpp

src/mame/misc/astrcorp.cpp

+127-22
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ Year + Game PCB ID CPU Video
3535
05 Dino Dino T-3802A ASTRO V102PX-010? ASTRO V05 ASTRO F02 2003-03-12 Encrypted
3636
05 Stone Age L1 ASTRO V102PX-012? ASTRO V05(x2) ASTRO F02 2004-09-04 Encrypted
3737
05? Hacher (hack) M1.2 ? ? ASTRO F02 2005-02-18 Encrypted
38+
05 Wild Witch O (CS350P032) ASTRO V102PX-016? ASTRO V06 ASTRO F02 2005-09-17 Encrypted
3839
06 Captain Shark M1.2 ASTRO V102PX-006? ASTRO V06 ASTRO F02 2005-05-29 Encrypted
3940
06 Win Win Bingo M1.2 ASTRO V102PX-006? ASTRO V06 ASTRO F02 2005-09-17 Encrypted
4041
07? Western Venture O (CS350P032) ASTRO V102? ASTRO V07 ASTRO F01 2007-06-03 Encrypted
@@ -68,6 +69,7 @@ Year + Game PCB ID CPU Video
6869
- monkeyl,a: need RE of the CPU code, inputs and layout. After reset it initializes.
6970
- speedmst,a,b: need RE of the CPU code, correct EEPROM. Won't boot right now.
7071
- cptshark: needs verifying of inputs and layout
72+
- wwitch: needs correct GFX ROMs loading / decode, RE of the CPU code, inputs, outputs. Currently starts but then freezes.
7173
7274
*************************************************************************************************************/
7375

@@ -299,6 +301,7 @@ class zoo_state : public astrocorp_state
299301
void monkeyl(machine_config &config);
300302
void speedmst(machine_config &config);
301303
void winbingo(machine_config &config);
304+
void wwitch(machine_config &config);
302305
void zoo(machine_config &config);
303306

304307
void init_cptshark();
@@ -314,6 +317,7 @@ class zoo_state : public astrocorp_state
314317
void init_speedmstb();
315318
void init_winbingo();
316319
void init_winbingoa();
320+
void init_wwitch();
317321
void init_zoo();
318322

319323
virtual void eeprom_w(u8 data) override;
@@ -352,13 +356,15 @@ class zoo_state : public astrocorp_state
352356
void monkeyl_map(address_map &map);
353357
void speedmst_map(address_map &map);
354358
void winbingo_map(address_map &map);
359+
void wwitch_map(address_map &map);
355360
void zoo_map(address_map &map);
356361

357-
static const decryption_info dinodino_table;
358362
static const decryption_info gostop_table;
359-
static const decryption_info magibombd_table;
360-
static const decryption_info winbingo_table;
361-
static const decryption_info zoo_table;
363+
static const decryption_info v102_px05_table;
364+
static const decryption_info v102_px06_table;
365+
static const decryption_info v102_px10_table;
366+
static const decryption_info v102_px14_table;
367+
static const decryption_info v102_px16_table;
362368
};
363369

364370
// Adds RAMDAC and 16x32 sprites
@@ -962,6 +968,23 @@ void zoo_state::speedmst_map(address_map &map)
962968
//map(0x??0001, 0x??0001).w(FUNC(zoo_state::oki_bank_w))
963969
}
964970

971+
void zoo_state::wwitch_map(address_map &map)
972+
{
973+
map(0x000000, 0x03ffff).rom().mirror(0x800000); // POST checks for ROM checksum at mirror
974+
map(0xa00001, 0xa00001).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
975+
map(0xa80000, 0xa80fff).ram().share("spriteram");
976+
map(0xa82000, 0xa82001).nopr().w(FUNC(zoo_state::draw_sprites_w));
977+
map(0xa84000, 0xa84001).portr("INPUTS");
978+
map(0xa88001, 0xa88001).w(FUNC(zoo_state::eeprom_w));
979+
map(0xa8a000, 0xa8a001).w(FUNC(zoo_state::magibomb_outputs_w));
980+
map(0xa8e000, 0xa8e001).portr("EEPROM_IN");
981+
map(0xb00000, 0xb00000).w(FUNC(zoo_state::oki_bank_w));
982+
map(0xb80000, 0xb83fff).ram().share("nvram"); // battery
983+
map(0xc00000, 0xc00001).portr("CPUCODE_IN");
984+
map(0xd00000, 0xd001ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
985+
// map(0x??0001, 0x??0001).w(FUNC(zoo_state::screen_enable_w)); // unknown location
986+
}
987+
965988
void astoneag_state::astoneag_map(address_map &map)
966989
{
967990
map(0x000000, 0x03ffff).rom().mirror(0x800000); // POST checks for ROM checksum at mirror
@@ -1403,6 +1426,12 @@ void zoo_state::speedmst(machine_config &config)
14031426
m_maincpu->set_addrmap(AS_PROGRAM, &zoo_state::speedmst_map);
14041427
}
14051428

1429+
void zoo_state::wwitch(machine_config &config)
1430+
{
1431+
winbingo(config);
1432+
m_maincpu->set_addrmap(AS_PROGRAM, &zoo_state::wwitch_map);
1433+
}
1434+
14061435
void astoneag_state::ramdac_map(address_map &map)
14071436
{
14081437
map(0x000, 0x2ff).rw(m_ramdac, FUNC(ramdac_device::ramdac_pal_r), FUNC(ramdac_device::ramdac_rgb666_w));
@@ -2493,6 +2522,33 @@ ROM_START( cptshark ) // clearly based on Win Win Bingo, still has strings for i
24932522
ROM_LOAD( "cptshark_cpucode.key", 0x00, 0x02, CRC(c38c8e25) SHA1(7e866fc75f4ddbbd6efbbd359f2b378c798e2cec) )
24942523
ROM_END
24952524

2525+
/***************************************************************************
2526+
2527+
Wild Witch
2528+
Astro Corp. / American Alpha
2529+
2530+
***************************************************************************/
2531+
2532+
ROM_START( wwitch )
2533+
ROM_REGION( 0x40000, "maincpu", 0 )
2534+
ROM_LOAD16_BYTE( "1_wicked_w_aa.01.a.u26", 0x00000, 0x20000, CRC(6c654105) SHA1(b07e807864d7d0ccb80111369f8dc205fe45aea4) ) // F29C51001T
2535+
ROM_LOAD16_BYTE( "2_wicked_w_aa.01.a.u25", 0x00001, 0x20000, CRC(66206bb4) SHA1(80513d7dc7cd664238f01a6c1b3e40e7696e2211) ) // F29C51001T
2536+
2537+
ROM_REGION( 0x600000, "sprites", 0 )
2538+
ROM_LOAD( "mx29f1610mc.bin", 0x000000, 0x200000, CRC(8dad2fc0) SHA1(88c4bda8e247839029a8c9a84d3bd598892b1775) ) // no U location on the PCB, silkscreened 'ROM # 7' on PCB under the chip
2539+
ROM_LOAD( "mx29f1610mc.u30", 0x200000, 0x200000, CRC(d4e7b00d) SHA1(2689d19fcdd828d0d47265362f6625377a90c1e4) ) // silkscreened 'ROM # 4' on PCB under the chip
2540+
ROM_LOAD( "mx29f1610mc.u51", 0x400000, 0x200000, CRC(05bc898d) SHA1(c88c14e4858943b2ea719abe0cc9ac0738d682dd) ) // silkscreened 'ROM # 3' on PCB under the chip
2541+
2542+
ROM_REGION( 0x80000, "oki", 0 )
2543+
ROM_LOAD( "5_wicked_w_aa.01.a.bin", 0x00000, 0x80000, CRC(298014f3) SHA1(98da24e84ec69c48e8754f8406e11e68fb352e28) )
2544+
2545+
ROM_REGION16_LE( 0x80, "eeprom", 0 )
2546+
ROM_LOAD( "93c46.u13", 0x00, 0x80, CRC(663f14cd) SHA1(8a675a4e270d86d3a350e7ddbeb3f9d958798bd1) )
2547+
2548+
ROM_REGION16_LE( 0x02, "astro_cpucode", 0 )
2549+
ROM_LOAD( "wwitch_cpucode.key", 0x00, 0x02, NO_DUMP )
2550+
ROM_END
2551+
24962552
void astrocorp_state::init_showhand()
24972553
{
24982554
#if 0
@@ -2602,7 +2658,7 @@ void zoo_state::decrypt_rom(const decryption_info &table)
26022658
}
26032659
}
26042660

2605-
const zoo_state::decryption_info zoo_state::magibombd_table = {
2661+
const zoo_state::decryption_info zoo_state::v102_px14_table = {
26062662
{
26072663
{
26082664
{ 8, 11, 9 },
@@ -2636,7 +2692,7 @@ const zoo_state::decryption_info zoo_state::magibombd_table = {
26362692

26372693
void zoo_state::init_magibombd()
26382694
{
2639-
decrypt_rom(magibombd_table);
2695+
decrypt_rom(v102_px14_table);
26402696
#if 1
26412697
// TODO: There's more stuff happening for addresses < 0x400...
26422698
// override reset vector for now
@@ -2652,7 +2708,7 @@ void zoo_state::init_magibombd()
26522708

26532709
void zoo_state::init_magibombg()
26542710
{
2655-
decrypt_rom(magibombd_table);
2711+
decrypt_rom(v102_px14_table);
26562712
#if 1
26572713
// TODO: There's more stuff happening for addresses < 0x400...
26582714
// override reset vector for now
@@ -2666,7 +2722,7 @@ void zoo_state::init_magibombg()
26662722
#endif
26672723
}
26682724

2669-
const zoo_state::decryption_info zoo_state::winbingo_table = {
2725+
const zoo_state::decryption_info zoo_state::v102_px06_table = {
26702726
{
26712727
{
26722728
{ 8, 11, 9 },
@@ -2700,7 +2756,7 @@ const zoo_state::decryption_info zoo_state::winbingo_table = {
27002756

27012757
void zoo_state::init_winbingo()
27022758
{
2703-
decrypt_rom(winbingo_table);
2759+
decrypt_rom(v102_px06_table);
27042760
#if 1
27052761
// TODO: There's more stuff happening for addresses < 0x400...
27062762
// override reset vector for now
@@ -2714,7 +2770,7 @@ void zoo_state::init_winbingo()
27142770

27152771
void zoo_state::init_winbingoa()
27162772
{
2717-
decrypt_rom(winbingo_table);
2773+
decrypt_rom(v102_px06_table);
27182774
#if 1
27192775
// TODO: There's more stuff happening for addresses < 0x400...
27202776
// override reset vector for now
@@ -2728,7 +2784,7 @@ void zoo_state::init_winbingoa()
27282784

27292785
void zoo_state::init_hacher()
27302786
{
2731-
decrypt_rom(winbingo_table);
2787+
decrypt_rom(v102_px06_table);
27322788
#if 1
27332789
// TODO: There's more stuff happening for addresses < 0x400...
27342790
// override reset vector for now
@@ -2742,7 +2798,7 @@ void zoo_state::init_hacher()
27422798

27432799
void zoo_state::init_cptshark()
27442800
{
2745-
decrypt_rom(winbingo_table);
2801+
decrypt_rom(v102_px06_table);
27462802
#if 1
27472803
// TODO: There's more stuff happening for addresses < 0x400...
27482804
// override reset vector for now
@@ -2754,7 +2810,7 @@ void zoo_state::init_cptshark()
27542810
#endif
27552811
}
27562812

2757-
const zoo_state::decryption_info zoo_state::zoo_table = {
2813+
const zoo_state::decryption_info zoo_state::v102_px05_table = {
27582814
{
27592815
{
27602816
{ 8, 9, 10 },
@@ -2788,7 +2844,7 @@ const zoo_state::decryption_info zoo_state::zoo_table = {
27882844

27892845
void zoo_state::init_zoo()
27902846
{
2791-
decrypt_rom(zoo_table);
2847+
decrypt_rom(v102_px05_table);
27922848
#if 1
27932849
// TODO: There's more stuff happening for addresses < 0x400...
27942850
// override reset vector for now
@@ -2803,7 +2859,7 @@ void zoo_state::init_zoo()
28032859
#endif
28042860
}
28052861

2806-
const zoo_state::decryption_info zoo_state::dinodino_table = {
2862+
const zoo_state::decryption_info zoo_state::v102_px10_table = {
28072863
{
28082864
{
28092865
{ 8, 11, 9 },
@@ -2837,7 +2893,7 @@ const zoo_state::decryption_info zoo_state::dinodino_table = {
28372893

28382894
void zoo_state::init_dinodino()
28392895
{
2840-
decrypt_rom(dinodino_table);
2896+
decrypt_rom(v102_px10_table);
28412897
#if 1
28422898
// TODO: There's more stuff happening for addresses < 0x400...
28432899
// override reset vector for now
@@ -2897,7 +2953,7 @@ void zoo_state::init_gostop()
28972953

28982954
void zoo_state::init_monkeyl()
28992955
{
2900-
decrypt_rom(zoo_table);
2956+
decrypt_rom(v102_px05_table);
29012957
#if 1
29022958
// TODO: There's more stuff happening for addresses < 0x400...
29032959
// override reset vector for now
@@ -2913,7 +2969,7 @@ void zoo_state::init_monkeyl()
29132969

29142970
void zoo_state::init_monkeyla()
29152971
{
2916-
decrypt_rom(zoo_table);
2972+
decrypt_rom(v102_px05_table);
29172973
#if 1
29182974
// TODO: There's more stuff happening for addresses < 0x400...
29192975
// override reset vector for now
@@ -2929,7 +2985,7 @@ void zoo_state::init_monkeyla()
29292985

29302986
void zoo_state::init_speedmst()
29312987
{
2932-
decrypt_rom(zoo_table);
2988+
decrypt_rom(v102_px05_table);
29332989
#if 1
29342990
// TODO: There's more stuff happening for addresses < 0x400...
29352991
// override reset vector for now
@@ -2943,7 +2999,7 @@ void zoo_state::init_speedmst()
29432999

29443000
void zoo_state::init_speedmsta()
29453001
{
2946-
decrypt_rom(zoo_table);
3002+
decrypt_rom(v102_px05_table);
29473003
#if 1
29483004
// TODO: There's more stuff happening for addresses < 0x400...
29493005
// override reset vector for now
@@ -2957,7 +3013,7 @@ void zoo_state::init_speedmsta()
29573013

29583014
void zoo_state::init_speedmstb()
29593015
{
2960-
decrypt_rom(zoo_table);
3016+
decrypt_rom(v102_px05_table);
29613017
#if 1
29623018
// TODO: There's more stuff happening for addresses < 0x400...
29633019
// override reset vector for now
@@ -2969,6 +3025,54 @@ void zoo_state::init_speedmstb()
29693025
#endif
29703026
}
29713027

3028+
const zoo_state::decryption_info zoo_state::v102_px16_table = {
3029+
{
3030+
{
3031+
{ 11, 10, 9 },
3032+
{
3033+
{ { 7, 5, 4, 6, 0, 3, 2, 1 }, 0x00 },
3034+
{ { 1, 4, 6, 0, 2, 5, 3, 7 }, 0xd0 },
3035+
{ { 1, 7, 4, 3, 6, 5, 0, 2 }, 0x88 },
3036+
{ { 6, 5, 2, 3, 7, 1, 0, 4 }, 0xd1 },
3037+
{ { 6, 1, 7, 2, 4, 0, 3, 5 }, 0x64 },
3038+
{ { 1, 7, 2, 6, 5, 4, 3, 0 }, 0x83 },
3039+
{ { 6, 7, 4, 2, 5, 0, 1, 3 }, 0x81 },
3040+
{ { 7, 5, 1, 0, 2, 4, 6, 3 }, 0xea },
3041+
}
3042+
},
3043+
{
3044+
{ 12, 10, 8 },
3045+
{
3046+
{ { 6, 5, 4, 3, 2, 1, 0, 7 }, 0x90 },
3047+
{ { 2, 4, 0, 7, 5, 6, 3, 1 }, 0x32 },
3048+
{ { 7, 1, 0, 6, 5, 2, 3, 4 }, 0xa9 },
3049+
{ { 2, 0, 3, 5, 1, 4, 6, 7 }, 0xa2 },
3050+
{ { 3, 0, 6, 5, 2, 1, 4, 7 }, 0x02 },
3051+
{ { 0, 1, 6, 4, 5, 2, 7, 3 }, 0x30 },
3052+
{ { 3, 5, 2, 7, 6, 1, 4, 0 }, 0x0a },
3053+
{ { 0, 6, 4, 2, 7, 3, 1, 5 }, 0x81 },
3054+
}
3055+
}
3056+
},
3057+
{ 12, 9, 11, 8, 10, 7, 2, 4, 6, 5, 3 }
3058+
};
3059+
3060+
void zoo_state::init_wwitch()
3061+
{
3062+
decrypt_rom(v102_px16_table);
3063+
#if 1
3064+
// TODO: There's more stuff happening for addresses < 0x400...
3065+
// override reset vector for now
3066+
u16 * const rom = (u16 *)memregion("maincpu")->base();
3067+
rom[0x00004/2] = 0x0000;
3068+
rom[0x00006/2] = 0x0446;
3069+
3070+
rom[0x00400/2] = 0x4e75; // overlay!?
3071+
3072+
rom[0x01220/2] = 0x4e75; // Mirror ROM word checksum (it expects 0)
3073+
#endif
3074+
}
3075+
29723076
const astoneag_state::decryption_info astoneag_state::astoneag_table = {
29733077
{
29743078
{
@@ -3064,8 +3168,9 @@ GAMEL( 2004, magibombg, magibomb, magibombg, magibombg, zoo_state, init_m
30643168
GAMEL( 2004, speedmst, 0, speedmst, magibombg, zoo_state, init_speedmst, ROT0, "D2 Enterprises", "Speed Master (Ver. V1.0, Apr 29 2004)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING, layout_magibomb ) // Apr 29 2004 16:29:35
30653169
GAMEL( 2003, speedmsta, speedmst, speedmst, magibombg, zoo_state, init_speedmsta, ROT0, "D2 Enterprises", "Speed Master (Ver. V1.0, May 23 2003)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING, layout_magibomb ) // May 23 2003 16:38:02
30663170
GAMEL( 2003, speedmstb, speedmst, speedmst, magibombg, zoo_state, init_speedmstb, ROT0, "D2 Enterprises", "Speed Master (Ver. V1.0, Apr 28 2004)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING, layout_magibomb ) // Apr 28 2004 17:21:26
3067-
GAMEL( 2006, cptshark, 0, winbingo, winbingo, zoo_state, init_cptshark, ROT0, "Astro Corp. / American Alpha", "Captain Shark (Ver. CS.01.6, Apr 21 2006)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION, layout_winbingo ) // 13:50:11 Apr 21 2006
3171+
GAMEL( 2006, cptshark, 0, winbingo, winbingo, zoo_state, init_cptshark, 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
30683172
GAMEL( 2006, winbingo, 0, winbingo, winbingo, zoo_state, init_winbingo, ROT0, "Astro Corp.", "Win Win Bingo (Ver. GM.03.3, Feb 23 2006)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION, layout_winbingo ) // 15:47:48 Feb 23 2006
30693173
GAMEL( 2006, winbingoa, winbingo, winbingo, winbingo, zoo_state, init_winbingoa, ROT0, "Astro Corp.", "Win Win Bingo (Ver. GM.05.1, May 11 2006)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING, layout_winbingo ) // 11:02:07 May 11 2006. Undumped sprite ROMs
30703174
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
30713175
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
3176+
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

src/mame/misc/ez2d.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// license:BSD-3-Clause
2-
// copyright-holders:Ivan Vangelista
2+
// copyright-holders:
33
/*
44
55
TODO:

src/mame/pinball/idsa.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// license:BSD-3-Clause
2-
// copyright-holders:Ivan Vangelista, Robbbert
2+
// copyright-holders:Robbbert
33
/***********************************************************************************************************************
44
PINBALL
55
IDSA pinballs

src/mame/unico/unianapc.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// license:BSD-3-Clause
2-
// copyright-holders:Ivan Vangelista
2+
// copyright-holders:
33
/*
44
Uniana PC hardware (shared by other Korean companies)
55

0 commit comments

Comments
 (0)