New clones marked as NOT_WORKING

--------------------------------
Dead or Alive (Model 2A) [Trol]

- arkanoid.cpp, snk.cpp: minor documentation updates

- funworld.cpp: demoted multiwina to MIG

- jack.cpp: corrected ROM lables [Brian Troha]

- nmk16.cpp: fixed missing sprites in attract mode for tdragonb3, thanks to info from hammy

- sidearms.cpp: dumped PROMs, added hardware info and correcte clocks for Turtle Ship [Guru]

- vamphalf.cpp: improved hardware info [Guru]

- xain.cpp: corrected audio CPU clock to match measurements

- yunsun16.cpp: used standard ROM loading macros and other minor cleanups
This commit is contained in:
Ivan Vangelista 2022-05-27 06:31:12 +02:00
parent a683ea2d1a
commit f3e93eff6a
15 changed files with 766 additions and 560 deletions

View File

@ -4529,8 +4529,6 @@ files {
MAME_DIR .. "src/mame/drivers/paradise.cpp",
MAME_DIR .. "src/mame/drivers/yunsung8.cpp",
MAME_DIR .. "src/mame/drivers/yunsun16.cpp",
MAME_DIR .. "src/mame/includes/yunsun16.h",
MAME_DIR .. "src/mame/video/yunsun16.cpp",
}
createMAMEProjects(_target, _subtarget, "zaccaria")

View File

@ -1534,8 +1534,9 @@ void arkanoid_state::brixian(machine_config &config)
A75 33 = PROM red Tournament
A75 34 = PROM green Tournament
A75 35 = PROM blue Tournament
A75 36 = Z80 code 1/2 (Tournament v2.0?) (NOT DUMPED)
A75 37 = Z80 code 2/2 (Tournament v2.0?) (NOT DUMPED)
A75 36 = Z80 code 1/2 (Tournament v2.0?)
A75 37 = Z80 code 2/2 (Tournament v2.0?)
A75 38 = MC68705P5 MCU code (NOT DUMPED)
*/
ROM_START( arkanoid ) // v1.0 World

View File

@ -8755,7 +8755,7 @@ GAMEL( 199?, jolyjokrm, jolyjokr, fw1stpal, funworld, funworld_state, empty_in
// Encrypted games...
GAME( 1992, multiwin, 0, multiwin, funworld, multiwin_state, driver_init, ROT0, "Fun World", "Multi Win (Ver.0167, encrypted)", 0 ) // original funworld, encrypted.
GAME( 1991, multiwina, multiwin, multiwina,funworld, multiwina_state,empty_init, ROT0, "Fun World", "Multi Win (Ver.0091, encrypted)", 0 ) // different encryption scheme.
GAME( 1991, multiwina, multiwin, multiwina,funworld, multiwina_state,empty_init, ROT0, "Fun World", "Multi Win (Ver.0091, encrypted)", MACHINE_IMPERFECT_GRAPHICS ) // different encryption scheme, different tilemap / screen parameters
GAME( 2001, multiwinb, multiwin, fw2ndpal, funworld, funworld_state, empty_init, ROT0, "Amatic", "Multi Win (EPM7032, encrypted)", MACHINE_NOT_WORKING ) // daughterboard with R65C02 + Altera EPM7032.
GAME( 1993, powercrd, 0, multiwina,funworld, multiwina_state,empty_init, ROT0, "Fun World", "Power Card (Ver 0263, encrypted)", 0 ) // clone of Bonus Card.
GAME( 1993, megacard, 0, multiwina,funworld, multiwina_state,empty_init, ROT0, "Fun World", "Mega Card (Ver.0210, encrypted)", 0 )

View File

@ -1153,26 +1153,26 @@ ROM_START( zzyzzyxx2 )
ROM_END
ROM_START( brix )
ROM_START( brix ) // P-1244-1A PCB
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "a", 0x0000, 0x1000, CRC(050e0d70) SHA1(f5e0ed0845443701233de194d9ce24ec35e03a27) )
ROM_LOAD( "b", 0x1000, 0x1000, CRC(668118ae) SHA1(688d6f79d30186bade15dbb1f08e8b25cbefa852) )
ROM_LOAD( "c", 0x2000, 0x1000, CRC(ff5ed6cf) SHA1(b6309ed322c2bb12626dfaca705e296723ee7e47) )
ROM_LOAD( "d", 0x3000, 0x1000, CRC(c3ae45a9) SHA1(879f0a495d9de855ffcbb0907b9b733ca626a7ef) )
ROM_LOAD( "e", 0xc000, 0x1000, CRC(def99fa9) SHA1(e28d32934e1ad31595ec6097befd8518178c9d51) )
ROM_LOAD( "f", 0xd000, 0x1000, CRC(dde717ed) SHA1(cf9063aa25faf2027770a4b27831e2e20d1801a0) )
ROM_LOAD( "g", 0xe000, 0x1000, CRC(adca02d8) SHA1(75703a6f6d8b5eeb609ed5829d12b97b62309ba4) )
ROM_LOAD( "h", 0xf000, 0x1000, CRC(bc3b878c) SHA1(91a5daa90a4c46a354f4ef64730b4a0a8348b6a0) )
ROM_LOAD( "brix_a.2f", 0x0000, 0x1000, CRC(050e0d70) SHA1(f5e0ed0845443701233de194d9ce24ec35e03a27) )
ROM_LOAD( "brix_b.3f", 0x1000, 0x1000, CRC(668118ae) SHA1(688d6f79d30186bade15dbb1f08e8b25cbefa852) )
ROM_LOAD( "brix_c.4f", 0x2000, 0x1000, CRC(ff5ed6cf) SHA1(b6309ed322c2bb12626dfaca705e296723ee7e47) )
ROM_LOAD( "brix_d.6f", 0x3000, 0x1000, CRC(c3ae45a9) SHA1(879f0a495d9de855ffcbb0907b9b733ca626a7ef) )
ROM_LOAD( "brix_e.7f", 0xc000, 0x1000, CRC(def99fa9) SHA1(e28d32934e1ad31595ec6097befd8518178c9d51) )
ROM_LOAD( "brix_f.7e", 0xd000, 0x1000, CRC(dde717ed) SHA1(cf9063aa25faf2027770a4b27831e2e20d1801a0) )
ROM_LOAD( "brix_g.6e", 0xe000, 0x1000, CRC(adca02d8) SHA1(75703a6f6d8b5eeb609ed5829d12b97b62309ba4) )
ROM_LOAD( "brix_h.4e", 0xf000, 0x1000, CRC(bc3b878c) SHA1(91a5daa90a4c46a354f4ef64730b4a0a8348b6a0) )
ROM_REGION( 0x10000, "audiocpu", 0 )
ROM_LOAD( "i.5a", 0x0000, 0x1000, CRC(c7742460) SHA1(1dbf0f5be1e2666feef83f256e2993a6c23d7cfc) )
ROM_LOAD( "j.6a", 0x1000, 0x1000, CRC(72166ccd) SHA1(4f4efcd8ed7f729f4630446607b0e9c93098aa3a) )
ROM_LOAD( "brix_i.5a", 0x0000, 0x1000, CRC(c7742460) SHA1(1dbf0f5be1e2666feef83f256e2993a6c23d7cfc) )
ROM_LOAD( "brix_j.6a", 0x1000, 0x1000, CRC(72166ccd) SHA1(4f4efcd8ed7f729f4630446607b0e9c93098aa3a) )
ROM_REGION( 0x4000, "gfx1", 0 )
ROM_LOAD( "n", 0x0000, 0x1000, CRC(8064910e) SHA1(331048e30604ef2a0ae0d7ee5ca5c230b601aec7) )
ROM_LOAD( "m.1d", 0x1000, 0x1000, CRC(217b1402) SHA1(b842b2bde8ff5be6b240ccfb35c7a9f701dab5f4) )
ROM_LOAD( "k", 0x2000, 0x1000, CRC(c7d7e2a0) SHA1(9790e78abf4f57ddfcef8e5632699152f9440a67) )
ROM_LOAD( "l.1a", 0x3000, 0x1000, CRC(ab421a83) SHA1(1cc3e1bcf9e90ffbf7bfeeb0caa8a4f63b34146a) )
ROM_LOAD( "brix_n.1c", 0x0000, 0x1000, CRC(8064910e) SHA1(331048e30604ef2a0ae0d7ee5ca5c230b601aec7) )
ROM_LOAD( "brix_m.1d", 0x1000, 0x1000, CRC(217b1402) SHA1(b842b2bde8ff5be6b240ccfb35c7a9f701dab5f4) )
ROM_LOAD( "brix_k.1b", 0x2000, 0x1000, CRC(c7d7e2a0) SHA1(9790e78abf4f57ddfcef8e5632699152f9440a67) )
ROM_LOAD( "brix_l.1a", 0x3000, 0x1000, CRC(ab421a83) SHA1(1cc3e1bcf9e90ffbf7bfeeb0caa8a4f63b34146a) )
ROM_END

