Skip to content

Commit 81af055

Browse files
authored
atari/atetris.cpp: Add a new Tetris Korean bootleg and redumped atetb5205 OKI ROMs (#12547)
New working systems ------------------- Link (Korean bootleg of Atari Tetris) [Taksangs]
1 parent a08b113 commit 81af055

File tree

1 file changed

+50
-17
lines changed

1 file changed

+50
-17
lines changed

src/mame/atari/atetris.cpp

+50-17
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,8 @@ class atetris_mcu_state : public atetris_state
201201
}
202202

203203
void atetrisb3(machine_config &config);
204+
void atetrisb3_11mhz(machine_config &config);
205+
204206

205207
protected:
206208
uint8_t mcu_bus_r();
@@ -672,12 +674,16 @@ void atetris_mcu_state::atetrisb3(machine_config &config)
672674
SN76489A(config, m_sn[i], 4_MHz_XTAL).add_route(ALL_OUTPUTS, "mono", 0.50);
673675
}
674676

675-
676-
void atetris_m5205_state::atetb5205(machine_config &config)
677+
void atetris_mcu_state::atetrisb3_11mhz(machine_config &config)
677678
{
678679
atetrisb3(config);
679680

680681
m_mcu->set_clock(11_MHz_XTAL);
682+
}
683+
684+
void atetris_m5205_state::atetb5205(machine_config &config)
685+
{
686+
atetrisb3_11mhz(config);
681687

682688
// TODO: Properly hook up OKI M5205
683689
MSM5205(config, m_msm, 400_kHz_XTAL);
@@ -808,6 +814,32 @@ ROM_START( atetrisb3 )
808814
ROM_LOAD( "pal16r4b-2cn.6", 0xa00, 0x104, NO_DUMP )
809815
ROM_END
810816

817+
// Korean bootleg titled 링크. 11 MHz xtal for the 8749. 1 bank of 4 dip switches.
818+
ROM_START( link )
819+
ROM_REGION( 0x10000, "maincpu", 0 )
820+
ROM_LOAD( "prg.bin", 0x0000, 0x10000, CRC(2bcab107) SHA1(3cfb8df8cd3782f3ff7f6b32ff15c461352061ee) )
821+
822+
ROM_REGION( 0x10000, "tiles", 0 )
823+
ROM_LOAD( "a2.bin", 0x0000, 0x10000, BAD_DUMP CRC(49fa3d01) SHA1(af4c646b9c8fbe2803c17b90d3a7e4f6523f2745) ) // Damaged ROM
824+
825+
// 8749 (11 MHz OSC) emulates POKEYs
826+
ROM_REGION( 0x0800, "mcu", 0 )
827+
ROM_LOAD( "8749h.bin", 0x0000, 0x0800, CRC(a66a9c47) SHA1(fbebd755a5e826c7d94ebcafdff2f9a01c9fd1a5) )
828+
ROM_FILL( 0x06e2, 1, 0x96 ) // patch illegal opcode
829+
830+
// currently unused
831+
ROM_REGION( 0x0020, "proms", 0 )
832+
ROM_LOAD( "82s123.bin", 0x00000, 0x0020, NO_DUMP )
833+
834+
ROM_REGION( 0xc00, "plds", 0 )
835+
ROM_LOAD( "gal18v8a-25lp.1", 0x000, 0x117, NO_DUMP )
836+
ROM_LOAD( "gal18v8a-25lp.2", 0x200, 0x117, NO_DUMP )
837+
ROM_LOAD( "palce18v8h-25pc.3", 0x400, 0x117, NO_DUMP )
838+
ROM_LOAD( "palce18v8h-25pc.4", 0x600, 0x117, NO_DUMP )
839+
ROM_LOAD( "pal16r4b-2cn.5", 0x800, 0x104, NO_DUMP )
840+
ROM_LOAD( "pal16r4b-2cn.6", 0xa00, 0x104, NO_DUMP )
841+
ROM_END
842+
811843
ROM_START( atetrisb4 ) // bootleg on an unusually big PCB for this game
812844
ROM_REGION( 0x10000, "maincpu", 0 )
813845
ROM_LOAD( "1.bin", 0x0000, 0x10000, CRC(56589096) SHA1(df0ff776f3e3506c86d703d2283db59a576abea6) ) // only difference is the credits for 'video graphics' where changed
@@ -872,7 +904,7 @@ ROM_START( atetb3482 )
872904
ROM_REGION( 0x8000, "soundcpu", 0 ) // Not hooked up
873905
ROM_LOAD( "k1-d3.bin", 0x0000, 0x8000, CRC(ce51c82b) SHA1(f90ed16f817e6b2a22b69db20348386b9c1ecb67) ) // Same 8K repeated four times
874906

875-
// See http://www.seanriddle.com/um348x/ for notes about the UM3482
907+
// See http://www.seanriddle.com/um348x/ and http://arcadehacker.blogspot.com/2020/07/um3481a-series-multi-instrument-melody.html for notes about the UM3482
876908
ROM_REGION( 0x01f0, "um3482", 0 ) // Not hooked up
877909

878910
/* Notes (3584 bits, which matches the datasheet's 512 7-bit notes).
@@ -943,8 +975,8 @@ ROM_START( atetb5205 )
943975

944976
ROM_REGION( 0x40000, "oki", 0)
945977
ROM_LOAD( "1_am27c512.bin", 0x00000, 0x10000, CRC(3aecab3f) SHA1(f072ca51298a2c88ff1feb24933f2ffdb7f8eb63) )
946-
ROM_LOAD( "2_tms27c512.bin", 0x10000, 0x10000, CRC(953d0ec4) SHA1(af2586332411d9b552241300e61c73463b0ffc5f) )
947-
ROM_LOAD( "3_m5l27512.bin", 0x20000, 0x10000, BAD_DUMP CRC(20c1e632) SHA1(b33d276775e1f81a0c4799f2779c4d378436f7be) ) // Bitrotten, 0x1136 address bad
978+
ROM_LOAD( "2_tms27c512.bin", 0x10000, 0x10000, CRC(b0c7353c) SHA1(f452ad0a055027d32da30104d1ad40f7fbcc34fb) )
979+
ROM_LOAD( "3_m5l27512.bin", 0x20000, 0x10000, CRC(20c1e632) SHA1(b33d276775e1f81a0c4799f2779c4d378436f7be) )
948980
ROM_LOAD( "4_am27c512.bin", 0x30000, 0x10000, CRC(a3a7fe78) SHA1(babbbe332a2b15efb67476e3563aeabaede2b55a) )
949981

950982
// PROM on main PCB
@@ -1026,15 +1058,16 @@ ROM_END
10261058
*
10271059
*************************************/
10281060

1029-
GAME( 1988, atetris, 0, atetris, atetris, atetris_state, empty_init, ROT0, "Atari Games", "Tetris (set 1)", MACHINE_SUPPORTS_SAVE )
1030-
GAME( 1988, atetrisa, atetris, atetris, atetris, atetris_state, empty_init, ROT0, "Atari Games", "Tetris (set 2)", MACHINE_SUPPORTS_SAVE )
1031-
GAME( 1988, atetrisb, atetris, atetris, atetris, atetris_state, empty_init, ROT0, "bootleg", "Tetris (bootleg set 1)", MACHINE_SUPPORTS_SAVE )
1032-
GAME( 1988, atetrisb2, atetris, atetrisb2, atetris, atetris_state, empty_init, ROT0, "bootleg", "Tetris (bootleg set 2)", MACHINE_SUPPORTS_SAVE )
1033-
GAME( 1988, atetrisb3, atetris, atetrisb3, atetris, atetris_mcu_state, empty_init, ROT0, "bootleg", "Tetris (bootleg set 3)", MACHINE_SUPPORTS_SAVE )
1034-
GAME( 1988, atetrisb4, atetris, atetris, atetris, atetris_state, empty_init, ROT0, "bootleg", "Tetris (bootleg set 4)", MACHINE_SUPPORTS_SAVE )
1035-
GAME( 1988, atetrisb5, atetris, atetrisb5, atetris, atetris_state, empty_init, ROT0, "bootleg", "Tetris (bootleg set 5)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
1036-
GAME( 1988, atetb3482, atetris, atetris, atetris, atetris_state, empty_init, ROT0, "bootleg", "Tetris (bootleg set 6, with UM3482)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
1037-
GAME( 1988, atetb5205, atetris, atetb5205, atetris, atetris_m5205_state, empty_init, ROT0, "bootleg", "Tetris (bootleg set 7, with OKI M5205)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
1038-
GAME( 1989, atetrisbp, atetris, atetrisbp, atetris, atetris_bartop_state, empty_init, ROT0, "Atari Games", "Tetris (bartop, prototype)", MACHINE_SUPPORTS_SAVE )
1039-
GAME( 1989, atetrisc, atetris, atetris, atetrisc, atetris_state, empty_init, ROT270, "Atari Games", "Tetris (cocktail set 1)", MACHINE_SUPPORTS_SAVE )
1040-
GAME( 1989, atetrisc2, atetris, atetris, atetrisc, atetris_state, empty_init, ROT270, "Atari Games", "Tetris (cocktail set 2)", MACHINE_SUPPORTS_SAVE )
1061+
GAME( 1988, atetris, 0, atetris, atetris, atetris_state, empty_init, ROT0, "Atari Games", "Tetris (set 1)", MACHINE_SUPPORTS_SAVE )
1062+
GAME( 1988, atetrisa, atetris, atetris, atetris, atetris_state, empty_init, ROT0, "Atari Games", "Tetris (set 2)", MACHINE_SUPPORTS_SAVE )
1063+
GAME( 1988, atetrisb, atetris, atetris, atetris, atetris_state, empty_init, ROT0, "bootleg", "Tetris (bootleg set 1)", MACHINE_SUPPORTS_SAVE )
1064+
GAME( 1988, atetrisb2, atetris, atetrisb2, atetris, atetris_state, empty_init, ROT0, "bootleg", "Tetris (bootleg set 2)", MACHINE_SUPPORTS_SAVE )
1065+
GAME( 1988, atetrisb3, atetris, atetrisb3, atetris, atetris_mcu_state, empty_init, ROT0, "bootleg", "Tetris (bootleg set 3)", MACHINE_SUPPORTS_SAVE )
1066+
GAME( 1988, atetrisb4, atetris, atetris, atetris, atetris_state, empty_init, ROT0, "bootleg", "Tetris (bootleg set 4)", MACHINE_SUPPORTS_SAVE )
1067+
GAME( 1988, atetrisb5, atetris, atetrisb5, atetris, atetris_state, empty_init, ROT0, "bootleg", "Tetris (bootleg set 5)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
1068+
GAME( 1988, atetb3482, atetris, atetris, atetris, atetris_state, empty_init, ROT0, "bootleg", "Tetris (bootleg set 6, with UM3482)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
1069+
GAME( 1988, atetb5205, atetris, atetb5205, atetris, atetris_m5205_state, empty_init, ROT0, "bootleg", "Tetris (bootleg set 7, with OKI M5205)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
1070+
GAME( 1988, link, atetris, atetrisb3_11mhz, atetris, atetris_mcu_state, empty_init, ROT0, "bootleg", "Link (Korean bootleg of Atari Tetris)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) // Bad gfx ROM
1071+
GAME( 1989, atetrisbp, atetris, atetrisbp, atetris, atetris_bartop_state, empty_init, ROT0, "Atari Games", "Tetris (bartop, prototype)", MACHINE_SUPPORTS_SAVE )
1072+
GAME( 1989, atetrisc, atetris, atetris, atetrisc, atetris_state, empty_init, ROT270, "Atari Games", "Tetris (cocktail set 1)", MACHINE_SUPPORTS_SAVE )
1073+
GAME( 1989, atetrisc2, atetris, atetris, atetrisc, atetris_state, empty_init, ROT270, "Atari Games", "Tetris (cocktail set 2)", MACHINE_SUPPORTS_SAVE )

0 commit comments

Comments
 (0)