From 81af0550dd88fe34105c20d7de6ab3a8fcadd7d0 Mon Sep 17 00:00:00 2001 From: ClawGrip Date: Sun, 7 Jul 2024 16:34:15 +0200 Subject: 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] --- src/mame/atari/atetris.cpp | 67 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 50 insertions(+), 17 deletions(-) diff --git a/src/mame/atari/atetris.cpp b/src/mame/atari/atetris.cpp index 9d4ffc4b739..b964d54c2de 100644 --- a/src/mame/atari/atetris.cpp +++ b/src/mame/atari/atetris.cpp @@ -201,6 +201,8 @@ public: } void atetrisb3(machine_config &config); + void atetrisb3_11mhz(machine_config &config); + protected: uint8_t mcu_bus_r(); @@ -672,12 +674,16 @@ void atetris_mcu_state::atetrisb3(machine_config &config) SN76489A(config, m_sn[i], 4_MHz_XTAL).add_route(ALL_OUTPUTS, "mono", 0.50); } - -void atetris_m5205_state::atetb5205(machine_config &config) +void atetris_mcu_state::atetrisb3_11mhz(machine_config &config) { atetrisb3(config); m_mcu->set_clock(11_MHz_XTAL); +} + +void atetris_m5205_state::atetb5205(machine_config &config) +{ + atetrisb3_11mhz(config); // TODO: Properly hook up OKI M5205 MSM5205(config, m_msm, 400_kHz_XTAL); @@ -808,6 +814,32 @@ ROM_START( atetrisb3 ) ROM_LOAD( "pal16r4b-2cn.6", 0xa00, 0x104, NO_DUMP ) ROM_END +// Korean bootleg titled 링크. 11 MHz xtal for the 8749. 1 bank of 4 dip switches. +ROM_START( link ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "prg.bin", 0x0000, 0x10000, CRC(2bcab107) SHA1(3cfb8df8cd3782f3ff7f6b32ff15c461352061ee) ) + + ROM_REGION( 0x10000, "tiles", 0 ) + ROM_LOAD( "a2.bin", 0x0000, 0x10000, BAD_DUMP CRC(49fa3d01) SHA1(af4c646b9c8fbe2803c17b90d3a7e4f6523f2745) ) // Damaged ROM + + // 8749 (11 MHz OSC) emulates POKEYs + ROM_REGION( 0x0800, "mcu", 0 ) + ROM_LOAD( "8749h.bin", 0x0000, 0x0800, CRC(a66a9c47) SHA1(fbebd755a5e826c7d94ebcafdff2f9a01c9fd1a5) ) + ROM_FILL( 0x06e2, 1, 0x96 ) // patch illegal opcode + + // currently unused + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "82s123.bin", 0x00000, 0x0020, NO_DUMP ) + + ROM_REGION( 0xc00, "plds", 0 ) + ROM_LOAD( "gal18v8a-25lp.1", 0x000, 0x117, NO_DUMP ) + ROM_LOAD( "gal18v8a-25lp.2", 0x200, 0x117, NO_DUMP ) + ROM_LOAD( "palce18v8h-25pc.3", 0x400, 0x117, NO_DUMP ) + ROM_LOAD( "palce18v8h-25pc.4", 0x600, 0x117, NO_DUMP ) + ROM_LOAD( "pal16r4b-2cn.5", 0x800, 0x104, NO_DUMP ) + ROM_LOAD( "pal16r4b-2cn.6", 0xa00, 0x104, NO_DUMP ) +ROM_END + ROM_START( atetrisb4 ) // bootleg on an unusually big PCB for this game ROM_REGION( 0x10000, "maincpu", 0 ) 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 ) ROM_REGION( 0x8000, "soundcpu", 0 ) // Not hooked up ROM_LOAD( "k1-d3.bin", 0x0000, 0x8000, CRC(ce51c82b) SHA1(f90ed16f817e6b2a22b69db20348386b9c1ecb67) ) // Same 8K repeated four times - // See http://www.seanriddle.com/um348x/ for notes about the UM3482 + // See http://www.seanriddle.com/um348x/ and http://arcadehacker.blogspot.com/2020/07/um3481a-series-multi-instrument-melody.html for notes about the UM3482 ROM_REGION( 0x01f0, "um3482", 0 ) // Not hooked up /* Notes (3584 bits, which matches the datasheet's 512 7-bit notes). @@ -943,8 +975,8 @@ ROM_START( atetb5205 ) ROM_REGION( 0x40000, "oki", 0) ROM_LOAD( "1_am27c512.bin", 0x00000, 0x10000, CRC(3aecab3f) SHA1(f072ca51298a2c88ff1feb24933f2ffdb7f8eb63) ) - ROM_LOAD( "2_tms27c512.bin", 0x10000, 0x10000, CRC(953d0ec4) SHA1(af2586332411d9b552241300e61c73463b0ffc5f) ) - ROM_LOAD( "3_m5l27512.bin", 0x20000, 0x10000, BAD_DUMP CRC(20c1e632) SHA1(b33d276775e1f81a0c4799f2779c4d378436f7be) ) // Bitrotten, 0x1136 address bad + ROM_LOAD( "2_tms27c512.bin", 0x10000, 0x10000, CRC(b0c7353c) SHA1(f452ad0a055027d32da30104d1ad40f7fbcc34fb) ) + ROM_LOAD( "3_m5l27512.bin", 0x20000, 0x10000, CRC(20c1e632) SHA1(b33d276775e1f81a0c4799f2779c4d378436f7be) ) ROM_LOAD( "4_am27c512.bin", 0x30000, 0x10000, CRC(a3a7fe78) SHA1(babbbe332a2b15efb67476e3563aeabaede2b55a) ) // PROM on main PCB @@ -1026,15 +1058,16 @@ ROM_END * *************************************/ -GAME( 1988, atetris, 0, atetris, atetris, atetris_state, empty_init, ROT0, "Atari Games", "Tetris (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, atetrisa, atetris, atetris, atetris, atetris_state, empty_init, ROT0, "Atari Games", "Tetris (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, atetrisb, atetris, atetris, atetris, atetris_state, empty_init, ROT0, "bootleg", "Tetris (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, atetrisb2, atetris, atetrisb2, atetris, atetris_state, empty_init, ROT0, "bootleg", "Tetris (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, atetrisb3, atetris, atetrisb3, atetris, atetris_mcu_state, empty_init, ROT0, "bootleg", "Tetris (bootleg set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, atetrisb4, atetris, atetris, atetris, atetris_state, empty_init, ROT0, "bootleg", "Tetris (bootleg set 4)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, atetrisb5, atetris, atetrisb5, atetris, atetris_state, empty_init, ROT0, "bootleg", "Tetris (bootleg set 5)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1988, atetb3482, atetris, atetris, atetris, atetris_state, empty_init, ROT0, "bootleg", "Tetris (bootleg set 6, with UM3482)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -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 ) -GAME( 1989, atetrisbp, atetris, atetrisbp, atetris, atetris_bartop_state, empty_init, ROT0, "Atari Games", "Tetris (bartop, prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, atetrisc, atetris, atetris, atetrisc, atetris_state, empty_init, ROT270, "Atari Games", "Tetris (cocktail set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, atetrisc2, atetris, atetris, atetrisc, atetris_state, empty_init, ROT270, "Atari Games", "Tetris (cocktail set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, atetris, 0, atetris, atetris, atetris_state, empty_init, ROT0, "Atari Games", "Tetris (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, atetrisa, atetris, atetris, atetris, atetris_state, empty_init, ROT0, "Atari Games", "Tetris (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, atetrisb, atetris, atetris, atetris, atetris_state, empty_init, ROT0, "bootleg", "Tetris (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, atetrisb2, atetris, atetrisb2, atetris, atetris_state, empty_init, ROT0, "bootleg", "Tetris (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, atetrisb3, atetris, atetrisb3, atetris, atetris_mcu_state, empty_init, ROT0, "bootleg", "Tetris (bootleg set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, atetrisb4, atetris, atetris, atetris, atetris_state, empty_init, ROT0, "bootleg", "Tetris (bootleg set 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, atetrisb5, atetris, atetrisb5, atetris, atetris_state, empty_init, ROT0, "bootleg", "Tetris (bootleg set 5)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1988, atetb3482, atetris, atetris, atetris, atetris_state, empty_init, ROT0, "bootleg", "Tetris (bootleg set 6, with UM3482)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +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 ) +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 +GAME( 1989, atetrisbp, atetris, atetrisbp, atetris, atetris_bartop_state, empty_init, ROT0, "Atari Games", "Tetris (bartop, prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, atetrisc, atetris, atetris, atetrisc, atetris_state, empty_init, ROT270, "Atari Games", "Tetris (cocktail set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, atetrisc2, atetris, atetris, atetrisc, atetris_state, empty_init, ROT270, "Atari Games", "Tetris (cocktail set 2)", MACHINE_SUPPORTS_SAVE ) -- cgit v1.2.3