From f3e93eff6adc439000c460b9edffd7792d15839a Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Fri, 27 May 2022 06:31:12 +0200 Subject: 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 --- scripts/target/mame/arcade.lua | 2 - src/mame/drivers/arkanoid.cpp | 5 +- src/mame/drivers/funworld.cpp | 2 +- src/mame/drivers/jack.cpp | 30 +- src/mame/drivers/model2.cpp | 72 ++++- src/mame/drivers/nmk16.cpp | 17 +- src/mame/drivers/sidearms.cpp | 147 +++++++++- src/mame/drivers/snk.cpp | 4 +- src/mame/drivers/vamphalf.cpp | 83 +++--- src/mame/drivers/xain.cpp | 2 +- src/mame/drivers/yunsun16.cpp | 643 ++++++++++++++++++++++++++++++----------- src/mame/includes/nmk16.h | 2 + src/mame/includes/yunsun16.h | 119 -------- src/mame/mame.lst | 5 +- src/mame/video/yunsun16.cpp | 201 ------------- 15 files changed, 770 insertions(+), 564 deletions(-) delete mode 100644 src/mame/includes/yunsun16.h delete mode 100644 src/mame/video/yunsun16.cpp diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua index d1cad02d63d..2708e0721e5 100644 --- a/scripts/target/mame/arcade.lua +++ b/scripts/target/mame/arcade.lua @@ -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") diff --git a/src/mame/drivers/arkanoid.cpp b/src/mame/drivers/arkanoid.cpp index 0356803858e..843c7a3e70c 100644 --- a/src/mame/drivers/arkanoid.cpp +++ b/src/mame/drivers/arkanoid.cpp @@ -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 diff --git a/src/mame/drivers/funworld.cpp b/src/mame/drivers/funworld.cpp index f3b0e35f359..b14dc5d9e68 100644 --- a/src/mame/drivers/funworld.cpp +++ b/src/mame/drivers/funworld.cpp @@ -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 ) diff --git a/src/mame/drivers/jack.cpp b/src/mame/drivers/jack.cpp index 3968a0a79f2..9ec0491af9d 100644 --- a/src/mame/drivers/jack.cpp +++ b/src/mame/drivers/jack.cpp @@ -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 diff --git a/src/mame/drivers/model2.cpp b/src/mame/drivers/model2.cpp index 5f35f250c7a..2211bd6442b 100644 --- a/src/mame/drivers/model2.cpp +++ b/src/mame/drivers/model2.cpp @@ -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 ) diff --git a/src/mame/drivers/nmk16.cpp b/src/mame/drivers/nmk16.cpp index 423b14a3549..4327ba9cc7b 100644 --- a/src/mame/drivers/nmk16.cpp +++ b/src/mame/drivers/nmk16.cpp @@ -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 diff --git a/src/mame/drivers/sidearms.cpp b/src/mame/drivers/sidearms.cpp index 692af6bcfc8..758685c0fd9 100644 --- a/src/mame/drivers/sidearms.cpp +++ b/src/mame/drivers/sidearms.cpp @@ -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 diff --git a/src/mame/drivers/snk.cpp b/src/mame/drivers/snk.cpp index 5d27bf1f398..c45e7175512 100644 --- a/src/mame/drivers/snk.cpp +++ b/src/mame/drivers/snk.cpp @@ -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| |-| | diff --git a/src/mame/drivers/vamphalf.cpp b/src/mame/drivers/vamphalf.cpp index c84b5331f7f..107e1e886e0 100644 --- a/src/mame/drivers/vamphalf.cpp +++ b/src/mame/drivers/vamphalf.cpp @@ -1389,36 +1389,57 @@ void vamphalf_qdsp_state::yorijori(machine_config &config) /* -Vamp 1/2 (Semi Vamp) -Danbi, 1999 - -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) +Vamp x1/2 (Danbi, 1999) +Hardware info by Guru +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 diff --git a/src/mame/drivers/xain.cpp b/src/mame/drivers/xain.cpp index 2c7f47116e0..f11ee9d9e0c 100644 --- a/src/mame/drivers/xain.cpp +++ b/src/mame/drivers/xain.cpp @@ -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); diff --git a/src/mame/drivers/yunsun16.cpp b/src/mame/drivers/yunsun16.cpp index 84801ba5ec6..7e3f4ec8e06 100644 --- a/src/mame/drivers/yunsun16.cpp +++ b/src/mame/drivers/yunsun16.cpp @@ -88,15 +88,315 @@ Stephh's notes (based on the games M68000 code and some tests) : ***************************************************************************/ #include "emu.h" -#include "includes/yunsun16.h" #include "cpu/m68000/m68000.h" #include "cpu/z80/z80.h" +#include "machine/gen_latch.h" #include "sound/okim6295.h" #include "sound/ymopl.h" + +#include "emupal.h" +#include "screen.h" #include "speaker.h" +#include "tilemap.h" + + +namespace { + +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") + { } + +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + virtual void video_start() override; + + // devices + required_device m_maincpu; + required_device m_gfxdecode; + required_device m_screen; + required_device m_palette; + + uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + + void main_map(address_map &map); + +private: + // memory pointers + required_shared_ptr_array m_vram; + required_shared_ptr_array m_scrollram; + required_shared_ptr m_priorityram; + required_shared_ptr m_spriteram; + + // other video-related elements + tilemap_t *m_tilemap[2]{}; + int8_t m_sprites_scrolldx = 0; + int8_t m_sprites_scrolldy = 0; + + void int_ack_w(uint8_t data); + template void vram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + + TILEMAP_MAPPER_MEMBER(tilemap_scan_pages); + template 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); + +private: + required_device m_audiocpu; + required_device m_soundlatch; + + void sound_command_w(uint8_t data); + + void main_map(address_map &map); + void sound_map(address_map &map); + void sound_port_map(address_map &map); +}; + + +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; + +private: + required_memory_bank m_okibank; + + void sound_bank_w(uint8_t data); + + void main_map(address_map &map); + void oki_map(address_map &map); +}; + + +// video + +/*************************************************************************** + + + [ 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. + + +***************************************************************************/ + +/*************************************************************************** + + + 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 +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) +{ + 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 (int 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 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 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; +} + + +// machine + /*************************************************************************** @@ -110,7 +410,7 @@ void shocking_state::sound_bank_w(uint8_t data) m_okibank->set_entry(data & 3); } -template +template void yunsun16_state::vram_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_vram[Layer][offset]); @@ -134,37 +434,37 @@ void yunsun16_state::main_map(address_map &map) map(0x800102, 0x800103).nopw(); // ? $9080 map(0x800104, 0x800105).nopw(); // ? $90c0 map(0x80010a, 0x80010b).nopw(); // ? $9000 - map(0x80010c, 0x80010f).ram().share("scrollram_1"); // Scrolling - map(0x800114, 0x800117).ram().share("scrollram_0"); // Scrolling - map(0x800154, 0x800155).ram().share("priorityram"); // Priority + map(0x80010c, 0x80010f).ram().share(m_scrollram[1]); + map(0x800114, 0x800117).ram().share(m_scrollram[0]); + map(0x800154, 0x800155).ram().share(m_priorityram); map(0x8001fe, 0x8001fe).w(FUNC(yunsun16_state::int_ack_w)); - map(0x900000, 0x903fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); // Palette - map(0x908000, 0x90bfff).ram().w(FUNC(yunsun16_state::vram_w<1>)).share("vram_1"); // Layer 1 - map(0x90c000, 0x90ffff).ram().w(FUNC(yunsun16_state::vram_w<0>)).share("vram_0"); // Layer 0 - map(0x910000, 0x910fff).ram().share("spriteram"); // Sprites + map(0x900000, 0x903fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); + map(0x908000, 0x90bfff).ram().w(FUNC(yunsun16_state::vram_w<1>)).share(m_vram[1]); // Layer 1 + map(0x90c000, 0x90ffff).ram().w(FUNC(yunsun16_state::vram_w<0>)).share(m_vram[0]); // Layer 0 + map(0x910000, 0x910fff).ram().share(m_spriteram); map(0xff0000, 0xffffff).ram(); } void magicbub_state::main_map(address_map &map) { yunsun16_state::main_map(map); - map(0x800189, 0x800189).w(FUNC(magicbub_state::magicbub_sound_command_w)); + map(0x800189, 0x800189).w(FUNC(magicbub_state::sound_command_w)); } void shocking_state::main_map(address_map &map) { yunsun16_state::main_map(map); - map(0x800181, 0x800181).w(FUNC(shocking_state::sound_bank_w)); // Sound - map(0x800189, 0x800189).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // Sound + map(0x800181, 0x800181).w(FUNC(shocking_state::sound_bank_w)); + map(0x800189, 0x800189).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); } -void magicbub_state::magicbub_sound_command_w(uint8_t data) +void magicbub_state::sound_command_w(uint8_t data) { // HACK: the game continuously sends this. It'll play the oki sample number 0 on each voice. That sample is 00000-00000. - if ((data & 0xff) != 0x3a) + if (data != 0x3a) { - m_soundlatch->write(data & 0xff); + m_soundlatch->write(data); m_audiocpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero); } } @@ -189,13 +489,13 @@ void magicbub_state::sound_port_map(address_map &map) map.global_mask(0xff); map(0x10, 0x11).rw("ymsnd", FUNC(ym3812_device::read), FUNC(ym3812_device::write)); map(0x18, 0x18).r(m_soundlatch, FUNC(generic_latch_8_device::read)); // From Main CPU - map(0x1c, 0x1c).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // M6295 + map(0x1c, 0x1c).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); } void shocking_state::oki_map(address_map &map) { map(0x00000, 0x1ffff).rom(); - map(0x20000, 0x3ffff).bankr("okibank"); + map(0x20000, 0x3ffff).bankr(m_okibank); } @@ -213,7 +513,7 @@ void shocking_state::oki_map(address_map &map) ***************************************************************************/ static INPUT_PORTS_START( magicbub ) - PORT_START("INPUTS") /* $800000.w */ + PORT_START("INPUTS") // $800000.w PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) @@ -231,7 +531,7 @@ static INPUT_PORTS_START( magicbub ) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_START("SYSTEM") /* $800019.b */ + PORT_START("SYSTEM") // $800019.b PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -241,7 +541,7 @@ static INPUT_PORTS_START( magicbub ) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_START("DSW1") /* $80001b.b -> $ff0003.b */ + PORT_START("DSW1") // $80001b.b -> $ff0003.b PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coinage ) ) PORT_DIPSETTING( 0x0002, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x0004, DEF_STR( 2C_1C ) ) @@ -262,17 +562,17 @@ static INPUT_PORTS_START( magicbub ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_SERVICE( 0x0080, IP_ACTIVE_LOW ) - PORT_START("DSW2") /* $80001d.b -> $ff0004.b */ + PORT_START("DSW2") // $80001d.b -> $ff0004.b PORT_DIPUNUSED( 0x0001, IP_ACTIVE_LOW ) PORT_DIPUNUSED( 0x0002, IP_ACTIVE_LOW ) PORT_DIPNAME( 0x000c, 0x000c, "1P Vs 2P Rounds (Start)" ) - PORT_DIPSETTING( 0x0008, "Best of 1" ) /* 1 winning round needed */ - PORT_DIPSETTING( 0x000c, "Best of 3" ) /* 2 winning rounds needed */ - PORT_DIPSETTING( 0x0004, "Best of 5" ) /* 3 winning rounds needed */ - PORT_DIPSETTING( 0x0000, "Best of 7" ) /* 4 winning rounds needed */ + PORT_DIPSETTING( 0x0008, "Best of 1" ) // 1 winning round needed + PORT_DIPSETTING( 0x000c, "Best of 3" ) // 2 winning rounds needed + PORT_DIPSETTING( 0x0004, "Best of 5" ) // 3 winning rounds needed + PORT_DIPSETTING( 0x0000, "Best of 7" ) // 4 winning rounds needed PORT_DIPNAME( 0x0010, 0x0010, "1P Vs 2P Rounds (Join-in)" ) - PORT_DIPSETTING( 0x0000, "Best of 1" ) /* 1 winning round needed */ - PORT_DIPSETTING( 0x0010, "Best of 3" ) /* 2 winning rounds needed */ + PORT_DIPSETTING( 0x0000, "Best of 1" ) // 1 winning round needed + PORT_DIPSETTING( 0x0010, "Best of 3" ) // 2 winning rounds needed PORT_DIPUNUSED( 0x0020, IP_ACTIVE_LOW ) PORT_DIPUNUSED( 0x0040, IP_ACTIVE_LOW ) PORT_DIPUNUSED( 0x0080, IP_ACTIVE_LOW ) @@ -286,7 +586,7 @@ static INPUT_PORTS_START( magicbua ) PORT_INCLUDE(magicbub) PORT_MODIFY("DSW2") - PORT_DIPNAME( 0x0003, 0x0003, "Nudity" ) /* Read notes */ + PORT_DIPNAME( 0x0003, 0x0003, "Nudity" ) // Read notes PORT_DIPSETTING( 0x0003, "Soft only" ) PORT_DIPSETTING( 0x0000, "Hard only" ) PORT_DIPSETTING( 0x0001, "Soft and Hard" ) @@ -298,7 +598,7 @@ INPUT_PORTS_END ***************************************************************************/ static INPUT_PORTS_START( shocking ) - PORT_START("INPUTS") /* $800000.w */ + PORT_START("INPUTS") // $800000.w PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) @@ -316,7 +616,7 @@ static INPUT_PORTS_START( shocking ) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_START("SYSTEM") /* $800019.b */ + PORT_START("SYSTEM") // $800019.b PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -326,7 +626,7 @@ static INPUT_PORTS_START( shocking ) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_START("DSW1") /* $80001b.b -> $ff0c06.b */ + PORT_START("DSW1") // $80001b.b -> $ff0c06.b PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coinage ) ) PORT_DIPSETTING( 0x0001, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x0002, DEF_STR( 2C_1C ) ) @@ -340,11 +640,11 @@ static INPUT_PORTS_START( shocking ) PORT_DIPUNUSED( 0x0010, IP_ACTIVE_LOW ) PORT_DIPUNUSED( 0x0020, IP_ACTIVE_LOW ) PORT_DIPUNUSED( 0x0040, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unused ) ) /* Used to be "Language" - read notes */ - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) /* "Korean" */ - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) /* "English" */ + PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unused ) ) // Used to be "Language" - read notes + PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) // "Korean" + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) // "English" - PORT_START("DSW2") /* $80001d.b -> $ff0c07.b */ + PORT_START("DSW2") // $80001d.b -> $ff0c07.b PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Difficulty ) ) PORT_DIPSETTING( 0x0004, DEF_STR( Easiest ) ) PORT_DIPSETTING( 0x0005, DEF_STR( Easier ) ) @@ -371,7 +671,7 @@ INPUT_PORTS_END ***************************************************************************/ static INPUT_PORTS_START( bombkick ) - PORT_START("INPUTS") /* $800000.w */ + PORT_START("INPUTS") // $800000.w PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) @@ -389,7 +689,7 @@ static INPUT_PORTS_START( bombkick ) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_START("SYSTEM") /* $800019.b */ + PORT_START("SYSTEM") // $800019.b PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -399,7 +699,7 @@ static INPUT_PORTS_START( bombkick ) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_START("DSW1") /* $80001b.b -> $ff0004.b */ + PORT_START("DSW1") // $80001b.b -> $ff0004.b PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coinage ) ) PORT_DIPSETTING( 0x0002, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x0004, DEF_STR( 2C_1C ) ) @@ -414,7 +714,7 @@ static INPUT_PORTS_START( bombkick ) PORT_DIPSETTING( 0x0018, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x0008, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Very_Hard ) ) - PORT_DIPNAME( 0x0020, 0x0000, "Special Powers" ) /* Only has an effect when difficulty set to "Easy" or "Normal" - read notes */ + PORT_DIPNAME( 0x0020, 0x0000, "Special Powers" ) // Only has an effect when difficulty set to "Easy" or "Normal" - read notes PORT_DIPSETTING( 0x0020, "2" ) PORT_DIPSETTING( 0x0000, "3" ) PORT_DIPNAME( 0x0040, 0x0000, DEF_STR( Demo_Sounds ) ) @@ -422,28 +722,28 @@ static INPUT_PORTS_START( bombkick ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_SERVICE( 0x0080, IP_ACTIVE_LOW ) - PORT_START("DSW2") /* $80001d.b -> $ff0005.b */ + PORT_START("DSW2") // $80001d.b -> $ff0005.b PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Lives ) ) PORT_DIPSETTING( 0x0000, "2" ) PORT_DIPSETTING( 0x0003, "3" ) PORT_DIPSETTING( 0x0002, "4" ) PORT_DIPSETTING( 0x0001, "5" ) - PORT_DIPNAME( 0x0004, 0x0004, "DSW 2:3 - LEAVE OFF!" ) /* Must be OFF ! - read notes */ + PORT_DIPNAME( 0x0004, 0x0004, "DSW 2:3 - LEAVE OFF!" ) // Must be OFF ! - read notes PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, "DSW 2:4 - LEAVE OFF!" ) /* Must be OFF ! - read notes */ + PORT_DIPNAME( 0x0008, 0x0008, "DSW 2:4 - LEAVE OFF!" ) // Must be OFF ! - read notes PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0010, 0x0000, "DSW 2:5 - LEAVE ON!" ) /* Must be ON ! - read notes */ + PORT_DIPNAME( 0x0010, 0x0000, "DSW 2:5 - LEAVE ON!" ) // Must be ON ! - read notes PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, "DSW 2:6 - LEAVE OFF!" ) /* Must be OFF ! - read notes */ + PORT_DIPNAME( 0x0020, 0x0020, "DSW 2:6 - LEAVE OFF!" ) // Must be OFF ! - read notes PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0000, "DSW 2:7 - LEAVE ON!" ) /* Must be ON ! - read notes */ + PORT_DIPNAME( 0x0040, 0x0000, "DSW 2:7 - LEAVE ON!" ) // Must be ON ! - read notes PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, "DSW 2:8 - LEAVE OFF!" ) /* Must be OFF ! - read notes */ + PORT_DIPNAME( 0x0080, 0x0080, "DSW 2:8 - LEAVE OFF!" ) // Must be OFF ! - read notes PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) INPUT_PORTS_END @@ -453,7 +753,7 @@ INPUT_PORTS_END ***************************************************************************/ static INPUT_PORTS_START( paprazzi ) - PORT_START("INPUTS") /* $800000.w */ + PORT_START("INPUTS") // $800000.w PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) @@ -471,7 +771,7 @@ static INPUT_PORTS_START( paprazzi ) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_START("SYSTEM") /* $800019.b */ + PORT_START("SYSTEM") // $800019.b PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -481,7 +781,7 @@ static INPUT_PORTS_START( paprazzi ) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_START("DSW1") /* $80001b.b -> $ff0aca.b */ + PORT_START("DSW1") // $80001b.b -> $ff0aca.b PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Coinage ) ) PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x0001, DEF_STR( 2C_1C ) ) @@ -491,7 +791,7 @@ static INPUT_PORTS_START( paprazzi ) PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Language ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Korean ) ) PORT_DIPSETTING( 0x0008, DEF_STR( English ) ) - PORT_DIPNAME( 0x0010, 0x0010, "Enemies" ) // soemthing else.. but related to enemy types + PORT_DIPNAME( 0x0010, 0x0010, "Enemies" ) // something else.. but related to enemy types PORT_DIPSETTING( 0x0000, "Type 1" ) PORT_DIPSETTING( 0x0010, "Type 2" ) PORT_DIPUNKNOWN( 0x0020, 0x0020 ) @@ -502,7 +802,7 @@ static INPUT_PORTS_START( paprazzi ) PORT_DIPSETTING( 0x00c0, "150" ) PORT_START("DSW2") /* $80001d.b -> $ff0acb.b */ - PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Difficulty ) ) //not sure what is it . tested all 3 bits tested @ $be48 + PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Difficulty ) ) //not sure what it is. All 3 bits tested @ $be48 PORT_DIPSETTING( 0x0004, DEF_STR( Easiest ) ) PORT_DIPSETTING( 0x0005, DEF_STR( Easier ) ) PORT_DIPSETTING( 0x0006, DEF_STR( Easy ) ) @@ -534,7 +834,7 @@ INPUT_PORTS_END ***************************************************************************/ -/* 16x16x4 */ +// 16x16x4 static const gfx_layout layout_16x16x4 = { 16,16, @@ -546,7 +846,7 @@ static const gfx_layout layout_16x16x4 = 16*16 }; -/* 16x16x8 */ +// 16x16x8 static const gfx_layout layout_16x16x8 = { 16,16, @@ -560,8 +860,8 @@ static const gfx_layout layout_16x16x8 = static GFXDECODE_START( gfx_yunsun16 ) - GFXDECODE_ENTRY( "gfx1", 0, layout_16x16x8, 0x1000, 0x10 ) // [0] Layers - GFXDECODE_ENTRY( "gfx2", 0, layout_16x16x4, 0x0000, 0x20 ) // [1] Sprites + GFXDECODE_ENTRY( "tiles", 0, layout_16x16x8, 0x1000, 0x10 ) + GFXDECODE_ENTRY( "sprites", 0, layout_16x16x4, 0x0000, 0x20 ) GFXDECODE_END @@ -603,7 +903,7 @@ void shocking_state::machine_reset() void magicbub_state::magicbub(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware M68000(config, m_maincpu, XTAL(16'000'000)); m_maincpu->set_addrmap(AS_PROGRAM, &magicbub_state::main_map); @@ -611,9 +911,9 @@ void magicbub_state::magicbub(machine_config &config) audiocpu.set_addrmap(AS_PROGRAM, &magicbub_state::sound_map); audiocpu.set_addrmap(AS_IO, &magicbub_state::sound_port_map); - /* video hardware */ + // video hardware SCREEN(config, m_screen, SCREEN_TYPE_RASTER); - m_screen->set_raw(XTAL(16'000'000)/2, 512, 0x20, 0x180-0x20, 260, 0, 0xe0); /* TODO: completely inaccurate */ + m_screen->set_raw(XTAL(16'000'000)/2, 512, 0x20, 0x180-0x20, 260, 0, 0xe0); // TODO: completely inaccurate m_screen->set_screen_update(FUNC(magicbub_state::screen_update)); m_screen->set_palette(m_palette); m_screen->screen_vblank().set_inputline(m_maincpu, M68K_IRQ_2, ASSERT_LINE); @@ -621,7 +921,7 @@ void magicbub_state::magicbub(machine_config &config) GFXDECODE(config, m_gfxdecode, m_palette, gfx_yunsun16); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 8192); - /* sound hardware */ + // sound hardware SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); @@ -644,13 +944,13 @@ void magicbub_state::magicbub(machine_config &config) void shocking_state::shocking(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware M68000(config, m_maincpu, XTAL(16'000'000)); m_maincpu->set_addrmap(AS_PROGRAM, &shocking_state::main_map); - /* video hardware */ + // video hardware SCREEN(config, m_screen, SCREEN_TYPE_RASTER); - m_screen->set_raw(XTAL(16'000'000)/2, 512, 0, 0x180-4, 260, 0, 0xe0); /* TODO: completely inaccurate */ + m_screen->set_raw(XTAL(16'000'000)/2, 512, 0, 0x180-4, 260, 0, 0xe0); // TODO: completely inaccurate m_screen->set_screen_update(FUNC(shocking_state::screen_update)); m_screen->set_palette(m_palette); m_screen->screen_vblank().set_inputline(m_maincpu, M68K_IRQ_2, ASSERT_LINE); @@ -658,7 +958,7 @@ void shocking_state::shocking(machine_config &config) GFXDECODE(config, m_gfxdecode, m_palette, gfx_yunsun16); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 8192); - /* sound hardware */ + // sound hardware SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); @@ -733,115 +1033,115 @@ Sound section: ***************************************************************************/ -ROM_START( magicbub ) /* YS1302 PCB */ +ROM_START( magicbub ) // YS1302 PCB - ROM_REGION( 0x080000, "maincpu", 0 ) /* 68000 Code */ + ROM_REGION( 0x080000, "maincpu", 0 ) // 68000 Code ROM_LOAD16_BYTE( "magbuble.u33", 0x000000, 0x040000, CRC(18fdd582) SHA1(89f4c52ec0e213285a04743da88f6e39408b573d) ) ROM_LOAD16_BYTE( "magbuble.u32", 0x000001, 0x040000, CRC(f6ea7004) SHA1(069541e37b60370810451616ee66bbd05dc10137) ) - ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */ + ROM_REGION( 0x10000, "audiocpu", 0 ) // Z80 Code ROM_LOAD( "u143.bin", 0x00000, 0x10000, CRC(04192753) SHA1(9c56ba70e1d074906ea1dc593c2a8516c6ba2074) ) - ROM_REGION( 0x200000*8, "gfx1", ROMREGION_ERASEFF ) /* 16x16x8 */ - ROMX_LOAD( "magbuble.u67", 0x000000, 0x080000, CRC(6355e57d) SHA1(5e9234dd474ddcf0a9e1001080f3de11c7d0ee55) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "magbuble.u68", 0x000002, 0x080000, CRC(53ae6c2b) SHA1(43c02aa4cfdfa5bc009b42cd4be633787a35cb59) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "magbuble.u69", 0x000004, 0x080000, CRC(b892e64c) SHA1(b1156c8f02371ee2c5d6c930483c50eef5da10b5) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "magbuble.u70", 0x000006, 0x080000, CRC(37794837) SHA1(11597614e1e048544326fbbe281b364278d6350d) , ROM_GROUPWORD | ROM_SKIP(6)) + ROM_REGION( 0x200000*8, "tiles", ROMREGION_ERASEFF ) // 16x16x8 + ROM_LOAD64_WORD( "magbuble.u67", 0x000000, 0x080000, CRC(6355e57d) SHA1(5e9234dd474ddcf0a9e1001080f3de11c7d0ee55) ) + ROM_LOAD64_WORD( "magbuble.u68", 0x000002, 0x080000, CRC(53ae6c2b) SHA1(43c02aa4cfdfa5bc009b42cd4be633787a35cb59) ) + ROM_LOAD64_WORD( "magbuble.u69", 0x000004, 0x080000, CRC(b892e64c) SHA1(b1156c8f02371ee2c5d6c930483c50eef5da10b5) ) + ROM_LOAD64_WORD( "magbuble.u70", 0x000006, 0x080000, CRC(37794837) SHA1(11597614e1e048544326fbbe281b364278d6350d) ) - ROM_REGION( 0x080000, "gfx2", 0 ) /* 16x16x4 */ + ROM_REGION( 0x080000, "sprites", 0 ) // 16x16x4 ROM_LOAD( "u20.bin", 0x000000, 0x020000, CRC(f70e3b8c) SHA1(d925c27bbd0f915228d22589a98e3ea7181a87ca) ) ROM_LOAD( "u21.bin", 0x020000, 0x020000, CRC(ad082cf3) SHA1(0bc3cf6c54d47be4f1940192fc1585cb48767e97) ) ROM_LOAD( "u22.bin", 0x040000, 0x020000, CRC(7c68df7a) SHA1(88acf9dd43892a790415b418f77d88c747aa84f5) ) ROM_LOAD( "u23.bin", 0x060000, 0x020000, CRC(c7763fc1) SHA1(ed68b3c3c5155073afb7b55d6d92d3057e40df6c) ) - ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_REGION( 0x40000, "oki", 0 ) ROM_LOAD( "u131.bin", 0x000000, 0x020000, CRC(03e04e89) SHA1(7d80e6a7be2322e32e40acae72bedd8d7e90ad33) ) ROM_END -ROM_START( magicbuba ) /* YS1302 PCB */ +ROM_START( magicbuba ) // YS1302 PCB - ROM_REGION( 0x080000, "maincpu", 0 ) /* 68000 Code */ + ROM_REGION( 0x080000, "maincpu", 0 ) // 68000 Code ROM_LOAD16_BYTE( "u33.bin", 0x000000, 0x040000, CRC(a8164a02) SHA1(7275209d5d73881839f7fa3ac7d362194ef2cfd9) ) ROM_LOAD16_BYTE( "u32.bin", 0x000001, 0x040000, CRC(58f885ad) SHA1(e66f5bb1ac0acd9abc2def439af7f932c3a09cbd) ) - ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */ + ROM_REGION( 0x10000, "audiocpu", 0 ) // Z80 Code ROM_LOAD( "u143.bin", 0x00000, 0x10000, CRC(04192753) SHA1(9c56ba70e1d074906ea1dc593c2a8516c6ba2074) ) - ROM_REGION( 0x200000*8, "gfx1", ROMREGION_ERASEFF ) /* 16x16x8 */ - ROMX_LOAD( "u67.bin", 0x000000, 0x080000, CRC(89523dcd) SHA1(edea2bbec615aa253d940bbc3bbdb33f6873a8ee) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u68.bin", 0x000002, 0x080000, CRC(30e01a70) SHA1(3a98c2ef61307b44bf4e155663117199587ff4a4) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u69.bin", 0x000004, 0x080000, CRC(fe357f52) SHA1(5aff9a0bf70fc8a78820c4d13838ad238852c594) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u70.bin", 0x000006, 0x080000, CRC(1398a473) SHA1(f58bda6cbf5f553a9632d910b2ffef5d5bfedf18) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u71.bin", 0x200000, 0x080000, CRC(0844e017) SHA1(2ae5c9da521fea7aa5811627d7b3eca82cdc0821) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u72.bin", 0x200002, 0x080000, CRC(591db1cb) SHA1(636fbfe9e048d6418d43f947004b281f61081fd8) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u73.bin", 0x200004, 0x080000, CRC(cb4f3c3c) SHA1(fbd804bb70f09c2471557675af4c5b4abedea3b2) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u74.bin", 0x200006, 0x080000, CRC(81ff4910) SHA1(69241fe2d20b53984aa67f17d8da32e1b74ce696) , ROM_GROUPWORD | ROM_SKIP(6)) - - ROM_REGION( 0x080000, "gfx2", 0 ) /* 16x16x4 */ + ROM_REGION( 0x200000*8, "tiles", ROMREGION_ERASEFF ) // 16x16x8 + ROM_LOAD64_WORD( "u67.bin", 0x000000, 0x080000, CRC(89523dcd) SHA1(edea2bbec615aa253d940bbc3bbdb33f6873a8ee) ) + ROM_LOAD64_WORD( "u68.bin", 0x000002, 0x080000, CRC(30e01a70) SHA1(3a98c2ef61307b44bf4e155663117199587ff4a4) ) + ROM_LOAD64_WORD( "u69.bin", 0x000004, 0x080000, CRC(fe357f52) SHA1(5aff9a0bf70fc8a78820c4d13838ad238852c594) ) + ROM_LOAD64_WORD( "u70.bin", 0x000006, 0x080000, CRC(1398a473) SHA1(f58bda6cbf5f553a9632d910b2ffef5d5bfedf18) ) + ROM_LOAD64_WORD( "u71.bin", 0x200000, 0x080000, CRC(0844e017) SHA1(2ae5c9da521fea7aa5811627d7b3eca82cdc0821) ) + ROM_LOAD64_WORD( "u72.bin", 0x200002, 0x080000, CRC(591db1cb) SHA1(636fbfe9e048d6418d43f947004b281f61081fd8) ) + ROM_LOAD64_WORD( "u73.bin", 0x200004, 0x080000, CRC(cb4f3c3c) SHA1(fbd804bb70f09c2471557675af4c5b4abedea3b2) ) + ROM_LOAD64_WORD( "u74.bin", 0x200006, 0x080000, CRC(81ff4910) SHA1(69241fe2d20b53984aa67f17d8da32e1b74ce696) ) + + ROM_REGION( 0x080000, "sprites", 0 ) // 16x16x4 ROM_LOAD( "u20.bin", 0x000000, 0x020000, CRC(f70e3b8c) SHA1(d925c27bbd0f915228d22589a98e3ea7181a87ca) ) ROM_LOAD( "u21.bin", 0x020000, 0x020000, CRC(ad082cf3) SHA1(0bc3cf6c54d47be4f1940192fc1585cb48767e97) ) ROM_LOAD( "u22.bin", 0x040000, 0x020000, CRC(7c68df7a) SHA1(88acf9dd43892a790415b418f77d88c747aa84f5) ) ROM_LOAD( "u23.bin", 0x060000, 0x020000, CRC(c7763fc1) SHA1(ed68b3c3c5155073afb7b55d6d92d3057e40df6c) ) - ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_REGION( 0x40000, "oki", 0 ) ROM_LOAD( "u131.bin", 0x000000, 0x020000, CRC(03e04e89) SHA1(7d80e6a7be2322e32e40acae72bedd8d7e90ad33) ) ROM_END -ROM_START( magicbubb ) /* YS1302 PCB */ +ROM_START( magicbubb ) // YS1302 PCB - ROM_REGION( 0x080000, "maincpu", 0 ) /* 68000 Code */ + ROM_REGION( 0x080000, "maincpu", 0 ) // 68000 Code ROM_LOAD16_BYTE( "p2.u33", 0x000000, 0x040000, CRC(24e7e2b4) SHA1(9cceef7ee7eb909ab2f4f5438695d62e2448f142) ) ROM_LOAD16_BYTE( "p1.u32", 0x000001, 0x040000, CRC(0fa8b089) SHA1(acac9879a5c2ba34fa71af00907676b1f4a81b16) ) - ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */ + ROM_REGION( 0x10000, "audiocpu", 0 ) // Z80 Code ROM_LOAD( "u143.bin", 0x00000, 0x10000, CRC(04192753) SHA1(9c56ba70e1d074906ea1dc593c2a8516c6ba2074) ) - ROM_REGION( 0x200000*8, "gfx1", ROMREGION_ERASEFF ) /* 16x16x8 */ - ROMX_LOAD( "u67.bin", 0x000000, 0x080000, CRC(89523dcd) SHA1(edea2bbec615aa253d940bbc3bbdb33f6873a8ee) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u68.bin", 0x000002, 0x080000, CRC(30e01a70) SHA1(3a98c2ef61307b44bf4e155663117199587ff4a4) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u69.bin", 0x000004, 0x080000, CRC(fe357f52) SHA1(5aff9a0bf70fc8a78820c4d13838ad238852c594) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u70.bin", 0x000006, 0x080000, CRC(1398a473) SHA1(f58bda6cbf5f553a9632d910b2ffef5d5bfedf18) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u71.bin", 0x200000, 0x080000, CRC(0844e017) SHA1(2ae5c9da521fea7aa5811627d7b3eca82cdc0821) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u72.bin", 0x200002, 0x080000, CRC(591db1cb) SHA1(636fbfe9e048d6418d43f947004b281f61081fd8) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u73.bin", 0x200004, 0x080000, CRC(cb4f3c3c) SHA1(fbd804bb70f09c2471557675af4c5b4abedea3b2) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u74.bin", 0x200006, 0x080000, CRC(81ff4910) SHA1(69241fe2d20b53984aa67f17d8da32e1b74ce696) , ROM_GROUPWORD | ROM_SKIP(6)) - - ROM_REGION( 0x080000, "gfx2", 0 ) /* 16x16x4 */ + ROM_REGION( 0x200000*8, "tiles", ROMREGION_ERASEFF ) // 16x16x8 + ROM_LOAD64_WORD( "u67.bin", 0x000000, 0x080000, CRC(89523dcd) SHA1(edea2bbec615aa253d940bbc3bbdb33f6873a8ee) ) + ROM_LOAD64_WORD( "u68.bin", 0x000002, 0x080000, CRC(30e01a70) SHA1(3a98c2ef61307b44bf4e155663117199587ff4a4) ) + ROM_LOAD64_WORD( "u69.bin", 0x000004, 0x080000, CRC(fe357f52) SHA1(5aff9a0bf70fc8a78820c4d13838ad238852c594) ) + ROM_LOAD64_WORD( "u70.bin", 0x000006, 0x080000, CRC(1398a473) SHA1(f58bda6cbf5f553a9632d910b2ffef5d5bfedf18) ) + ROM_LOAD64_WORD( "u71.bin", 0x200000, 0x080000, CRC(0844e017) SHA1(2ae5c9da521fea7aa5811627d7b3eca82cdc0821) ) + ROM_LOAD64_WORD( "u72.bin", 0x200002, 0x080000, CRC(591db1cb) SHA1(636fbfe9e048d6418d43f947004b281f61081fd8) ) + ROM_LOAD64_WORD( "u73.bin", 0x200004, 0x080000, CRC(cb4f3c3c) SHA1(fbd804bb70f09c2471557675af4c5b4abedea3b2) ) + ROM_LOAD64_WORD( "u74.bin", 0x200006, 0x080000, CRC(81ff4910) SHA1(69241fe2d20b53984aa67f17d8da32e1b74ce696) ) + + ROM_REGION( 0x080000, "sprites", 0 ) // 16x16x4 ROM_LOAD( "1.u20", 0x000000, 0x020000, CRC(d3bba963) SHA1(39f04c8cb7f3c43a4df15a4a326c360a3c1e617c) ) ROM_LOAD( "3.u21", 0x020000, 0x020000, CRC(0017f6d3) SHA1(305aea32936babc86f60aac08f0e6a6af8b132ee) ) ROM_LOAD( "2.u22", 0x040000, 0x020000, CRC(7d71f838) SHA1(61b6e3af9a1b89b90297fe9c164e4ba62730caf0) ) ROM_LOAD( "4.u23", 0x060000, 0x020000, CRC(ecee1f63) SHA1(7a94ca5b749dc3fc302b28dbeab7e756167b0793) ) - ROM_REGION( 0x080000, "oki", 0 ) /* Samples */ + ROM_REGION( 0x080000, "oki", 0 ) ROM_LOAD( "u131", 0x000000, 0x040000, CRC(9bdb08e4) SHA1(4d8bdeb9b503b0959a6ae3f3fb3574350b01b1a1) ) ROM_END -ROM_START( magicbubc ) /* Found on a YS-0211 PCB like below */ +ROM_START( magicbubc ) // Found on a YS-0211 PCB like below - ROM_REGION( 0x080000, "maincpu", 0 ) /* 68000 Code */ + ROM_REGION( 0x080000, "maincpu", 0 ) // 68000 Code ROM_LOAD16_BYTE( "u33", 0x000000, 0x040000, CRC(db651555) SHA1(41dbf35147e1c646db585437b378529559d3decb) ) ROM_LOAD16_BYTE( "u32", 0x000001, 0x040000, CRC(c9cb4d88) SHA1(ee41b9b307b423db7a9d706dfa9718efefa3b625) ) - ROM_REGION( 0x200000*8, "gfx1", ROMREGION_ERASEFF ) /* 16x16x8 */ - ROMX_LOAD( "u67.bin", 0x000000, 0x080000, CRC(89523dcd) SHA1(edea2bbec615aa253d940bbc3bbdb33f6873a8ee) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u68.bin", 0x000002, 0x080000, CRC(30e01a70) SHA1(3a98c2ef61307b44bf4e155663117199587ff4a4) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u69.bin", 0x000004, 0x080000, CRC(fe357f52) SHA1(5aff9a0bf70fc8a78820c4d13838ad238852c594) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u70.bin", 0x000006, 0x080000, CRC(1398a473) SHA1(f58bda6cbf5f553a9632d910b2ffef5d5bfedf18) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u71.bin", 0x200000, 0x080000, CRC(0844e017) SHA1(2ae5c9da521fea7aa5811627d7b3eca82cdc0821) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u72.bin", 0x200002, 0x080000, CRC(591db1cb) SHA1(636fbfe9e048d6418d43f947004b281f61081fd8) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u73.bin", 0x200004, 0x080000, CRC(cb4f3c3c) SHA1(fbd804bb70f09c2471557675af4c5b4abedea3b2) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u74.bin", 0x200006, 0x080000, CRC(81ff4910) SHA1(69241fe2d20b53984aa67f17d8da32e1b74ce696) , ROM_GROUPWORD | ROM_SKIP(6)) - - ROM_REGION( 0x080000, "gfx2", 0 ) /* 16x16x4 */ + ROM_REGION( 0x200000*8, "tiles", ROMREGION_ERASEFF ) // 16x16x8 + ROM_LOAD64_WORD( "u67.bin", 0x000000, 0x080000, CRC(89523dcd) SHA1(edea2bbec615aa253d940bbc3bbdb33f6873a8ee) ) + ROM_LOAD64_WORD( "u68.bin", 0x000002, 0x080000, CRC(30e01a70) SHA1(3a98c2ef61307b44bf4e155663117199587ff4a4) ) + ROM_LOAD64_WORD( "u69.bin", 0x000004, 0x080000, CRC(fe357f52) SHA1(5aff9a0bf70fc8a78820c4d13838ad238852c594) ) + ROM_LOAD64_WORD( "u70.bin", 0x000006, 0x080000, CRC(1398a473) SHA1(f58bda6cbf5f553a9632d910b2ffef5d5bfedf18) ) + ROM_LOAD64_WORD( "u71.bin", 0x200000, 0x080000, CRC(0844e017) SHA1(2ae5c9da521fea7aa5811627d7b3eca82cdc0821) ) + ROM_LOAD64_WORD( "u72.bin", 0x200002, 0x080000, CRC(591db1cb) SHA1(636fbfe9e048d6418d43f947004b281f61081fd8) ) + ROM_LOAD64_WORD( "u73.bin", 0x200004, 0x080000, CRC(cb4f3c3c) SHA1(fbd804bb70f09c2471557675af4c5b4abedea3b2) ) + ROM_LOAD64_WORD( "u74.bin", 0x200006, 0x080000, CRC(81ff4910) SHA1(69241fe2d20b53984aa67f17d8da32e1b74ce696) ) + + ROM_REGION( 0x080000, "sprites", 0 ) // 16x16x4 ROM_LOAD( "u20.bin", 0x000000, 0x020000, CRC(f70e3b8c) SHA1(d925c27bbd0f915228d22589a98e3ea7181a87ca) ) ROM_LOAD( "u21.bin", 0x020000, 0x020000, CRC(ad082cf3) SHA1(0bc3cf6c54d47be4f1940192fc1585cb48767e97) ) ROM_LOAD( "u22.bin", 0x040000, 0x020000, CRC(7c68df7a) SHA1(88acf9dd43892a790415b418f77d88c747aa84f5) ) ROM_LOAD( "u23.bin", 0x060000, 0x020000, CRC(c7763fc1) SHA1(ed68b3c3c5155073afb7b55d6d92d3057e40df6c) ) - ROM_REGION( 0x080000, "oki", 0 ) /* Samples */ + ROM_REGION( 0x080000, "oki", 0 ) ROM_LOAD( "u131", 0x000000, 0x040000, CRC(9bdb08e4) SHA1(4d8bdeb9b503b0959a6ae3f3fb3574350b01b1a1) ) ROM_END @@ -894,27 +1194,27 @@ Notes: ROM_START( paprazzi ) - ROM_REGION( 0x080000, "maincpu", 0 ) /* 68000 Code */ + ROM_REGION( 0x080000, "maincpu", 0 ) // 68000 Code ROM_LOAD16_BYTE( "u33.bin", 0x000000, 0x020000, CRC(91f33abd) SHA1(694868bc1ef612ba47cb38957d965f271bf16105) ) ROM_LOAD16_BYTE( "u32.bin", 0x000001, 0x020000, CRC(ad5a3fec) SHA1(a2db3f2926bdbb5bc44f307b919a0431c9deb76d) ) - ROM_REGION( 0x200000*8, "gfx1", ROMREGION_ERASEFF ) /* 16x16x8 */ - ROMX_LOAD( "u67.bin", 0x000000, 0x080000, CRC(ea0b9e27) SHA1(e68f728158d0c42523002fe4270784891f5492ce) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u68.bin", 0x000002, 0x080000, CRC(6b7ff4dd) SHA1(b06036f08e8f65860077a71d91676bf5c2f804fc) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u69.bin", 0x000004, 0x080000, CRC(06749294) SHA1(375fe1c05355f789f846aa28b2012d08bfa2b2b5) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u70.bin", 0x000006, 0x080000, CRC(0adacdf8) SHA1(d33680e7139e78929284b81e880bd5baa45c6675) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u71.bin", 0x200000, 0x080000, CRC(69178fc4) SHA1(1ec06d360e098e15cfb673e5de7124a7c10757f8) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u72.bin", 0x200002, 0x080000, CRC(7c3384b9) SHA1(b9e1ba7ec009e15f1061c3994ed4cf48a8e700c6) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u73.bin", 0x200004, 0x080000, CRC(73fbc13e) SHA1(a19a05764ca010be025aae12fa82f97f5dc7d4b9) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u74.bin", 0x200006, 0x080000, CRC(f1afda11) SHA1(c62e318dde2ed7ac9b649764ccec8e991d2869c2) , ROM_GROUPWORD | ROM_SKIP(6)) - - ROM_REGION( 0x100000, "gfx2", 0 ) /* 16x16x4 */ + ROM_REGION( 0x200000*8, "tiles", ROMREGION_ERASEFF ) // 16x16x8 + ROM_LOAD64_WORD( "u67.bin", 0x000000, 0x080000, CRC(ea0b9e27) SHA1(e68f728158d0c42523002fe4270784891f5492ce) ) + ROM_LOAD64_WORD( "u68.bin", 0x000002, 0x080000, CRC(6b7ff4dd) SHA1(b06036f08e8f65860077a71d91676bf5c2f804fc) ) + ROM_LOAD64_WORD( "u69.bin", 0x000004, 0x080000, CRC(06749294) SHA1(375fe1c05355f789f846aa28b2012d08bfa2b2b5) ) + ROM_LOAD64_WORD( "u70.bin", 0x000006, 0x080000, CRC(0adacdf8) SHA1(d33680e7139e78929284b81e880bd5baa45c6675) ) + ROM_LOAD64_WORD( "u71.bin", 0x200000, 0x080000, CRC(69178fc4) SHA1(1ec06d360e098e15cfb673e5de7124a7c10757f8) ) + ROM_LOAD64_WORD( "u72.bin", 0x200002, 0x080000, CRC(7c3384b9) SHA1(b9e1ba7ec009e15f1061c3994ed4cf48a8e700c6) ) + ROM_LOAD64_WORD( "u73.bin", 0x200004, 0x080000, CRC(73fbc13e) SHA1(a19a05764ca010be025aae12fa82f97f5dc7d4b9) ) + ROM_LOAD64_WORD( "u74.bin", 0x200006, 0x080000, CRC(f1afda11) SHA1(c62e318dde2ed7ac9b649764ccec8e991d2869c2) ) + + ROM_REGION( 0x100000, "sprites", 0 ) // 16x16x4 ROM_LOAD( "u20.bin", 0x000000, 0x040000, CRC(ccb0ad6b) SHA1(ca66b7c7cb1418a86f209d071935aa45bb0a6e7d) ) ROM_LOAD( "u21.bin", 0x040000, 0x040000, CRC(125badf0) SHA1(ae63469e1fb1328c554774ca8c47878df2b02b96) ) ROM_LOAD( "u22.bin", 0x080000, 0x040000, CRC(436499c7) SHA1(ec1390b6d5656c99d91cf6425d319f4796bcb28a) ) ROM_LOAD( "u23.bin", 0x0c0000, 0x040000, CRC(358280fe) SHA1(eac3cb65fe75bc2da14896734f4a339480b54a2c) ) - ROM_REGION( 0x080000, "oki", 0 ) /* Samples */ + ROM_REGION( 0x080000, "oki", 0 ) ROM_LOAD( "u131.bin", 0x000000, 0x080000, CRC(bcf7aa12) SHA1(f7bf5258396ed0eb7e85eccf250c6d0a333a4d61) ) ROM_END @@ -927,69 +1227,69 @@ ROM_END ROM_START( shocking ) - ROM_REGION( 0x080000, "maincpu", 0 ) /* 68000 Code */ + ROM_REGION( 0x080000, "maincpu", 0 ) // 68000 Code ROM_LOAD16_BYTE( "yunsun16.u33", 0x000000, 0x040000, CRC(8a155521) SHA1(000c9095558e6cae30ce43a885c3fbcf55713f40) ) ROM_LOAD16_BYTE( "yunsun16.u32", 0x000001, 0x040000, CRC(c4998c10) SHA1(431ae1f9982a70421650e1bfe4bf87152e2fe85c) ) - ROM_REGION( 0x200000*8, "gfx1", ROMREGION_ERASEFF ) /* 16x16x8 */ - ROMX_LOAD( "yunsun16.u67", 0x000000, 0x080000, CRC(e30fb2c4) SHA1(0d33a1593d7ebcd5da6971a04c3300c0b4eef219) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "yunsun16.u68", 0x000002, 0x080000, CRC(7d702538) SHA1(ae4c8ca6f172e204589f2f70ca114f7c38e7cabd) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "yunsun16.u69", 0x000004, 0x080000, CRC(97447fec) SHA1(e52184f96b2337ccbef130ada21a959c8bc1d73b) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "yunsun16.u70", 0x000006, 0x080000, CRC(1b1f7895) SHA1(939c386dbef82e4833b7038e7c603d2ec67fa23e) , ROM_GROUPWORD | ROM_SKIP(6)) + ROM_REGION( 0x200000*8, "tiles", ROMREGION_ERASEFF ) // 16x16x8 + ROM_LOAD64_WORD( "yunsun16.u67", 0x000000, 0x080000, CRC(e30fb2c4) SHA1(0d33a1593d7ebcd5da6971a04c3300c0b4eef219) ) + ROM_LOAD64_WORD( "yunsun16.u68", 0x000002, 0x080000, CRC(7d702538) SHA1(ae4c8ca6f172e204589f2f70ca114f7c38e7cabd) ) + ROM_LOAD64_WORD( "yunsun16.u69", 0x000004, 0x080000, CRC(97447fec) SHA1(e52184f96b2337ccbef130ada21a959c8bc1d73b) ) + ROM_LOAD64_WORD( "yunsun16.u70", 0x000006, 0x080000, CRC(1b1f7895) SHA1(939c386dbef82e4833b7038e7c603d2ec67fa23e) ) - ROM_REGION( 0x100000, "gfx2", 0 ) /* 16x16x4 */ + ROM_REGION( 0x100000, "sprites", 0 ) // 16x16x4 ROM_LOAD( "yunsun16.u20", 0x000000, 0x040000, CRC(124699d0) SHA1(e55c8fb35f193abf98b1df07b94b99bf33bb5207) ) ROM_LOAD( "yunsun16.u21", 0x040000, 0x040000, CRC(4eea29a2) SHA1(c8173eeef0228a7635a96251ae3776726ffaf0f4) ) ROM_LOAD( "yunsun16.u22", 0x080000, 0x040000, CRC(d6db0388) SHA1(f5d8f7740b602c402a8dd6c4ebd357cf15a0dfac) ) ROM_LOAD( "yunsun16.u23", 0x0c0000, 0x040000, CRC(1fa33b2e) SHA1(4aa0dee8d34aac19cf6b7ba3f79ca022ad8d7760) ) - ROM_REGION( 0x080000, "oki", 0 ) /* Samples */ + ROM_REGION( 0x080000, "oki", 0 ) ROM_LOAD( "yunsun16.131", 0x000000, 0x080000, CRC(d0a1bb8c) SHA1(10f33521bd6031ed73ee5c7be1382165925aa8f8) ) ROM_END ROM_START( shockingk ) - ROM_REGION( 0x080000, "maincpu", 0 ) /* 68000 Code */ + ROM_REGION( 0x080000, "maincpu", 0 ) // 68000 Code ROM_LOAD16_BYTE( "u33.bin", 0x000000, 0x040000, CRC(870108ad) SHA1(2d059ee0f189ed404211f6041cd382f90b53d0cd) ) ROM_LOAD16_BYTE( "u32.bin", 0x000001, 0x040000, CRC(be2125f4) SHA1(fab38697266a1f95b8ebfff0c692d8e8239710aa) ) - ROM_REGION( 0x200000*8, "gfx1", ROMREGION_ERASEFF ) /* 16x16x8 */ - ROMX_LOAD( "u67.bin", 0x000000, 0x080000, CRC(7b0f3944) SHA1(0954610e0a1b39e8e68411b98c3fe487da6bd77a) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u68.bin", 0x000002, 0x080000, CRC(aa736da6) SHA1(0d8bbfc1fb014c6e662e4dc376bcd87b4157a7aa) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u69.bin", 0x000004, 0x080000, CRC(292bb626) SHA1(78a7ecc72dde6d397d2137e528dabcd247d382bd) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "u70.bin", 0x000006, 0x080000, CRC(2f9eeb81) SHA1(4e84c4451cbe3feee95a828790830e95f278f2e7) , ROM_GROUPWORD | ROM_SKIP(6)) + ROM_REGION( 0x200000*8, "tiles", ROMREGION_ERASEFF ) // 16x16x8 + ROM_LOAD64_WORD( "u67.bin", 0x000000, 0x080000, CRC(7b0f3944) SHA1(0954610e0a1b39e8e68411b98c3fe487da6bd77a) ) + ROM_LOAD64_WORD( "u68.bin", 0x000002, 0x080000, CRC(aa736da6) SHA1(0d8bbfc1fb014c6e662e4dc376bcd87b4157a7aa) ) + ROM_LOAD64_WORD( "u69.bin", 0x000004, 0x080000, CRC(292bb626) SHA1(78a7ecc72dde6d397d2137e528dabcd247d382bd) ) + ROM_LOAD64_WORD( "u70.bin", 0x000006, 0x080000, CRC(2f9eeb81) SHA1(4e84c4451cbe3feee95a828790830e95f278f2e7) ) - ROM_REGION( 0x100000, "gfx2", 0 ) /* 16x16x4 */ + ROM_REGION( 0x100000, "sprites", 0 ) // 16x16x4 ROM_LOAD( "u20.bin", 0x000000, 0x040000, CRC(3502a477) SHA1(f317c12491b35470ceb178793c6e332c3afcf2b5) ) ROM_LOAD( "u21.bin", 0x040000, 0x040000, CRC(ffe0af85) SHA1(124d8375fd366333fb3cb16bb94d7fa3c79534b3) ) ROM_LOAD( "u22.bin", 0x080000, 0x040000, CRC(59260de1) SHA1(2dd2d7ab93fa751cb9142400a3ff91391477d555) ) ROM_LOAD( "u23.bin", 0x0c0000, 0x040000, CRC(00e4af23) SHA1(a4d23f16748385dd8c87cae3e16593e5a0195c24) ) - ROM_REGION( 0x080000, "oki", 0 ) /* Samples */ + ROM_REGION( 0x080000, "oki", 0 ) ROM_LOAD( "yunsun16.131", 0x000000, 0x080000, CRC(d0a1bb8c) SHA1(10f33521bd6031ed73ee5c7be1382165925aa8f8) ) ROM_END ROM_START( shockingko ) - ROM_REGION( 0x080000, "maincpu", 0 ) /* 68000 Code */ + ROM_REGION( 0x080000, "maincpu", 0 ) // 68000 Code ROM_LOAD16_BYTE( "shoc_kor.u33", 0x000000, 0x040000, CRC(646303ec) SHA1(d01264f8495fdea882a9d75129665a67a9acfc42) ) ROM_LOAD16_BYTE( "shoc_kor.u32", 0x000001, 0x040000, CRC(6d9ac2f2) SHA1(2374cc053233940d5da610ec95539b43dfbeef3b) ) - ROM_REGION( 0x200000*8, "gfx1", ROMREGION_ERASEFF ) /* 16x16x8 */ - ROMX_LOAD( "shoc_kor.u67", 0x000000, 0x080000, CRC(e30fb2c4) SHA1(0d33a1593d7ebcd5da6971a04c3300c0b4eef219) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "shoc_kor.u68", 0x000002, 0x080000, CRC(7d702538) SHA1(ae4c8ca6f172e204589f2f70ca114f7c38e7cabd) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "shoc_kor.u69", 0x000004, 0x080000, CRC(97447fec) SHA1(e52184f96b2337ccbef130ada21a959c8bc1d73b) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "shoc_kor.u70", 0x000006, 0x080000, CRC(1b1f7895) SHA1(939c386dbef82e4833b7038e7c603d2ec67fa23e) , ROM_GROUPWORD | ROM_SKIP(6)) + ROM_REGION( 0x200000*8, "tiles", ROMREGION_ERASEFF ) // 16x16x8 + ROM_LOAD64_WORD( "shoc_kor.u67", 0x000000, 0x080000, CRC(e30fb2c4) SHA1(0d33a1593d7ebcd5da6971a04c3300c0b4eef219) ) + ROM_LOAD64_WORD( "shoc_kor.u68", 0x000002, 0x080000, CRC(7d702538) SHA1(ae4c8ca6f172e204589f2f70ca114f7c38e7cabd) ) + ROM_LOAD64_WORD( "shoc_kor.u69", 0x000004, 0x080000, CRC(97447fec) SHA1(e52184f96b2337ccbef130ada21a959c8bc1d73b) ) + ROM_LOAD64_WORD( "shoc_kor.u70", 0x000006, 0x080000, CRC(1b1f7895) SHA1(939c386dbef82e4833b7038e7c603d2ec67fa23e) ) - ROM_REGION( 0x100000, "gfx2", 0 ) /* 16x16x4 */ + ROM_REGION( 0x100000, "sprites", 0 ) // 16x16x4 ROM_LOAD( "shoc_kor.u20", 0x000000, 0x040000, CRC(9f729220) SHA1(3206c87c7aebd8912d3486225ccae0a6e3b2061e) ) ROM_LOAD( "shoc_kor.u21", 0x040000, 0x040000, CRC(cde84679) SHA1(261a6570449bce22458c49edee427dda6dc504b7) ) ROM_LOAD( "shoc_kor.u22", 0x080000, 0x040000, CRC(61fe98ab) SHA1(745fe3b9d513b8e10c405d9ba2e055de1a261e33) ) ROM_LOAD( "shoc_kor.u23", 0x0c0000, 0x040000, CRC(50c29191) SHA1(bb2c22f2f452ca0940e98df6efc754c7522696bd) ) - ROM_REGION( 0x080000, "oki", 0 ) /* Samples */ + ROM_REGION( 0x080000, "oki", 0 ) ROM_LOAD( "yunsun16.131", 0x000000, 0x080000, CRC(d0a1bb8c) SHA1(10f33521bd6031ed73ee5c7be1382165925aa8f8) ) ROM_END @@ -1005,50 +1305,53 @@ ROM_END ROM_START( bombkick ) - ROM_REGION( 0x080000, "maincpu", 0 ) /* 68000 Code */ + ROM_REGION( 0x080000, "maincpu", 0 ) // 68000 Code ROM_LOAD16_BYTE( "bk_u33", 0x000000, 0x040000, CRC(d6eb50bf) SHA1(a24c31f212f86f066c35d39da137ef0933323e43) ) ROM_LOAD16_BYTE( "bk_u32", 0x000001, 0x040000, CRC(d55388a2) SHA1(928f1a8933b986cf099e184002660e30ee1aeb0a) ) - ROM_REGION( 0x200000*8, "gfx1", ROMREGION_ERASEFF ) /* 16x16x8 */ - ROMX_LOAD( "bk_u67", 0x000000, 0x080000, CRC(1962f536) SHA1(36d3c73a322330058e963efcb9b81324724382cc) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "bk_u68", 0x000002, 0x080000, CRC(d80c75a4) SHA1(330c20d126b9f1f61f17750028c92843be55ec78) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "bk_u69", 0x000004, 0x080000, CRC(615e1e6f) SHA1(73875313010514ff5ca9e0bc96d6f93baaee391e) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "bk_u70", 0x000006, 0x080000, CRC(59817ef1) SHA1(d23df30b34223575d6a9c814f2ec3db990b18679) , ROM_GROUPWORD | ROM_SKIP(6)) + ROM_REGION( 0x200000*8, "tiles", ROMREGION_ERASEFF ) // 16x16x8 + ROM_LOAD64_WORD( "bk_u67", 0x000000, 0x080000, CRC(1962f536) SHA1(36d3c73a322330058e963efcb9b81324724382cc) ) + ROM_LOAD64_WORD( "bk_u68", 0x000002, 0x080000, CRC(d80c75a4) SHA1(330c20d126b9f1f61f17750028c92843be55ec78) ) + ROM_LOAD64_WORD( "bk_u69", 0x000004, 0x080000, CRC(615e1e6f) SHA1(73875313010514ff5ca9e0bc96d6f93baaee391e) ) + ROM_LOAD64_WORD( "bk_u70", 0x000006, 0x080000, CRC(59817ef1) SHA1(d23df30b34223575d6a9c814f2ec3db990b18679) ) - ROM_REGION( 0x100000, "gfx2", 0 ) /* 16x16x4 */ + ROM_REGION( 0x100000, "sprites", 0 ) // 16x16x4 ROM_LOAD( "bk_u20", 0x000000, 0x040000, CRC(c2b83e3f) SHA1(8bcd862dbf56cf579058d045f89f900ebfea2f1d) ) ROM_LOAD( "bk_u21", 0x040000, 0x040000, CRC(d6890192) SHA1(3c26a08580ceecf2f61f008861a459e175c99ed9) ) ROM_LOAD( "bk_u22", 0x080000, 0x040000, CRC(9538c46c) SHA1(d7d0e167d5abc2ee81eae6fde152b2f5cc716c0e) ) ROM_LOAD( "bk_u23", 0x0c0000, 0x040000, CRC(e3831f3d) SHA1(096658ee5a7b83d774b671c0a38113533c8751d1) ) - ROM_REGION( 0x080000, "oki", 0 ) /* Samples */ + ROM_REGION( 0x080000, "oki", 0 ) ROM_LOAD( "bk_u131", 0x000000, 0x080000, CRC(22cc5732) SHA1(38aefa4e543ea54e004eee428ee087121eb20905) ) ROM_END ROM_START( bombkicka ) // marked 'Bomb Kick 98' - ROM_REGION( 0x080000, "maincpu", 0 ) /* 68000 Code */ + ROM_REGION( 0x080000, "maincpu", 0 ) // 68000 Code ROM_LOAD16_BYTE( "u33.bin", 0x000000, 0x040000, CRC(4624d618) SHA1(4d9862740e1f759860eeedf56efd16e4bfdc3376) ) ROM_LOAD16_BYTE( "u32.bin", 0x000001, 0x040000, CRC(c5a105f3) SHA1(937fb780c5e0f635a03097263f68cad0732f3a21) ) - ROM_REGION( 0x200000*8, "gfx1", ROMREGION_ERASEFF ) /* 16x16x8 */ - ROMX_LOAD( "bk_u67", 0x000000, 0x080000, CRC(1962f536) SHA1(36d3c73a322330058e963efcb9b81324724382cc) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "bk_u68", 0x000002, 0x080000, CRC(d80c75a4) SHA1(330c20d126b9f1f61f17750028c92843be55ec78) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "bk_u69", 0x000004, 0x080000, CRC(615e1e6f) SHA1(73875313010514ff5ca9e0bc96d6f93baaee391e) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "bk_u70", 0x000006, 0x080000, CRC(59817ef1) SHA1(d23df30b34223575d6a9c814f2ec3db990b18679) , ROM_GROUPWORD | ROM_SKIP(6)) + ROM_REGION( 0x200000*8, "tiles", ROMREGION_ERASEFF ) // 16x16x8 + ROM_LOAD64_WORD( "bk_u67", 0x000000, 0x080000, CRC(1962f536) SHA1(36d3c73a322330058e963efcb9b81324724382cc) ) + ROM_LOAD64_WORD( "bk_u68", 0x000002, 0x080000, CRC(d80c75a4) SHA1(330c20d126b9f1f61f17750028c92843be55ec78) ) + ROM_LOAD64_WORD( "bk_u69", 0x000004, 0x080000, CRC(615e1e6f) SHA1(73875313010514ff5ca9e0bc96d6f93baaee391e) ) + ROM_LOAD64_WORD( "bk_u70", 0x000006, 0x080000, CRC(59817ef1) SHA1(d23df30b34223575d6a9c814f2ec3db990b18679) ) - ROM_REGION( 0x100000, "gfx2", 0 ) /* 16x16x4 */ + ROM_REGION( 0x100000, "sprites", 0 ) // 16x16x4 ROM_LOAD( "bk_u20", 0x000000, 0x040000, CRC(c2b83e3f) SHA1(8bcd862dbf56cf579058d045f89f900ebfea2f1d) ) ROM_LOAD( "bk_u21", 0x040000, 0x040000, CRC(d6890192) SHA1(3c26a08580ceecf2f61f008861a459e175c99ed9) ) ROM_LOAD( "bk_u22", 0x080000, 0x040000, CRC(9538c46c) SHA1(d7d0e167d5abc2ee81eae6fde152b2f5cc716c0e) ) ROM_LOAD( "bk_u23", 0x0c0000, 0x040000, CRC(e3831f3d) SHA1(096658ee5a7b83d774b671c0a38113533c8751d1) ) - ROM_REGION( 0x080000, "oki", 0 ) /* Samples */ + ROM_REGION( 0x080000, "oki", 0 ) ROM_LOAD( "bk_u131", 0x000000, 0x080000, CRC(22cc5732) SHA1(38aefa4e543ea54e004eee428ee087121eb20905) ) ROM_END +} // anonymous namespace + + /*************************************************************************** diff --git a/src/mame/includes/nmk16.h b/src/mame/includes/nmk16.h index 8eb33f98dd4..e1f86b6fb41 100644 --- a/src/mame/includes/nmk16.h +++ b/src/mame/includes/nmk16.h @@ -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); diff --git a/src/mame/includes/yunsun16.h b/src/mame/includes/yunsun16.h deleted file mode 100644 index b3490e4f1be..00000000000 --- a/src/mame/includes/yunsun16.h +++ /dev/null @@ -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 m_maincpu; - required_device m_gfxdecode; - required_device m_screen; - required_device m_palette; - -private: - void int_ack_w(uint8_t data); - - /* memory pointers */ - required_shared_ptr_array m_vram; - required_shared_ptr_array m_scrollram; - required_shared_ptr m_priorityram; - required_shared_ptr m_spriteram; - - /* other video-related elements */ - tilemap_t *m_tilemap[2]{}; - int m_sprites_scrolldx = 0; - int m_sprites_scrolldy = 0; - - template void vram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); - - TILEMAP_MAPPER_MEMBER(tilemap_scan_pages); - template 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 m_audiocpu; - required_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 diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 36434159370..e95249df34f 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -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) diff --git a/src/mame/video/yunsun16.cpp b/src/mame/video/yunsun16.cpp deleted file mode 100644 index 3cdda297221..00000000000 --- a/src/mame/video/yunsun16.cpp +++ /dev/null @@ -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 -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; -} -- cgit v1.2.3