summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2022-05-27 06:31:12 +0200
committer Ivan Vangelista <mesgnet@yahoo.it>2022-05-27 06:31:12 +0200
commitf3e93eff6adc439000c460b9edffd7792d15839a (patch)
tree23425807c6b7425d70fe2313966e4615d9fb5014
parenta683ea2d1adf22f911f76bdc228ad8bc32787d0a (diff)
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
-rw-r--r--scripts/target/mame/arcade.lua2
-rw-r--r--src/mame/drivers/arkanoid.cpp5
-rw-r--r--src/mame/drivers/funworld.cpp2
-rw-r--r--src/mame/drivers/jack.cpp30
-rw-r--r--src/mame/drivers/model2.cpp72
-rw-r--r--src/mame/drivers/nmk16.cpp17
-rw-r--r--src/mame/drivers/sidearms.cpp147
-rw-r--r--src/mame/drivers/snk.cpp4
-rw-r--r--src/mame/drivers/vamphalf.cpp83
-rw-r--r--src/mame/drivers/xain.cpp2
-rw-r--r--src/mame/drivers/yunsun16.cpp643
-rw-r--r--src/mame/includes/nmk16.h2
-rw-r--r--src/mame/includes/yunsun16.h119
-rw-r--r--src/mame/mame.lst5
-rw-r--r--src/mame/video/yunsun16.cpp201
15 files changed, 770 insertions, 564 deletions
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,18 +88,318 @@ 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<cpu_device> m_maincpu;
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_device<screen_device> m_screen;
+ required_device<palette_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<uint16_t, 2> m_vram;
+ required_shared_ptr_array<uint16_t, 2> m_scrollram;
+ required_shared_ptr<uint16_t> m_priorityram;
+ required_shared_ptr<uint16_t> m_spriteram;
+
+ // other video-related elements
+ tilemap_t *m_tilemap[2]{};
+ int8_t m_sprites_scrolldx = 0;
+ int8_t m_sprites_scrolldy = 0;
+
+ void int_ack_w(uint8_t data);
+ template <int Layer> void vram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+
+ TILEMAP_MAPPER_MEMBER(tilemap_scan_pages);
+ template <int Layer> TILE_GET_INFO_MEMBER(get_tile_info);
+ void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+};
+
+
+class magicbub_state : public yunsun16_state
+{
+public:
+ magicbub_state(const machine_config &mconfig, device_type type, const char *tag) :
+ yunsun16_state(mconfig, type, tag),
+ m_audiocpu(*this, "audiocpu"),
+ m_soundlatch(*this, "soundlatch")
+ { }
+
+ void magicbub(machine_config &config);
+
+private:
+ required_device<cpu_device> m_audiocpu;
+ required_device<generic_latch_8_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 <int Layer>
+TILE_GET_INFO_MEMBER(yunsun16_state::get_tile_info)
+{
+ uint16_t code = m_vram[Layer][2 * tile_index + 0];
+ uint16_t attr = m_vram[Layer][2 * tile_index + 1];
+ tileinfo.set(0,
+ code,
+ attr & 0xf,
+ (attr & 0x20) ? TILE_FLIPX : 0);
+}
/***************************************************************************
+ Video Hardware Init
+
+
+***************************************************************************/
+
+void yunsun16_state::video_start()
+{
+ m_tilemap[0] = &machine().tilemap().create(
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(yunsun16_state::get_tile_info<0>)), tilemap_mapper_delegate(*this, FUNC(yunsun16_state::tilemap_scan_pages)),
+ 16, 16, 0x40, 0x40);
+ m_tilemap[1] = &machine().tilemap().create(
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(yunsun16_state::get_tile_info<1>)), tilemap_mapper_delegate(*this, FUNC(yunsun16_state::tilemap_scan_pages)),
+ 16, 16, 0x40, 0x40);
+
+ m_tilemap[0]->set_scrolldx(-0x34, 0);
+ m_tilemap[1]->set_scrolldx(-0x38, 0);
+
+ m_tilemap[0]->set_scrolldy(-0x10, 0);
+ m_tilemap[1]->set_scrolldy(-0x10, 0);
+
+ m_tilemap[0]->set_transparent_pen(0xff);
+ m_tilemap[1]->set_transparent_pen(0xff);
+}
+
+
+/***************************************************************************
+
+
+ Sprites Drawing
+
+
+ 0.w X
+
+ 2.w Y
+
+ 4.w Code
+
+ 6.w fedc ba98 7--- ----
+ ---- ---- -6-- ---- Flip Y
+ ---- ---- --5- ---- Flip X
+ ---- ---- ---4 3210 Color
+
+
+***************************************************************************/
+
+void yunsun16_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ 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
+
+/***************************************************************************
+
+
Memory Maps - Main CPU
@@ -110,7 +410,7 @@ void shocking_state::sound_bank_w(uint8_t data)
m_okibank->set_entry(data & 3);
}
-template<int Layer>
+template <int Layer>
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<cpu_device> m_maincpu;
- required_device<gfxdecode_device> m_gfxdecode;
- required_device<screen_device> m_screen;
- required_device<palette_device> m_palette;
-
-private:
- void int_ack_w(uint8_t data);
-
- /* memory pointers */
- required_shared_ptr_array<uint16_t, 2> m_vram;
- required_shared_ptr_array<uint16_t, 2> m_scrollram;
- required_shared_ptr<uint16_t> m_priorityram;
- required_shared_ptr<uint16_t> m_spriteram;
-
- /* other video-related elements */
- tilemap_t *m_tilemap[2]{};
- int m_sprites_scrolldx = 0;
- int m_sprites_scrolldy = 0;
-
- template<int Layer> void vram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
-
- TILEMAP_MAPPER_MEMBER(tilemap_scan_pages);
- template<int Layer> TILE_GET_INFO_MEMBER(get_tile_info);
- void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
-};
-
-
-class magicbub_state : public yunsun16_state
-{
-public:
- magicbub_state(const machine_config &mconfig, device_type type, const char *tag) :
- yunsun16_state(mconfig, type, tag),
- m_audiocpu(*this, "audiocpu"),
- m_soundlatch(*this, "soundlatch")
- { }
-
- void magicbub(machine_config &config);
-
-protected:
- void main_map(address_map &map);
-
-private:
- void magicbub_sound_command_w(uint8_t data);
-
- void sound_map(address_map &map);
- void sound_port_map(address_map &map);
-
- required_device<cpu_device> m_audiocpu;
- required_device<generic_latch_8_device> m_soundlatch;
-};
-
-
-class shocking_state : public yunsun16_state
-{
-public:
- shocking_state(const machine_config &mconfig, device_type type, const char *tag) :
- yunsun16_state(mconfig, type, tag),
- m_okibank(*this, "okibank")
- { }
-
- void shocking(machine_config &config);
-
-protected:
- virtual void machine_start() override;
- virtual void machine_reset() override;
-
- void main_map(address_map &map);
-
-private:
- void sound_bank_w(uint8_t data);
-
- void oki_map(address_map &map);
-
- required_memory_bank m_okibank;
-};
-
-#endif // MAME_INCLUDES_YUNSUN16_H
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<int Layer>
-TILE_GET_INFO_MEMBER(yunsun16_state::get_tile_info)
-{
- uint16_t code = m_vram[Layer][2 * tile_index + 0];
- uint16_t attr = m_vram[Layer][2 * tile_index + 1];
- tileinfo.set(0,
- code,
- attr & 0xf,
- (attr & 0x20) ? TILE_FLIPX : 0);
-}
-
-
-/***************************************************************************
-
-
- Video Hardware Init
-
-
-***************************************************************************/
-
-void yunsun16_state::video_start()
-{
- m_tilemap[0] = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(yunsun16_state::get_tile_info<0>)), tilemap_mapper_delegate(*this, FUNC(yunsun16_state::tilemap_scan_pages)),
- 16, 16, 0x40, 0x40);
- m_tilemap[1] = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(yunsun16_state::get_tile_info<1>)), tilemap_mapper_delegate(*this, FUNC(yunsun16_state::tilemap_scan_pages)),
- 16, 16, 0x40, 0x40);
-
- m_tilemap[0]->set_scrolldx(-0x34, 0);
- m_tilemap[1]->set_scrolldx(-0x38, 0);
-
- m_tilemap[0]->set_scrolldy(-0x10, 0);
- m_tilemap[1]->set_scrolldy(-0x10, 0);
-
- m_tilemap[0]->set_transparent_pen(0xff);
- m_tilemap[1]->set_transparent_pen(0xff);
-}
-
-
-/***************************************************************************
-
-
- Sprites Drawing
-
-
- 0.w X
-
- 2.w Y
-
- 4.w Code
-
- 6.w fedc ba98 7--- ----
- ---- ---- -6-- ---- Flip Y
- ---- ---- --5- ---- Flip X
- ---- ---- ---4 3210 Color
-
-
-***************************************************************************/
-
-void yunsun16_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect )
-{
- int offs;
- const rectangle &visarea = m_screen->visible_area();
-
- int max_x = visarea.max_x + 1;
- int max_y = visarea.max_y + 1;
-
- int pri = *m_priorityram & 3;
- int pri_mask;
-
- switch (pri)
- {
- case 1:
- pri_mask = (1 << 1) | (1 << 2) | (1 << 3);
- break;
- case 2:
- pri_mask = (1 << 2) | (1 << 3);
- break;
- case 3:
- default:
- pri_mask = 0;
- break;
- }
-
- for (offs = (m_spriteram.bytes() - 8) / 2 ; offs >= 0; offs -= 8 / 2)
- {
- int x = m_spriteram[offs + 0];
- int y = m_spriteram[offs + 1];
- int code = m_spriteram[offs + 2];
- int attr = m_spriteram[offs + 3];
- int flipx = attr & 0x20;
- int flipy = attr & 0x40;
-
- x += m_sprites_scrolldx;
- y += m_sprites_scrolldy;
-
- if (flip_screen()) // not used?
- {
- flipx = !flipx; x = max_x - x - 16;
- flipy = !flipy; y = max_y - y - 16;
- }
-
- m_gfxdecode->gfx(1)->prio_transpen(bitmap,cliprect,
- code,
- attr & 0x1f,
- flipx, flipy,
- x,y,
- screen.priority(),
- pri_mask,15);
- }
-}
-
-
-/***************************************************************************
-
-
- Screen Drawing
-
-
-***************************************************************************/
-
-
-uint32_t yunsun16_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
-{
- m_tilemap[0]->set_scrollx(0, m_scrollram[0][0]);
- m_tilemap[0]->set_scrolly(0, m_scrollram[0][1]);
-
- m_tilemap[1]->set_scrollx(0, m_scrollram[1][0]);
- m_tilemap[1]->set_scrolly(0, m_scrollram[1][1]);
-
- //popmessage("%04X", *m_priorityram);
-
- screen.priority().fill(0, cliprect);
-
- if ((*m_priorityram & 0x0c) == 4)
- {
- /* The color of the this layer's transparent pen goes below everything */
- m_tilemap[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- m_tilemap[0]->draw(screen, bitmap, cliprect, 0, 1);
- m_tilemap[1]->draw(screen, bitmap, cliprect, 0, 2);
- }
- else if ((*m_priorityram & 0x0c) == 8)
- {
- /* The color of the this layer's transparent pen goes below everything */
- m_tilemap[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- m_tilemap[1]->draw(screen, bitmap, cliprect, 0, 1);
- m_tilemap[0]->draw(screen, bitmap, cliprect, 0, 2);
- }
-
- draw_sprites(screen, bitmap, cliprect);
- return 0;
-}