View File

@ -21,7 +21,6 @@
culprit is a wrong command parameter in geo_parse texture data opcode;
- daytona: car glasses doesn't get loaded during gameplay;
- doa, doaa: corrupted sound, eventually becomes silent;
- doa, doaa: Kasumi model has many culled polygons;
- dynamcopc: corrupts palette for 2d (most likely unrelated with the lack of DSP);
- fvipers, schamp: rasterizer has issues displaying some characters @see video/model2.cpp
- fvipers: enables timers, but then irq register is empty, hence it crashes with an "interrupt halt" at POST (regression);
@ -5763,6 +5762,7 @@ ROM_END
/*
The Dead or Alive set below is also known to have genuine Tecmo labels:
PROJECT PROJECT
EPR-AK EPR-AK
ROM No. & ROM No.
@ -5772,9 +5772,15 @@ The Dead or Alive set below is also known to have genuine Tecmo labels:
Sega ID# 836-12884 DEAD OR ALIVE
For all DOA sets, internal information in the 0x2800 to 0x2A00 range shows: TECMO LTD. DEAD OR ALIVE 1996.10.22 VER. 1.00
Like the Model 2B version with mislabeled ROMs, the above labels with the 97/1/10 date might indicate a currently
undumped set of EPR-19310A & EPR-19311A based on the Jan 10, 1997 revised code as shown for the DOA set below
*/
ROM_START( doaa ) /* Dead or Alive Revision A, Model 2A, Sega Game ID# 836-12884 DEAD OR ALIVE, ROM board ID# 838-12885, 837-12880 security board */
ROM_REGION( 0x200000, "maincpu", 0 ) // i960 program
// internal information shows source files names and revision dates. In this case Dec 4 1996
ROM_LOAD32_WORD("epr-19310a.12", 0x000000, 0x080000, CRC(06486f7a) SHA1(b3e14103570e5f45aed16e1c158e469bc85002ae) ) // Game Mode Settings : Nation : defaults to Japan, can select Japan, U.S.A. & Export
ROM_LOAD32_WORD("epr-19311a.13", 0x000002, 0x080000, CRC(1be62912) SHA1(dcc2df8e28e1a107867f74248e6ffcac83afe7c0) )
@ -5816,8 +5822,53 @@ ROM_START( doaa ) /* Dead or Alive Revision A, Model 2A, Sega Game ID# 836-12884
MODEL2A_VID_BOARD
ROM_END
ROM_START( doaab ) /* Dead or Alive Revision A, Model 2A, Sega Game ID# 836-12884-02 DEAD OR ALIVE, ROM board ID# 838-12885-02, 837-12880 security board */
ROM_START( doaab ) /* Dead or Alive Revision A, Model 2A, Sega Game ID# 836-12884 DEAD OR ALIVE, ROM board ID# 838-12885, 837-12880 security board */
ROM_REGION( 0x200000, "maincpu", 0 ) // i960 program
// internal information shows source files names and revision dates. In this case Nov 3 1996
ROM_LOAD32_WORD("epr-19310.12", 0x000000, 0x080000, CRC(3c571e75) SHA1(63371275b7cc4889b4f43d3ae27a55728bb2e89d) ) // Game Mode Settings : Nation : defaults to Japan, can select Japan, U.S.A. & Export
ROM_LOAD32_WORD("epr-19311.13", 0x000002, 0x080000, CRC(8818363d) SHA1(c10e07d4d90d5b975056f53bd5284de8cabd136a) )
ROM_REGION32_LE( 0x2000000, "main_data", 0 ) // Data
ROM_LOAD32_WORD("mpr-19318.10", 0x0000000, 0x400000, CRC(ab431bfe) SHA1(45b5ccf67c91014daf6bf3c4bd8ec372b246e404) )
ROM_LOAD32_WORD("mpr-19319.11", 0x0000002, 0x400000, CRC(c5cb694d) SHA1(448b45d30cc7a71395a49a2c5789989fd7b7b4e7) )
ROM_LOAD32_WORD("mpr-19316.8", 0x0800000, 0x400000, CRC(2d2d1b1a) SHA1(77ce5d8aa98bdbc97ae08a452f584b30d8885cfc) )
ROM_LOAD32_WORD("mpr-19317.9", 0x0800002, 0x400000, CRC(96b17bcf) SHA1(3aa9d2f8afad74b5626ce2cf2d7a86aef8cac80b) )
ROM_LOAD32_WORD("mpr-19314.6", 0x1000000, 0x400000, CRC(a8d963fb) SHA1(6a1680d6380321279b0d701e4b47d4ae712f3b72) )
ROM_LOAD32_WORD("mpr-19315.7", 0x1000002, 0x400000, CRC(90ae5682) SHA1(ec56df14f0847daf9bd0435f785a8946c94d2988) )
ROM_LOAD32_WORD("mpr-19312.4", 0x1800000, 0x200000, CRC(1dcedb10) SHA1(a60fb9e7c0731004d0f0ff28c4cde272b21dd658) )
ROM_LOAD32_WORD("mpr-19313.5", 0x1800002, 0x200000, CRC(8c63055e) SHA1(9f375b3f4a8884163ffcf364989499f2cd21e18b) )
ROM_COPY("main_data", 0x1800000, 0x1c00000, 0x400000 )
ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_REGION( 0x2000000, "polygons", ROMREGION_ERASEFF ) // Models
ROM_LOAD32_WORD("mpr-19322.16", 0x0000000, 0x400000, CRC(d0e6ecf0) SHA1(1b87f6337b4286fd738856da899462e7baa92601) )
ROM_LOAD32_WORD("mpr-19325.20", 0x0000002, 0x400000, CRC(7cbe432d) SHA1(8b31e292160b88df9c77b36096914d09ab8b6086) )
ROM_LOAD32_WORD("mpr-19323.17", 0x0800000, 0x400000, CRC(453d3f4a) SHA1(8c0530824bb8ecb007021ee6e93412597bb0ecd6) )
ROM_LOAD32_WORD("mpr-19326.21", 0x0800002, 0x400000, CRC(b976da02) SHA1(a154eb128604aac9e35438d8811971133eab94a1) )
ROM_LOAD32_WORD("mpr-19324.18", 0x1000000, 0x400000, CRC(0d6bf454) SHA1(4cf48f19128d728c4ec7e9ec7014223a6c0f2362) )
ROM_LOAD32_WORD("mpr-19327.22", 0x1000002, 0x400000, CRC(6a75634c) SHA1(8ed74c7afd95fc7a4df0f01a47479b6f44e3073c) )
ROM_REGION( 0x800000, "textures", 0 ) // Textures
ROM_LOAD32_WORD("mpr-19321.25", 0x000000, 0x400000, CRC(9c49e845) SHA1(344839640d9814263fa5ed00c2043cd6f18d5cb2) )
ROM_LOAD32_WORD("mpr-19320.24", 0x000002, 0x400000, CRC(190c017f) SHA1(4c3250b9abe39fc5c8fd0fcdb5fb7ea131434516) )
ROM_REGION( 0x080000, "audiocpu", 0 ) // Sound program
ROM_LOAD16_WORD_SWAP("epr-19328.30", 0x000000, 0x080000, CRC(400bdbfb) SHA1(54db969fa54cf3c502d77aa6a6aaeef5d7db9f04) )
ROM_REGION16_BE( 0x800000, "samples", 0 ) // Samples
ROM_LOAD16_WORD_SWAP("mpr-19329.31", 0x000000, 0x200000, CRC(8fd2708a) SHA1(7a341b15afa489aa95af70cb34ac3934b1a7d887) )
ROM_LOAD16_WORD_SWAP("mpr-19330.32", 0x200000, 0x200000, CRC(0c69787d) SHA1(dc5870cd93da2babe5fc9c03b252fc6ea6e45721) )
ROM_LOAD16_WORD_SWAP("mpr-19331.36", 0x400000, 0x200000, CRC(c18ea0b8) SHA1(0f42458829ae85fffcedd42cd9f728a7a3d75f1c) )
ROM_LOAD16_WORD_SWAP("mpr-19332.37", 0x600000, 0x200000, CRC(2877f96f) SHA1(00e5677da30527b862e238f10762a5cbfbabde2b) )
MODEL2_CPU_BOARD
MODEL2A_VID_BOARD
ROM_END
ROM_START( doaae ) /* Dead or Alive Revision A, Model 2A, Sega Game ID# 836-12884-02 DEAD OR ALIVE, ROM board ID# 838-12885-02, 837-12880 security board */
ROM_REGION( 0x200000, "maincpu", 0 ) // i960 program
// internal information shows source files names and revision dates. In this case Nov 3 1996
ROM_LOAD32_WORD("epr-19383a.12", 0x000000, 0x080000, CRC(42e61481) SHA1(ecee88b17d60924c63d01ff72acb186350265e0a) ) // Game Mode Settings : Nation : defaults to Export and can't be changed in test mode
ROM_LOAD32_WORD("epr-19384a.13", 0x000002, 0x080000, CRC(034a3ab9) SHA1(a01d2f0a4accfdf892228b65c25e2ad9144ecf59) )
@ -5862,6 +5913,7 @@ ROM_END
ROM_START( doa ) /* Dead or Alive Jan 10 1997, probably Revision C, Model 2B, 837-12880 security board */
ROM_REGION( 0x200000, "maincpu", 0 ) // i960 program
// ROMs have hand written labels - "EPR-19379B / EPR-19380B, 96/12/6", probably was reused and reprogrammed to newer revision
// internal information shows source files names and revision dates. In this case Jan 10 1997
ROM_LOAD32_WORD("epr-19379c.15", 0x000000, 0x080000, CRC(5cc62fbe) SHA1(a1489b92f32bcd16cca10017975beb62fc27a060) ) // Game Mode Settings : Nation : defaults to Japan, can select Japan, U.S.A. & Export
ROM_LOAD32_WORD("epr-19380c.16", 0x000002, 0x080000, CRC(58cfeaa9) SHA1(4319c22b8ebcff152676b62b5b1d4c1c7ce64fa6) )
@ -5900,8 +5952,21 @@ ROM_START( doa ) /* Dead or Alive Jan 10 1997, probably Revision C, Model 2B, 83
ROM_LOAD16_WORD_SWAP("mpr-19332.34", 0x600000, 0x200000, CRC(2877f96f) SHA1(00e5677da30527b862e238f10762a5cbfbabde2b) )
ROM_END
/*
The Dead or Alive set below is also known to have genuine Tecmo labels:
PROJECT PROJECT
EPR-AK EPR-AK
ROM No. & ROM No.
19379B 19380B
DATE DATE
96/12/6 96/12/6
*/
ROM_START( doab ) /* Dead or Alive Dec 6 1996, Revision B, Model 2B, 837-12880 security board */
ROM_REGION( 0x200000, "maincpu", 0 ) // i960 program
// internal information shows source files names and revision dates. In this case Dec 4 1996
ROM_LOAD32_WORD("epr-19379b.15", 0x000000, 0x080000, CRC(8a10a944) SHA1(c675a344f74d0118907fb5292495883c0c30c719) ) // Game Mode Settings : Nation : defaults to Japan, can select Japan, U.S.A. & Export
ROM_LOAD32_WORD("epr-19380b.16", 0x000002, 0x080000, CRC(766c1ec8) SHA1(49250886f66db9fd37d88bc22c8f22046f74f043) )
@ -7249,7 +7314,8 @@ GAME( 1995, srallycdxa, srallyc, srallyc, srallyc, model2a_state, empty_
GAME( 1995, vcop2, 0, vcop2, vcop2, model2a_state, empty_init, ROT0, "Sega", "Virtua Cop 2", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
GAME( 1995, skytargt, 0, skytargt, skytargt, model2a_state, empty_init, ROT0, "Sega", "Sky Target", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
GAME( 1996, doaa, doa, model2a_0229, doa, model2a_state, init_doa, ROT0, "Tecmo", "Dead or Alive (Model 2A, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) // Dec 4 1996, defaults to Japan but can be changed in test mode
GAME( 1996, doaab, doa, model2a_0229, doa, model2a_state, init_doa, ROT0, "Tecmo", "Dead or Alive (Export, Model 2A, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) // Nov 3 1996, fixed on Export
GAME( 1996, doaab, doa, model2a_0229, doa, model2a_state, init_doa, ROT0, "Tecmo", "Dead or Alive (Model 2A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) // Nov 3 1996, defaults to Japan but can be changed in test mode
GAME( 1996, doaae, doa, model2a_0229, doa, model2a_state, init_doa, ROT0, "Tecmo", "Dead or Alive (Export, Model 2A, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) // Nov 3 1996, locked to Export
GAME( 1997, zeroguna, zerogun, zeroguna, zerogun, model2a_state, init_zerogun, ROT0, "Psikyo", "Zero Gunner (Export, Model 2A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
GAME( 1997, zerogunaj, zerogun, zeroguna, zerogun, model2a_state, init_zerogun, ROT0, "Psikyo", "Zero Gunner (Japan, Model 2A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
GAME( 1997, motoraid, 0, manxtt, motoraid, model2a_state, empty_init, ROT0, "Sega", "Motor Raid - Twin", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )

View File

@ -1075,6 +1075,14 @@ void nmk16_state::tdragonb_map(address_map &map)
map(0x0d0000, 0x0d07ff).ram().w(FUNC(nmk16_state::txvideoram_w)).share("txvideoram");
}
void nmk16_state::tdragonb3_map(address_map &map)
{
tdragonb_map(map);
map(0x044022, 0x044023).unmapr();
map(0x060000, 0x060021).lr16(NAME([] () -> u16 { return 0xee; })); // No sprites in attract mode without this. Is it actually protection? See routine at PC 260
}
void nmk16_state::tdragonb2_map(address_map &map)
{
map(0x000000, 0x03ffff).rom();
@ -4567,6 +4575,13 @@ void nmk16_state::tdragonb(machine_config &config) // bootleg using Raiden so
seibu_sound.ym_write_callback().set("ymsnd", FUNC(ym3812_device::write));
}
void nmk16_state::tdragonb3(machine_config &config)
{
tdragonb(config);
m_maincpu->set_addrmap(AS_PROGRAM, &nmk16_state::tdragonb3_map);
}
void nmk16_state::tdragonb2(machine_config &config)
{
// basic machine hardware
@ -9095,7 +9110,7 @@ GAME( 1997, tomagic, 0, tomagic, tomagic, nmk16_tomagic_stat
GAME( 1990, mustangb, mustang, mustangb, mustang, nmk16_state, empty_init, ROT0, "bootleg", "US AAF Mustang (bootleg, set 1)", 0 )
GAME( 1990, mustangb2, mustang, mustangb, mustang, nmk16_state, empty_init, ROT0, "bootleg (TAB Austria)", "US AAF Mustang (TAB Austria bootleg)", 0 ) // PCB and ROMs have TAB Austria stickers
GAME( 1991, tdragonb, tdragon, tdragonb, tdragonb, nmk16_state, init_tdragonb, ROT270, "bootleg", "Thunder Dragon (bootleg with Raiden sounds, encrypted)", 0 )
GAME( 1991, tdragonb3, tdragon, tdragonb, tdragonb, nmk16_state, empty_init, ROT270, "bootleg", "Thunder Dragon (bootleg with Raiden sounds, unencrypted)", 0 )
GAME( 1991, tdragonb3, tdragon, tdragonb3, tdragonb, nmk16_state, empty_init, ROT270, "bootleg", "Thunder Dragon (bootleg with Raiden sounds, unencrypted)", 0 )
GAME( 1992, strahljbl, strahl, strahljbl, strahljbl, nmk16_state, empty_init, ROT0, "bootleg", "Koutetsu Yousai Strahl (Japan, bootleg)", 0 )
// these are bootlegs with tharrier like sound hw

View File

@ -654,11 +654,11 @@ void sidearms_state::sidearms(machine_config &config)
void sidearms_state::turtship(machine_config &config)
{
/* basic machine hardware */
Z80(config, m_maincpu, 4000000); /* 4 MHz (?) */
Z80(config, m_maincpu, 16_MHz_XTAL / 4);
m_maincpu->set_addrmap(AS_PROGRAM, &sidearms_state::turtship_map);
m_maincpu->set_vblank_int("screen", FUNC(sidearms_state::irq0_line_hold));
Z80(config, m_audiocpu, 4000000); /* 4 MHz (?) */
Z80(config, m_audiocpu, 16_MHz_XTAL / 2); // strangely it runs double the clock of the main CPU, but verified on PCB
m_audiocpu->set_addrmap(AS_PROGRAM, &sidearms_state::sidearms_sound_map);
WATCHDOG_TIMER(config, "watchdog");
@ -667,7 +667,7 @@ void sidearms_state::turtship(machine_config &config)
BUFFERED_SPRITERAM8(config, m_spriteram);
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_refresh_hz(60);
screen.set_refresh_hz(61.0338);
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
screen.set_size(64*8, 32*8);
screen.set_visarea(8*8, (64-8)*8-1, 2*8, 30*8-1);
@ -683,14 +683,14 @@ void sidearms_state::turtship(machine_config &config)
GENERIC_LATCH_8(config, "soundlatch");
ym2203_device &ym1(YM2203(config, "ym1", 4000000));
ym2203_device &ym1(YM2203(config, "ym1", 16_MHz_XTAL / 4));
ym1.irq_handler().set_inputline(m_audiocpu, 0);
ym1.add_route(0, "mono", 0.15);
ym1.add_route(1, "mono", 0.15);
ym1.add_route(2, "mono", 0.15);
ym1.add_route(3, "mono", 0.25);
ym2203_device &ym2(YM2203(config, "ym2", 4000000));
ym2203_device &ym2(YM2203(config, "ym2", 16_MHz_XTAL / 4));
ym2.add_route(0, "mono", 0.15);
ym2.add_route(1, "mono", 0.15);
ym2.add_route(2, "mono", 0.15);
@ -922,9 +922,9 @@ ROM_END
ROM_START( turtship )
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code + banked ROMs images */
ROM_LOAD( "t-3.bin", 0x00000, 0x08000, CRC(b73ed7f2) SHA1(bb98fe41b989d6568fe8cf1900a0d15c176b61a0) )
ROM_LOAD( "t-2.3g", 0x08000, 0x08000, CRC(2327b35a) SHA1(bf7b5e11c3f75aff7d09c0fc4ad61fb4bcb38100) )
ROM_LOAD( "t-1.bin", 0x10000, 0x08000, CRC(a258ffec) SHA1(caa689607ebe450a68736933dbfaf6bf9b6d3487) )
ROM_LOAD( "t-3.5g", 0x00000, 0x08000, CRC(b73ed7f2) SHA1(bb98fe41b989d6568fe8cf1900a0d15c176b61a0) )
ROM_LOAD( "t-2.3g", 0x08000, 0x08000, CRC(2327b35a) SHA1(bf7b5e11c3f75aff7d09c0fc4ad61fb4bcb38100) )
ROM_LOAD( "t-1.3e", 0x10000, 0x08000, CRC(a258ffec) SHA1(caa689607ebe450a68736933dbfaf6bf9b6d3487) )
ROM_REGION( 0x10000, "audiocpu", 0 )
ROM_LOAD( "t-4.8a", 0x00000, 0x08000, CRC(1cbe48e8) SHA1(6ac5981d36a44595bb8dc847c54c7be7b374f82c) )
@ -944,15 +944,118 @@ ROM_START( turtship )
ROM_LOAD( "t-9.3a", 0x60000, 0x10000, CRC(44762916) SHA1(3427066fc02d1b9b71a59ac41d3332d5cd8d1423) )
ROM_REGION( 0x40000, "gfx3", 0 )
ROM_LOAD( "t-13.1i", 0x00000, 0x10000, CRC(599f5246) SHA1(b7e5bbff3b6117613744970c8680b7bc171516bd) ) /* sprites */
ROM_LOAD( "t-15.bin", 0x10000, 0x10000, CRC(6489b7b4) SHA1(438d088db131f5bb4ef2124eee814b25c92115e3) )
ROM_LOAD( "t-12.1g", 0x20000, 0x10000, CRC(fb54cd33) SHA1(49f7b728a4de8b93f5fd929f59a65509e4556161) )
ROM_LOAD( "t-14.bin", 0x30000, 0x10000, CRC(1b67b674) SHA1(a77ef1b4ba4d544aa230acf779f9c339d0fc55db) )
ROM_LOAD( "t-13.1i", 0x00000, 0x10000, CRC(599f5246) SHA1(b7e5bbff3b6117613744970c8680b7bc171516bd) ) /* sprites */
ROM_LOAD( "t-15.3i", 0x10000, 0x10000, CRC(6489b7b4) SHA1(438d088db131f5bb4ef2124eee814b25c92115e3) )
ROM_LOAD( "t-12.1g", 0x20000, 0x10000, CRC(fb54cd33) SHA1(49f7b728a4de8b93f5fd929f59a65509e4556161) )
ROM_LOAD( "t-14.3g", 0x30000, 0x10000, CRC(1b67b674) SHA1(a77ef1b4ba4d544aa230acf779f9c339d0fc55db) )
ROM_REGION( 0x08000, "gfx4", 0 ) /* background tilemaps */
ROM_LOAD( "t-16.9f", 0x00000, 0x08000, CRC(1a5a45d7) SHA1(51ceeae938fbda207c3f8ce65593d271dc8c4a41) )
ROM_REGION( 0x220, "proms", 0 )
ROM_LOAD( "82s129.11p", 0x000, 0x100, CRC(75af3553) SHA1(14da009592877a6097b34ea844fa897ceda7465e) ) // vertical timing
ROM_LOAD( "82s129.11r", 0x100, 0x100, CRC(c47c182a) SHA1(47d6139256e6838f633a04084bd0a7a84912f7fb) ) // horizontal timing
ROM_LOAD( "82s123.9e", 0x200, 0x020, CRC(c5817816) SHA1(cc642daafa0bcb160ee04e74e2d168fd44087608) ) // tied to the sound Z80 and without it there's no sound on the real PCB
ROM_END
/***************************************************************************
Turtle Ship (Philko / Pacific Games license (Japan region), 1988)
Hardware info by Guru
Philko's hardware is very bootleg-like and most probably
made in the same factory that made other bootlegs.
The sound circuit looks very close to the sound circuit
on Sidearms and 1943. You could say the entire Turtle
Ship board is a bootleg of Side Arms with different
graphics. They disguised the board by shuffling parts
around and putting the video board on top to make it
look like different hardware. However a dump of the
bi-polar PROMs reveals they are the same as Side Arms
which makes this just another bootleg ;-)
PCB Layout
----------
CPU Board
20-40-2 PHILKO
|---------------------------------------------------|
|LA4460 VOL YM3014 YM2203 T-4.8A LC3517(1)|
| VOL LM324 YM3014 YM2203 |
| Z80A |
|ULN2003 16MHz|
| Z80B T-1.3E HY6264 82S123.9E |
| T-2.3G T-3.5G |
| |
|J HY6264 |
|A LC3517(2) |
|M T-5.8K |
|M LC3517(2) |
|A |
| DIP-SW1 |
| DIP-SW2 PAL16L8 82S129.11P|
| 82S129.11R|
|--------------------|---------|-----|---------|----|
|---------| |---------|
Notes:
Z80A - ZILOG Z80A CPU. Clock 4.000MHz [16/4] (sound CPU)
Z80B - ZILOG Z80B CPU. Clock 8.000MHz [16/2] (main CPU)
YM2203 - Yamaha YM2203 FM Operator Type-N(OPN) sound chip. Clock 4.000MHz [16/4]
YM3014 - Yamaha YM3014 Serial Input Floating D/A Converter. Clock 1.3333MHz [16/4/3]
HY6264(1) - Hyundai HY6264 8kBx8-bit SRAM (main program RAM)
HY6264(2) - Hyundai HY6264 8kBx8-bit SRAM (character/text layer RAM)
LC3517(1) - Sanyo LC3517 2kBx8-bit SRAM (sound CPU RAM)
LC3517(2) - Sanyo LC3517 2kBx8-bit SRAM (color RAM)
LA4460 - Sanyo LA4460 12W AF Audio Power Amplifier
LM324 - Texas Instruments LM324 Quad Operational Amplifier
SW1/2 - 8-position DIP switch labelled on the board as 'DIP-SW1' and 'DIP-SW2'
HSync - 15.6246kHz. Measured on horizontal timing PROM at 11R
VSync - 61.0338Hz. Measured on vertical timing PROM at 11P
T-1.3E \
T-2.3G | 27256 OTP EPROM (main program)
T-3.5G /
T-4.8A - 27256 OTP EPROM (sound program)
T-5.8K - 27256 OTP EPROM (characters / text layer). A14 is tied high on the PCB
effectively making this chip a 27128
82S123.9E - Signetics 82S123 32x8-bit Bi-Polar PROM (sound CPU-related)
The address lines are tied to the sound CPU and when removed there is no sound.
82S129.11P - Signetics 82S129 256x4-bit Bi-Polar PROM (vertical timing PROM)
82S129.11R - Signetics 82S129 256x4-bit Bi-Polar PROM (horizontal timing PROM)
Top Board
20-41-1
|-----------------------------------|
|T-6.1A T-8.1D T-12.1G T-13.1I|
| T-7.1B T-14.3G T-15.3I|
|T-9.3A T-11.3D |
| T-10.3B |
| |
| |
| T-16.9F |
| 2018 2018 |
| |
| |
| |
| |------| |
| LC3517 |PK8808| |
| LC3517 | | |
| LC3517 |------| |
|----|---------|-----|---------|----|
|---------| |---------|
Notes:
PK8808 - Altera EP1800LC Erasable Programmable Logic Device (EPLD in PLCC68 package) acting as the sprite generator chip.
This is clearly a clone of Capcom's custom 86S105 sprite chip but without the internal RAM.
LC3517 - Sanyo LC3517 2kBx8-bit SRAM (sprite RAM for the PK8808 i.e. the internal RAM on the 86S105)
2018 - Toshiba TMM2018 2kBx8-bit SRAM (sprite RAM)
T-12 to T-15 - 27512 OTP EPROM (sprites)
T6 to T11 - 27512 OTP EPROM (tiles)
T16 - 27256 OTP EPROM (background tiles)
***************************************************************************/
ROM_START( turtshipj )
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code + banked ROMs images */
ROM_LOAD( "t-3.5g", 0x00000, 0x08000, CRC(0863fc1c) SHA1(b583e06e05e466c2344a4a420a47227c9ab8705c) )
@ -985,6 +1088,11 @@ ROM_START( turtshipj )
ROM_REGION( 0x08000, "gfx4", 0 ) /* background tilemaps */
ROM_LOAD( "t-16.9f", 0x00000, 0x08000, CRC(1a5a45d7) SHA1(51ceeae938fbda207c3f8ce65593d271dc8c4a41) )
ROM_REGION( 0x220, "proms", 0 )
ROM_LOAD( "82s129.11p", 0x000, 0x100, CRC(75af3553) SHA1(14da009592877a6097b34ea844fa897ceda7465e) ) // vertical timing
ROM_LOAD( "82s129.11r", 0x100, 0x100, CRC(c47c182a) SHA1(47d6139256e6838f633a04084bd0a7a84912f7fb) ) // horizontal timing
ROM_LOAD( "82s123.9e", 0x200, 0x020, CRC(c5817816) SHA1(cc642daafa0bcb160ee04e74e2d168fd44087608) ) // tied to the sound Z80 and without it there's no sound on the real PCB
ROM_END
ROM_START( turtshipk )
@ -1017,6 +1125,11 @@ ROM_START( turtshipk )
ROM_REGION( 0x08000, "gfx4", 0 ) /* background tilemaps */
ROM_LOAD( "turtship.016", 0x00000, 0x08000, CRC(affd51dd) SHA1(3338aa1fdd6b9926acc215f7f3656d70803f1832) )
ROM_REGION( 0x220, "proms", 0 )
ROM_LOAD( "82s129.11p", 0x000, 0x100, CRC(75af3553) SHA1(14da009592877a6097b34ea844fa897ceda7465e) ) // vertical timing
ROM_LOAD( "82s129.11r", 0x100, 0x100, CRC(c47c182a) SHA1(47d6139256e6838f633a04084bd0a7a84912f7fb) ) // horizontal timing
ROM_LOAD( "82s123.9e", 0x200, 0x020, CRC(c5817816) SHA1(cc642daafa0bcb160ee04e74e2d168fd44087608) ) // tied to the sound Z80 and without it there's no sound on the real PCB
ROM_END
ROM_START( turtshipko )
@ -1050,6 +1163,11 @@ ROM_START( turtshipko )
ROM_REGION( 0x08000, "gfx4", 0 ) /* background tilemaps */
ROM_LOAD( "t-16.f9", 0x00000, 0x08000, CRC(9b377277) SHA1(4858560e35144727aea958023f3df785baa994a8) )
ROM_REGION( 0x220, "proms", 0 )
ROM_LOAD( "82s129.11p", 0x000, 0x100, CRC(75af3553) SHA1(14da009592877a6097b34ea844fa897ceda7465e) ) // vertical timing
ROM_LOAD( "82s129.11r", 0x100, 0x100, CRC(c47c182a) SHA1(47d6139256e6838f633a04084bd0a7a84912f7fb) ) // horizontal timing
ROM_LOAD( "82s123.9e", 0x200, 0x020, CRC(c5817816) SHA1(cc642daafa0bcb160ee04e74e2d168fd44087608) ) // tied to the sound Z80 and without it there's no sound on the real PCB
ROM_END
ROM_START( turtshipkn )
@ -1083,6 +1201,11 @@ ROM_START( turtshipkn )
ROM_REGION( 0x08000, "gfx4", 0 ) /* background tilemaps */
ROM_LOAD( "t-16.f9", 0x00000, 0x08000, CRC(9b377277) SHA1(4858560e35144727aea958023f3df785baa994a8) )
ROM_REGION( 0x220, "proms", 0 )
ROM_LOAD( "82s129.11p", 0x000, 0x100, CRC(75af3553) SHA1(14da009592877a6097b34ea844fa897ceda7465e) ) // vertical timing
ROM_LOAD( "82s129.11r", 0x100, 0x100, CRC(c47c182a) SHA1(47d6139256e6838f633a04084bd0a7a84912f7fb) ) // horizontal timing
ROM_LOAD( "82s123.9e", 0x200, 0x020, CRC(c5817816) SHA1(cc642daafa0bcb160ee04e74e2d168fd44087608) ) // tied to the sound Z80 and without it there's no sound on the real PCB
ROM_END

View File

@ -48,9 +48,9 @@ Fighting Golf, Country Club YM3812
Fighting Soccer Y8950
Sound Board (used by TANK/TNKIII)
Sound Board
-----------
no number?
A5001UP04-0 (used by TANK/TNKIII)
|---------------------|
| VOL AMP 1458 1458|
|-| |

View File

@ -1389,36 +1389,57 @@ void vamphalf_qdsp_state::yorijori(machine_config &config)
/*
Vamp 1/2 (Semi Vamp)
Danbi, 1999
Vamp x1/2 (Danbi, 1999)
Hardware info by Guru
Later DANBI PCB:
+-----------------------------------------------+
| VR1 KA12 VROM1 |
| |
| BS901 AD-65 ROML01 ROMU01 |
| ROML00 ROMU00 |
| 62256 |
|J 62256 +----------+|
|A +------+ |Quicklogic||
|M DRAM1 |E1-16T| ROM1 | QL2003 ||
|M +------+ | XPL84C ||
|A 62256 +----------+|
| GAL1 62256 |
| 93C46 +----------+ 62256 |
| |Quicklogic| 62256 |
| | QL2003 | 62256 |
| 50.000MHz | XPL84C | 62256 |
|B1 B2 B3 +----------+ 28.000MHz |
+-----------------------------------------------+
CPU: Hyperstone E1-16T
Graphics: QuickLogic QL2003-XPL84
Sound: Oki M6295 rebadged as AD-65
YM3012/YM2151 rebadged as KA12/BS901
ROMs: ROML00/01, ROMU00/01 - Macronix MX29F1610MC-12 SOP44 16MBit FlashROM
DRAM1: TM T2316162A 1M x16 EDO DRAM (SOJ44)
DANBI (no PCB number)
|----------------------------------------------|
|uPC1241 VOL KA12 VROM1 |
| LM324 LM324 |
| 7805 BS901 AD-65 ROML01 ROMU01 |
| ROML00 ROMU00 |
| 52258 |
| 52258 |--------| |
| |------| | | |
|J T2316162 |E1-16T| ROM1 | QL2003 | |
|A |------| | | |
|M 52258 |--------| |
|M 52258 |
|A PALCE22V10H |--------| |
| 93C46 | | 52258 |
|T518A | QL2003 | 52258 |
| RESET 50MHz | | 52258 |
|SERV SETUP EMUIO1|--------|28MHz 52258 |
|----------------------------------------------|
Notes:
E1-16T - Hyperstone E1-16T 32-bit RISC/DSP Microprocessor. Clock 50.000MHz
AD-65 - OKI M6295 rebadged as AD-65. Clock 1.750MHz [28/16]. Pin 7 HIGH
BS109 - Yamaha YM2151 8-Channel 4-Operator OPM (FM Operator Type-M) sound chip rebadged as BS109. Clock 3.500MHz [28/8]
KA12 - Yamaha YM3012 DAC. Clock 1.750MHz [28/8/2]. Source = YM2151 pin 23
LM324 - Texas Instruments LM324 Quad Operational Amplifier
uPC1241 - NEC uPC1241 7W AF Audio Power Amplifier
52258 - Sharp LH52258 32kBx8-bit SRAM or HMC HM2H256 32kBx8-bit SRAM in SOJ28 package
T2316162 - Taiwan Memory Technology T2316162 1MBx16-bit EDO Page-Mode DRAM
or Samsung KM416C1200 1MBx16-bit EDO Page-Mode DRAM in SOJ42 package
T518A - Mitsumi Electric PST518A System Reset IC with low voltage detection reset 4.2V
QL2003 - QuickLogic QL2003-XPL84C pASIC-family FPGA in PLCC84 package
SERV - Push button tact switch for service credit
SETUP - Push button tact switch for test mode
RESET - Push button tact switch for manual reset
EMUIO1 - Not-populated 20 pin header. Possible for extra controls.
PALCE22V10H - AMD PALCE22V10H Programmable Array Logic (PAL)
93C46 - ST Microelectronics ST93C46 128x8 / 64x16 Serial EEPROM
ORG pin is tied high on the PCB so the x16 mode is selected
ROM1 - Texas Instruments TMS27C040 512kBx8-bit EPROM (main program)
VROM1 - AMIC A278308 256kBx8-bit OTP EPROM, compatible with 27C020 etc (OKI samples)
ROML00 \
ROML01 |
ROMU00 | Macronix MX29F1610MC-12 SOP44 16Mbit FlashROM (sprites)
ROMU01 /
HSync - 15.6249kHz
VSync - 59.1855Hz
***************************************************************************
Ealier DANBI PCB:
+-----------------------------------------------+
@ -1448,10 +1469,6 @@ Graphics: Actel A40MX04-F PL84
ROMs: ROML01, ROMU01 - SOP44 32MBit mask ROM for ELC & EVI
ROML00, ROMU00 - unpopulated
DRAM1: LG Semi GM71C18163 1M x16 EDO DRAM (SOJ44)
Both PCBs:
VROM1: Macronix MX27C2000 2MBit DIP32 EPROM
ROM1: ST M27C4001 4MBit DIP32 EPROM

View File

@ -500,7 +500,7 @@ void xain_state::xsleena(machine_config &config)
MC6809E(config, m_subcpu, CPU_CLOCK); // 68B09E
m_subcpu->set_addrmap(AS_PROGRAM, &xain_state::cpu_map_B);
MC6809(config, m_audiocpu, PIXEL_CLOCK); // 68A09
MC6809(config, m_audiocpu, CPU_CLOCK); // 68A09
m_audiocpu->set_addrmap(AS_PROGRAM, &xain_state::sound_map);
TAITO68705_MCU(config, m_mcu, MCU_CLOCK);

File diff suppressed because it is too large Load Diff

View File

@ -52,6 +52,7 @@ public:
void tdragon(machine_config &config);
void tdragonb(machine_config &config);
void tdragonb2(machine_config &config);
void tdragonb3(machine_config &config);
void gunnail(machine_config &config);
void gunnailb(machine_config &config);
void hachamf(machine_config &config);
@ -231,6 +232,7 @@ protected:
void tdragon_map(address_map &map);
void tdragonb_map(address_map &map);
void tdragonb2_map(address_map &map);
void tdragonb3_map(address_map &map);
void tharrier_map(address_map &map);
void tharrier_sound_io_map(address_map &map);
void tharrier_sound_map(address_map &map);

View File

@ -1,119 +0,0 @@
// license:BSD-3-Clause
// copyright-holders:Luca Elia
/*************************************************************************
Yun Sung 16 Bit Games
*************************************************************************/
#ifndef MAME_INCLUDES_YUNSUN16_H
#define MAME_INCLUDES_YUNSUN16_H
#pragma once
#include "machine/gen_latch.h"
#include "screen.h"
#include "emupal.h"
#include "tilemap.h"
class yunsun16_state : public driver_device
{
protected:
yunsun16_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_gfxdecode(*this, "gfxdecode"),
m_screen(*this, "screen"),
m_palette(*this, "palette"),
m_vram(*this, "vram_%u", 0U),
m_scrollram(*this, "scrollram_%u", 0U),
m_priorityram(*this, "priorityram"),
m_spriteram(*this, "spriteram")
{ }
virtual void machine_start() override;
virtual void machine_reset() override;
virtual void video_start() override;
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void main_map(address_map &map);
/* devices */
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
required_device<screen_device> m_screen;
required_device<palette_device> m_palette;
private:
void int_ack_w(uint8_t data);
/* memory pointers */
required_shared_ptr_array<uint16_t, 2> m_vram;
required_shared_ptr_array<uint16_t, 2> m_scrollram;
required_shared_ptr<uint16_t> m_priorityram;
required_shared_ptr<uint16_t> m_spriteram;
/* other video-related elements */
tilemap_t *m_tilemap[2]{};
int m_sprites_scrolldx = 0;
int m_sprites_scrolldy = 0;
template<int Layer> void vram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
TILEMAP_MAPPER_MEMBER(tilemap_scan_pages);
template<int Layer> TILE_GET_INFO_MEMBER(get_tile_info);
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
class magicbub_state : public yunsun16_state
{
public:
magicbub_state(const machine_config &mconfig, device_type type, const char *tag) :
yunsun16_state(mconfig, type, tag),
m_audiocpu(*this, "audiocpu"),
m_soundlatch(*this, "soundlatch")
{ }
void magicbub(machine_config &config);
protected:
void main_map(address_map &map);
private:
void magicbub_sound_command_w(uint8_t data);
void sound_map(address_map &map);
void sound_port_map(address_map &map);
required_device<cpu_device> m_audiocpu;
required_device<generic_latch_8_device> m_soundlatch;
};
class shocking_state : public yunsun16_state
{
public:
shocking_state(const machine_config &mconfig, device_type type, const char *tag) :
yunsun16_state(mconfig, type, tag),
m_okibank(*this, "okibank")
{ }
void shocking(machine_config &config);
protected:
virtual void machine_start() override;
virtual void machine_reset() override;
void main_map(address_map &map);
private:
void sound_bank_w(uint8_t data);
void oki_map(address_map &map);
required_memory_bank m_okibank;
};
#endif // MAME_INCLUDES_YUNSUN16_H

View File

@ -24057,9 +24057,10 @@ daytonata // 1994? Kyle Hodgetts hack
daytonagtx // 2004 Kyle Hodgetts hack
desert // 1994.07 Desert Tank
doa // 1997.01 Dead or Alive (Revision C)
doab // 1996.12 Dead or Alive (Revision B)
doaa // 1996.11 Dead or Alive (Revision A)
doaa // 1996.12 Dead or Alive (Revision A)
doaab // 1996.11 Dead or Alive (Revision A)
doaae // 1996.11 Dead or Alive (Revision A)
doab // 1996.12 Dead or Alive (Revision B)
dynabb // 1996.08 Dynamite Baseball
dynabb97 // 1997.04 Dynamite Baseball 97 (Revision A)
dynamcop // 1998.09 Dynamic Cop (Export)

View File

@ -1,201 +0,0 @@
// license:BSD-3-Clause
// copyright-holders:Luca Elia
/***************************************************************************
-= Yun Sung 16 Bit Games =-
driver by Luca Elia (l.elia@tin.it)
[ 2 Scrolling Layers ]
Tiles are 16 x 16 x 8. The layout of the tilemap is a bit weird:
16 consecutive tile codes define a vertical column.
16 columns form a page (256 x 256).
The tilemap is made of 4 x 4 pages (1024 x 1024)
[ 512? Sprites ]
Sprites are 16 x 16 x 4 in size. There's RAM for 512, but
the game just copies 384 entries.
***************************************************************************/
#include "emu.h"
#include "includes/yunsun16.h"
/***************************************************************************
Tilemaps
***************************************************************************/
/*
#define TILES_PER_PAGE_X (0x10)
#define TILES_PER_PAGE_Y (0x10)
#define PAGES_PER_TMAP_X (0x4)
#define PAGES_PER_TMAP_Y (0x4)
*/
TILEMAP_MAPPER_MEMBER(yunsun16_state::tilemap_scan_pages)
{
return ((row & 0x30) << 6) | ((col & 0x3f) << 4) | (row & 0xf);
}
template<int Layer>
TILE_GET_INFO_MEMBER(yunsun16_state::get_tile_info)
{
uint16_t code = m_vram[Layer][2 * tile_index + 0];
uint16_t attr = m_vram[Layer][2 * tile_index + 1];
tileinfo.set(0,
code,
attr & 0xf,
(attr & 0x20) ? TILE_FLIPX : 0);
}
/***************************************************************************
Video Hardware Init
***************************************************************************/
void yunsun16_state::video_start()
{
m_tilemap[0] = &machine().tilemap().create(
*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(yunsun16_state::get_tile_info<0>)), tilemap_mapper_delegate(*this, FUNC(yunsun16_state::tilemap_scan_pages)),
16, 16, 0x40, 0x40);
m_tilemap[1] = &machine().tilemap().create(
*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(yunsun16_state::get_tile_info<1>)), tilemap_mapper_delegate(*this, FUNC(yunsun16_state::tilemap_scan_pages)),
16, 16, 0x40, 0x40);
m_tilemap[0]->set_scrolldx(-0x34, 0);
m_tilemap[1]->set_scrolldx(-0x38, 0);
m_tilemap[0]->set_scrolldy(-0x10, 0);
m_tilemap[1]->set_scrolldy(-0x10, 0);
m_tilemap[0]->set_transparent_pen(0xff);
m_tilemap[1]->set_transparent_pen(0xff);
}
/***************************************************************************
Sprites Drawing
0.w X
2.w Y
4.w Code
6.w fedc ba98 7--- ----
---- ---- -6-- ---- Flip Y
---- ---- --5- ---- Flip X
---- ---- ---4 3210 Color
***************************************************************************/
void yunsun16_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect )
{
int offs;
const rectangle &visarea = m_screen->visible_area();
int max_x = visarea.max_x + 1;
int max_y = visarea.max_y + 1;
int pri = *m_priorityram & 3;
int pri_mask;
switch (pri)
{
case 1:
pri_mask = (1 << 1) | (1 << 2) | (1 << 3);
break;
case 2:
pri_mask = (1 << 2) | (1 << 3);
break;
case 3:
default:
pri_mask = 0;
break;
}
for (offs = (m_spriteram.bytes() - 8) / 2 ; offs >= 0; offs -= 8 / 2)
{
int x = m_spriteram[offs + 0];
int y = m_spriteram[offs + 1];
int code = m_spriteram[offs + 2];
int attr = m_spriteram[offs + 3];
int flipx = attr & 0x20;
int flipy = attr & 0x40;
x += m_sprites_scrolldx;
y += m_sprites_scrolldy;
if (flip_screen()) // not used?
{
flipx = !flipx; x = max_x - x - 16;
flipy = !flipy; y = max_y - y - 16;
}
m_gfxdecode->gfx(1)->prio_transpen(bitmap,cliprect,
code,
attr & 0x1f,
flipx, flipy,
x,y,
screen.priority(),
pri_mask,15);
}
}
/***************************************************************************
Screen Drawing
***************************************************************************/
uint32_t yunsun16_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
m_tilemap[0]->set_scrollx(0, m_scrollram[0][0]);
m_tilemap[0]->set_scrolly(0, m_scrollram[0][1]);
m_tilemap[1]->set_scrollx(0, m_scrollram[1][0]);
m_tilemap[1]->set_scrolly(0, m_scrollram[1][1]);
//popmessage("%04X", *m_priorityram);
screen.priority().fill(0, cliprect);
if ((*m_priorityram & 0x0c) == 4)
{
/* The color of the this layer's transparent pen goes below everything */
m_tilemap[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
m_tilemap[0]->draw(screen, bitmap, cliprect, 0, 1);
m_tilemap[1]->draw(screen, bitmap, cliprect, 0, 2);
}
else if ((*m_priorityram & 0x0c) == 8)
{
/* The color of the this layer's transparent pen goes below everything */
m_tilemap[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
m_tilemap[1]->draw(screen, bitmap, cliprect, 0, 1);
m_tilemap[0]->draw(screen, bitmap, cliprect, 0, 2);
}
draw_sprites(screen, bitmap, cliprect);
return 0;
}