summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author Robbbert <Robbbert@users.noreply.github.com>2022-03-27 13:29:12 +1100
committer Robbbert <Robbbert@users.noreply.github.com>2022-03-27 13:29:12 +1100
commit030491316a6836c947463ce420174928e84c58a0 (patch)
tree3eba2e00edd138eac092ef9b963927065070bd9a
parenta229f29182a122814801c06165fb65625eec9da9 (diff)
parentb6df0d2d3d6ab20be4f3cea9a1af3b5814ce80d6 (diff)
Merge remote-tracking branch 'upstream/master'
-rw-r--r--hash/amigaaga_flop.xml6
-rw-r--r--hash/amigaocs_flop.xml20
-rw-r--r--hash/apple2_flop_clcracked.xml2
-rw-r--r--hash/apple2_flop_orig.xml22
-rw-r--r--hash/cdi.xml2
-rw-r--r--hash/famibox.xml30
-rw-r--r--hash/ibm5150.xml2
-rw-r--r--hash/roland_tnsc1.xml43
-rw-r--r--hash/vgmplay.xml5085
-rw-r--r--scripts/src/machine.lua12
-rw-r--r--scripts/target/mame/arcade.lua1
-rw-r--r--scripts/target/mame/mess.lua1
-rw-r--r--src/devices/bus/abcbus/lux4105.cpp6
-rw-r--r--src/devices/bus/nes/jy.cpp4
-rw-r--r--src/devices/bus/nes/kaiser.cpp2
-rw-r--r--src/devices/bus/nes/mmc3.cpp6
-rw-r--r--src/devices/bus/nes/multigame.cpp2
-rw-r--r--src/devices/bus/nes/namcot.cpp4
-rw-r--r--src/devices/bus/nes/pirate.cpp2
-rw-r--r--src/devices/bus/nes/sunsoft.cpp4
-rw-r--r--src/devices/bus/nes/sunsoft_dcs.cpp2
-rw-r--r--src/devices/bus/nes/taito.cpp4
-rw-r--r--src/devices/cpu/arm7/arm7dasm.cpp4
-rw-r--r--src/devices/cpu/b5000/b5000base.cpp3
-rw-r--r--src/devices/cpu/b5000/b5000d.cpp2
-rw-r--r--src/devices/cpu/i960/i960.cpp12
-rw-r--r--src/devices/cpu/m6502/m6500_1.cpp10
-rw-r--r--src/devices/machine/8364_paula.cpp4
-rw-r--r--src/devices/machine/akiko.cpp14
-rw-r--r--src/devices/machine/amiga_copper.cpp58
-rw-r--r--src/devices/machine/amiga_copper.h4
-rw-r--r--src/devices/machine/laserdsc.cpp90
-rw-r--r--src/devices/machine/laserdsc.h10
-rw-r--r--src/devices/machine/ldv4200hle.cpp948
-rw-r--r--src/devices/machine/ldv4200hle.h217
-rw-r--r--src/devices/machine/z80dma.cpp2
-rw-r--r--src/devices/machine/z80dma.h2
-rw-r--r--src/devices/sound/k051649.cpp2
-rw-r--r--src/lib/formats/flex_dsk.cpp10
-rw-r--r--src/mame/audio/gottlieb.cpp4
-rw-r--r--src/mame/drivers/abc1600.cpp2
-rw-r--r--src/mame/drivers/alvg.cpp2
-rw-r--r--src/mame/drivers/asuka.cpp6
-rw-r--r--src/mame/drivers/cosmos_playc8f.cpp13
-rw-r--r--src/mame/drivers/cps1.cpp47
-rw-r--r--src/mame/drivers/cubo.cpp4
-rw-r--r--src/mame/drivers/dec0.cpp104
-rw-r--r--src/mame/drivers/generalplus_gpl_unknown.cpp18
-rw-r--r--src/mame/drivers/hankin.cpp10
-rw-r--r--src/mame/drivers/hh_b5000.cpp9
-rw-r--r--src/mame/drivers/hng64.cpp34
-rw-r--r--src/mame/drivers/jpmsys5sw.cpp2
-rw-r--r--src/mame/drivers/kaypro.cpp16
-rw-r--r--src/mame/drivers/ksys573.cpp46
-rw-r--r--src/mame/drivers/minitel_2_rpic.cpp6
-rw-r--r--src/mame/drivers/mk98.cpp16
-rw-r--r--src/mame/drivers/mpu12wbk.cpp286
-rw-r--r--src/mame/drivers/photoply.cpp4
-rw-r--r--src/mame/drivers/roland_tnsc1.cpp70
-rw-r--r--src/mame/drivers/senjyo.cpp16
-rw-r--r--src/mame/drivers/spinb.cpp2
-rw-r--r--src/mame/drivers/timetrv.cpp320
-rw-r--r--src/mame/drivers/vicdual.cpp2
-rw-r--r--src/mame/includes/abc1600.h2
-rw-r--r--src/mame/includes/amiga.h8
-rw-r--r--src/mame/layout/fruitstb.lay6
-rw-r--r--src/mame/layout/timetrv.lay65
-rw-r--r--src/mame/machine/abc1600mac.cpp6
-rw-r--r--src/mame/machine/abc1600mac.h6
-rw-r--r--src/mame/machine/amiga.cpp132
-rw-r--r--src/mame/mame.lst3
-rw-r--r--src/mame/mess.flt1
-rw-r--r--src/mame/video/cps1.cpp4
-rw-r--r--src/mame/video/spectrum.cpp2
-rw-r--r--src/osd/sdl/window.cpp12
75 files changed, 7313 insertions, 627 deletions
diff --git a/hash/amigaaga_flop.xml b/hash/amigaaga_flop.xml
index f7e7e82161d..7da40a86848 100644
--- a/hash/amigaaga_flop.xml
+++ b/hash/amigaaga_flop.xml
@@ -114,7 +114,7 @@ Boots to a purple and blue flickering screen, [FDC] dsksync
<publisher>Mindscape</publisher>
<notes><![CDATA[
Not extensively tested
-[Lisa] sprites leaves an empty gap on bottom of playfield
+[Lisa] sprites leaves an empty gap on bottom of playfield
]]></notes>
<info name="usage" value="Requires AGA" />
<part name="flop1" interface="floppy_3_5">
@@ -985,7 +985,7 @@ Collision detection is pretty fussy
Mongols encounter caused wrong colors and Guru Meditation (TODO: verify)
]]></notes>
<info name="usage" value="Requires AGA, sports Civilization Quiz copy-protection" />
-
+
<!-- Game prompts for Disks 1-2-3-4, but markings are confirmed to be letter based -->
<part name="flop1" interface="floppy_3_5">
<feature name="part_id" value="Disk A" />
@@ -2665,7 +2665,7 @@ Text layer has last 4 chars with wrong violet color, i.e. last 3 digit of score
<publisher>Gremlin Graphics</publisher>
<notes><![CDATA[
Mouse cursor is uncontrollable, [joytest] reset counter
-]]></notes>
+]]></notes>
<info name="usage" value="Requires AGA" />
<part name="flop1" interface="floppy_3_5">
<feature name="part_id" value="Disk 1" />
diff --git a/hash/amigaocs_flop.xml b/hash/amigaocs_flop.xml
index c11a632ad44..65ecf1f94b6 100644
--- a/hash/amigaocs_flop.xml
+++ b/hash/amigaocs_flop.xml
@@ -19,13 +19,13 @@ license:CC0
- a generic "failed" means that most if not all tracks reports as bad (test didn't complete);
- C refers to the Track number(s), H is the (U)pper, (L)ower head (if not omitted),
"1 Sector Bad" reports as one sector being bad, otherwise "Bad" [Track];
- Notice this is just an extra note added to identify disk behaviour with our FDC:
- it has no value for the supported flag.
+ Notice this is just an extra note added to identify disk behaviour with our FDC:
+ it has no value for the supported flag.
- Note that disk swaps are known to be quite fussy on Amiga.
- As a rule of thumb it's really advised to not try a "live swap" of disks,
- but instead unmount (empty) the disk buffer first then mount whatever the SW asks to.
- This holds particularly true for anything that don't explictly asks for the user to press any key on devices.
+ Note that disk swaps are known to be quite fussy on Amiga.
+ As a rule of thumb it's really advised to not try a "live swap" of disks,
+ but instead unmount (empty) the disk buffer first then mount whatever the SW asks to.
+ This holds particularly true for anything that don't explictly asks for the user to press any key on devices.
todo (SPS):
- see if it's possible to better verify these images, the SPS dat only lists the (highly insecure) CRC32s so we're relying on trust here
@@ -19890,7 +19890,7 @@ ATK test: OK
<!-- Publisher: Prism Leisure -->
<publisher>Addictive</publisher>
<notes><![CDATA[
-Guru Meditation during Workbench load after pressing left mouse button on Hot Shot advertisement
+Guru Meditation during Workbench load after pressing left mouse button on Hot Shot advertisement
ATK test: OK
]]></notes>
<part name="flop1" interface="floppy_3_5">
@@ -36207,7 +36207,7 @@ ATK test: failed
ATK test: OK
]]></notes>
<!-- TODO: untested afterwards -->
- <info name="usage" value="Sports code wheel copy-protection"/>
+ <info name="usage" value="Sports code wheel copy-protection"/>
<part name="flop1" interface="floppy_3_5">
<dataarea name="flop" size="1049612">
<rom name="(sps1051)operationharrier.ipf" size="1049612" crc="c1b27e88" sha1="e6a7a0ca4fbf3f4a041262009da77cdaba9c331f"/>
@@ -57088,7 +57088,7 @@ Enables AGA bitplanes == 7 even on OCS and ECS machines
ATK test: failed
]]></notes>
<info name="alt_title" value="Zool - Ninja of the &quot;Nth&quot; Dimension (Box)"/>
- <info name="usage" value="Sports code wheel copy-protection"/>
+ <info name="usage" value="Sports code wheel copy-protection"/>
<part name="flop1" interface="floppy_3_5">
<feature name="part_id" value="Disk 1" />
@@ -57146,7 +57146,7 @@ Top-most score display is garbled, [Copper]
[Paula] gives white noise on BGM loop
ATK test: failed
]]></notes>
- <info name="usage" value="Sports code wheel copy-protection"/>
+ <info name="usage" value="Sports code wheel copy-protection"/>
<part name="flop1" interface="floppy_3_5">
<feature name="part_id" value="Disk 1" />
<dataarea name="flop" size="1009206">
diff --git a/hash/apple2_flop_clcracked.xml b/hash/apple2_flop_clcracked.xml
index 4383ad4467d..f2213a89ea8 100644
--- a/hash/apple2_flop_clcracked.xml
+++ b/hash/apple2_flop_clcracked.xml
@@ -47028,7 +47028,7 @@ license:CC0
<year>1984</year>
<publisher>Society for Visual Education</publisher>
<info name="release" value="2022-01-11"/>
- <!--"Ripley's Believe It Or Not: Beginning Library Research Skills" is a 1984 educational program developed and distribute by Society for Visual Education. It is preserved here for the first time.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Enter TEACHER (password TEACHER) for the administration menu.&lt;/div&gt;-->
+ <!--"Ripley's Believe It Or Not: Beginning Library Research Skills" is a 1984 educational program developed and distribute by Society for Visual Education. It is preserved here for the first time. Enter TEACHER (password TEACHER) for the administration menu.-->
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Side A"/>
diff --git a/hash/apple2_flop_orig.xml b/hash/apple2_flop_orig.xml
index 4788f1aa2c9..81bab64237b 100644
--- a/hash/apple2_flop_orig.xml
+++ b/hash/apple2_flop_orig.xml
@@ -18787,22 +18787,6 @@ license:CC0
</part>
</software>
- <software name="aoidchpo">
- <description>Apple-Oids and Chipout</description>
- <year>1981</year>
- <publisher>California Pacific Computer</publisher>
- <info name="release" value="2022-02-08"/>
- <sharedfeat name="compatibility" value="A2,A2P,A2E,A2EE,A2C,A2GS"/>
- <!-- It runs on any Apple II with 48K. -->
- <!--"Apple-Oids and Chipout" is a 1981 pair of action games developed by Tom Luhrs and distributed by California Pacific Computer. It runs on any Apple II with 48K.-->
-
- <part name="flop1" interface="floppy_5_25">
- <dataarea name="flop" size="201004">
- <rom name="apple-oids and chipout.woz" size="201004" crc="e1b224a9" sha1="5bcbdb1329051b2ae2eaf3fa35159a2c9a06d911"/>
- </dataarea>
- </part>
- </software>
-
<software name="swdsheol">
<description>Sword of Sheol</description>
<year>1982</year>
@@ -18810,7 +18794,7 @@ license:CC0
<info name="release" value="2022-02-08"/>
<sharedfeat name="compatibility" value="A2,A2P,A2E,A2EE,A2C,A2GS"/>
<!-- It runs on any Apple II with 48K. -->
- <!--"Sword of Sheol" is a 1982 action game developed by David Riggle and distributed by Winner's Circle. It runs on any Apple II with 48K.&lt;br /&gt;&lt;br /&gt;A 1987 textfile called "Eggs and Keys from Hot Rod" listed "Sword of Sheol" among a list of "vaporwares"; crediting it to Winner's Circle, creators of Sanitron.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Hot Rod's document is likely based on the advertisement for Sword of Sheol that was included in the August 1983 issue of &lt;i&gt;Creative Computing&lt;/i&gt;, where it appeared next to titles Ice Cave, Exterminator, and Sanitron.&lt;/div&gt;-->
+ <!--"Sword of Sheol" is a 1982 action game developed by David Riggle and distributed by Winner's Circle. It runs on any Apple II with 48K. A 1987 textfile called "Eggs and Keys from Hot Rod" listed "Sword of Sheol" among a list of "vaporwares"; crediting it to Winner's Circle, creators of Sanitron. Hot Rod's document is likely based on the advertisement for Sword of Sheol that was included in the August 1983 issue of Creative Computing, where it appeared next to titles Ice Cave, Exterminator, and Sanitron.-->
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="467751">
@@ -18930,7 +18914,7 @@ license:CC0
<sharedfeat name="compatibility" value="A2P,A2E,A2EE,A2C,A2GS"/>
<!-- It requires a 48K Apple II+ or later. -->
<!--"Pursuit of the Graf Spee" is a 1982 strategy game developed by Joel Billings and distributed by Strategic Simulations. It requires a 48K Apple ][+ or later.-->
- <!-- This disk was replaced on March 24th, 2022 because the previous disk we obtained proved to be a fake. -->
+ <!-- This disk was replaced on March 24th, 2022 because the previous disk we obtained proved to be a fake. -->
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="254799">
@@ -19615,7 +19599,7 @@ license:CC0
<info name="release" value="2022-02-22"/>
<sharedfeat name="compatibility" value="A2,A2P,A2E,A2EE,A2C,A2GS"/>
<!-- It runs on any Apple II with 48K. -->
- <!--"Critical Mass" is a 1983 adventure game developed by Bob Blauschild and distributed by Sirius Software. It runs on any Apple II with 48K.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Note: side B is write-protected, and you must make a copy of it in order to play the game. Side B is not copy protected, so any disk copier will work. I have included a writeable .dsk version of side B in the download.&lt;/div&gt;-->
+ <!--"Critical Mass" is a 1983 adventure game developed by Bob Blauschild and distributed by Sirius Software. It runs on any Apple II with 48K. Note: side B is write-protected, and you must make a copy of it in order to play the game. Side B is not copy protected, so any disk copier will work. I have included a writeable .dsk version of side B in the download.-->
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Side A"/>
diff --git a/hash/cdi.xml b/hash/cdi.xml
index 22fe3b11cba..35bf3f696f0 100644
--- a/hash/cdi.xml
+++ b/hash/cdi.xml
@@ -10736,7 +10736,7 @@ license:CC0
<sharedfeat name="compatibility" value="DVC" />
<part name="cdrom" interface="cdi_cdrom">
<diskarea name="cdrom">
- <disk name="from the associated press - the best of photo journalism (1993)[dvc]" sha1="c8eb407a10916be732e9fa10c198dce1a277e525"/>
+ <disk name="from the associated press - the best of photo journalism (1993)[dvc]" sha1="4059c3d61a00194f1e761d7a0d76ec871c9dad74"/>
</diskarea>
</part>
</software>
diff --git a/hash/famibox.xml b/hash/famibox.xml
index 65f5d366580..48d4f7a70e7 100644
--- a/hash/famibox.xml
+++ b/hash/famibox.xml
@@ -531,21 +531,21 @@ Soccer League - Winner's Cup, Tennis, Wild Gunman, Wrecking Crew
</software>
<!--
- <software name="punchout">
- <description>Punch-Out!!</description>
- <year>1990</year>
- <publisher>Nintendo</publisher>
- <part name="cart" interface="nes_cart">
- <feature name="slot" value="pxrom" />
- <feature name="pcb" value="SSS-PNROM??" />
- <dataarea name="prg" size="0x20000">
- <rom name="nes-qp-0 prg" size="0x20000" crc="" sha1="" />
- </dataarea>
- <dataarea name="chr" size="0x20000">
- <rom name="nes-qp-0 chr" size="0x20000" crc="" sha1="" />
- </dataarea>
- </part>
- </software>
+ <software name="punchout">
+ <description>Punch-Out!!</description>
+ <year>1990</year>
+ <publisher>Nintendo</publisher>
+ <part name="cart" interface="nes_cart">
+ <feature name="slot" value="pxrom" />
+ <feature name="pcb" value="SSS-PNROM??" />
+ <dataarea name="prg" size="0x20000">
+ <rom name="nes-qp-0 prg" size="0x20000" crc="" sha1="" />
+ </dataarea>
+ <dataarea name="chr" size="0x20000">
+ <rom name="nes-qp-0 chr" size="0x20000" crc="" sha1="" />
+ </dataarea>
+ </part>
+ </software>
-->
<software name="rockman">
diff --git a/hash/ibm5150.xml b/hash/ibm5150.xml
index a3ed8216717..95e2b778cc8 100644
--- a/hash/ibm5150.xml
+++ b/hash/ibm5150.xml
@@ -5943,7 +5943,7 @@ has been replaced with an all-zero block. -->
</software>
<software name="msdos32a" supported="no" cloneof="msdos32">
- <description>MS-DOS (Version 3.2) (alt.)</description>
+ <description>MS-DOS (Version 3.2) (alt)</description>
<year>1985</year>
<publisher>Microsoft</publisher>
<part name="flop1" interface="floppy_5_25">
diff --git a/hash/roland_tnsc1.xml b/hash/roland_tnsc1.xml
new file mode 100644
index 00000000000..01be7fad84e
--- /dev/null
+++ b/hash/roland_tnsc1.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
+<!--
+license:CC0
+-->
+<softwarelist name="roland_tnsc1" description="Roland TN-SC1 Music Style Cards">
+<!--
+ Known cards:
+ Dumped Serial Type Name Contents
+ No TN-SC1-01 Music Style Card Country Bluegrass, Tex / Mex, Country Waltz, Country Rock
+ No TN-SC1-02 Music Style Card 50's and 60's M'Town, Rock 'n' Roll 2, Mexican Rock, Slow Soul
+ Yes TN-SC1-03 Music Style Card 70's and 80's Euro Pop, Rap, Funk 3, Big Rock
+ No TN-SC1-04 Music Style Card Around the World March 2, Waltz 2, Polka 2, Foxtrot
+ No TN-SC1-05 Music Style Card Around the World 2 Calypso, Reggae 2, Ska, Caribbean
+ No TN-SC1-06 Music Style Card Piano Bar Slow Waltz, Ballad 2, Ballad 3
+ No TN-SC1-07 Music Style Card Latin Samba 2, Mambo, Beguine, Paso Doble
+ No TN-SC1-08 Music Style Card Enka Enka 1, Enka 2, Enka 3, Enka 4
+ No TN-SC1-09 Music Style Card Japanese Pops Japanese Pop 1, Japaneses Pop 2, Japanese Pop 3, Japanese Pop 4
+ No TN-SC1-10 Music Style Card Easy Eight Swing 2, 8 Beat 3, 16 Beat 3, Disco 3, Waltz 4, 2 Beat, Latin Beat, Slow Rock 2
+ No TN-SC1-11 Music Style Card Dance 1 Slow Waltz 2, Slow Rock 3, Tango 2, Beguine 2
+ No TN-SC1-12 Music Style Card Dance 2 Bossanova 2, Samba 3, Lambada, Son
+ No TN-SC1-13 Music Style Card Dance 3 Boogie 2, Rock 'n' Roll 3, Shuffle 2, Rag Time
+ No TN-SC1-14 Music Style Card Dance 4 16 Beat 4, Blues, Slow Swing, Slow Soul 2
+-->
+
+ <software name="tnsc103" supported="no">
+ <!--
+ 1. Euro Pop
+ 2. Rap
+ 3. Funk 3
+ 4. Big Rock
+ -->
+ <description>70's and 80's (TN-SC1-03)</description>
+ <year>19??</year>
+ <publisher>Roland</publisher>
+ <part name="cart" interface="roland_tnsc1">
+ <dataarea name="rom" size="0x8000">
+ <rom name="rolandtnsc103.bin" size="0x8000" crc="856b233b" sha1="b01dec3807d9e98085e5849fce897d13ff4556ff"/>
+ </dataarea>
+ </part>
+ </software>
+
+</softwarelist>
diff --git a/hash/vgmplay.xml b/hash/vgmplay.xml
index 6ff6c95a37c..0d838c8045c 100644
--- a/hash/vgmplay.xml
+++ b/hash/vgmplay.xml
@@ -74979,7 +74979,7 @@ license:CC0
</part>
</software>
- <software name="shanghai">
+ <software name="shangkid">
<description>Shanghai Kid (Arcade)</description>
<year>1985</year>
<publisher>Data East (U) / Taito (J)</publisher>
@@ -275885,7 +275885,5088 @@ license:CC0
</dataarea>
</part>
</software>
-
+
+ <!-- vgmrips.net update - March 16, 2022 - 16 New Entries -->
+
+ <software name="dyter_st">
+ <description>Dyter-07 (Atari ST)</description>
+ <year>1990</year>
+ <publisher>reLINE Software</publisher>
+ <info name="cores" value="YM2149"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 title.vgz" />
+ <dataarea name="quik" size="18520">
+ <rom name="01 title.vgz" size="18520" crc="a686d3fb" sha1="ddf8aeee772464b522b21fb15342fe6aa172ab48" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 level start.vgz" />
+ <dataarea name="quik" size="1737">
+ <rom name="02 level start.vgz" size="1737" crc="606bfe4b" sha1="35bea2612bda39d8ca3eb4fbdcca183d1e08b3f0" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 homebase.vgz" />
+ <dataarea name="quik" size="5172">
+ <rom name="03 homebase.vgz" size="5172" crc="5ab54875" sha1="6033006b088c21a299db97b7c115f56b50339d24" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 caribbean (level 1).vgz" />
+ <dataarea name="quik" size="22431">
+ <rom name="04 caribbean (level 1).vgz" size="22431" crc="f25d2f93" sha1="fa38629f6cfef3aaae2af6d42e6a7da11666b7ec" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 exit open, beast destroyed.vgz" />
+ <dataarea name="quik" size="1468">
+ <rom name="05 exit open, beast destroyed.vgz" size="1468" crc="e4c938dd" sha1="f8989af6a8bc61da07b9b7885446d08b8ba1220c" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 entering the volcano.vgz" />
+ <dataarea name="quik" size="1628">
+ <rom name="06 entering the volcano.vgz" size="1628" crc="338183a2" sha1="143bab235d7be5f66b5736baabbfbab69a0eaf9c" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 volcano.vgz" />
+ <dataarea name="quik" size="4811">
+ <rom name="07 volcano.vgz" size="4811" crc="d0853198" sha1="5a15d4d0eafeeb7003f8ad75e097846664511612" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 beast.vgz" />
+ <dataarea name="quik" size="8495">
+ <rom name="08 beast.vgz" size="8495" crc="a8623ab1" sha1="70ca7559d6f2f11ac2db795b9180851196ddc766" offset="0" />
+ </dataarea>
+ </part>
+ <part name="009" interface="vgm_quik">
+ <feature name="part_id" value="09 polar (level 2).vgz" />
+ <dataarea name="quik" size="22962">
+ <rom name="09 polar (level 2).vgz" size="22962" crc="d9612f7d" sha1="3d6262aba27da617be87dc457950a98e12ae16fc" offset="0" />
+ </dataarea>
+ </part>
+ <part name="010" interface="vgm_quik">
+ <feature name="part_id" value="10 volcanic (level 3).vgz" />
+ <dataarea name="quik" size="18780">
+ <rom name="10 volcanic (level 3).vgz" size="18780" crc="5c27b260" sha1="98b7c7b5ec9d964a9adfb20ba58ac92dbc280f0c" offset="0" />
+ </dataarea>
+ </part>
+ <part name="011" interface="vgm_quik">
+ <feature name="part_id" value="11 jungle (level 4).vgz" />
+ <dataarea name="quik" size="17153">
+ <rom name="11 jungle (level 4).vgz" size="17153" crc="50c9e940" sha1="1e2a4a88517be0ca929e879bf6dc76a4e235d05c" offset="0" />
+ </dataarea>
+ </part>
+ <part name="012" interface="vgm_quik">
+ <feature name="part_id" value="12 highscores.vgz" />
+ <dataarea name="quik" size="25237">
+ <rom name="12 highscores.vgz" size="25237" crc="f34459b9" sha1="8b85bf9dbd2d0947c5be5cc422b845b5f9087c4f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="013" interface="vgm_quik">
+ <feature name="part_id" value="13 ending.vgz" />
+ <dataarea name="quik" size="35943">
+ <rom name="13 ending.vgz" size="35943" crc="ca95ec41" sha1="a218152242870c9da97c0005d1f712510d1fe3e0" offset="0" />
+ </dataarea>
+ </part>
+ <part name="014" interface="vgm_quik">
+ <feature name="part_id" value="14 game over.vgz" />
+ <dataarea name="quik" size="1794">
+ <rom name="14 game over.vgz" size="1794" crc="7cb6436e" sha1="ccf017e50d4aa4769c139c5290e0253e0b0f57a8" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="esckids">
+ <description>Escape Kids (Arcade)</description>
+ <year>1991</year>
+ <publisher>Konami</publisher>
+ <info name="cores" value="YM2151, K053260"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 new kids on the run (opening demo).vgz" />
+ <dataarea name="quik" size="74650">
+ <rom name="01 new kids on the run (opening demo).vgz" size="74650" crc="0b49c1b1" sha1="664389f9fbee464f20da76fddd01e62c3cf8bf9b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 credit.vgz" />
+ <dataarea name="quik" size="9042">
+ <rom name="02 credit.vgz" size="9042" crc="1bbdce95" sha1="a9c3835d7ae8befd9f3ed689b63d9b0f58d2914f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 mariv's dream (normal stage bgm).vgz" />
+ <dataarea name="quik" size="47404">
+ <rom name="03 mariv's dream (normal stage bgm).vgz" size="47404" crc="a0235ebf" sha1="7ac59d830d95f6c1ae8179fa0b3758bf8b4437d7" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 u.s.a for america (american team member's victory dance).vgz" />
+ <dataarea name="quik" size="38308">
+ <rom name="04 u.s.a for america (american team member's victory dance).vgz" size="38308" crc="bf2e6f8e" sha1="ae1934ff07c56fcd288f42b523c6c69708dc876c" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 let's buy shrewdly ~ 50,000 yen, 100,000 yen, 1,000,000 yen (item select demo).vgz" />
+ <dataarea name="quik" size="19735">
+ <rom name="05 let's buy shrewdly ~ 50,000 yen, 100,000 yen, 1,000,000 yen (item select demo).vgz" size="19735" crc="7fb51ace" sha1="7bc47f1a5e93bcf4228bd11d55cb248545a996fb" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 welcome to green aid (jungle stage bgm).vgz" />
+ <dataarea name="quik" size="66935">
+ <rom name="06 welcome to green aid (jungle stage bgm).vgz" size="66935" crc="75691741" sha1="9d144918b0534c3298a46bc57815c1ff1cbb08c8" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 where is chad (indian team member's victory dance).vgz" />
+ <dataarea name="quik" size="23149">
+ <rom name="07 where is chad (indian team member's victory dance).vgz" size="23149" crc="5e084d28" sha1="bd4fb3f512997246e4ddbb8442bdff25a72ad6f1" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 junkie cowboy (sand stage bgm).vgz" />
+ <dataarea name="quik" size="71663">
+ <rom name="08 junkie cowboy (sand stage bgm).vgz" size="71663" crc="3fe7ca7a" sha1="f20b0937078a4a58cab5b03ec4934d7d5959cfe3" offset="0" />
+ </dataarea>
+ </part>
+ <part name="009" interface="vgm_quik">
+ <feature name="part_id" value="09 the white of victory (champion fanfare).vgz" />
+ <dataarea name="quik" size="8656">
+ <rom name="09 the white of victory (champion fanfare).vgz" size="8656" crc="37a42166" sha1="fa75e4fcb8066b23945f2649f6b665df6b32896b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="010" interface="vgm_quik">
+ <feature name="part_id" value="10 let's make money shrewdly (bonus stage bgm).vgz" />
+ <dataarea name="quik" size="46675">
+ <rom name="10 let's make money shrewdly (bonus stage bgm).vgz" size="46675" crc="3d78d3aa" sha1="4eaeb6b8a54c6ccf568217a2979cc690fb5428cb" offset="0" />
+ </dataarea>
+ </part>
+ <part name="011" interface="vgm_quik">
+ <feature name="part_id" value="11 fall in love ~ final result voice (fall down).vgz" />
+ <dataarea name="quik" size="24364">
+ <rom name="11 fall in love ~ final result voice (fall down).vgz" size="24364" crc="fc269cf4" sha1="643e5a120dfbd4872156cdd205e6cf33f15dadea" offset="0" />
+ </dataarea>
+ </part>
+ <part name="012" interface="vgm_quik">
+ <feature name="part_id" value="12 rock around ice (ice stage).vgz" />
+ <dataarea name="quik" size="96346">
+ <rom name="12 rock around ice (ice stage).vgz" size="96346" crc="6846a5f4" sha1="37f8b61c83ddc77627e9093368730f02c975f401" offset="0" />
+ </dataarea>
+ </part>
+ <part name="013" interface="vgm_quik">
+ <feature name="part_id" value="13 mt. fuji papa (japanese team member's victory dance).vgz" />
+ <dataarea name="quik" size="37726">
+ <rom name="13 mt. fuji papa (japanese team member's victory dance).vgz" size="37726" crc="c4d5117f" sha1="8d4b5b9b0d438f5746f1295812340671aa5ecacb" offset="0" />
+ </dataarea>
+ </part>
+ <part name="014" interface="vgm_quik">
+ <feature name="part_id" value="14 sea of life (beach stage bgm).vgz" />
+ <dataarea name="quik" size="55173">
+ <rom name="14 sea of life (beach stage bgm).vgz" size="55173" crc="b09c7027" sha1="e0af761e2ac03230a1c11e1a633dc0ce0b861994" offset="0" />
+ </dataarea>
+ </part>
+ <part name="015" interface="vgm_quik">
+ <feature name="part_id" value="15 rosanna (italian team member's victory dance).vgz" />
+ <dataarea name="quik" size="29834">
+ <rom name="15 rosanna (italian team member's victory dance).vgz" size="29834" crc="68c2e71b" sha1="ad78defb2b63a591661d4b3777e11f2f69decfb1" offset="0" />
+ </dataarea>
+ </part>
+ <part name="016" interface="vgm_quik">
+ <feature name="part_id" value="16 helmet underground (underground stage bgm).vgz" />
+ <dataarea name="quik" size="62944">
+ <rom name="16 helmet underground (underground stage bgm).vgz" size="62944" crc="91c24f28" sha1="d840275739f8087f9ba62d2704b35b6c7bee2290" offset="0" />
+ </dataarea>
+ </part>
+ <part name="017" interface="vgm_quik">
+ <feature name="part_id" value="17 front 747 (mecha stage bgm).vgz" />
+ <dataarea name="quik" size="84224">
+ <rom name="17 front 747 (mecha stage bgm).vgz" size="84224" crc="636fd164" sha1="219f4ad7458ee9a29ad9856f9588bd10d02d4273" offset="0" />
+ </dataarea>
+ </part>
+ <part name="018" interface="vgm_quik">
+ <feature name="part_id" value="18 smell bad (goal cpu victory).vgz" />
+ <dataarea name="quik" size="32093">
+ <rom name="18 smell bad (goal cpu victory).vgz" size="32093" crc="3fb2c313" sha1="0966aa4da3aa0448c6a5f18e9c526db1cdafa27f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="019" interface="vgm_quik">
+ <feature name="part_id" value="19 maruku's victory (cpu victory demo).vgz" />
+ <dataarea name="quik" size="11140">
+ <rom name="19 maruku's victory (cpu victory demo).vgz" size="11140" crc="7acad328" sha1="3da85b1eae26f30469780a2c8e158fba6efc8600" offset="0" />
+ </dataarea>
+ </part>
+ <part name="020" interface="vgm_quik">
+ <feature name="part_id" value="20 goal player victory.vgz" />
+ <dataarea name="quik" size="26350">
+ <rom name="20 goal player victory.vgz" size="26350" crc="f3e61da1" sha1="2e54acab915f7563d8dc2e8a27a1a38a99ccc162" offset="0" />
+ </dataarea>
+ </part>
+ <part name="021" interface="vgm_quik">
+ <feature name="part_id" value="21 player victory dance.vgz" />
+ <dataarea name="quik" size="20231">
+ <rom name="21 player victory dance.vgz" size="20231" crc="ab87fbdf" sha1="99b8af4d78744d6c3da4868ebaa1d7cedb2b4a8d" offset="0" />
+ </dataarea>
+ </part>
+ <part name="022" interface="vgm_quik">
+ <feature name="part_id" value="22 ranking record ~ soreyuke otowa group (ranking).vgz" />
+ <dataarea name="quik" size="22798">
+ <rom name="22 ranking record ~ soreyuke otowa group (ranking).vgz" size="22798" crc="6f4936c3" sha1="162d1772d72a12ca01216f47757117e5d48bf762" offset="0" />
+ </dataarea>
+ </part>
+ <part name="023" interface="vgm_quik">
+ <feature name="part_id" value="23 london bridge final result (game over).vgz" />
+ <dataarea name="quik" size="40943">
+ <rom name="23 london bridge final result (game over).vgz" size="40943" crc="cade0180" sha1="05975aeff8a2a1e85092b25433ea3245fdb00bba" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="gakusod_98">
+ <description>Gakuen Sodom ~Kyoushitsu no Mesu Dorei-tachi~ (NEC PC-9801)</description>
+ <year>1995</year>
+ <publisher>PIL</publisher>
+ <info name="cores" value="YM2203"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 pil presents.vgz" />
+ <dataarea name="quik" size="5775">
+ <rom name="01 pil presents.vgz" size="5775" crc="c613644b" sha1="0e8fa3c2baab442c3eb39d37f1412f64b6c0bac1" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 carpet bombing.vgz" />
+ <dataarea name="quik" size="33008">
+ <rom name="02 carpet bombing.vgz" size="33008" crc="e52396ad" sha1="5b1bf088b4116af081363b5852a4e9d7965c178b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 nuclear landmine.vgz" />
+ <dataarea name="quik" size="32011">
+ <rom name="03 nuclear landmine.vgz" size="32011" crc="6f7f247f" sha1="dd79df1a5d1328dc0e34f87a33babd166df30dcd" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 march of sows.vgz" />
+ <dataarea name="quik" size="46294">
+ <rom name="04 march of sows.vgz" size="46294" crc="670cea46" sha1="d579a95797f8cdc23ef5c546c846e9c8af48adc0" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 song envying the devil.vgz" />
+ <dataarea name="quik" size="61287">
+ <rom name="05 song envying the devil.vgz" size="61287" crc="e1308c4c" sha1="150ee998829ceacc25351dd93c34574908370266" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 obscene flower of sodom.vgz" />
+ <dataarea name="quik" size="67997">
+ <rom name="06 obscene flower of sodom.vgz" size="67997" crc="9e32f48b" sha1="83e257814ce6457392d5f0f2e4c03087340576e1" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 hopeful morning.vgz" />
+ <dataarea name="quik" size="41574">
+ <rom name="07 hopeful morning.vgz" size="41574" crc="cf077802" sha1="2c65372f96b1aab6596614c6966aaaa34f303653" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 walk.vgz" />
+ <dataarea name="quik" size="67509">
+ <rom name="08 walk.vgz" size="67509" crc="5dc2a2a3" sha1="bb9e09a63071265b40a7885156f2a51822976d93" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="gigawing">
+ <description>Giga Wing (CP System II)</description>
+ <year>1999</year>
+ <publisher>Capcom</publisher>
+ <info name="cores" value="QSound"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 opening title.vgz" />
+ <dataarea name="quik" size="109891">
+ <rom name="01 opening title.vgz" size="109891" crc="391bf106" sha1="c54fe6e2c73a6ca179ffd66c1671f1d0b4025361" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 credit.vgz" />
+ <dataarea name="quik" size="20190">
+ <rom name="02 credit.vgz" size="20190" crc="f4254433" sha1="aadf84f16ebedf18ecc17d04505bb9e6761fd070" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 title theme.vgz" />
+ <dataarea name="quik" size="168629">
+ <rom name="03 title theme.vgz" size="168629" crc="3da2f202" sha1="a7b20298dd19a09d2fcae293db242de3b7b24633" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 selection.vgz" />
+ <dataarea name="quik" size="165687">
+ <rom name="04 selection.vgz" size="165687" crc="16fd272c" sha1="f8f4a923e7508b6591deb665ea61666e51baa9e5" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 nighttime battle.vgz" />
+ <dataarea name="quik" size="204390">
+ <rom name="05 nighttime battle.vgz" size="204390" crc="99648246" sha1="ec754a7f9af9de11132f8ad8e9142a9def81944a" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 on lava base.vgz" />
+ <dataarea name="quik" size="142266">
+ <rom name="06 on lava base.vgz" size="142266" crc="6175ab80" sha1="7179aa6c9821be2cf407aa5149a50e10195ae901" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 dam fortress part 1.vgz" />
+ <dataarea name="quik" size="188619">
+ <rom name="07 dam fortress part 1.vgz" size="188619" crc="d012a45e" sha1="e9fd4f07845ed8a5eb7e27c02928b487dea4211d" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 dam fortress part 2.vgz" />
+ <dataarea name="quik" size="135460">
+ <rom name="08 dam fortress part 2.vgz" size="135460" crc="4e4474ca" sha1="de1caecdd61ee4aa5f18a6bd0a61731218308e19" offset="0" />
+ </dataarea>
+ </part>
+ <part name="009" interface="vgm_quik">
+ <feature name="part_id" value="09 floating continent.vgz" />
+ <dataarea name="quik" size="110260">
+ <rom name="09 floating continent.vgz" size="110260" crc="59e54eca" sha1="2e7bf018c9918109fa5dd558f6a26a1be342818e" offset="0" />
+ </dataarea>
+ </part>
+ <part name="010" interface="vgm_quik">
+ <feature name="part_id" value="10 golden city sky.vgz" />
+ <dataarea name="quik" size="138632">
+ <rom name="10 golden city sky.vgz" size="138632" crc="a6440f54" sha1="6d8ea36c3569ca2ea4c9a66a3bc347b1385ebcdd" offset="0" />
+ </dataarea>
+ </part>
+ <part name="011" interface="vgm_quik">
+ <feature name="part_id" value="11 seal sanctuary.vgz" />
+ <dataarea name="quik" size="197121">
+ <rom name="11 seal sanctuary.vgz" size="197121" crc="d264fadb" sha1="776317e16078d3e6839a91c90788e78074cea44d" offset="0" />
+ </dataarea>
+ </part>
+ <part name="012" interface="vgm_quik">
+ <feature name="part_id" value="12 high-altitude sea.vgz" />
+ <dataarea name="quik" size="204504">
+ <rom name="12 high-altitude sea.vgz" size="204504" crc="051205f1" sha1="7d44081a833e136e4a5c19d048fa56d7ca3f447a" offset="0" />
+ </dataarea>
+ </part>
+ <part name="013" interface="vgm_quik">
+ <feature name="part_id" value="13 boss theme.vgz" />
+ <dataarea name="quik" size="122932">
+ <rom name="13 boss theme.vgz" size="122932" crc="84c89fc2" sha1="d23711a2793c52024d2e4f580223bf1bfa77d0e0" offset="0" />
+ </dataarea>
+ </part>
+ <part name="014" interface="vgm_quik">
+ <feature name="part_id" value="14 rival.vgz" />
+ <dataarea name="quik" size="81696">
+ <rom name="14 rival.vgz" size="81696" crc="08030ccc" sha1="df8163d251f5b06416f888348c90c556be99b451" offset="0" />
+ </dataarea>
+ </part>
+ <part name="015" interface="vgm_quik">
+ <feature name="part_id" value="15 shinnosuke's theme.vgz" />
+ <dataarea name="quik" size="125569">
+ <rom name="15 shinnosuke's theme.vgz" size="125569" crc="438b710f" sha1="bf3f3244b6898b9a662c064b0cc6b8312cfeb7d0" offset="0" />
+ </dataarea>
+ </part>
+ <part name="016" interface="vgm_quik">
+ <feature name="part_id" value="16 isha's theme.vgz" />
+ <dataarea name="quik" size="195937">
+ <rom name="16 isha's theme.vgz" size="195937" crc="b5282577" sha1="29974dff300210b85c90cb2c8577ce929404756a" offset="0" />
+ </dataarea>
+ </part>
+ <part name="017" interface="vgm_quik">
+ <feature name="part_id" value="17 shutokku's theme.vgz" />
+ <dataarea name="quik" size="73964">
+ <rom name="17 shutokku's theme.vgz" size="73964" crc="1d62a6ec" sha1="f58cd3e67a73e941bb27ae4c779dfea758db7f25" offset="0" />
+ </dataarea>
+ </part>
+ <part name="018" interface="vgm_quik">
+ <feature name="part_id" value="18 ruby's theme.vgz" />
+ <dataarea name="quik" size="94536">
+ <rom name="18 ruby's theme.vgz" size="94536" crc="528ced8b" sha1="c3971a31ce8bedf1bf65015e4554f516b8ea7fac" offset="0" />
+ </dataarea>
+ </part>
+ <part name="019" interface="vgm_quik">
+ <feature name="part_id" value="19 stage clear.vgz" />
+ <dataarea name="quik" size="95882">
+ <rom name="19 stage clear.vgz" size="95882" crc="0f8b7f13" sha1="250a599824c95cf693068f4e97ecf0da967edb1e" offset="0" />
+ </dataarea>
+ </part>
+ <part name="020" interface="vgm_quik">
+ <feature name="part_id" value="20 certainly it'll come true.vgz" />
+ <dataarea name="quik" size="821674">
+ <rom name="20 certainly it'll come true.vgz" size="821674" crc="ee4de140" sha1="e26547356e7dba7e1e3516a6aa00a4526b8c1dbc" offset="0" />
+ </dataarea>
+ </part>
+ <part name="021" interface="vgm_quik">
+ <feature name="part_id" value="21 ending.vgz" />
+ <dataarea name="quik" size="255095">
+ <rom name="21 ending.vgz" size="255095" crc="d73fea0c" sha1="293909b9a474fed6a3438900695b0772a6cbd7a1" offset="0" />
+ </dataarea>
+ </part>
+ <part name="022" interface="vgm_quik">
+ <feature name="part_id" value="22 name register.vgz" />
+ <dataarea name="quik" size="146764">
+ <rom name="22 name register.vgz" size="146764" crc="55bff2a0" sha1="1373be49cb5d32b178e8fa4f70e59b1ee4d15a0a" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="ngaiden3_nes">
+ <description>Ninja Gaiden III - The Ancient Ship of Doom (NES)</description>
+ <year>1991</year>
+ <publisher>Tecmo</publisher>
+ <info name="cores" value="NES APU (N2A03)"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 introduction i.vgz" />
+ <dataarea name="quik" size="2436">
+ <rom name="01 introduction i.vgz" size="2436" crc="a2fbdad8" sha1="dbd42ea015737933ce68d8eff8b4b071ee963722" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 introduction ii.vgz" />
+ <dataarea name="quik" size="8598">
+ <rom name="02 introduction ii.vgz" size="8598" crc="d1d4aee1" sha1="c9b8c916fde630ca70fb3c27a83fe844e2003284" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 introduction iii.vgz" />
+ <dataarea name="quik" size="12786">
+ <rom name="03 introduction iii.vgz" size="12786" crc="b966a7e8" sha1="20a0b6a90dac6659f84cd102a1aaa0c35980546e" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 twist of fate.vgz" />
+ <dataarea name="quik" size="1781">
+ <rom name="04 twist of fate.vgz" size="1781" crc="579cfdb0" sha1="3d10640823c9e0bac9887cc5f87a129daef24bd9" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 stage 1-1, 5-1.vgz" />
+ <dataarea name="quik" size="10278">
+ <rom name="05 stage 1-1, 5-1.vgz" size="10278" crc="61616950" sha1="3d02ffba148fa7831baa68b059095a9ebad184fc" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 battlefield.vgz" />
+ <dataarea name="quik" size="9003">
+ <rom name="06 battlefield.vgz" size="9003" crc="be9508c2" sha1="da109c51b03fff96b311dd54e8136af1405b1735" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 cinema display i.vgz" />
+ <dataarea name="quik" size="4154">
+ <rom name="07 cinema display i.vgz" size="4154" crc="ffe4910f" sha1="fa3385d26448ce270329f3188dc51ccf9df3d410" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 cinema display ii.vgz" />
+ <dataarea name="quik" size="6711">
+ <rom name="08 cinema display ii.vgz" size="6711" crc="0cb57e6e" sha1="16cad5808070822148457426fb0247b763f780f2" offset="0" />
+ </dataarea>
+ </part>
+ <part name="009" interface="vgm_quik">
+ <feature name="part_id" value="09 stage 2-1, 7-2.vgz" />
+ <dataarea name="quik" size="8824">
+ <rom name="09 stage 2-1, 7-2.vgz" size="8824" crc="9187da23" sha1="556085a091ad02cb2fec3661b519eeacd6842126" offset="0" />
+ </dataarea>
+ </part>
+ <part name="010" interface="vgm_quik">
+ <feature name="part_id" value="10 cinema display iii.vgz" />
+ <dataarea name="quik" size="2038">
+ <rom name="10 cinema display iii.vgz" size="2038" crc="1c776d19" sha1="84bfde651a84f445af85829f7eadce146158c3d9" offset="0" />
+ </dataarea>
+ </part>
+ <part name="011" interface="vgm_quik">
+ <feature name="part_id" value="11 cinema display iv.vgz" />
+ <dataarea name="quik" size="4696">
+ <rom name="11 cinema display iv.vgz" size="4696" crc="08e3eda7" sha1="6e9a864117d2715b026ef2d98c3d11a08f777ebe" offset="0" />
+ </dataarea>
+ </part>
+ <part name="012" interface="vgm_quik">
+ <feature name="part_id" value="12 stage 2-2, 5-2.vgz" />
+ <dataarea name="quik" size="8318">
+ <rom name="12 stage 2-2, 5-2.vgz" size="8318" crc="30dd1bd8" sha1="e6a7b429295b55379f40d8d38314e3ea0f51909b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="013" interface="vgm_quik">
+ <feature name="part_id" value="13 cinema display v.vgz" />
+ <dataarea name="quik" size="16125">
+ <rom name="13 cinema display v.vgz" size="16125" crc="f7aec8cf" sha1="625e61aa8f5d1a450e71a39821a9a190eaef051d" offset="0" />
+ </dataarea>
+ </part>
+ <part name="014" interface="vgm_quik">
+ <feature name="part_id" value="14 cinema display vi.vgz" />
+ <dataarea name="quik" size="9218">
+ <rom name="14 cinema display vi.vgz" size="9218" crc="49dd2bad" sha1="4435c8666d5706ff0445c824d4233773bcc2a9c2" offset="0" />
+ </dataarea>
+ </part>
+ <part name="015" interface="vgm_quik">
+ <feature name="part_id" value="15 stage 3-1, 6-2.vgz" />
+ <dataarea name="quik" size="8882">
+ <rom name="15 stage 3-1, 6-2.vgz" size="8882" crc="bafb1711" sha1="300e3acbb80da29460c1f365399b7e7039aeee38" offset="0" />
+ </dataarea>
+ </part>
+ <part name="016" interface="vgm_quik">
+ <feature name="part_id" value="16 cinema display vii.vgz" />
+ <dataarea name="quik" size="7087">
+ <rom name="16 cinema display vii.vgz" size="7087" crc="0bc1b910" sha1="1d04b9f5bca97b4ca9347aa115674b09aa805fe5" offset="0" />
+ </dataarea>
+ </part>
+ <part name="017" interface="vgm_quik">
+ <feature name="part_id" value="17 cinema display viii.vgz" />
+ <dataarea name="quik" size="1880">
+ <rom name="17 cinema display viii.vgz" size="1880" crc="36522550" sha1="dd84dd463d7845a98fb799de9d9ace3fa3058c55" offset="0" />
+ </dataarea>
+ </part>
+ <part name="018" interface="vgm_quik">
+ <feature name="part_id" value="18 stage 3-2, 6-1.vgz" />
+ <dataarea name="quik" size="8499">
+ <rom name="18 stage 3-2, 6-1.vgz" size="8499" crc="3732944d" sha1="d40929839432285c809638510a96169a0f930cfe" offset="0" />
+ </dataarea>
+ </part>
+ <part name="019" interface="vgm_quik">
+ <feature name="part_id" value="19 cinema display ix.vgz" />
+ <dataarea name="quik" size="8666">
+ <rom name="19 cinema display ix.vgz" size="8666" crc="2c3219ae" sha1="7833af4ec9e1b2089923baf5f1b55b0d297357c1" offset="0" />
+ </dataarea>
+ </part>
+ <part name="020" interface="vgm_quik">
+ <feature name="part_id" value="20 stage 4-1, 7-1.vgz" />
+ <dataarea name="quik" size="21945">
+ <rom name="20 stage 4-1, 7-1.vgz" size="21945" crc="088cbae4" sha1="1350181ca64cecff6445988ce830c9e572e4af5b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="021" interface="vgm_quik">
+ <feature name="part_id" value="21 cinema display x.vgz" />
+ <dataarea name="quik" size="13151">
+ <rom name="21 cinema display x.vgz" size="13151" crc="d083f606" sha1="ba6815d2674a3d129ffacc3bce98b1cea8c0f853" offset="0" />
+ </dataarea>
+ </part>
+ <part name="022" interface="vgm_quik">
+ <feature name="part_id" value="22 stage 4-2, 7-3.vgz" />
+ <dataarea name="quik" size="13198">
+ <rom name="22 stage 4-2, 7-3.vgz" size="13198" crc="ecf7a028" sha1="37148322769e10ea1fd636a01fb1a88e1ecf324f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="023" interface="vgm_quik">
+ <feature name="part_id" value="23 cinema display xi.vgz" />
+ <dataarea name="quik" size="4073">
+ <rom name="23 cinema display xi.vgz" size="4073" crc="14bfa18b" sha1="ebd1ffda4f2986bf32ec8f7a2a8fd1e67fd2d2d8" offset="0" />
+ </dataarea>
+ </part>
+ <part name="024" interface="vgm_quik">
+ <feature name="part_id" value="24 cinema display xii.vgz" />
+ <dataarea name="quik" size="7673">
+ <rom name="24 cinema display xii.vgz" size="7673" crc="13a3cbd2" sha1="dde3a0ad5cb1518b375a9d2d60be378b739175d4" offset="0" />
+ </dataarea>
+ </part>
+ <part name="025" interface="vgm_quik">
+ <feature name="part_id" value="25 cinema display xiii.vgz" />
+ <dataarea name="quik" size="3806">
+ <rom name="25 cinema display xiii.vgz" size="3806" crc="3b8f70c6" sha1="f5f2437c31bb789d8f97704c16381fe6ffdba643" offset="0" />
+ </dataarea>
+ </part>
+ <part name="026" interface="vgm_quik">
+ <feature name="part_id" value="26 stage 7-5, 7-6.vgz" />
+ <dataarea name="quik" size="4481">
+ <rom name="26 stage 7-5, 7-6.vgz" size="4481" crc="4cb8dd32" sha1="165330c3f59e63022f26de9c3d3955669850da93" offset="0" />
+ </dataarea>
+ </part>
+ <part name="027" interface="vgm_quik">
+ <feature name="part_id" value="27 epilogue.vgz" />
+ <dataarea name="quik" size="34085">
+ <rom name="27 epilogue.vgz" size="34085" crc="e9f38025" sha1="ebcb2edb8b029784652b64f7787166d2762ebbc8" offset="0" />
+ </dataarea>
+ </part>
+ <part name="028" interface="vgm_quik">
+ <feature name="part_id" value="28 credits.vgz" />
+ <dataarea name="quik" size="20874">
+ <rom name="28 credits.vgz" size="20874" crc="eee507f6" sha1="9220e59750db169bae2caa8592e7b3454b49f876" offset="0" />
+ </dataarea>
+ </part>
+ <part name="029" interface="vgm_quik">
+ <feature name="part_id" value="29 game over.vgz" />
+ <dataarea name="quik" size="1850">
+ <rom name="29 game over.vgz" size="1850" crc="79c71062" sha1="817d3709bc66ef6d11d8b8a4ac3d26b33623e151" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="ngaiden2_nes">
+ <description>Ninja Gaiden II - The Dark Sword of Chaos (NES)</description>
+ <year>1990</year>
+ <publisher>Tecmo</publisher>
+ <info name="cores" value="NES APU (N2A03)"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 chaosium sword.vgz" />
+ <dataarea name="quik" size="21034">
+ <rom name="01 chaosium sword.vgz" size="21034" crc="9107ce6c" sha1="d2511a73c514e5d18b3609054948b64ac30b3e30" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 twist of fate ii.vgz" />
+ <dataarea name="quik" size="2192">
+ <rom name="02 twist of fate ii.vgz" size="2192" crc="0bf87289" sha1="0f85b5dbd5bce4b889ab80084fd59eda6bfa10bf" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 going gets tough.vgz" />
+ <dataarea name="quik" size="7979">
+ <rom name="03 going gets tough.vgz" size="7979" crc="de2dcc21" sha1="cca7041424dd872493f47a5d54a611d130acc3fd" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 battlefield.vgz" />
+ <dataarea name="quik" size="10825">
+ <rom name="04 battlefield.vgz" size="10825" crc="52c184e0" sha1="1c49131e5203c8bf2de251f268ddfcbabaf2ec68" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 robert the army.vgz" />
+ <dataarea name="quik" size="4472">
+ <rom name="05 robert the army.vgz" size="4472" crc="46c55916" sha1="38550587faa1a9d78ed7bf2549f732b89114ed04" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 it's too late.vgz" />
+ <dataarea name="quik" size="1528">
+ <rom name="06 it's too late.vgz" size="1528" crc="1ebb1b64" sha1="69666cc0a9b0be1b94cde89530bcd7c29b52e4ac" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 dehumanize.vgz" />
+ <dataarea name="quik" size="3932">
+ <rom name="07 dehumanize.vgz" size="3932" crc="adcbef7f" sha1="2fc3a280926531dc1ba0c8320f643b6d349a5db8" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 interlude ii.vgz" />
+ <dataarea name="quik" size="3480">
+ <rom name="08 interlude ii.vgz" size="3480" crc="50929940" sha1="283615384b6c11e1c136759a7a1d1220eea96cd7" offset="0" />
+ </dataarea>
+ </part>
+ <part name="009" interface="vgm_quik">
+ <feature name="part_id" value="09 thunderstorm.vgz" />
+ <dataarea name="quik" size="11227">
+ <rom name="09 thunderstorm.vgz" size="11227" crc="0eecf0e8" sha1="3cb1dae7c0dba147a5887fe2d63b88dd21978f91" offset="0" />
+ </dataarea>
+ </part>
+ <part name="010" interface="vgm_quik">
+ <feature name="part_id" value="10 overdrive.vgz" />
+ <dataarea name="quik" size="12145">
+ <rom name="10 overdrive.vgz" size="12145" crc="62f1f0c4" sha1="9c15c97e5a1887b86158a47e3322d6ac9e6a5a8b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="011" interface="vgm_quik">
+ <feature name="part_id" value="11 no end darkness.vgz" />
+ <dataarea name="quik" size="12203">
+ <rom name="11 no end darkness.vgz" size="12203" crc="e38a988e" sha1="fb2a4fac8de261481b2708408e03575c0c9ae34f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="012" interface="vgm_quik">
+ <feature name="part_id" value="12 tower lahja.vgz" />
+ <dataarea name="quik" size="5580">
+ <rom name="12 tower lahja.vgz" size="5580" crc="c1c9f544" sha1="26ab997f7d95f9d14787e67770c06c82f49b47c3" offset="0" />
+ </dataarea>
+ </part>
+ <part name="013" interface="vgm_quik">
+ <feature name="part_id" value="13 world enslaved.vgz" />
+ <dataarea name="quik" size="20774">
+ <rom name="13 world enslaved.vgz" size="20774" crc="1dffaaff" sha1="1f21a8854c538fbb1ba29d3f0fb1c070efdc950f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="014" interface="vgm_quik">
+ <feature name="part_id" value="14 the parasprinter.vgz" />
+ <dataarea name="quik" size="8937">
+ <rom name="14 the parasprinter.vgz" size="8937" crc="65edc309" sha1="6e11ff98cc161198a48a0aa5c771831dcba19217" offset="0" />
+ </dataarea>
+ </part>
+ <part name="015" interface="vgm_quik">
+ <feature name="part_id" value="15 irene captured.vgz" />
+ <dataarea name="quik" size="8313">
+ <rom name="15 irene captured.vgz" size="8313" crc="ac12547b" sha1="02daee49432a21a871623269ac9c85613ad6339f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="016" interface="vgm_quik">
+ <feature name="part_id" value="16 the dark emperor.vgz" />
+ <dataarea name="quik" size="8531">
+ <rom name="16 the dark emperor.vgz" size="8531" crc="d242dbbb" sha1="ff2cfc2803d26e4751bccc2aca71e42dc779d769" offset="0" />
+ </dataarea>
+ </part>
+ <part name="017" interface="vgm_quik">
+ <feature name="part_id" value="17 hideous relics.vgz" />
+ <dataarea name="quik" size="4524">
+ <rom name="17 hideous relics.vgz" size="4524" crc="3d3e15ea" sha1="a0c80d5b44077888102f1e1f665ff4f6abbb91b6" offset="0" />
+ </dataarea>
+ </part>
+ <part name="018" interface="vgm_quik">
+ <feature name="part_id" value="18 interlude i.vgz" />
+ <dataarea name="quik" size="3055">
+ <rom name="18 interlude i.vgz" size="3055" crc="10fd1f2a" sha1="3edff5c339ec92ff1b83f0b5d0dc3e41d3e3edca" offset="0" />
+ </dataarea>
+ </part>
+ <part name="019" interface="vgm_quik">
+ <feature name="part_id" value="19 fire cavern.vgz" />
+ <dataarea name="quik" size="7554">
+ <rom name="19 fire cavern.vgz" size="7554" crc="a57af2ab" sha1="ea496964620150147d253c6f7f5367d658e553b7" offset="0" />
+ </dataarea>
+ </part>
+ <part name="020" interface="vgm_quik">
+ <feature name="part_id" value="20 shadow diabolica.vgz" />
+ <dataarea name="quik" size="8386">
+ <rom name="20 shadow diabolica.vgz" size="8386" crc="8ca8e85f" sha1="129b04f482169d33d2b893ee0def7bf9cbb57d39" offset="0" />
+ </dataarea>
+ </part>
+ <part name="021" interface="vgm_quik">
+ <feature name="part_id" value="21 to the rescue.vgz" />
+ <dataarea name="quik" size="983">
+ <rom name="21 to the rescue.vgz" size="983" crc="0f808cce" sha1="2a50daba6072d5a6cd0734109edbe2c3b6ec1a4f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="022" interface="vgm_quik">
+ <feature name="part_id" value="22 unlimited moment.vgz" />
+ <dataarea name="quik" size="10143">
+ <rom name="22 unlimited moment.vgz" size="10143" crc="4980200b" sha1="cf6e0a5e7c1f99b5bcb12cf1dcfc9dba1751d5fd" offset="0" />
+ </dataarea>
+ </part>
+ <part name="023" interface="vgm_quik">
+ <feature name="part_id" value="23 castle demonic.vgz" />
+ <dataarea name="quik" size="6346">
+ <rom name="23 castle demonic.vgz" size="6346" crc="c47bafb5" sha1="c809f5aff6bc4d623cd2960a0b90d7bac4876a4d" offset="0" />
+ </dataarea>
+ </part>
+ <part name="024" interface="vgm_quik">
+ <feature name="part_id" value="24 ryu fights back.vgz" />
+ <dataarea name="quik" size="6574">
+ <rom name="24 ryu fights back.vgz" size="6574" crc="beaf0ba9" sha1="d0848eb44eda50d447a65bce1949f03c663ee397" offset="0" />
+ </dataarea>
+ </part>
+ <part name="025" interface="vgm_quik">
+ <feature name="part_id" value="25 lord of night.vgz" />
+ <dataarea name="quik" size="7180">
+ <rom name="25 lord of night.vgz" size="7180" crc="44572054" sha1="685a67c161cfa4d4712fa905ec8fbb0e1bfe1631" offset="0" />
+ </dataarea>
+ </part>
+ <part name="026" interface="vgm_quik">
+ <feature name="part_id" value="26 irene &amp; ryu.vgz" />
+ <dataarea name="quik" size="16441">
+ <rom name="26 irene &amp; ryu.vgz" size="16441" crc="a28eccea" sha1="c581ee2559f9cc8f393304653b12626971fa2c36" offset="0" />
+ </dataarea>
+ </part>
+ <part name="027" interface="vgm_quik">
+ <feature name="part_id" value="27 a long way to go.vgz" />
+ <dataarea name="quik" size="51724">
+ <rom name="27 a long way to go.vgz" size="51724" crc="3f29bd5a" sha1="d2a91bd8837577f01d8ab35fc9d3212c737b9b53" offset="0" />
+ </dataarea>
+ </part>
+ <part name="028" interface="vgm_quik">
+ <feature name="part_id" value="28 defeated.vgz" />
+ <dataarea name="quik" size="1609">
+ <rom name="28 defeated.vgz" size="1609" crc="4ef44040" sha1="085672539fdbbbb30489bf32b6d33e89cdff3bf8" offset="0" />
+ </dataarea>
+ </part>
+ <part name="029" interface="vgm_quik">
+ <feature name="part_id" value="29 all gone.vgz" />
+ <dataarea name="quik" size="2372">
+ <rom name="29 all gone.vgz" size="2372" crc="67a8fd77" sha1="af5471eb7ce30f566404f8fd367a94cb46eb4ce3" offset="0" />
+ </dataarea>
+ </part>
+ <part name="030" interface="vgm_quik">
+ <feature name="part_id" value="30 unused.vgz" />
+ <dataarea name="quik" size="8867">
+ <rom name="30 unused.vgz" size="8867" crc="6a7d0ed4" sha1="2a07be6410669cb87ebbdfed02a624ddce99d4f4" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="ninjarem_st">
+ <description>Ninja Remix (Atari ST)</description>
+ <year>1990</year>
+ <publisher>System 3 Software</publisher>
+ <info name="cores" value="YM2149"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 title, the palace.vgz" />
+ <dataarea name="quik" size="400050">
+ <rom name="01 title, the palace.vgz" size="400050" crc="87cb8665" sha1="efeae6ea02729182d2934a779097238610c883b6" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 wastelands.vgz" />
+ <dataarea name="quik" size="225972">
+ <rom name="02 wastelands.vgz" size="225972" crc="0ec10168" sha1="d3664245388dedcea28abbfbcb8a71182c390937" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 the wilderness.vgz" />
+ <dataarea name="quik" size="330055">
+ <rom name="03 the wilderness.vgz" size="330055" crc="814646ab" sha1="e0660d6a02c41fb50560013eeb969f19eb78644d" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 palace gardens.vgz" />
+ <dataarea name="quik" size="171364">
+ <rom name="04 palace gardens.vgz" size="171364" crc="88cddc45" sha1="97135708a6b7107226223cef5d59baf40fe0b023" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 the dungeons.vgz" />
+ <dataarea name="quik" size="285500">
+ <rom name="05 the dungeons.vgz" size="285500" crc="9d08c28e" sha1="609c8f6c65f05739a7788757ad5c863dfa18a3e4" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 the inner sanctum.vgz" />
+ <dataarea name="quik" size="193378">
+ <rom name="06 the inner sanctum.vgz" size="193378" crc="dbf6e7ea" sha1="0b821660d5a6f7f22e28553d95789a83fb836760" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="prmrsocr">
+ <description>Premier Soccer (Arcade)</description>
+ <year>1993</year>
+ <publisher>Konami</publisher>
+ <info name="cores" value="K054539"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 premier soccer (title demo bgm).vgz" />
+ <dataarea name="quik" size="565254">
+ <rom name="01 premier soccer (title demo bgm).vgz" size="565254" crc="ff8eb8a0" sha1="e8b003707a9e35cbd0368e1885e9f995e88db0d3" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 credit.vgz" />
+ <dataarea name="quik" size="65850">
+ <rom name="02 credit.vgz" size="65850" crc="ce424186" sha1="f085f38a400730b9a86fc226cb95a21eea46bbe6" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 quale squadra vincerà? (team, block, zoom select bgm).vgz" />
+ <dataarea name="quik" size="447220">
+ <rom name="03 quale squadra vincera (team, block, zoom select bgm).vgz" size="447220" crc="9c1cd50d" sha1="d9862ab85ef1ed7ae0fd2e0efa65f58aadd4014d" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 giociamo a calcio! (preliminaries bgm).vgz" />
+ <dataarea name="quik" size="490377">
+ <rom name="04 giociamo a calcio (preliminaries bgm).vgz" size="490377" crc="eae7b2ff" sha1="d11270376e9b363e0f2a5415feda47ac88197257" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 andiamo a vedere la partita di calcio! (finals bgm 1).vgz" />
+ <dataarea name="quik" size="520902">
+ <rom name="05 andiamo a vedere la partita di calcio (finals bgm 1).vgz" size="520902" crc="014afe60" sha1="e1b7071c4c3c2492695b065b334da32d2961b5ea" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 tra gli sport mi piace soprattutto li calcio.vgz" />
+ <dataarea name="quik" size="470889">
+ <rom name="06 tra gli sport mi piace soprattutto li calcio.vgz" size="470889" crc="b126b409" sha1="8d71df991d060715ba1b2033d33ec250a4802d98" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 dovete superare la difficoltà.vgz" />
+ <dataarea name="quik" size="471205">
+ <rom name="07 dovete superare la difficolta.vgz" size="471205" crc="e0882ccf" sha1="8212725f6024698fe978780cfeeeda75ad039e20" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 e splendido! (victory bgm).vgz" />
+ <dataarea name="quik" size="444724">
+ <rom name="08 e splendido (victory bgm).vgz" size="444724" crc="d334a349" sha1="1198fd2e4c59c0bc135efa78be6fdd64b4357602" offset="0" />
+ </dataarea>
+ </part>
+ <part name="009" interface="vgm_quik">
+ <feature name="part_id" value="09 dispiacere (defeat bgm.vgz" />
+ <dataarea name="quik" size="252676">
+ <rom name="09 dispiacere (defeat bgm.vgz" size="252676" crc="a3817204" sha1="43f3c4dd3390a70fd2c98c62b279b86371ebc1c3" offset="0" />
+ </dataarea>
+ </part>
+ <part name="010" interface="vgm_quik">
+ <feature name="part_id" value="10 festa in luglio (clear demo bgm).vgz" />
+ <dataarea name="quik" size="235430">
+ <rom name="10 festa in luglio (clear demo bgm).vgz" size="235430" crc="a3c17e96" sha1="0e3bc4b8c9acefcc11feeb5912db3b74bb868a98" offset="0" />
+ </dataarea>
+ </part>
+ <part name="011" interface="vgm_quik">
+ <feature name="part_id" value="11 lo fai spesso (continue bgm).vgz" />
+ <dataarea name="quik" size="369559">
+ <rom name="11 lo fai spesso (continue bgm).vgz" size="369559" crc="e46d2fa0" sha1="e851853ad851a0f7392d014be159499d96b98100" offset="0" />
+ </dataarea>
+ </part>
+ <part name="012" interface="vgm_quik">
+ <feature name="part_id" value="12 come si chiama (ranking bgm).vgz" />
+ <dataarea name="quik" size="375330">
+ <rom name="12 come si chiama (ranking bgm).vgz" size="375330" crc="7c69e655" sha1="89345c0e63708ba5c15a5e9395ae6640a0460f18" offset="0" />
+ </dataarea>
+ </part>
+ <part name="013" interface="vgm_quik">
+ <feature name="part_id" value="13 ci vediamo un'altra volta! (game over bgm).vgz" />
+ <dataarea name="quik" size="247057">
+ <rom name="13 ci vediamo un'altra volta (game over bgm).vgz" size="247057" crc="4be59c8a" sha1="7fcc26f69d3beecc2350a603e0e8584baed0b634" offset="0" />
+ </dataarea>
+ </part>
+ <part name="014" interface="vgm_quik">
+ <feature name="part_id" value="14 ultimo possibilità (pk battle begins bgm).vgz" />
+ <dataarea name="quik" size="300765">
+ <rom name="14 ultimo possibilita (pk battle begins bgm).vgz" size="300765" crc="cb87f1e0" sha1="4179066f912dbeef654a08a5f0a2fdd973430a77" offset="0" />
+ </dataarea>
+ </part>
+ <part name="015" interface="vgm_quik">
+ <feature name="part_id" value="15 vorrei fare (2p joining midway bgm).vgz" />
+ <dataarea name="quik" size="155112">
+ <rom name="15 vorrei fare (2p joining midway bgm).vgz" size="155112" crc="3ed7b188" sha1="309b6d555769d1c542695c43f44983b3d33affe8" offset="0" />
+ </dataarea>
+ </part>
+ <part name="016" interface="vgm_quik">
+ <feature name="part_id" value="16 cerimonia (ending bgm).vgz" />
+ <dataarea name="quik" size="525515">
+ <rom name="16 cerimonia (ending bgm).vgz" size="525515" crc="5e71a6ce" sha1="428e117305d98bba211f65ebcf63adcd5e8c9316" offset="0" />
+ </dataarea>
+ </part>
+ <part name="017" interface="vgm_quik">
+ <feature name="part_id" value="17 amico (staff roll bgm).vgz" />
+ <dataarea name="quik" size="568682">
+ <rom name="17 amico (staff roll bgm).vgz" size="568682" crc="03ff5c0e" sha1="0fa224a088a446c43ad4e2860df3270ca184f03d" offset="0" />
+ </dataarea>
+ </part>
+ <part name="018" interface="vgm_quik">
+ <feature name="part_id" value="18 stereo check.vgz" />
+ <dataarea name="quik" size="44474">
+ <rom name="18 stereo check.vgz" size="44474" crc="aaf0178e" sha1="e00ceae50078c27d8524f4fccfc28af2b33ccbc2" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="punkshot">
+ <description>Punk Shot (Arcade)</description>
+ <year>1990</year>
+ <publisher>Konami</publisher>
+ <info name="cores" value="YM2151, K053260"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 punk shot (title demo).vgz" />
+ <dataarea name="quik" size="24484">
+ <rom name="01 punk shot (title demo).vgz" size="24484" crc="da841a1c" sha1="db6f8ae75c6bb9baa9090e390255c3541a84c17d" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 credit.vgz" />
+ <dataarea name="quik" size="4891">
+ <rom name="02 credit.vgz" size="4891" crc="bb56c422" sha1="ab0d39581de903743d33d281c39c0c5d2a156fdd" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 do play a game! (select bgm).vgz" />
+ <dataarea name="quik" size="61313">
+ <rom name="03 do play a game (select bgm).vgz" size="61313" crc="41beb512" sha1="2457119307a08527af8bc2e8c6bc0853d9b63bd8" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 do it (start bgm).vgz" />
+ <dataarea name="quik" size="20691">
+ <rom name="04 do it (start bgm).vgz" size="20691" crc="f3efeb5f" sha1="890dc2bd8e1be1ee5ff34456069776816f3517cd" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 the slams (slam town bgm).vgz" />
+ <dataarea name="quik" size="83238">
+ <rom name="05 the slams (slam town bgm).vgz" size="83238" crc="4f48099e" sha1="c0e1a66db61f681949d2ed747586890b1125a516" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 in the park (park bgm).vgz" />
+ <dataarea name="quik" size="122659">
+ <rom name="06 in the park (park bgm).vgz" size="122659" crc="836f85ef" sha1="207a7851ce1f7e33841f856d71346d15e26c6c67" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 a wharf (wharf bgm).vgz" />
+ <dataarea name="quik" size="36377">
+ <rom name="07 a wharf (wharf bgm).vgz" size="36377" crc="46a833e4" sha1="147f309a130d1ed23d870a3515437766bd6b336f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 way to gooooo... (midway demo).vgz" />
+ <dataarea name="quik" size="63138">
+ <rom name="08 way to gooooo... (midway demo).vgz" size="63138" crc="2a32b1ad" sha1="aee65e013921bdb77cac331dc6b635a03ca75c6f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="009" interface="vgm_quik">
+ <feature name="part_id" value="09 play, again (continue).vgz" />
+ <dataarea name="quik" size="21360">
+ <rom name="09 play, again (continue).vgz" size="21360" crc="a91d6ae7" sha1="73d7c6bc165d938bc52762b9eff5ff6379f296e8" offset="0" />
+ </dataarea>
+ </part>
+ <part name="010" interface="vgm_quik">
+ <feature name="part_id" value="10 go baby! (end demo 1).vgz" />
+ <dataarea name="quik" size="53167">
+ <rom name="10 go baby (end demo 1).vgz" size="53167" crc="2d61bbba" sha1="fbf827cd9b8ab7b7c4dd421c7b558126e7e7056b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="011" interface="vgm_quik">
+ <feature name="part_id" value="11 you punks are soo baad! (end demo 2).vgz" />
+ <dataarea name="quik" size="46282">
+ <rom name="11 you punks are soo baad (end demo 2).vgz" size="46282" crc="5804f401" sha1="de3a47b5a32159bddf58ec236b6d77d7615727ff" offset="0" />
+ </dataarea>
+ </part>
+ <part name="012" interface="vgm_quik">
+ <feature name="part_id" value="12 ranking! (ranking).vgz" />
+ <dataarea name="quik" size="23529">
+ <rom name="12 ranking (ranking).vgz" size="23529" crc="dcebb785" sha1="19ac3419bb016ae652946f35fa5aebec383f3ddd" offset="0" />
+ </dataarea>
+ </part>
+ <part name="013" interface="vgm_quik">
+ <feature name="part_id" value="13 it's over (game over).vgz" />
+ <dataarea name="quik" size="34783">
+ <rom name="13 it's over (game over).vgz" size="34783" crc="9889681b" sha1="9a46217f647a16ed674bf44b14c137cca7abdfc5" offset="0" />
+ </dataarea>
+ </part>
+ <part name="014" interface="vgm_quik">
+ <feature name="part_id" value="14 do it ~ the slams.vgz" />
+ <dataarea name="quik" size="93158">
+ <rom name="14 do it ~ the slams.vgz" size="93158" crc="dada0704" sha1="3d43a4034e941546b8f6434d9a7becccbe17e023" offset="0" />
+ </dataarea>
+ </part>
+ <part name="015" interface="vgm_quik">
+ <feature name="part_id" value="15 do it ~ in the park.vgz" />
+ <dataarea name="quik" size="137555">
+ <rom name="15 do it ~ in the park.vgz" size="137555" crc="6f732c63" sha1="ff850bca7e46ee990755f80070bd32f79f7dd84b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="016" interface="vgm_quik">
+ <feature name="part_id" value="16 do it ~ a wharf.vgz" />
+ <dataarea name="quik" size="47239">
+ <rom name="16 do it ~ a wharf.vgz" size="47239" crc="863fb523" sha1="f5f81daabf4b5dfcb83add09d57142397c60a15a" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="shanghai">
+ <description>Shanghai (Arcade)</description>
+ <year>1988</year>
+ <publisher>Sunsoft</publisher>
+ <info name="cores" value="YM2203"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 round start.vgz" />
+ <dataarea name="quik" size="1028">
+ <rom name="01 round start.vgz" size="1028" crc="d48a14c2" sha1="dd19ade524545383de3355bc5b97373efb472895" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 round theme.vgz" />
+ <dataarea name="quik" size="2565">
+ <rom name="02 round theme.vgz" size="2565" crc="0c87f123" sha1="6bd83fed191315fd155852fb18d2b169e0aba0c6" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 round complete.vgz" />
+ <dataarea name="quik" size="1548">
+ <rom name="03 round complete.vgz" size="1548" crc="73266a7d" sha1="901ee1431c44a452b26e30d8eb551762d5fa4e2f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 continue.vgz" />
+ <dataarea name="quik" size="2378">
+ <rom name="04 continue.vgz" size="2378" crc="844e9b4e" sha1="33cfdbc26604d07d763f89747bb920b60b2dcb90" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 game over.vgz" />
+ <dataarea name="quik" size="1183">
+ <rom name="05 game over.vgz" size="1183" crc="40021bca" sha1="62e55f69aed984ade14043340e4c7cb003b548f3" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 name entry.vgz" />
+ <dataarea name="quik" size="3782">
+ <rom name="06 name entry.vgz" size="3782" crc="72c1a0e5" sha1="2595a93da09e75140f4697b8c68a89710a00a4bd" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="strmlord_st">
+ <description>Stormlord (Atari ST)</description>
+ <year>1989</year>
+ <publisher>Hewson Consultants</publisher>
+ <info name="cores" value="YM2149"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 main theme.vgz" />
+ <dataarea name="quik" size="3665104">
+ <rom name="01 main theme.vgz" size="3665104" crc="aa253ba3" sha1="ad990798497b9d2f17144d2f9c898a26c3a9fb03" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 intro.vgz" />
+ <dataarea name="quik" size="46967">
+ <rom name="02 intro.vgz" size="46967" crc="c48ce4fe" sha1="b7703b1602b6d6d42c6570f67e93c9e811a02d4a" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 start.vgz" />
+ <dataarea name="quik" size="871">
+ <rom name="03 start.vgz" size="871" crc="abbdec6b" sha1="68ec2cea69c582ebe200af4f188939868553081c" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 in-game bgm.vgz" />
+ <dataarea name="quik" size="50648">
+ <rom name="04 in-game bgm.vgz" size="50648" crc="199eb75c" sha1="086607ad117885aa1b902ebad82b106f92e1590f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 game over.vgz" />
+ <dataarea name="quik" size="1872">
+ <rom name="05 game over.vgz" size="1872" crc="6b220e2f" sha1="d9a6b78e50f887c88efbd264ee042c30a9faa6a5" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="macross">
+ <description>Super Space Fortress Macross II (Arcade)</description>
+ <year>1993</year>
+ <publisher>Banpresto</publisher>
+ <info name="cores" value="YM2203, 2xOKIM6295"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 title demo.vgz" />
+ <dataarea name="quik" size="763082">
+ <rom name="01 title demo.vgz" size="763082" crc="4798dd2b" sha1="26199d11a63a1b44b6466a54b5a703f3d2e9a498" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 credit.vgz" />
+ <dataarea name="quik" size="12943">
+ <rom name="02 credit.vgz" size="12943" crc="a5629a6c" sha1="5637e2991067e674f1ef0e1dd98c9b20d1f7503b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 mode select ~ course select.vgz" />
+ <dataarea name="quik" size="176485">
+ <rom name="03 mode select ~ course select.vgz" size="176485" crc="5d319b2d" sha1="56734605bf200476c77ab0ab61e78e214d1b444d" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 beginner course stage 1.vgz" />
+ <dataarea name="quik" size="422221">
+ <rom name="04 beginner course stage 1.vgz" size="422221" crc="ffc77008" sha1="6ce3a43e61256c965937b490d29aacdfe05e8e2d" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 boss bgm #1.vgz" />
+ <dataarea name="quik" size="350508">
+ <rom name="05 boss bgm #1.vgz" size="350508" crc="23b9bac4" sha1="f409976434edacc9e1494aaca80fdd0af5411cf2" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 stage clear.vgz" />
+ <dataarea name="quik" size="341072">
+ <rom name="06 stage clear.vgz" size="341072" crc="77cc2ac2" sha1="97bef295f6da6f652d8e8898c8e4e7fcda97636b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 stage clear intermission.vgz" />
+ <dataarea name="quik" size="44876">
+ <rom name="07 stage clear intermission.vgz" size="44876" crc="bf34ad8d" sha1="85a7720ee6a2af33f5439cc820ddab9d0fb87a18" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 beginner course stage 2.vgz" />
+ <dataarea name="quik" size="412656">
+ <rom name="08 beginner course stage 2.vgz" size="412656" crc="ea457f5a" sha1="e462d0f32d25f4bf7c113522accac29a81adadd8" offset="0" />
+ </dataarea>
+ </part>
+ <part name="009" interface="vgm_quik">
+ <feature name="part_id" value="09 boss bgm #2.vgz" />
+ <dataarea name="quik" size="248539">
+ <rom name="09 boss bgm #2.vgz" size="248539" crc="a5eb0d33" sha1="1a6c3576bfddaa2ef4a0599c8c324c1fee4e61f1" offset="0" />
+ </dataarea>
+ </part>
+ <part name="010" interface="vgm_quik">
+ <feature name="part_id" value="10 beginner course stage 3.vgz" />
+ <dataarea name="quik" size="282436">
+ <rom name="10 beginner course stage 3.vgz" size="282436" crc="f16bf9e7" sha1="5ef78b9d27cb7b1f30ddb1fb1c2e492bccfa5b19" offset="0" />
+ </dataarea>
+ </part>
+ <part name="011" interface="vgm_quik">
+ <feature name="part_id" value="11 boss bgm #3.vgz" />
+ <dataarea name="quik" size="511019">
+ <rom name="11 boss bgm #3.vgz" size="511019" crc="df1822ef" sha1="95a3e372bbdc340b749e9b90605cb11125f56264" offset="0" />
+ </dataarea>
+ </part>
+ <part name="012" interface="vgm_quik">
+ <feature name="part_id" value="12 medium course stage 1.vgz" />
+ <dataarea name="quik" size="775604">
+ <rom name="12 medium course stage 1.vgz" size="775604" crc="061a1445" sha1="aad87362aa9f4ff6aba30469b9901cb6cd078e44" offset="0" />
+ </dataarea>
+ </part>
+ <part name="013" interface="vgm_quik">
+ <feature name="part_id" value="13 medium course stage 2.vgz" />
+ <dataarea name="quik" size="541180">
+ <rom name="13 medium course stage 2.vgz" size="541180" crc="5a609042" sha1="f3bcf84c99c784d68943994225f5926f4fb301e7" offset="0" />
+ </dataarea>
+ </part>
+ <part name="014" interface="vgm_quik">
+ <feature name="part_id" value="14 medium course stage 3.vgz" />
+ <dataarea name="quik" size="723824">
+ <rom name="14 medium course stage 3.vgz" size="723824" crc="d8352e20" sha1="0f4a82f9deb5a692d9507bae9e89bc21e25cf066" offset="0" />
+ </dataarea>
+ </part>
+ <part name="015" interface="vgm_quik">
+ <feature name="part_id" value="15 expert course stage 1.vgz" />
+ <dataarea name="quik" size="314221">
+ <rom name="15 expert course stage 1.vgz" size="314221" crc="48f03559" sha1="9b36910419f90e2f1d516049816cff863af27ec7" offset="0" />
+ </dataarea>
+ </part>
+ <part name="016" interface="vgm_quik">
+ <feature name="part_id" value="16 expert course stage 2.vgz" />
+ <dataarea name="quik" size="447218">
+ <rom name="16 expert course stage 2.vgz" size="447218" crc="a2ddebe5" sha1="85345aeaa3c5ca06102f467c009b448b5b514b03" offset="0" />
+ </dataarea>
+ </part>
+ <part name="017" interface="vgm_quik">
+ <feature name="part_id" value="17 expert course stage 3.vgz" />
+ <dataarea name="quik" size="284474">
+ <rom name="17 expert course stage 3.vgz" size="284474" crc="11da285f" sha1="d0bfbd9a5aa0bab4b83663ac72ef5d89679e81b1" offset="0" />
+ </dataarea>
+ </part>
+ <part name="018" interface="vgm_quik">
+ <feature name="part_id" value="18 special stage.vgz" />
+ <dataarea name="quik" size="596854">
+ <rom name="18 special stage.vgz" size="596854" crc="e3e2f705" sha1="667e15e982fcc69450b477a55650ce6ece892b4e" offset="0" />
+ </dataarea>
+ </part>
+ <part name="019" interface="vgm_quik">
+ <feature name="part_id" value="19 special stage boss.vgz" />
+ <dataarea name="quik" size="267417">
+ <rom name="19 special stage boss.vgz" size="267417" crc="2139a6d6" sha1="4211bcfdadd27e0523371ea260ed114de78a300b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="020" interface="vgm_quik">
+ <feature name="part_id" value="20 course completed (staff roll).vgz" />
+ <dataarea name="quik" size="764091">
+ <rom name="20 course completed (staff roll).vgz" size="764091" crc="142f0f27" sha1="a13552bd04d6b7b73deefd582e993c3a75fc01f3" offset="0" />
+ </dataarea>
+ </part>
+ <part name="021" interface="vgm_quik">
+ <feature name="part_id" value="21 ranking (1st).vgz" />
+ <dataarea name="quik" size="203062">
+ <rom name="21 ranking (1st).vgz" size="203062" crc="9a94783d" sha1="19afb7b284d9a5dc181b38e5ee72b16938bb5dd5" offset="0" />
+ </dataarea>
+ </part>
+ <part name="022" interface="vgm_quik">
+ <feature name="part_id" value="22 ranking (2nd~8th).vgz" />
+ <dataarea name="quik" size="228933">
+ <rom name="22 ranking (2nd~8th).vgz" size="228933" crc="7c830ac3" sha1="894ffd9c34dc53066e9d9f67856ce1c3d270eea0" offset="0" />
+ </dataarea>
+ </part>
+ <part name="023" interface="vgm_quik">
+ <feature name="part_id" value="23 continue.vgz" />
+ <dataarea name="quik" size="186731">
+ <rom name="23 continue.vgz" size="186731" crc="d5e4caa7" sha1="35a1a129e435bd19574d4fc049718aa1b1a6366a" offset="0" />
+ </dataarea>
+ </part>
+ <part name="024" interface="vgm_quik">
+ <feature name="part_id" value="24 game over.vgz" />
+ <dataarea name="quik" size="24456">
+ <rom name="24 game over.vgz" size="24456" crc="67a30a1a" sha1="9a9936a1e0203fc55339896644c3202604ca6807" offset="0" />
+ </dataarea>
+ </part>
+ <part name="025" interface="vgm_quik">
+ <feature name="part_id" value="25 bad ending (special stage game over).vgz" />
+ <dataarea name="quik" size="69272">
+ <rom name="25 bad ending (special stage game over).vgz" size="69272" crc="915b3837" sha1="2c512850cc895020ffb233b9e72fc025355305d1" offset="0" />
+ </dataarea>
+ </part>
+ <part name="026" interface="vgm_quik">
+ <feature name="part_id" value="26 1p vs 2p results.vgz" />
+ <dataarea name="quik" size="233619">
+ <rom name="26 1p vs 2p results.vgz" size="233619" crc="ef8d5057" sha1="a426385949cd27c5b263b881bdac41a2e0fd31db" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="tmnttf_nes">
+ <description>Teenage Mutant Ninja Turtles - Tournament Fighters (NES)</description>
+ <year>1993</year>
+ <publisher>Konami</publisher>
+ <info name="cores" value="NES APU (N2A03)"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 story (prologue, part 1).vgz" />
+ <dataarea name="quik" size="5090">
+ <rom name="01 story (prologue, part 1).vgz" size="5090" crc="c20f83b3" sha1="f6aac9ccc58a3ccc7540f71a92aec9fc831f9079" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 shredder's invitation (prologue, part 2).vgz" />
+ <dataarea name="quik" size="8144">
+ <rom name="02 shredder's invitation (prologue, part 2).vgz" size="8144" crc="1709648c" sha1="c3359d87c1f22b0f9fd5e7ad56960e16dc5a51cc" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 heroes united (prologue, part 3).vgz" />
+ <dataarea name="quik" size="9249">
+ <rom name="03 heroes united (prologue, part 3).vgz" size="9249" crc="73818f14" sha1="a6dc364545cf0d32d8fb8a522bb388b7812eb96a" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 player select.vgz" />
+ <dataarea name="quik" size="4913">
+ <rom name="04 player select.vgz" size="4913" crc="e3722ee5" sha1="4765647f0e46a880cb8ef160f950bfe788c68606" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 vs.vgz" />
+ <dataarea name="quik" size="5183">
+ <rom name="05 vs.vgz" size="5183" crc="4893b654" sha1="95f6fab4299c6417688caddd81c2dc604f9f12c6" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 sewer.vgz" />
+ <dataarea name="quik" size="19526">
+ <rom name="06 sewer.vgz" size="19526" crc="353f143b" sha1="e3afce49a93cbe1e82fffcf7d2c37f1cb3e8b7da" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 sewer (faster).vgz" />
+ <dataarea name="quik" size="6751">
+ <rom name="07 sewer (faster).vgz" size="6751" crc="a31ae88d" sha1="8eff75b2ca0ee2773f7e35705ca5919708c8530b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 downtown.vgz" />
+ <dataarea name="quik" size="12990">
+ <rom name="08 downtown.vgz" size="12990" crc="727aa233" sha1="7117c4dde7cac9acfc55da6a868d6be6c21433ae" offset="0" />
+ </dataarea>
+ </part>
+ <part name="009" interface="vgm_quik">
+ <feature name="part_id" value="09 downtown (faster).vgz" />
+ <dataarea name="quik" size="7704">
+ <rom name="09 downtown (faster).vgz" size="7704" crc="ffd2a710" sha1="16b8406ac750e79a4a539eb6e6ffbb4a10d04544" offset="0" />
+ </dataarea>
+ </part>
+ <part name="010" interface="vgm_quik">
+ <feature name="part_id" value="10 bonus game.vgz" />
+ <dataarea name="quik" size="7798">
+ <rom name="10 bonus game.vgz" size="7798" crc="8106c5a0" sha1="ff42d68be5561384fc935747969f705ce9ad59f4" offset="0" />
+ </dataarea>
+ </part>
+ <part name="011" interface="vgm_quik">
+ <feature name="part_id" value="11 bonus game lost.vgz" />
+ <dataarea name="quik" size="1006">
+ <rom name="11 bonus game lost.vgz" size="1006" crc="d193b62f" sha1="01c9ef705b7713cae20e21ae2c1d5d89f1ff1d58" offset="0" />
+ </dataarea>
+ </part>
+ <part name="012" interface="vgm_quik">
+ <feature name="part_id" value="12 pirate ship.vgz" />
+ <dataarea name="quik" size="13676">
+ <rom name="12 pirate ship.vgz" size="13676" crc="9f431087" sha1="21fcbcce80612c560b282dd454b6d9cf68b1a405" offset="0" />
+ </dataarea>
+ </part>
+ <part name="013" interface="vgm_quik">
+ <feature name="part_id" value="13 pirate ship (faster).vgz" />
+ <dataarea name="quik" size="5581">
+ <rom name="13 pirate ship (faster).vgz" size="5581" crc="f6b9a46d" sha1="dbc1ca2c14715794e3a0cbf122d7bfd7453df471" offset="0" />
+ </dataarea>
+ </part>
+ <part name="014" interface="vgm_quik">
+ <feature name="part_id" value="14 shredder's speech.vgz" />
+ <dataarea name="quik" size="4401">
+ <rom name="14 shredder's speech.vgz" size="4401" crc="b465ed80" sha1="d4e761aad48825b46a5e73e93eb8304bd4a9be83" offset="0" />
+ </dataarea>
+ </part>
+ <part name="015" interface="vgm_quik">
+ <feature name="part_id" value="15 waterfront.vgz" />
+ <dataarea name="quik" size="10969">
+ <rom name="15 waterfront.vgz" size="10969" crc="83853400" sha1="2114b882d5720e9a3680430926bc77304febc3b4" offset="0" />
+ </dataarea>
+ </part>
+ <part name="016" interface="vgm_quik">
+ <feature name="part_id" value="16 waterfront (faster).vgz" />
+ <dataarea name="quik" size="9183">
+ <rom name="16 waterfront (faster).vgz" size="9183" crc="3bdac6f3" sha1="380821c5d62526aac95e600650cd73f79c7fb92f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="017" interface="vgm_quik">
+ <feature name="part_id" value="17 shredder wins.vgz" />
+ <dataarea name="quik" size="4858">
+ <rom name="17 shredder wins.vgz" size="4858" crc="abd9b66e" sha1="5ba1aaed9d1e484a3f6b292ee163b7f8149aca43" offset="0" />
+ </dataarea>
+ </part>
+ <part name="018" interface="vgm_quik">
+ <feature name="part_id" value="18 ending.vgz" />
+ <dataarea name="quik" size="10060">
+ <rom name="18 ending.vgz" size="10060" crc="2e1dedcc" sha1="22853d958321f3825a5430d8c2c129ee040be60b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="019" interface="vgm_quik">
+ <feature name="part_id" value="19 staff roll.vgz" />
+ <dataarea name="quik" size="17208">
+ <rom name="19 staff roll.vgz" size="17208" crc="7f3e1c84" sha1="9409ed2a6641f0cedffa8935798bc744070dc9b0" offset="0" />
+ </dataarea>
+ </part>
+ <part name="020" interface="vgm_quik">
+ <feature name="part_id" value="20 tournament.vgz" />
+ <dataarea name="quik" size="4977">
+ <rom name="20 tournament.vgz" size="4977" crc="143618a5" sha1="af1226f6de8236f180336dc9a90dc89292356b77" offset="0" />
+ </dataarea>
+ </part>
+ <part name="021" interface="vgm_quik">
+ <feature name="part_id" value="21 vs battle finished.vgz" />
+ <dataarea name="quik" size="4550">
+ <rom name="21 vs battle finished.vgz" size="4550" crc="c0f54bd9" sha1="713a3d56f3a6ed152738e25d6fe02861b11cc450" offset="0" />
+ </dataarea>
+ </part>
+ <part name="022" interface="vgm_quik">
+ <feature name="part_id" value="22 tournament results ~ bonus game win.vgz" />
+ <dataarea name="quik" size="5245">
+ <rom name="22 tournament results ~ bonus game win.vgz" size="5245" crc="8d45c0e1" sha1="14e2bed6809edc383fdf04c5fc648e45c1b32e5e" offset="0" />
+ </dataarea>
+ </part>
+ <part name="023" interface="vgm_quik">
+ <feature name="part_id" value="23 results (short).vgz" />
+ <dataarea name="quik" size="5104">
+ <rom name="23 results (short).vgz" size="5104" crc="ec9bb895" sha1="1768913ebe109ff61c857233c15f673e17c800cb" offset="0" />
+ </dataarea>
+ </part>
+ <part name="024" interface="vgm_quik">
+ <feature name="part_id" value="24 score ~ continue.vgz" />
+ <dataarea name="quik" size="5639">
+ <rom name="24 score ~ continue.vgz" size="5639" crc="5cc06a08" sha1="f745ff7c0e90af28450a84b34d706fb97fd940cf" offset="0" />
+ </dataarea>
+ </part>
+ <part name="025" interface="vgm_quik">
+ <feature name="part_id" value="25 game over.vgz" />
+ <dataarea name="quik" size="5285">
+ <rom name="25 game over.vgz" size="5285" crc="8d7c0951" sha1="5cb621eab3d8654d09076da3b588a37c8ef8552b" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="tmnt3_nes">
+ <description>Teenage Mutant Ninja Turtles III - The Manhattan Project (NES)</description>
+ <year>1991</year>
+ <publisher>Konami</publisher>
+ <info name="cores" value="NES APU (N2A03)"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 opening.vgz" />
+ <dataarea name="quik" size="6861">
+ <rom name="01 opening.vgz" size="6861" crc="8ff9ad54" sha1="789a3105c3e06383bd1b71f2f358f663a3b03847" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 cowabunga! [press start].vgz" />
+ <dataarea name="quik" size="3972">
+ <rom name="02 cowabunga [press start].vgz" size="3972" crc="846061f7" sha1="baa32678848642799f5b61fc066e2faf2b458175" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 select your turtle.vgz" />
+ <dataarea name="quik" size="2567">
+ <rom name="03 select your turtle.vgz" size="2567" crc="455b2063" sha1="80d355a6e9464ebbf834937b98e3a6b88d524a53" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 on vacation in miami [intro part 1].vgz" />
+ <dataarea name="quik" size="4837">
+ <rom name="04 on vacation in miami [intro part 1].vgz" size="4837" crc="45ec7ee2" sha1="2f490fbbe3636bbb8d15cfcde6f477f320cee397" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 bummer dudes, it's shredder! [intro part 2].vgz" />
+ <dataarea name="quik" size="8767">
+ <rom name="05 bummer dudes, it's shredder [intro part 2].vgz" size="8767" crc="206d5d7a" sha1="be83361057774623d40af6e0f52be68c94dd0b70" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 let's go turtles [scene 1 - ft. slaughterdale beach].vgz" />
+ <dataarea name="quik" size="9827">
+ <rom name="06 let's go turtles [scene 1 - ft. slaughterdale beach].vgz" size="9827" crc="0e985dcb" sha1="d36d484162a89d694ebf5cbcf34b343f70d5fc0b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 crazy attack [boss fight].vgz" />
+ <dataarea name="quik" size="12287">
+ <rom name="07 crazy attack [boss fight].vgz" size="12287" crc="01c133e4" sha1="6ab0dd259f997baf13f3eb43d1f4f0991e694a19" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 scene clear.vgz" />
+ <dataarea name="quik" size="4239">
+ <rom name="08 scene clear.vgz" size="4239" crc="bfe5b8ae" sha1="c39bb1de552d34da23401ca5ebd5cff32e73dda6" offset="0" />
+ </dataarea>
+ </part>
+ <part name="009" interface="vgm_quik">
+ <feature name="part_id" value="09 scene clear cutscene.vgz" />
+ <dataarea name="quik" size="4476">
+ <rom name="09 scene clear cutscene.vgz" size="4476" crc="3faaa9b2" sha1="ba635bbc94883221c3e406a42b04206ef95d42b2" offset="0" />
+ </dataarea>
+ </part>
+ <part name="010" interface="vgm_quik">
+ <feature name="part_id" value="10 move out [scene 2 - the typhoon tidal pool].vgz" />
+ <dataarea name="quik" size="9634">
+ <rom name="10 move out [scene 2 - the typhoon tidal pool].vgz" size="9634" crc="4efa1ee4" sha1="22e0983e63fb6f7244f1026a477fa0d51ddbfb14" offset="0" />
+ </dataarea>
+ </part>
+ <part name="011" interface="vgm_quik">
+ <feature name="part_id" value="11 bridge of danger [scene 3 - brooklyn bridge is falling down].vgz" />
+ <dataarea name="quik" size="13326">
+ <rom name="11 bridge of danger [scene 3 - brooklyn bridge is falling down].vgz" size="13326" crc="f4048894" sha1="1ce1c7e75ad5f56856a87fccd1d5e6f848ce745a" offset="0" />
+ </dataarea>
+ </part>
+ <part name="012" interface="vgm_quik">
+ <feature name="part_id" value="12 bad soldier [mid-boss fight].vgz" />
+ <dataarea name="quik" size="10489">
+ <rom name="12 bad soldier [mid-boss fight].vgz" size="10489" crc="46e6c594" sha1="afaa6249d02c216d69b8e7b5d928264dfc1b5d28" offset="0" />
+ </dataarea>
+ </part>
+ <part name="013" interface="vgm_quik">
+ <feature name="part_id" value="13 mid-scene clear.vgz" />
+ <dataarea name="quik" size="4407">
+ <rom name="13 mid-scene clear.vgz" size="4407" crc="4a75b4d9" sha1="95e61338b92458d5f6e88d4ee7bb6e32d3fe53bc" offset="0" />
+ </dataarea>
+ </part>
+ <part name="014" interface="vgm_quik">
+ <feature name="part_id" value="14 city of half shell [scene 4 - welcome to the jungle].vgz" />
+ <dataarea name="quik" size="10643">
+ <rom name="14 city of half shell [scene 4 - welcome to the jungle].vgz" size="10643" crc="93499fea" sha1="102de7a9017a99c8de6cd0dfd9fca789957b2944" offset="0" />
+ </dataarea>
+ </part>
+ <part name="015" interface="vgm_quik">
+ <feature name="part_id" value="15 double trouble [scene 5-1 - the sewer pipe nightmare].vgz" />
+ <dataarea name="quik" size="12714">
+ <rom name="15 double trouble [scene 5-1 - the sewer pipe nightmare].vgz" size="12714" crc="3bdd5e3f" sha1="12a1fcd415667865c8aa26edb6ad3ebfb09a9ef4" offset="0" />
+ </dataarea>
+ </part>
+ <part name="016" interface="vgm_quik">
+ <feature name="part_id" value="16 approaching leatherhead [scene 5-2].vgz" />
+ <dataarea name="quik" size="1059">
+ <rom name="16 approaching leatherhead [scene 5-2].vgz" size="1059" crc="9de7c9bb" sha1="8bdd04c29f927591d968f71afaa5101670784bfc" offset="0" />
+ </dataarea>
+ </part>
+ <part name="017" interface="vgm_quik">
+ <feature name="part_id" value="17 into the technodrome [scene 6 intro cutscene].vgz" />
+ <dataarea name="quik" size="4816">
+ <rom name="17 into the technodrome [scene 6 intro cutscene].vgz" size="4816" crc="19198e8b" sha1="692e62083d6ff186bad2396c80a57fef6eb8f563" offset="0" />
+ </dataarea>
+ </part>
+ <part name="018" interface="vgm_quik">
+ <feature name="part_id" value="18 mechanical walkin' [scene 6 - the technodrome].vgz" />
+ <dataarea name="quik" size="13109">
+ <rom name="18 mechanical walkin' [scene 6 - the technodrome].vgz" size="13109" crc="27fa202a" sha1="04faab93c022ec6aaa162cdedb0a1b23d36f031f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="019" interface="vgm_quik">
+ <feature name="part_id" value="19 tatsujin [battle with shredder].vgz" />
+ <dataarea name="quik" size="10286">
+ <rom name="19 tatsujin [battle with shredder].vgz" size="10286" crc="c7840af5" sha1="ee3224e0ba922aa1a247d05e4e1fc73f53d8cf23" offset="0" />
+ </dataarea>
+ </part>
+ <part name="020" interface="vgm_quik">
+ <feature name="part_id" value="20 shredder is getting away! [scene 7 intro cutscene].vgz" />
+ <dataarea name="quik" size="4514">
+ <rom name="20 shredder is getting away [scene 7 intro cutscene].vgz" size="4514" crc="a3bd6587" sha1="9976fe78a9df53ba6e3613fa48a3cfe2a7b9a10f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="021" interface="vgm_quik">
+ <feature name="part_id" value="21 turtle power [scene 7-1 - vertigo plant tower - part 1].vgz" />
+ <dataarea name="quik" size="13395">
+ <rom name="21 turtle power [scene 7-1 - vertigo plant tower - part 1].vgz" size="13395" crc="b54a0cb7" sha1="9509e075dcd3c283821f26cec0472cd9e8206ae1" offset="0" />
+ </dataarea>
+ </part>
+ <part name="022" interface="vgm_quik">
+ <feature name="part_id" value="22 break down [scene 7-2 - vertigo plant tower - part 2].vgz" />
+ <dataarea name="quik" size="12652">
+ <rom name="22 break down [scene 7-2 - vertigo plant tower - part 2].vgz" size="12652" crc="2034b584" sha1="6b1326007383f1fe2296d49a2e6b6bbe81790231" offset="0" />
+ </dataarea>
+ </part>
+ <part name="023" interface="vgm_quik">
+ <feature name="part_id" value="23 theme of half shell [scene 8 - krang's spaceship].vgz" />
+ <dataarea name="quik" size="14419">
+ <rom name="23 theme of half shell [scene 8 - krang's spaceship].vgz" size="14419" crc="3862945e" sha1="ac03fba54711f4087e9f848ee4b2cfb2932397d9" offset="0" />
+ </dataarea>
+ </part>
+ <part name="024" interface="vgm_quik">
+ <feature name="part_id" value="24 brain teaser [theme of krang].vgz" />
+ <dataarea name="quik" size="10317">
+ <rom name="24 brain teaser [theme of krang].vgz" size="10317" crc="1aad8ddc" sha1="42db202d34271ebcce5b2af159bf3dd326bcad42" offset="0" />
+ </dataarea>
+ </part>
+ <part name="025" interface="vgm_quik">
+ <feature name="part_id" value="25 super shredder intro.vgz" />
+ <dataarea name="quik" size="4877">
+ <rom name="25 super shredder intro.vgz" size="4877" crc="fbea614c" sha1="49a979111490080c656639183d636f127c3c9a5d" offset="0" />
+ </dataarea>
+ </part>
+ <part name="026" interface="vgm_quik">
+ <feature name="part_id" value="26 the final battle [super shredder].vgz" />
+ <dataarea name="quik" size="9558">
+ <rom name="26 the final battle [super shredder].vgz" size="9558" crc="d7b84532" sha1="4b49173a885c08ced35b6758564a49df62b9e1eb" offset="0" />
+ </dataarea>
+ </part>
+ <part name="027" interface="vgm_quik">
+ <feature name="part_id" value="27 ending cutscene.vgz" />
+ <dataarea name="quik" size="5239">
+ <rom name="27 ending cutscene.vgz" size="5239" crc="1af27400" sha1="05d7038a8886ac0f7c9ab0c7993547fcdcc00e2e" offset="0" />
+ </dataarea>
+ </part>
+ <part name="028" interface="vgm_quik">
+ <feature name="part_id" value="28 cast.vgz" />
+ <dataarea name="quik" size="15341">
+ <rom name="28 cast.vgz" size="15341" crc="1d9a6e7c" sha1="730f11bb3793102d38aeb4b9bb3dd55bc219fcbd" offset="0" />
+ </dataarea>
+ </part>
+ <part name="029" interface="vgm_quik">
+ <feature name="part_id" value="29 staff roll.vgz" />
+ <dataarea name="quik" size="9820">
+ <rom name="29 staff roll.vgz" size="9820" crc="d7ad5098" sha1="b837c3eb723024d2dec4b7999c6d90cc17464685" offset="0" />
+ </dataarea>
+ </part>
+ <part name="030" interface="vgm_quik">
+ <feature name="part_id" value="30 game over.vgz" />
+ <dataarea name="quik" size="4576">
+ <rom name="30 game over.vgz" size="4576" crc="80cb703b" sha1="91941d2ca1785685cb45b54d5fb0814bfc7652cc" offset="0" />
+ </dataarea>
+ </part>
+ <part name="031" interface="vgm_quik">
+ <feature name="part_id" value="31 unused theme.vgz" />
+ <dataarea name="quik" size="4068">
+ <rom name="31 unused theme.vgz" size="4068" crc="25cf0960" sha1="34ace60b6f5994814a97ff6c74809534dc1c89d5" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="viostorm">
+ <description>Violent Storm (Mystic Warriors)</description>
+ <year>1993</year>
+ <publisher>Konami</publisher>
+ <info name="cores" value="2xK054539"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 opening demo 1.vgz" />
+ <dataarea name="quik" size="173645">
+ <rom name="01 opening demo 1.vgz" size="173645" crc="fe30ea6c" sha1="8f2b63b428acb6ec2f19d85e3325285c2436a6ab" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 opening demo 2.vgz" />
+ <dataarea name="quik" size="219888">
+ <rom name="02 opening demo 2.vgz" size="219888" crc="026e5d2e" sha1="9f10455b9f6973f0cc42eb7a580f8d60968ee227" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 title screen.vgz" />
+ <dataarea name="quik" size="42088">
+ <rom name="03 title screen.vgz" size="42088" crc="9e36bf8a" sha1="d74500153b626e50e2402ea053d2388f8c8f2b4a" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 pleased to meet you (character bios, ranking).vgz" />
+ <dataarea name="quik" size="288908">
+ <rom name="04 pleased to meet you (character bios, ranking).vgz" size="288908" crc="d0f535a0" sha1="47b172eda6d0db349c3381cb53cdf9c34dfdfce2" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 credits screen.vgz" />
+ <dataarea name="quik" size="6435">
+ <rom name="05 credits screen.vgz" size="6435" crc="23135cf6" sha1="bd54f44609b37a35c303c885888e80caa965858c" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 credit sfx.vgz" />
+ <dataarea name="quik" size="17037">
+ <rom name="06 credit sfx.vgz" size="17037" crc="64091302" sha1="de77948f8b83b2154fea27536044bda0017cd207" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 funky guys (player select).vgz" />
+ <dataarea name="quik" size="342346">
+ <rom name="07 funky guys (player select).vgz" size="342346" crc="2e652e33" sha1="53b85e60456a31e8c0c09282eb9400122fb667d4" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 who'll be the hero (stage 1).vgz" />
+ <dataarea name="quik" size="819426">
+ <rom name="08 who'll be the hero (stage 1).vgz" size="819426" crc="27a770a7" sha1="0d4926f7bed34448fd161379183b52a3ffab42bc" offset="0" />
+ </dataarea>
+ </part>
+ <part name="009" interface="vgm_quik">
+ <feature name="part_id" value="09 oh! the train (stage 2).vgz" />
+ <dataarea name="quik" size="605425">
+ <rom name="09 oh the train (stage 2).vgz" size="605425" crc="18b90a4f" sha1="fabea9f7f36a087e48ccb483072dd24e734191a0" offset="0" />
+ </dataarea>
+ </part>
+ <part name="010" interface="vgm_quik">
+ <feature name="part_id" value="10 feel my power (stage 3-1).vgz" />
+ <dataarea name="quik" size="674935">
+ <rom name="10 feel my power (stage 3-1).vgz" size="674935" crc="83c3e3ad" sha1="c59115b230e6b25b16e48452d13de7336d9f5844" offset="0" />
+ </dataarea>
+ </part>
+ <part name="011" interface="vgm_quik">
+ <feature name="part_id" value="11 sharara's dancing - light steps (stage 3-2).vgz" />
+ <dataarea name="quik" size="835351">
+ <rom name="11 sharara's dancing - light steps (stage 3-2).vgz" size="835351" crc="75134846" sha1="adbe5f5eaad389a6dae68e543c41cb06598b1a4d" offset="0" />
+ </dataarea>
+ </part>
+ <part name="012" interface="vgm_quik">
+ <feature name="part_id" value="12 drifting tension (stage 4).vgz" />
+ <dataarea name="quik" size="485177">
+ <rom name="12 drifting tension (stage 4).vgz" size="485177" crc="f98e617a" sha1="e8137fedbcc338e4db1883472180418ea55d2fcb" offset="0" />
+ </dataarea>
+ </part>
+ <part name="013" interface="vgm_quik">
+ <feature name="part_id" value="13 we are free! (stage 5).vgz" />
+ <dataarea name="quik" size="1060569">
+ <rom name="13 we are free (stage 5).vgz" size="1060569" crc="2f9d80a1" sha1="d9302fdc4d303742fb2f0008eec807a79ad81bdf" offset="0" />
+ </dataarea>
+ </part>
+ <part name="014" interface="vgm_quik">
+ <feature name="part_id" value="14 hey! hey! hey! (stage 6).vgz" />
+ <dataarea name="quik" size="439474">
+ <rom name="14 hey hey hey (stage 6).vgz" size="439474" crc="401d7e69" sha1="5beb09c92560b80d326141265c3a7120d8fd17b6" offset="0" />
+ </dataarea>
+ </part>
+ <part name="015" interface="vgm_quik">
+ <feature name="part_id" value="15 the final technique (stage 7).vgz" />
+ <dataarea name="quik" size="975945">
+ <rom name="15 the final technique (stage 7).vgz" size="975945" crc="38a5791e" sha1="44f995c5a5a6be6c22db9beffd5cd8302c70d03d" offset="0" />
+ </dataarea>
+ </part>
+ <part name="016" interface="vgm_quik">
+ <feature name="part_id" value="16 who are you (boss 1).vgz" />
+ <dataarea name="quik" size="554300">
+ <rom name="16 who are you (boss 1).vgz" size="554300" crc="65f1bf3d" sha1="f8292c28e18d38e4290d95cad29e6b28c9aafeaf" offset="0" />
+ </dataarea>
+ </part>
+ <part name="017" interface="vgm_quik">
+ <feature name="part_id" value="17 in the shadows (boss 2).vgz" />
+ <dataarea name="quik" size="753794">
+ <rom name="17 in the shadows (boss 2).vgz" size="753794" crc="77544225" sha1="1a6e9c48c2d89ba8e137bbe3933b11d3d971aa53" offset="0" />
+ </dataarea>
+ </part>
+ <part name="018" interface="vgm_quik">
+ <feature name="part_id" value="18 in the shadows (boss 2 -no intro-).vgz" />
+ <dataarea name="quik" size="721858">
+ <rom name="18 in the shadows (boss 2 -no intro-).vgz" size="721858" crc="278309fa" sha1="5881b6d1bf9b78a7386d1e76d6dd42e603fad067" offset="0" />
+ </dataarea>
+ </part>
+ <part name="019" interface="vgm_quik">
+ <feature name="part_id" value="19 vs. geldo (geld) (intro, final boss 1).vgz" />
+ <dataarea name="quik" size="235218">
+ <rom name="19 vs. geldo (geld) (intro, final boss 1).vgz" size="235218" crc="906b8eb9" sha1="7650218fd94f983cae0698b374b3e213e02dc24c" offset="0" />
+ </dataarea>
+ </part>
+ <part name="020" interface="vgm_quik">
+ <feature name="part_id" value="20 vs. geldo (geld) (final boss 2).vgz" />
+ <dataarea name="quik" size="757992">
+ <rom name="20 vs. geldo (geld) (final boss 2).vgz" size="757992" crc="c42bf79d" sha1="0532ec6f14ff0722878fa7b5f859bf552aced395" offset="0" />
+ </dataarea>
+ </part>
+ <part name="021" interface="vgm_quik">
+ <feature name="part_id" value="21 kick it! (stage clear).vgz" />
+ <dataarea name="quik" size="288354">
+ <rom name="21 kick it (stage clear).vgz" size="288354" crc="ad3fda24" sha1="a97b5550b1200fe6ff88b633b8981aa393499873" offset="0" />
+ </dataarea>
+ </part>
+ <part name="022" interface="vgm_quik">
+ <feature name="part_id" value="22 are you ready to have a good time (ending &amp; staff roll).vgz" />
+ <dataarea name="quik" size="679913">
+ <rom name="22 are you ready to have a good time (ending &amp; staff roll).vgz" size="679913" crc="61435a54" sha1="c65c65543f71d1ce6c9349fb9227601eaf4b188a" offset="0" />
+ </dataarea>
+ </part>
+ <part name="023" interface="vgm_quik">
+ <feature name="part_id" value="23 violent storm! (congratulations!).vgz" />
+ <dataarea name="quik" size="16450">
+ <rom name="23 violent storm (congratulations).vgz" size="16450" crc="2d85e16b" sha1="48a45015333eca1847c5742a92edd912e812f42e" offset="0" />
+ </dataarea>
+ </part>
+ <part name="024" interface="vgm_quik">
+ <feature name="part_id" value="24 nice fight, congratulations! (name entry).vgz" />
+ <dataarea name="quik" size="334246">
+ <rom name="24 nice fight, congratulations (name entry).vgz" size="334246" crc="1acd771d" sha1="a8f848469fa2a1d0cb7e6524a907f2f86b9ccaf9" offset="0" />
+ </dataarea>
+ </part>
+ <part name="025" interface="vgm_quik">
+ <feature name="part_id" value="25 out of luck! (game over).vgz" />
+ <dataarea name="quik" size="343019">
+ <rom name="25 out of luck (game over).vgz" size="343019" crc="b317212f" sha1="e8c73a836ff73da8b13a9401c896cb5b46ea63ff" offset="0" />
+ </dataarea>
+ </part>
+ <part name="026" interface="vgm_quik">
+ <feature name="part_id" value="26 speaker test.vgz" />
+ <dataarea name="quik" size="58708">
+ <rom name="26 speaker test.vgz" size="58708" crc="60b6aae2" sha1="642bad30d550c4fa143a02ddc1545a871db4aafd" offset="0" />
+ </dataarea>
+ </part>
+ <part name="027" interface="vgm_quik">
+ <feature name="part_id" value="27 sharara's dancing - light steps (unused).vgz" />
+ <dataarea name="quik" size="835531">
+ <rom name="27 sharara's dancing - light steps (unused).vgz" size="835531" crc="22e1a2a1" sha1="1e0f2d8356f5cc1be19817a6cf9b96ef2ee3111f" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="xout_st">
+ <description>X-Out (Atari ST)</description>
+ <year>1990</year>
+ <publisher>Rainbow Arts</publisher>
+ <info name="cores" value="YM2149"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 title.vgz" />
+ <dataarea name="quik" size="60047">
+ <rom name="01 title.vgz" size="60047" crc="c14731a4" sha1="bdd41b25041f89e853f5e2a0aa471edbd97df138" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 loading.vgz" />
+ <dataarea name="quik" size="16463">
+ <rom name="02 loading.vgz" size="16463" crc="202b4280" sha1="3f6149ada7cd472ddfa18e502cb8faa7d79d002b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 shop.vgz" />
+ <dataarea name="quik" size="48270">
+ <rom name="03 shop.vgz" size="48270" crc="2068e18b" sha1="063a024d4028e58b0520c609dc871b814cab1fff" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 level 1.vgz" />
+ <dataarea name="quik" size="24128">
+ <rom name="04 level 1.vgz" size="24128" crc="045981d8" sha1="6ef6628c1dadd277fbf9511faa099a389b856faa" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 level completed.vgz" />
+ <dataarea name="quik" size="1890">
+ <rom name="05 level completed.vgz" size="1890" crc="6e74edb1" sha1="a782e986c92f0f0ce51bd49764917479012362ee" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 level 2, 5.vgz" />
+ <dataarea name="quik" size="74258">
+ <rom name="06 level 2, 5.vgz" size="74258" crc="15bee92c" sha1="739ba714ceefebb9347552383a20dc562772c623" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 level 3, 6, 8.vgz" />
+ <dataarea name="quik" size="23801">
+ <rom name="07 level 3, 6, 8.vgz" size="23801" crc="1a0c7e00" sha1="91f6cf0000e3fb22fb60141a455a6231b509e4c2" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 level 4, 7.vgz" />
+ <dataarea name="quik" size="118700">
+ <rom name="08 level 4, 7.vgz" size="118700" crc="82bdfd7f" sha1="32de4c80f1a4c1b3901f1c78e5cc2edc3f254e50" offset="0" />
+ </dataarea>
+ </part>
+ <part name="009" interface="vgm_quik">
+ <feature name="part_id" value="09 ending, highscores.vgz" />
+ <dataarea name="quik" size="45084">
+ <rom name="09 ending, highscores.vgz" size="45084" crc="0dcc5e8a" sha1="bd80216c9045f5e22e64dd0f8fd7c154b8854464" offset="0" />
+ </dataarea>
+ </part>
+ <part name="010" interface="vgm_quik">
+ <feature name="part_id" value="10 game over.vgz" />
+ <dataarea name="quik" size="7562">
+ <rom name="10 game over.vgz" size="7562" crc="a2913926" sha1="3aa74166ddbc2561db6c7719f0ae91f1dd154a01" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <!-- vgmrips.net update - March 20, 2022 - 21 New Entries -->
+
+ <software name="boogwing">
+ <description>Boogie Wings (Arcade)</description>
+ <year>1992</year>
+ <publisher>Data East</publisher>
+ <info name="cores" value="YM2151, OKIM6295"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 attract mode stage select.vgz" />
+ <dataarea name="quik" size="189483">
+ <rom name="01 attract mode stage select.vgz" size="189483" crc="2beed615" sha1="46029363783ade86b283e56283b4136b7e24c0a4" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 credit.vgz" />
+ <dataarea name="quik" size="3317">
+ <rom name="02 credit.vgz" size="3317" crc="e0bd6247" sha1="21f153c9c5ff3235e95c9ae05ca6f3f2a4e5e3ef" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 boss theme intro stage detroit rock city.vgz" />
+ <dataarea name="quik" size="68411">
+ <rom name="03 boss theme intro stage detroit rock city.vgz" size="68411" crc="c88f5f3f" sha1="5ff8862aac36e6e7d6db3e4dcd551cf10a9b0400" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 enemy ship.vgz" />
+ <dataarea name="quik" size="23113">
+ <rom name="04 enemy ship.vgz" size="23113" crc="d0aca656" sha1="c51ea91012e2979a5e470e00d88a904bb203f169" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 stage cleared.vgz" />
+ <dataarea name="quik" size="31700">
+ <rom name="05 stage cleared.vgz" size="31700" crc="382b7aef" sha1="3bbb84a8565870ecac91cae619f39cf47f666d22" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 konky island 1.vgz" />
+ <dataarea name="quik" size="63436">
+ <rom name="06 konky island 1.vgz" size="63436" crc="79c3d8b8" sha1="25bd629d42d4fb3c952e83c301d3979191e7eb2b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 parade.vgz" />
+ <dataarea name="quik" size="24147">
+ <rom name="07 parade.vgz" size="24147" crc="8ca76b0f" sha1="1a992e7a646a8ceb3461768fc2e427e0aee59eb4" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 konky island 2.vgz" />
+ <dataarea name="quik" size="31799">
+ <rom name="08 konky island 2.vgz" size="31799" crc="8bed3f43" sha1="0a136aa2b0a49d32380547c2823967dc8b158ca0" offset="0" />
+ </dataarea>
+ </part>
+ <part name="009" interface="vgm_quik">
+ <feature name="part_id" value="09 konky island 3.vgz" />
+ <dataarea name="quik" size="62701">
+ <rom name="09 konky island 3.vgz" size="62701" crc="302faeac" sha1="668077dbc6fd8a452f94c32ec3362ffabe0e5fa0" offset="0" />
+ </dataarea>
+ </part>
+ <part name="010" interface="vgm_quik">
+ <feature name="part_id" value="10 konky island boss.vgz" />
+ <dataarea name="quik" size="22107">
+ <rom name="10 konky island boss.vgz" size="22107" crc="e9e9142c" sha1="e3078dcfacc498dd9415fef3aea04bf603af5355" offset="0" />
+ </dataarea>
+ </part>
+ <part name="011" interface="vgm_quik">
+ <feature name="part_id" value="11 transporter.vgz" />
+ <dataarea name="quik" size="33384">
+ <rom name="11 transporter.vgz" size="33384" crc="46e1f056" sha1="ad3071ba05b14b9ca9a57ff712beb74862275d5c" offset="0" />
+ </dataarea>
+ </part>
+ <part name="012" interface="vgm_quik">
+ <feature name="part_id" value="12 imperial science museum.vgz" />
+ <dataarea name="quik" size="97607">
+ <rom name="12 imperial science museum.vgz" size="97607" crc="bf97189e" sha1="6614ab5cb20a8773f6996d6e0907fb6d3048913f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="013" interface="vgm_quik">
+ <feature name="part_id" value="13 boss theme trojan horse santa claus.vgz" />
+ <dataarea name="quik" size="63443">
+ <rom name="13 boss theme trojan horse santa claus.vgz" size="63443" crc="05bd106b" sha1="4460775b282ab0a7e18019ddb38284b9c856f483" offset="0" />
+ </dataarea>
+ </part>
+ <part name="014" interface="vgm_quik">
+ <feature name="part_id" value="14 merry merry christmas.vgz" />
+ <dataarea name="quik" size="31734">
+ <rom name="14 merry merry christmas.vgz" size="31734" crc="217c6d2f" sha1="4d5f2789b062421bb20f3f5e57a39637a865247a" offset="0" />
+ </dataarea>
+ </part>
+ <part name="015" interface="vgm_quik">
+ <feature name="part_id" value="15 detroit rock city.vgz" />
+ <dataarea name="quik" size="27688">
+ <rom name="15 detroit rock city.vgz" size="27688" crc="f729f51a" sha1="71b43188ca0fdec3ea83d38d6873d284a265858b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="016" interface="vgm_quik">
+ <feature name="part_id" value="16 final stage intro.vgz" />
+ <dataarea name="quik" size="35422">
+ <rom name="16 final stage intro.vgz" size="35422" crc="817b2e98" sha1="a82ff92d29ae9050d5835fa12625f0a8ad8876ec" offset="0" />
+ </dataarea>
+ </part>
+ <part name="017" interface="vgm_quik">
+ <feature name="part_id" value="17 final stage castle.vgz" />
+ <dataarea name="quik" size="29561">
+ <rom name="17 final stage castle.vgz" size="29561" crc="012a3141" sha1="678130f705523a26c25826c51e25b991da961534" offset="0" />
+ </dataarea>
+ </part>
+ <part name="018" interface="vgm_quik">
+ <feature name="part_id" value="18 end credits.vgz" />
+ <dataarea name="quik" size="30790">
+ <rom name="18 end credits.vgz" size="30790" crc="6799d07b" sha1="395eb4cb05d4d670a901d09cef2ff77cb2f4398f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="019" interface="vgm_quik">
+ <feature name="part_id" value="19 continue.vgz" />
+ <dataarea name="quik" size="27517">
+ <rom name="19 continue.vgz" size="27517" crc="25dd58fa" sha1="ab36eecb8443f870bc3c7d380d9a1423e1534288" offset="0" />
+ </dataarea>
+ </part>
+ <part name="020" interface="vgm_quik">
+ <feature name="part_id" value="20 game over.vgz" />
+ <dataarea name="quik" size="37802">
+ <rom name="20 game over.vgz" size="37802" crc="12a6ab83" sha1="c26056d6d3ad6ea11d8c9a1fd7f6e63a586aed7f" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="bublbobl_fmt">
+ <description>Bubble Bobble (FM Towns)</description>
+ <year>1990</year>
+ <publisher>Taito (AC) / Ving (FM Towns)</publisher>
+ <info name="cores" value="YM3438"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 start demo.vgz" />
+ <dataarea name="quik" size="1535">
+ <rom name="01 start demo.vgz" size="1535" crc="3f41efd2" sha1="d441f25429ddb6a8fcb44e59b085f69eee81bc41" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 main theme.vgz" />
+ <dataarea name="quik" size="2742">
+ <rom name="02 main theme.vgz" size="2742" crc="63192b8c" sha1="b6114adbac069897a7e3c69f4a83bd912114929e" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 main theme (hurry up!).vgz" />
+ <dataarea name="quik" size="2804">
+ <rom name="03 main theme (hurry up).vgz" size="2804" crc="3c63bdc2" sha1="75563f81db087c52e7f05e7623e94f1af87d1a66" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 skel-monsta lucky appearance ~ main theme (hurry up!).vgz" />
+ <dataarea name="quik" size="3299">
+ <rom name="04 skel-monsta lucky appearance ~ main theme (hurry up).vgz" size="3299" crc="860897ea" sha1="fd66e799f7bcc3ff86b8003071bafea8eb415507" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 secret room.vgz" />
+ <dataarea name="quik" size="1143">
+ <rom name="05 secret room.vgz" size="1143" crc="626fc8d5" sha1="f711de65fd7b6e2979e2e3e8ba863855e7c05474" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 extended ~ bonus music.vgz" />
+ <dataarea name="quik" size="3075">
+ <rom name="06 extended ~ bonus music.vgz" size="3075" crc="47c97674" sha1="c1baf8260a1222c548465fcfd2a37e06f3782bea" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 bonus music.vgz" />
+ <dataarea name="quik" size="2414">
+ <rom name="07 bonus music.vgz" size="2414" crc="214028b5" sha1="dd9dad61ec920ff275ed1acb7f3fb9e4b56dd0eb" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 chack'n heart (invincible).vgz" />
+ <dataarea name="quik" size="1553">
+ <rom name="08 chack'n heart (invincible).vgz" size="1553" crc="3410e343" sha1="f7a94bdce941f018a40ce680be61c012796e7938" offset="0" />
+ </dataarea>
+ </part>
+ <part name="009" interface="vgm_quik">
+ <feature name="part_id" value="09 super drunk.vgz" />
+ <dataarea name="quik" size="2378">
+ <rom name="09 super drunk.vgz" size="2378" crc="0d3dd1ae" sha1="ef2d82ed2077f2a12584d426011683887f1a8df0" offset="0" />
+ </dataarea>
+ </part>
+ <part name="010" interface="vgm_quik">
+ <feature name="part_id" value="10 name entry.vgz" />
+ <dataarea name="quik" size="1397">
+ <rom name="10 name entry.vgz" size="1397" crc="db04aeaf" sha1="e686fd683763bd0547f914c942feeb6dca41d5ac" offset="0" />
+ </dataarea>
+ </part>
+ <part name="011" interface="vgm_quik">
+ <feature name="part_id" value="11 game over.vgz" />
+ <dataarea name="quik" size="1020">
+ <rom name="11 game over.vgz" size="1020" crc="042a5447" sha1="c244f219b4331f689b501ce46c3ec3833badd9e3" offset="0" />
+ </dataarea>
+ </part>
+ <part name="012" interface="vgm_quik">
+ <feature name="part_id" value="12 halley's comet (unused).vgz" />
+ <dataarea name="quik" size="1035">
+ <rom name="12 halley's comet (unused).vgz" size="1035" crc="8cfcc923" sha1="e8b43983b07aed0ee0cc22f2009c5ede00090272" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="danceyes">
+ <description>Dancing Eyes (Namco System 11)</description>
+ <year>1996</year>
+ <publisher>Namco</publisher>
+ <info name="cores" value="C352"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 credit.vgz" />
+ <dataarea name="quik" size="14841">
+ <rom name="01 credit.vgz" size="14841" crc="abfd78b9" sha1="f0a0cca638a073c1c92c470f30b9081ff947dd8a" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 select.vgz" />
+ <dataarea name="quik" size="99228">
+ <rom name="02 select.vgz" size="99228" crc="de01a80c" sha1="68c9d2c0f94f76e0a9309b63e5793dd840a28545" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 high school girl stage.vgz" />
+ <dataarea name="quik" size="135621">
+ <rom name="03 high school girl stage.vgz" size="135621" crc="08e47fdb" sha1="2085e5d622c04f239da7d916b9eff96792a89dd5" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 military uniform girl stage.vgz" />
+ <dataarea name="quik" size="75743">
+ <rom name="04 military uniform girl stage.vgz" size="75743" crc="f039f685" sha1="ded60fce08a8c4b3204271f4700a21f1d65de6b8" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 stewardess stage.vgz" />
+ <dataarea name="quik" size="89383">
+ <rom name="05 stewardess stage.vgz" size="89383" crc="d02891ed" sha1="de8d87160a561f8777f0c543d4db87fc490f2162" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 heavy metal girl stage.vgz" />
+ <dataarea name="quik" size="173805">
+ <rom name="06 heavy metal girl stage.vgz" size="173805" crc="1e22eb51" sha1="2f1bce9a80994989ad3016eaf611a99aa5b73aa0" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 cat girl stage.vgz" />
+ <dataarea name="quik" size="202148">
+ <rom name="07 cat girl stage.vgz" size="202148" crc="3071c79b" sha1="ad0957e2d51c8fe3847b0b9711b977b08ca20e44" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 mushroom girl stage.vgz" />
+ <dataarea name="quik" size="63074">
+ <rom name="08 mushroom girl stage.vgz" size="63074" crc="41f8b95b" sha1="625718e7c64afab78aa83b2fe69619a056000d1f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="009" interface="vgm_quik">
+ <feature name="part_id" value="09 mermaid stage.vgz" />
+ <dataarea name="quik" size="163453">
+ <rom name="09 mermaid stage.vgz" size="163453" crc="6ec76fe0" sha1="c5192c11e16518c88ac118acf10936d032fd23d1" offset="0" />
+ </dataarea>
+ </part>
+ <part name="010" interface="vgm_quik">
+ <feature name="part_id" value="10 bunny girl stage.vgz" />
+ <dataarea name="quik" size="141023">
+ <rom name="10 bunny girl stage.vgz" size="141023" crc="8879099c" sha1="fa2e0b4b90e9907d85a2a98f3108fc4c88958d84" offset="0" />
+ </dataarea>
+ </part>
+ <part name="011" interface="vgm_quik">
+ <feature name="part_id" value="11 cow stage.vgz" />
+ <dataarea name="quik" size="202949">
+ <rom name="11 cow stage.vgz" size="202949" crc="a03f844a" sha1="9c9c970b407b3588dde26e2d866f095f4493f7a3" offset="0" />
+ </dataarea>
+ </part>
+ <part name="012" interface="vgm_quik">
+ <feature name="part_id" value="12 race queen stage.vgz" />
+ <dataarea name="quik" size="337569">
+ <rom name="12 race queen stage.vgz" size="337569" crc="37728859" sha1="adf6c792aa42c6fde65c9a7e2607cb205683db2a" offset="0" />
+ </dataarea>
+ </part>
+ <part name="013" interface="vgm_quik">
+ <feature name="part_id" value="13 elevator girl stage.vgz" />
+ <dataarea name="quik" size="97781">
+ <rom name="13 elevator girl stage.vgz" size="97781" crc="42d48cbe" sha1="27051fb1d66417048bf155cb176d4addc4604e10" offset="0" />
+ </dataarea>
+ </part>
+ <part name="014" interface="vgm_quik">
+ <feature name="part_id" value="14 macho stage.vgz" />
+ <dataarea name="quik" size="118922">
+ <rom name="14 macho stage.vgz" size="118922" crc="b71a5dcb" sha1="67507289b24f0b6ba313b81729829014bf0355ff" offset="0" />
+ </dataarea>
+ </part>
+ <part name="015" interface="vgm_quik">
+ <feature name="part_id" value="15 cold sleep stage.vgz" />
+ <dataarea name="quik" size="124147">
+ <rom name="15 cold sleep stage.vgz" size="124147" crc="3f588b19" sha1="19037d79e56e12cbe0892276f62c32ccfc7fa938" offset="0" />
+ </dataarea>
+ </part>
+ <part name="016" interface="vgm_quik">
+ <feature name="part_id" value="16 shower girl stage.vgz" />
+ <dataarea name="quik" size="103782">
+ <rom name="16 shower girl stage.vgz" size="103782" crc="de39465c" sha1="99c5927b1f91ba01105eeee9c783c14d300c829f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="017" interface="vgm_quik">
+ <feature name="part_id" value="17 twins stage.vgz" />
+ <dataarea name="quik" size="208410">
+ <rom name="17 twins stage.vgz" size="208410" crc="49a13a47" sha1="34bb0816b7a7bb4f4c73d541d88219eefb6f8665" offset="0" />
+ </dataarea>
+ </part>
+ <part name="018" interface="vgm_quik">
+ <feature name="part_id" value="18 cheerleader stage.vgz" />
+ <dataarea name="quik" size="192323">
+ <rom name="18 cheerleader stage.vgz" size="192323" crc="8de1ccc7" sha1="d89a7e7a09e76a7ce5da5814cc87b024e526431f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="019" interface="vgm_quik">
+ <feature name="part_id" value="19 shrine maiden stage.vgz" />
+ <dataarea name="quik" size="100803">
+ <rom name="19 shrine maiden stage.vgz" size="100803" crc="7048a3d0" sha1="8706a9ebef84e9a35ff796386ab932bf363cb7d6" offset="0" />
+ </dataarea>
+ </part>
+ <part name="020" interface="vgm_quik">
+ <feature name="part_id" value="20 barrel girl stage.vgz" />
+ <dataarea name="quik" size="137069">
+ <rom name="20 barrel girl stage.vgz" size="137069" crc="6f2627c0" sha1="d86dda37c20410d4949a686b2bb1250406f462ce" offset="0" />
+ </dataarea>
+ </part>
+ <part name="021" interface="vgm_quik">
+ <feature name="part_id" value="21 sf woman stage.vgz" />
+ <dataarea name="quik" size="235595">
+ <rom name="21 sf woman stage.vgz" size="235595" crc="7a70e807" sha1="1b72858dd1cc97cf5cfa34d980a284abbec259f8" offset="0" />
+ </dataarea>
+ </part>
+ <part name="022" interface="vgm_quik">
+ <feature name="part_id" value="22 princess stage.vgz" />
+ <dataarea name="quik" size="160011">
+ <rom name="22 princess stage.vgz" size="160011" crc="b4966c2b" sha1="d19933269cd5b2ad3186551ffab9fc8cdd0d7452" offset="0" />
+ </dataarea>
+ </part>
+ <part name="023" interface="vgm_quik">
+ <feature name="part_id" value="23 koro the dog stage.vgz" />
+ <dataarea name="quik" size="167785">
+ <rom name="23 koro the dog stage.vgz" size="167785" crc="8183b1b3" sha1="3b0bc7923029e5294d5989125eeb2b3b913d6453" offset="0" />
+ </dataarea>
+ </part>
+ <part name="024" interface="vgm_quik">
+ <feature name="part_id" value="24 tennis girl stage.vgz" />
+ <dataarea name="quik" size="85152">
+ <rom name="24 tennis girl stage.vgz" size="85152" crc="cc26a89e" sha1="268d3ae10023561ac167e7202c259ac36246c0eb" offset="0" />
+ </dataarea>
+ </part>
+ <part name="025" interface="vgm_quik">
+ <feature name="part_id" value="25 kendo girl stage.vgz" />
+ <dataarea name="quik" size="155624">
+ <rom name="25 kendo girl stage.vgz" size="155624" crc="9735d58e" sha1="7a930c4541d814816453dbdc168158851eba66b4" offset="0" />
+ </dataarea>
+ </part>
+ <part name="026" interface="vgm_quik">
+ <feature name="part_id" value="26 arabian woman stage.vgz" />
+ <dataarea name="quik" size="59527">
+ <rom name="26 arabian woman stage.vgz" size="59527" crc="9d8d556a" sha1="b46b950361d11c446710c658bd00b15bcbf1c6de" offset="0" />
+ </dataarea>
+ </part>
+ <part name="027" interface="vgm_quik">
+ <feature name="part_id" value="27 nurse stage.vgz" />
+ <dataarea name="quik" size="156223">
+ <rom name="27 nurse stage.vgz" size="156223" crc="96957992" sha1="76842dac5b9091a61cda7e13a4ebc3e9d23f3787" offset="0" />
+ </dataarea>
+ </part>
+ <part name="028" interface="vgm_quik">
+ <feature name="part_id" value="28 kimono girl stage.vgz" />
+ <dataarea name="quik" size="60315">
+ <rom name="28 kimono girl stage.vgz" size="60315" crc="0e84d2af" sha1="3c598ef807a3b1402b077b38d1beaa008fee5710" offset="0" />
+ </dataarea>
+ </part>
+ <part name="029" interface="vgm_quik">
+ <feature name="part_id" value="29 soccer boy stage.vgz" />
+ <dataarea name="quik" size="128127">
+ <rom name="29 soccer boy stage.vgz" size="128127" crc="e81f5ce2" sha1="c1aed167c559bc6ea2eca9ab7763f9e5590baa1f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="030" interface="vgm_quik">
+ <feature name="part_id" value="30 amazoness j stage.vgz" />
+ <dataarea name="quik" size="101579">
+ <rom name="30 amazoness j stage.vgz" size="101579" crc="e3d59548" sha1="9705d7462b67873908f4a1ac35a023d1f03400fa" offset="0" />
+ </dataarea>
+ </part>
+ <part name="031" interface="vgm_quik">
+ <feature name="part_id" value="31 family restaurant girl stage.vgz" />
+ <dataarea name="quik" size="162796">
+ <rom name="31 family restaurant girl stage.vgz" size="162796" crc="67c9565d" sha1="56f6c5882ccbe9aed30c9f56c2f6649b49992faf" offset="0" />
+ </dataarea>
+ </part>
+ <part name="032" interface="vgm_quik">
+ <feature name="part_id" value="32 truck cargo stage.vgz" />
+ <dataarea name="quik" size="108824">
+ <rom name="32 truck cargo stage.vgz" size="108824" crc="719066f7" sha1="0987a50de50c8d65bb74e4410238a1508f3e5789" offset="0" />
+ </dataarea>
+ </part>
+ <part name="033" interface="vgm_quik">
+ <feature name="part_id" value="33 policewoman stage.vgz" />
+ <dataarea name="quik" size="216467">
+ <rom name="33 policewoman stage.vgz" size="216467" crc="a83d1527" sha1="52aa3faa2e97bba8b52a5fbc7cc9a7913d329908" offset="0" />
+ </dataarea>
+ </part>
+ <part name="034" interface="vgm_quik">
+ <feature name="part_id" value="34 linda the snail stage.vgz" />
+ <dataarea name="quik" size="143823">
+ <rom name="34 linda the snail stage.vgz" size="143823" crc="8eaf7a4f" sha1="014f99d293382b2bf52db2922b2c17be67c0a6a4" offset="0" />
+ </dataarea>
+ </part>
+ <part name="035" interface="vgm_quik">
+ <feature name="part_id" value="35 bee girl stage.vgz" />
+ <dataarea name="quik" size="91569">
+ <rom name="35 bee girl stage.vgz" size="91569" crc="d69892f8" sha1="e9ffc0bae967ec2d544b33aebe231091ca4f60e8" offset="0" />
+ </dataarea>
+ </part>
+ <part name="036" interface="vgm_quik">
+ <feature name="part_id" value="36 angel stage.vgz" />
+ <dataarea name="quik" size="70762">
+ <rom name="36 angel stage.vgz" size="70762" crc="ab7b73f8" sha1="39ba500c2361b028efd68a9f8dc3d94a0cc9e3e6" offset="0" />
+ </dataarea>
+ </part>
+ <part name="037" interface="vgm_quik">
+ <feature name="part_id" value="37 diver woman stage.vgz" />
+ <dataarea name="quik" size="106964">
+ <rom name="37 diver woman stage.vgz" size="106964" crc="35852d45" sha1="e7ad1c20631e2b424e40fd9b1f3a1de09df75ba5" offset="0" />
+ </dataarea>
+ </part>
+ <part name="038" interface="vgm_quik">
+ <feature name="part_id" value="38 car stage.vgz" />
+ <dataarea name="quik" size="235510">
+ <rom name="38 car stage.vgz" size="235510" crc="e5b03b53" sha1="6e3ff3dc24797628f97a09d5b433bebadbf07d2c" offset="0" />
+ </dataarea>
+ </part>
+ <part name="039" interface="vgm_quik">
+ <feature name="part_id" value="39 snowman girl stage.vgz" />
+ <dataarea name="quik" size="142587">
+ <rom name="39 snowman girl stage.vgz" size="142587" crc="fdaeb3d4" sha1="e8d36bbbf6fe7aa6b279ad6db77a6748fed242d8" offset="0" />
+ </dataarea>
+ </part>
+ <part name="040" interface="vgm_quik">
+ <feature name="part_id" value="40 space pirate stage.vgz" />
+ <dataarea name="quik" size="150425">
+ <rom name="40 space pirate stage.vgz" size="150425" crc="086a2df5" sha1="2f2feefb8770785d6f1dfe904590eaaa5160d1a1" offset="0" />
+ </dataarea>
+ </part>
+ <part name="041" interface="vgm_quik">
+ <feature name="part_id" value="41 space alien stage.vgz" />
+ <dataarea name="quik" size="165693">
+ <rom name="41 space alien stage.vgz" size="165693" crc="cd5d2763" sha1="56b57f724c08ae3550f125dd3e300510be81e722" offset="0" />
+ </dataarea>
+ </part>
+ <part name="042" interface="vgm_quik">
+ <feature name="part_id" value="42 space fighter stage.vgz" />
+ <dataarea name="quik" size="174237">
+ <rom name="42 space fighter stage.vgz" size="174237" crc="eecc51b4" sha1="8542aa5754c0da4e3fcadb8fe121c346625d14a4" offset="0" />
+ </dataarea>
+ </part>
+ <part name="043" interface="vgm_quik">
+ <feature name="part_id" value="43 face stage.vgz" />
+ <dataarea name="quik" size="135591">
+ <rom name="43 face stage.vgz" size="135591" crc="d9447c0c" sha1="509a943cc5719ee247f18d9533af02dc825318c9" offset="0" />
+ </dataarea>
+ </part>
+ <part name="044" interface="vgm_quik">
+ <feature name="part_id" value="44 high school girl motion.vgz" />
+ <dataarea name="quik" size="134869">
+ <rom name="44 high school girl motion.vgz" size="134869" crc="a5e2468e" sha1="5873b11c8752b49dbaf3d3c7e817b00733061278" offset="0" />
+ </dataarea>
+ </part>
+ <part name="045" interface="vgm_quik">
+ <feature name="part_id" value="45 military uniform girl motion.vgz" />
+ <dataarea name="quik" size="41289">
+ <rom name="45 military uniform girl motion.vgz" size="41289" crc="07ab59d2" sha1="973223f21ebb73605b14d3c4fd4a53efaa61f5ba" offset="0" />
+ </dataarea>
+ </part>
+ <part name="046" interface="vgm_quik">
+ <feature name="part_id" value="46 military uniform girl motion 2.vgz" />
+ <dataarea name="quik" size="66976">
+ <rom name="46 military uniform girl motion 2.vgz" size="66976" crc="1ad6a540" sha1="1cc37cc7314d5cd6553a9cd08768b52d3ee62416" offset="0" />
+ </dataarea>
+ </part>
+ <part name="047" interface="vgm_quik">
+ <feature name="part_id" value="47 heavy metal girl motion.vgz" />
+ <dataarea name="quik" size="136980">
+ <rom name="47 heavy metal girl motion.vgz" size="136980" crc="1eec0d81" sha1="c23a9297d82213cb5bdc53fba7b13d54b8e53bbb" offset="0" />
+ </dataarea>
+ </part>
+ <part name="048" interface="vgm_quik">
+ <feature name="part_id" value="48 cat girl motion.vgz" />
+ <dataarea name="quik" size="71215">
+ <rom name="48 cat girl motion.vgz" size="71215" crc="adb09873" sha1="d134fa0fb7769fdc8c2e751708bb0a235d31b8a8" offset="0" />
+ </dataarea>
+ </part>
+ <part name="049" interface="vgm_quik">
+ <feature name="part_id" value="49 cat girl motion 2.vgz" />
+ <dataarea name="quik" size="77238">
+ <rom name="49 cat girl motion 2.vgz" size="77238" crc="2c35c32c" sha1="53ae76e11bfe710f0dcad29792b693e634e44b41" offset="0" />
+ </dataarea>
+ </part>
+ <part name="050" interface="vgm_quik">
+ <feature name="part_id" value="50 mermaid motion.vgz" />
+ <dataarea name="quik" size="51928">
+ <rom name="50 mermaid motion.vgz" size="51928" crc="5d521a56" sha1="7bebd74c51dd0e9425f3022786fcd7050d8e4cef" offset="0" />
+ </dataarea>
+ </part>
+ <part name="051" interface="vgm_quik">
+ <feature name="part_id" value="51 bunny girl motion.vgz" />
+ <dataarea name="quik" size="62957">
+ <rom name="51 bunny girl motion.vgz" size="62957" crc="6c68a604" sha1="e5f9e3750f98f58af37ed10fd3385c3faaa65af1" offset="0" />
+ </dataarea>
+ </part>
+ <part name="052" interface="vgm_quik">
+ <feature name="part_id" value="52 cow motion.vgz" />
+ <dataarea name="quik" size="87711">
+ <rom name="52 cow motion.vgz" size="87711" crc="6fb77f80" sha1="444276c3da6be126b77e9a3225eed4195d4329b5" offset="0" />
+ </dataarea>
+ </part>
+ <part name="053" interface="vgm_quik">
+ <feature name="part_id" value="53 race queen motion.vgz" />
+ <dataarea name="quik" size="128784">
+ <rom name="53 race queen motion.vgz" size="128784" crc="d3f90a43" sha1="2afa8f0629d10886d2f31b6a5f49ad1a691cbc52" offset="0" />
+ </dataarea>
+ </part>
+ <part name="054" interface="vgm_quik">
+ <feature name="part_id" value="54 elevator girl motion.vgz" />
+ <dataarea name="quik" size="55721">
+ <rom name="54 elevator girl motion.vgz" size="55721" crc="54c377f0" sha1="7ad6631d2634b6f4c4cf4572b231bbe5e6a35bf6" offset="0" />
+ </dataarea>
+ </part>
+ <part name="055" interface="vgm_quik">
+ <feature name="part_id" value="55 elevator girl motion 2.vgz" />
+ <dataarea name="quik" size="59078">
+ <rom name="55 elevator girl motion 2.vgz" size="59078" crc="eff80444" sha1="b0d14389f64c3b01320f0b9ea0c8d5fb3ae9b2f1" offset="0" />
+ </dataarea>
+ </part>
+ <part name="056" interface="vgm_quik">
+ <feature name="part_id" value="56 macho motion.vgz" />
+ <dataarea name="quik" size="95383">
+ <rom name="56 macho motion.vgz" size="95383" crc="7a2886c8" sha1="fa7ade02a655eefb76655d5c864e6dc6c7f197ce" offset="0" />
+ </dataarea>
+ </part>
+ <part name="057" interface="vgm_quik">
+ <feature name="part_id" value="57 macho motion 2.vgz" />
+ <dataarea name="quik" size="97154">
+ <rom name="57 macho motion 2.vgz" size="97154" crc="884e6c91" sha1="13076f9e1a8ecb780d0c72ce551129c517eef57b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="058" interface="vgm_quik">
+ <feature name="part_id" value="58 cold sleep motion.vgz" />
+ <dataarea name="quik" size="30140">
+ <rom name="58 cold sleep motion.vgz" size="30140" crc="0300033e" sha1="2146eaeaca1fb40d0156d494cf57147c9686930f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="059" interface="vgm_quik">
+ <feature name="part_id" value="59 shower girl motion.vgz" />
+ <dataarea name="quik" size="114362">
+ <rom name="59 shower girl motion.vgz" size="114362" crc="d07ec74e" sha1="d9821966a0b57309fbedc8af588a16d98889abb9" offset="0" />
+ </dataarea>
+ </part>
+ <part name="060" interface="vgm_quik">
+ <feature name="part_id" value="60 twins motion.vgz" />
+ <dataarea name="quik" size="94005">
+ <rom name="60 twins motion.vgz" size="94005" crc="86d3db4b" sha1="4e1ceb437ff55f8f27233b6b15dae2ae2ab192a3" offset="0" />
+ </dataarea>
+ </part>
+ <part name="061" interface="vgm_quik">
+ <feature name="part_id" value="61 cheerleader motion.vgz" />
+ <dataarea name="quik" size="75776">
+ <rom name="61 cheerleader motion.vgz" size="75776" crc="7ca80b42" sha1="37310f97ab7cfca45aea519f881283c4d19e6bfc" offset="0" />
+ </dataarea>
+ </part>
+ <part name="062" interface="vgm_quik">
+ <feature name="part_id" value="62 cheerleader motion 2.vgz" />
+ <dataarea name="quik" size="107938">
+ <rom name="62 cheerleader motion 2.vgz" size="107938" crc="9b52fc4c" sha1="c4dc8086130c14b1d8eee71296d97b8438aa02ae" offset="0" />
+ </dataarea>
+ </part>
+ <part name="063" interface="vgm_quik">
+ <feature name="part_id" value="63 barrel girl motion.vgz" />
+ <dataarea name="quik" size="101193">
+ <rom name="63 barrel girl motion.vgz" size="101193" crc="0b0a6ab2" sha1="855903e6a9e1dc9a7fe294cb197224ae574e61dc" offset="0" />
+ </dataarea>
+ </part>
+ <part name="064" interface="vgm_quik">
+ <feature name="part_id" value="64 sf woman motion.vgz" />
+ <dataarea name="quik" size="157978">
+ <rom name="64 sf woman motion.vgz" size="157978" crc="40822a6e" sha1="f7386c53d44f57da7bb6f9a225badbec20827e37" offset="0" />
+ </dataarea>
+ </part>
+ <part name="065" interface="vgm_quik">
+ <feature name="part_id" value="65 tennis girl motion.vgz" />
+ <dataarea name="quik" size="80260">
+ <rom name="65 tennis girl motion.vgz" size="80260" crc="1f1d7130" sha1="3d13facf8b48fc38c34de58a213978350e97a6b9" offset="0" />
+ </dataarea>
+ </part>
+ <part name="066" interface="vgm_quik">
+ <feature name="part_id" value="66 kendo girl motion.vgz" />
+ <dataarea name="quik" size="84641">
+ <rom name="66 kendo girl motion.vgz" size="84641" crc="2a581807" sha1="20d8bba7315a796d9e647943f567ffad5ebd3380" offset="0" />
+ </dataarea>
+ </part>
+ <part name="067" interface="vgm_quik">
+ <feature name="part_id" value="67 arabian woman motion.vgz" />
+ <dataarea name="quik" size="68401">
+ <rom name="67 arabian woman motion.vgz" size="68401" crc="369bad38" sha1="60b28643b83fb45ee070216b571cce11211a8271" offset="0" />
+ </dataarea>
+ </part>
+ <part name="068" interface="vgm_quik">
+ <feature name="part_id" value="68 nurse motion.vgz" />
+ <dataarea name="quik" size="97802">
+ <rom name="68 nurse motion.vgz" size="97802" crc="89171f94" sha1="d4d86c088b8f6e5441e73e7e27d05b85bfafe0ef" offset="0" />
+ </dataarea>
+ </part>
+ <part name="069" interface="vgm_quik">
+ <feature name="part_id" value="69 kimono girl motion.vgz" />
+ <dataarea name="quik" size="7269">
+ <rom name="69 kimono girl motion.vgz" size="7269" crc="21407500" sha1="7c00527001992dd72235d489679e6c6f1eaa46b8" offset="0" />
+ </dataarea>
+ </part>
+ <part name="070" interface="vgm_quik">
+ <feature name="part_id" value="70 amazoness j motion.vgz" />
+ <dataarea name="quik" size="65908">
+ <rom name="70 amazoness j motion.vgz" size="65908" crc="0f0801ef" sha1="32e95fea1530dfdcaed35d609385f19d3c8ef1a8" offset="0" />
+ </dataarea>
+ </part>
+ <part name="071" interface="vgm_quik">
+ <feature name="part_id" value="71 family restaurant girl motion.vgz" />
+ <dataarea name="quik" size="117756">
+ <rom name="71 family restaurant girl motion.vgz" size="117756" crc="eb198109" sha1="d6d6f0c5041ba9b0dd0dea5212d9f6e9ad975ff3" offset="0" />
+ </dataarea>
+ </part>
+ <part name="072" interface="vgm_quik">
+ <feature name="part_id" value="72 truck cargo motion.vgz" />
+ <dataarea name="quik" size="70080">
+ <rom name="72 truck cargo motion.vgz" size="70080" crc="667979e6" sha1="487428496753983e5b9f198c389a786300f33890" offset="0" />
+ </dataarea>
+ </part>
+ <part name="073" interface="vgm_quik">
+ <feature name="part_id" value="73 truck cargo motion 2.vgz" />
+ <dataarea name="quik" size="73117">
+ <rom name="73 truck cargo motion 2.vgz" size="73117" crc="0b5161de" sha1="2b3cde0bd2b3f9d4e849db87dd14c2307bd1f92f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="074" interface="vgm_quik">
+ <feature name="part_id" value="74 linda the snail motion.vgz" />
+ <dataarea name="quik" size="2682">
+ <rom name="74 linda the snail motion.vgz" size="2682" crc="3c380830" sha1="e6b7119e9d370484ff25f4554882732fe2354dfe" offset="0" />
+ </dataarea>
+ </part>
+ <part name="075" interface="vgm_quik">
+ <feature name="part_id" value="75 linda the snail motion 2.vgz" />
+ <dataarea name="quik" size="71131">
+ <rom name="75 linda the snail motion 2.vgz" size="71131" crc="fe638997" sha1="4210cb15688e3da52fdbc160d30e564b20e18edb" offset="0" />
+ </dataarea>
+ </part>
+ <part name="076" interface="vgm_quik">
+ <feature name="part_id" value="76 bee girl motion.vgz" />
+ <dataarea name="quik" size="98938">
+ <rom name="76 bee girl motion.vgz" size="98938" crc="758ceba0" sha1="a486789c9deecd04b7215169099e26b41a13f0bf" offset="0" />
+ </dataarea>
+ </part>
+ <part name="077" interface="vgm_quik">
+ <feature name="part_id" value="77 angel motion.vgz" />
+ <dataarea name="quik" size="10728">
+ <rom name="77 angel motion.vgz" size="10728" crc="1bd326d5" sha1="7b46681dc0ca563f0a1cd0d65d9fa77ce6d16d6f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="078" interface="vgm_quik">
+ <feature name="part_id" value="78 diver woman motion.vgz" />
+ <dataarea name="quik" size="97442">
+ <rom name="78 diver woman motion.vgz" size="97442" crc="6da4a1fb" sha1="cab2582a99eb9713463881e4c0c8446de316fc66" offset="0" />
+ </dataarea>
+ </part>
+ <part name="079" interface="vgm_quik">
+ <feature name="part_id" value="79 car motion.vgz" />
+ <dataarea name="quik" size="137207">
+ <rom name="79 car motion.vgz" size="137207" crc="eba1c2e6" sha1="77f223ef654196e8ab224b6201c83feed0d70b1b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="080" interface="vgm_quik">
+ <feature name="part_id" value="80 car motion 2.vgz" />
+ <dataarea name="quik" size="140723">
+ <rom name="80 car motion 2.vgz" size="140723" crc="f2c7c74b" sha1="5b2a56dc6b68ac611d9bb8977e417484113742c5" offset="0" />
+ </dataarea>
+ </part>
+ <part name="081" interface="vgm_quik">
+ <feature name="part_id" value="81 snowman girl motion.vgz" />
+ <dataarea name="quik" size="128064">
+ <rom name="81 snowman girl motion.vgz" size="128064" crc="a9c2bc81" sha1="3b7013eea1b4dbad96ff9720a62fcbd5517377a3" offset="0" />
+ </dataarea>
+ </part>
+ <part name="082" interface="vgm_quik">
+ <feature name="part_id" value="82 space pirate motion.vgz" />
+ <dataarea name="quik" size="77767">
+ <rom name="82 space pirate motion.vgz" size="77767" crc="8e964842" sha1="453b59fbc88d99b06a9d7d977e57dcb11c5aa66c" offset="0" />
+ </dataarea>
+ </part>
+ <part name="083" interface="vgm_quik">
+ <feature name="part_id" value="83 space alien motion.vgz" />
+ <dataarea name="quik" size="80745">
+ <rom name="83 space alien motion.vgz" size="80745" crc="35e04587" sha1="ff637e0de83cf15e35a4bcdcd0d34ca212f8e515" offset="0" />
+ </dataarea>
+ </part>
+ <part name="084" interface="vgm_quik">
+ <feature name="part_id" value="84 space fighter motion.vgz" />
+ <dataarea name="quik" size="74224">
+ <rom name="84 space fighter motion.vgz" size="74224" crc="2fe75c6d" sha1="6793900683fface9bca1b8bcd075a232c7d69487" offset="0" />
+ </dataarea>
+ </part>
+ <part name="085" interface="vgm_quik">
+ <feature name="part_id" value="85 space fighter motion 2.vgz" />
+ <dataarea name="quik" size="81805">
+ <rom name="85 space fighter motion 2.vgz" size="81805" crc="956c089d" sha1="b91aab8264d6675ef0bbfb37bbf9ba53e1c4f54c" offset="0" />
+ </dataarea>
+ </part>
+ <part name="086" interface="vgm_quik">
+ <feature name="part_id" value="86 staff roll.vgz" />
+ <dataarea name="quik" size="214433">
+ <rom name="86 staff roll.vgz" size="214433" crc="701e2e27" sha1="ee80b690f12e44141a10546f1ab3bc96e234cf21" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="darkarms_ngpc">
+ <description>Dark Arms - Beast Buster 1999 (Neo Geo Pocket Color)</description>
+ <year>1999</year>
+ <publisher>SNK</publisher>
+ <info name="cores" value="T6W28"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 opening.vgz" />
+ <dataarea name="quik" size="17934">
+ <rom name="01 opening.vgz" size="17934" crc="9d8bb571" sha1="2e06454d046b6da0a0f41ce35c4bd6ef28354cff" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 option.vgz" />
+ <dataarea name="quik" size="1754">
+ <rom name="02 option.vgz" size="1754" crc="a364f5cd" sha1="063c17b8ef5c50ecb3b519ac607d237488a65316" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 reference book.vgz" />
+ <dataarea name="quik" size="6546">
+ <rom name="03 reference book.vgz" size="6546" crc="51a19889" sha1="aed4a50f0e200cecfad68ab3abe124727c623c76" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 prologue.vgz" />
+ <dataarea name="quik" size="9472">
+ <rom name="04 prologue.vgz" size="9472" crc="d332aaab" sha1="4675b36814298cfaa40d0c6a0b30b18f69b8f592" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 master.vgz" />
+ <dataarea name="quik" size="17403">
+ <rom name="05 master.vgz" size="17403" crc="c2d8f097" sha1="27a72565ebdedd278b1c4add37cf10d118b2254d" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 master's house 1.vgz" />
+ <dataarea name="quik" size="13481">
+ <rom name="06 master's house 1.vgz" size="13481" crc="6246b995" sha1="cc2970e756a33dc2b9ac39c511b8ce9c15c688f1" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 map (night).vgz" />
+ <dataarea name="quik" size="5955">
+ <rom name="07 map (night).vgz" size="5955" crc="6213c0d0" sha1="6cb15235d785e44f1d54f9a29ff694c43274a8e4" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 dark grab (night).vgz" />
+ <dataarea name="quik" size="26723">
+ <rom name="08 dark grab (night).vgz" size="26723" crc="90a97fda" sha1="5f19e6a87042a840ab316fde7f90b3f6e9353616" offset="0" />
+ </dataarea>
+ </part>
+ <part name="009" interface="vgm_quik">
+ <feature name="part_id" value="09 shrine.vgz" />
+ <dataarea name="quik" size="3797">
+ <rom name="09 shrine.vgz" size="3797" crc="e2525bbf" sha1="5c746c8e6e9861b53d544dcd5c4e9c2745df169c" offset="0" />
+ </dataarea>
+ </part>
+ <part name="010" interface="vgm_quik">
+ <feature name="part_id" value="10 experience tally.vgz" />
+ <dataarea name="quik" size="1250">
+ <rom name="10 experience tally.vgz" size="1250" crc="3dab1320" sha1="6c7cd2b1386f937dcc74f601eb44aec25fc13e0b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="011" interface="vgm_quik">
+ <feature name="part_id" value="11 map (day).vgz" />
+ <dataarea name="quik" size="2465">
+ <rom name="11 map (day).vgz" size="2465" crc="6933705a" sha1="62bb7c51d2d57635956a89556f2e5b75bbde3a6d" offset="0" />
+ </dataarea>
+ </part>
+ <part name="012" interface="vgm_quik">
+ <feature name="part_id" value="12 dark grab (day).vgz" />
+ <dataarea name="quik" size="32374">
+ <rom name="12 dark grab (day).vgz" size="32374" crc="77c45f95" sha1="1e61884227cdcc3ead8f8510438401f624ee3be2" offset="0" />
+ </dataarea>
+ </part>
+ <part name="013" interface="vgm_quik">
+ <feature name="part_id" value="13 dark grab (queen's grave).vgz" />
+ <dataarea name="quik" size="27065">
+ <rom name="13 dark grab (queen's grave).vgz" size="27065" crc="55494cd1" sha1="38080b5226ac532486ad7fa54c90e12556494c59" offset="0" />
+ </dataarea>
+ </part>
+ <part name="014" interface="vgm_quik">
+ <feature name="part_id" value="14 boss.vgz" />
+ <dataarea name="quik" size="12146">
+ <rom name="14 boss.vgz" size="12146" crc="40eb8a3a" sha1="1136e3b30dea3e70908ed4f6db2cd24d87f5fbba" offset="0" />
+ </dataarea>
+ </part>
+ <part name="015" interface="vgm_quik">
+ <feature name="part_id" value="15 rest hamlet (entrance).vgz" />
+ <dataarea name="quik" size="23008">
+ <rom name="15 rest hamlet (entrance).vgz" size="23008" crc="d1319227" sha1="79d632c23e5d5ee88ccaa509edb213fbe632140e" offset="0" />
+ </dataarea>
+ </part>
+ <part name="016" interface="vgm_quik">
+ <feature name="part_id" value="16 rest hamlet (day).vgz" />
+ <dataarea name="quik" size="14119">
+ <rom name="16 rest hamlet (day).vgz" size="14119" crc="325bece1" sha1="5b7cbabef6c8efedae969b9fe8de4a074b7417d5" offset="0" />
+ </dataarea>
+ </part>
+ <part name="017" interface="vgm_quik">
+ <feature name="part_id" value="17 rest hamlet (night).vgz" />
+ <dataarea name="quik" size="16514">
+ <rom name="17 rest hamlet (night).vgz" size="16514" crc="9c045a1d" sha1="fec708c53b26408484ac59a2bbc2033bca2a247e" offset="0" />
+ </dataarea>
+ </part>
+ <part name="018" interface="vgm_quik">
+ <feature name="part_id" value="18 rest hamlet (mansion).vgz" />
+ <dataarea name="quik" size="45827">
+ <rom name="18 rest hamlet (mansion).vgz" size="45827" crc="ec2185f2" sha1="39a8ef3429aa3ecb27b87ce5f1ce92ac211fb6cb" offset="0" />
+ </dataarea>
+ </part>
+ <part name="019" interface="vgm_quik">
+ <feature name="part_id" value="19 schatten town (day).vgz" />
+ <dataarea name="quik" size="34200">
+ <rom name="19 schatten town (day).vgz" size="34200" crc="7209373f" sha1="a9da9563a2f15b60b2a52cee531c1dfd0125e9f4" offset="0" />
+ </dataarea>
+ </part>
+ <part name="020" interface="vgm_quik">
+ <feature name="part_id" value="20 schatten town (night).vgz" />
+ <dataarea name="quik" size="28792">
+ <rom name="20 schatten town (night).vgz" size="28792" crc="4430be21" sha1="9fd4010963c63d50bb8dfb3763e6e32284f62c8f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="021" interface="vgm_quik">
+ <feature name="part_id" value="21 schatten town (circus).vgz" />
+ <dataarea name="quik" size="14311">
+ <rom name="21 schatten town (circus).vgz" size="14311" crc="d461e39d" sha1="ebed82aee374b60561de2fec603aa222f9e51310" offset="0" />
+ </dataarea>
+ </part>
+ <part name="022" interface="vgm_quik">
+ <feature name="part_id" value="22 schatten town (raison's house).vgz" />
+ <dataarea name="quik" size="10236">
+ <rom name="22 schatten town (raison's house).vgz" size="10236" crc="28f20f48" sha1="d40fbdd222f6b28d2b5b82b8e9dbbd0ffb24f3c4" offset="0" />
+ </dataarea>
+ </part>
+ <part name="023" interface="vgm_quik">
+ <feature name="part_id" value="23 fate tower (entrance - day).vgz" />
+ <dataarea name="quik" size="27905">
+ <rom name="23 fate tower (entrance - day).vgz" size="27905" crc="47538863" sha1="4477b1d90b0cc33b4b8691b1e54ce75ad1f794e9" offset="0" />
+ </dataarea>
+ </part>
+ <part name="024" interface="vgm_quik">
+ <feature name="part_id" value="24 fate tower (entrance - night).vgz" />
+ <dataarea name="quik" size="27849">
+ <rom name="24 fate tower (entrance - night).vgz" size="27849" crc="3ab65c88" sha1="1101323ef3c18ac0814a0224fb21a1bd4f1a955f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="025" interface="vgm_quik">
+ <feature name="part_id" value="25 fate tower 1.vgz" />
+ <dataarea name="quik" size="21525">
+ <rom name="25 fate tower 1.vgz" size="21525" crc="04472bc7" sha1="23e12e0374b22516f2d9cbd1569b92c142d8ca5b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="026" interface="vgm_quik">
+ <feature name="part_id" value="26 fate tower 2.vgz" />
+ <dataarea name="quik" size="21374">
+ <rom name="26 fate tower 2.vgz" size="21374" crc="ace2c70b" sha1="65a393d744f909918c868dca29b2648c832bd805" offset="0" />
+ </dataarea>
+ </part>
+ <part name="027" interface="vgm_quik">
+ <feature name="part_id" value="27 encounter with caso 1.vgz" />
+ <dataarea name="quik" size="7167">
+ <rom name="27 encounter with caso 1.vgz" size="7167" crc="7a0a7757" sha1="9aac675e66c748a6ead81e6c16b20fb09f77b830" offset="0" />
+ </dataarea>
+ </part>
+ <part name="028" interface="vgm_quik">
+ <feature name="part_id" value="28 encounter with caso 2.vgz" />
+ <dataarea name="quik" size="8313">
+ <rom name="28 encounter with caso 2.vgz" size="8313" crc="574a9961" sha1="29e2fc00f57ed886acacb36eb89e8825d7e396bf" offset="0" />
+ </dataarea>
+ </part>
+ <part name="029" interface="vgm_quik">
+ <feature name="part_id" value="29 battle against caso.vgz" />
+ <dataarea name="quik" size="22758">
+ <rom name="29 battle against caso.vgz" size="22758" crc="cfe2d56b" sha1="5623e199869841e34669feee17c564cccd6c8c86" offset="0" />
+ </dataarea>
+ </part>
+ <part name="030" interface="vgm_quik">
+ <feature name="part_id" value="30 raison's death.vgz" />
+ <dataarea name="quik" size="6096">
+ <rom name="30 raison's death.vgz" size="6096" crc="fd614be7" sha1="3381939007a52507b150d6cc874f6b11cd35075a" offset="0" />
+ </dataarea>
+ </part>
+ <part name="031" interface="vgm_quik">
+ <feature name="part_id" value="31 joyce.vgz" />
+ <dataarea name="quik" size="8994">
+ <rom name="31 joyce.vgz" size="8994" crc="af385c80" sha1="4ea244c478962f8b235e79dc3c526050e4235733" offset="0" />
+ </dataarea>
+ </part>
+ <part name="032" interface="vgm_quik">
+ <feature name="part_id" value="32 master's house 2.vgz" />
+ <dataarea name="quik" size="5490">
+ <rom name="32 master's house 2.vgz" size="5490" crc="d5cba6c4" sha1="87b4a24034a636f5cfa95d0f0e037d0e3e8e1910" offset="0" />
+ </dataarea>
+ </part>
+ <part name="033" interface="vgm_quik">
+ <feature name="part_id" value="33 wander town 1.vgz" />
+ <dataarea name="quik" size="24192">
+ <rom name="33 wander town 1.vgz" size="24192" crc="7c11d14a" sha1="2dfaf2e317132624bba0876a35e94e9c323081af" offset="0" />
+ </dataarea>
+ </part>
+ <part name="034" interface="vgm_quik">
+ <feature name="part_id" value="34 wander town 2.vgz" />
+ <dataarea name="quik" size="18324">
+ <rom name="34 wander town 2.vgz" size="18324" crc="338b2098" sha1="0ee58f27268ba4a1f4f0e32eb86c5aa7fff22254" offset="0" />
+ </dataarea>
+ </part>
+ <part name="035" interface="vgm_quik">
+ <feature name="part_id" value="35 ending 1.vgz" />
+ <dataarea name="quik" size="6027">
+ <rom name="35 ending 1.vgz" size="6027" crc="7d20ffb6" sha1="5e00dc3386216b71faa26c0411403d770bbacfb7" offset="0" />
+ </dataarea>
+ </part>
+ <part name="036" interface="vgm_quik">
+ <feature name="part_id" value="36 ending 2.vgz" />
+ <dataarea name="quik" size="8801">
+ <rom name="36 ending 2.vgz" size="8801" crc="9d4003d8" sha1="a2a9f10f122b1fa22f3593bdb440e62e0258463f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="037" interface="vgm_quik">
+ <feature name="part_id" value="37 staff roll.vgz" />
+ <dataarea name="quik" size="22975">
+ <rom name="37 staff roll.vgz" size="22975" crc="c5cd43c1" sha1="e12133bfd13ee2f40578704ee19e3b39b9ec6de1" offset="0" />
+ </dataarea>
+ </part>
+ <part name="038" interface="vgm_quik">
+ <feature name="part_id" value="38 basement (b01~b09).vgz" />
+ <dataarea name="quik" size="24416">
+ <rom name="38 basement (b01~b09).vgz" size="24416" crc="7bb19461" sha1="2f6602c366e91717b1b639ddac80e06ca2585705" offset="0" />
+ </dataarea>
+ </part>
+ <part name="039" interface="vgm_quik">
+ <feature name="part_id" value="39 basement (boss corridor).vgz" />
+ <dataarea name="quik" size="5871">
+ <rom name="39 basement (boss corridor).vgz" size="5871" crc="91ff6277" sha1="95436e74faef2479c73928f76776c59e7dbc3fee" offset="0" />
+ </dataarea>
+ </part>
+ <part name="040" interface="vgm_quik">
+ <feature name="part_id" value="40 basement (b11~b19).vgz" />
+ <dataarea name="quik" size="16351">
+ <rom name="40 basement (b11~b19).vgz" size="16351" crc="52b7aac3" sha1="c9688914ba2db9750fb3d6a2b2cf97c2602318cb" offset="0" />
+ </dataarea>
+ </part>
+ <part name="041" interface="vgm_quik">
+ <feature name="part_id" value="41 basement (b21~b29).vgz" />
+ <dataarea name="quik" size="16972">
+ <rom name="41 basement (b21~b29).vgz" size="16972" crc="fac44ba3" sha1="4f63ed73d294f84474690149e7eb265a15d3185c" offset="0" />
+ </dataarea>
+ </part>
+ <part name="042" interface="vgm_quik">
+ <feature name="part_id" value="42 basement (b31~b39).vgz" />
+ <dataarea name="quik" size="16650">
+ <rom name="42 basement (b31~b39).vgz" size="16650" crc="07e10431" sha1="cc5cb813817ce21fff87970062b9ef3d93e84a86" offset="0" />
+ </dataarea>
+ </part>
+ <part name="043" interface="vgm_quik">
+ <feature name="part_id" value="43 basement (b41~b49).vgz" />
+ <dataarea name="quik" size="16233">
+ <rom name="43 basement (b41~b49).vgz" size="16233" crc="f031a4ea" sha1="83477b81b45b95541d71a6f1bf68c73b1c2cb051" offset="0" />
+ </dataarea>
+ </part>
+ <part name="044" interface="vgm_quik">
+ <feature name="part_id" value="44 battle against medusa.vgz" />
+ <dataarea name="quik" size="17577">
+ <rom name="44 battle against medusa.vgz" size="17577" crc="bf2a8797" sha1="91a4dc8f17580be099c7afd2fc3d7fd4a235090a" offset="0" />
+ </dataarea>
+ </part>
+ <part name="045" interface="vgm_quik">
+ <feature name="part_id" value="45 medusa defeated.vgz" />
+ <dataarea name="quik" size="1802">
+ <rom name="45 medusa defeated.vgz" size="1802" crc="abcfb3ea" sha1="074e50f54ce58d7dddeffb75e2bc0021813bfb06" offset="0" />
+ </dataarea>
+ </part>
+ <part name="046" interface="vgm_quik">
+ <feature name="part_id" value="46 game over.vgz" />
+ <dataarea name="quik" size="4113">
+ <rom name="46 game over.vgz" size="4113" crc="e1260f61" sha1="c798b710c0c42f7e3778383a7848aa9ba283a53e" offset="0" />
+ </dataarea>
+ </part>
+ <part name="047" interface="vgm_quik">
+ <feature name="part_id" value="47 vs mode - select.vgz" />
+ <dataarea name="quik" size="4330">
+ <rom name="47 vs mode - select.vgz" size="4330" crc="a6ccd0bb" sha1="6b2374a8b0d038fd381bf98d6ad26f5bef887080" offset="0" />
+ </dataarea>
+ </part>
+ <part name="048" interface="vgm_quik">
+ <feature name="part_id" value="48 vs mode - brick stage.vgz" />
+ <dataarea name="quik" size="14653">
+ <rom name="48 vs mode - brick stage.vgz" size="14653" crc="81abc6f1" sha1="6b9a6d42c6caa65dc6c3ef8dd9ce3dd651fd7389" offset="0" />
+ </dataarea>
+ </part>
+ <part name="049" interface="vgm_quik">
+ <feature name="part_id" value="49 vs mode - stone path stage.vgz" />
+ <dataarea name="quik" size="12850">
+ <rom name="49 vs mode - stone path stage.vgz" size="12850" crc="df87f8d6" sha1="10313bba62a70fff7c17d7db20c43f9863723fb2" offset="0" />
+ </dataarea>
+ </part>
+ <part name="050" interface="vgm_quik">
+ <feature name="part_id" value="50 vs mode - crossbridge stage.vgz" />
+ <dataarea name="quik" size="24408">
+ <rom name="50 vs mode - crossbridge stage.vgz" size="24408" crc="2faa30c5" sha1="7a15e523e52ac5c52c1834cdf9ad1ccadd5a1912" offset="0" />
+ </dataarea>
+ </part>
+ <part name="051" interface="vgm_quik">
+ <feature name="part_id" value="51 vs mode - warp square stage.vgz" />
+ <dataarea name="quik" size="20920">
+ <rom name="51 vs mode - warp square stage.vgz" size="20920" crc="e8de97b7" sha1="ac5b86c6389643c2a08a055c2921017601809677" offset="0" />
+ </dataarea>
+ </part>
+ <part name="052" interface="vgm_quik">
+ <feature name="part_id" value="52 vs mode - win.vgz" />
+ <dataarea name="quik" size="1581">
+ <rom name="52 vs mode - win.vgz" size="1581" crc="884cb61d" sha1="11847ee5f6ffc502ab74c45e05ae2fd8edde89b8" offset="0" />
+ </dataarea>
+ </part>
+ <part name="053" interface="vgm_quik">
+ <feature name="part_id" value="53 vs mode - lose.vgz" />
+ <dataarea name="quik" size="1849">
+ <rom name="53 vs mode - lose.vgz" size="1849" crc="cc19ff50" sha1="deb770058ea8e3d6d7fffbf8b522f7d943dfbbf3" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="dkong_gbc">
+ <description>Donkey Kong (Nintendo Game Boy)</description>
+ <year>1994</year>
+ <publisher>Nintendo</publisher>
+ <info name="cores" value="Game Boy DMG (LR35902)"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 introduction.vgz" />
+ <dataarea name="quik" size="692">
+ <rom name="01 introduction.vgz" size="692" crc="556cdb44" sha1="49f98cc92fd34e4fd7c4e2140ad995d523774035" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 title screen.vgz" />
+ <dataarea name="quik" size="3178">
+ <rom name="02 title screen.vgz" size="3178" crc="8f4724de" sha1="0d7ca6305012f03205725e1a6c0f08abd7a75095" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 file select.vgz" />
+ <dataarea name="quik" size="2541">
+ <rom name="03 file select.vgz" size="2541" crc="d8762d9c" sha1="af2e07d1ef1aa9ddcf3a85f7099e5ff343175859" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 dk jingle.vgz" />
+ <dataarea name="quik" size="488">
+ <rom name="04 dk jingle.vgz" size="488" crc="4739a41a" sha1="379585b4fa2c6ba48b90360fb4b010cd8ee2e043" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 stage start.vgz" />
+ <dataarea name="quik" size="449">
+ <rom name="05 stage start.vgz" size="449" crc="239046c1" sha1="9caaea40236d9ade38281fd433ff0599ed15355c" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 25m.vgz" />
+ <dataarea name="quik" size="340">
+ <rom name="06 25m.vgz" size="340" crc="020410ab" sha1="9693f53cb55ac5b498e2fe9604e380cd4ad566e9" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 50m.vgz" />
+ <dataarea name="quik" size="306">
+ <rom name="07 50m.vgz" size="306" crc="e447af0e" sha1="3cb51959c845c76aff2196cfabc3817bb9665275" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 dk is defeated.vgz" />
+ <dataarea name="quik" size="369">
+ <rom name="08 dk is defeated.vgz" size="369" crc="c8f4502e" sha1="b967b117092838521354d5dda1144b015a783dac" offset="0" />
+ </dataarea>
+ </part>
+ <part name="009" interface="vgm_quik">
+ <feature name="part_id" value="09 false happy ending.vgz" />
+ <dataarea name="quik" size="405">
+ <rom name="09 false happy ending.vgz" size="405" crc="2869e7f2" sha1="e0ff8cb4a21f061608d4fdb06d5b97d4e88e8c23" offset="0" />
+ </dataarea>
+ </part>
+ <part name="010" interface="vgm_quik">
+ <feature name="part_id" value="10 dk escapes!.vgz" />
+ <dataarea name="quik" size="1516">
+ <rom name="10 dk escapes.vgz" size="1516" crc="9b43aea8" sha1="a558feda58ed8602d0954c0534c45244eded01f9" offset="0" />
+ </dataarea>
+ </part>
+ <part name="011" interface="vgm_quik">
+ <feature name="part_id" value="11 big city.vgz" />
+ <dataarea name="quik" size="2380">
+ <rom name="11 big city.vgz" size="2380" crc="a6bef867" sha1="0c3f36c5b4be87f84596444962cc6f9f71199b73" offset="0" />
+ </dataarea>
+ </part>
+ <part name="012" interface="vgm_quik">
+ <feature name="part_id" value="12 forest.vgz" />
+ <dataarea name="quik" size="4264">
+ <rom name="12 forest.vgz" size="4264" crc="ffd6d847" sha1="8cbc91a50f50ec4421a26a67e7323fbecb04a8e7" offset="0" />
+ </dataarea>
+ </part>
+ <part name="013" interface="vgm_quik">
+ <feature name="part_id" value="13 ship.vgz" />
+ <dataarea name="quik" size="3351">
+ <rom name="13 ship.vgz" size="3351" crc="eaf267cd" sha1="ba64ddbd259ba839a25ffba7ff11b9c7cb601278" offset="0" />
+ </dataarea>
+ </part>
+ <part name="014" interface="vgm_quik">
+ <feature name="part_id" value="14 jungle.vgz" />
+ <dataarea name="quik" size="6766">
+ <rom name="14 jungle.vgz" size="6766" crc="d238f1a9" sha1="86867b26811068757f3a3e408d56e8de153b2593" offset="0" />
+ </dataarea>
+ </part>
+ <part name="015" interface="vgm_quik">
+ <feature name="part_id" value="15 desert.vgz" />
+ <dataarea name="quik" size="2269">
+ <rom name="15 desert.vgz" size="2269" crc="accf1e01" sha1="77a3d45c900ae9e8bc6c6c6927379aec86c55ac7" offset="0" />
+ </dataarea>
+ </part>
+ <part name="016" interface="vgm_quik">
+ <feature name="part_id" value="16 airplane.vgz" />
+ <dataarea name="quik" size="2012">
+ <rom name="16 airplane.vgz" size="2012" crc="433c5f50" sha1="95dab258c196ea24f0d03cb36b237e8fe71903c2" offset="0" />
+ </dataarea>
+ </part>
+ <part name="017" interface="vgm_quik">
+ <feature name="part_id" value="17 iceberg.vgz" />
+ <dataarea name="quik" size="4561">
+ <rom name="17 iceberg.vgz" size="4561" crc="1b50edcb" sha1="f996e8ba472c9319ea340027ac4067bb763002b0" offset="0" />
+ </dataarea>
+ </part>
+ <part name="018" interface="vgm_quik">
+ <feature name="part_id" value="18 rocky valley.vgz" />
+ <dataarea name="quik" size="2247">
+ <rom name="18 rocky valley.vgz" size="2247" crc="29a00c9c" sha1="136226d9ca4f757e462b1e875837c0d66c88ef66" offset="0" />
+ </dataarea>
+ </part>
+ <part name="019" interface="vgm_quik">
+ <feature name="part_id" value="19 tower.vgz" />
+ <dataarea name="quik" size="3877">
+ <rom name="19 tower.vgz" size="3877" crc="1d016145" sha1="5011dbec92c2c661b10b4307e01cb3a0eb192545" offset="0" />
+ </dataarea>
+ </part>
+ <part name="020" interface="vgm_quik">
+ <feature name="part_id" value="20 stage theme 1.vgz" />
+ <dataarea name="quik" size="823">
+ <rom name="20 stage theme 1.vgz" size="823" crc="429bcbd4" sha1="5af069bba9a8b9d628103676cfe5729857e56801" offset="0" />
+ </dataarea>
+ </part>
+ <part name="021" interface="vgm_quik">
+ <feature name="part_id" value="21 stage theme 2.vgz" />
+ <dataarea name="quik" size="8288">
+ <rom name="21 stage theme 2.vgz" size="8288" crc="1b3667c6" sha1="d81c74b64acb5a2bc89243275803e7dd45cfb116" offset="0" />
+ </dataarea>
+ </part>
+ <part name="022" interface="vgm_quik">
+ <feature name="part_id" value="22 stage theme 3.vgz" />
+ <dataarea name="quik" size="6736">
+ <rom name="22 stage theme 3.vgz" size="6736" crc="c49d14b7" sha1="25258bd9298a818c850053815afc643f19bda013" offset="0" />
+ </dataarea>
+ </part>
+ <part name="023" interface="vgm_quik">
+ <feature name="part_id" value="23 stage theme 4.vgz" />
+ <dataarea name="quik" size="1783">
+ <rom name="23 stage theme 4.vgz" size="1783" crc="0dfb9c1a" sha1="ecda8be4db987f1efaf60cbed537990e34a0f31e" offset="0" />
+ </dataarea>
+ </part>
+ <part name="024" interface="vgm_quik">
+ <feature name="part_id" value="24 stage theme 5.vgz" />
+ <dataarea name="quik" size="1843">
+ <rom name="24 stage theme 5.vgz" size="1843" crc="64d2671f" sha1="cc1977630fa5ce566841e429daf3c48f8b847aa1" offset="0" />
+ </dataarea>
+ </part>
+ <part name="025" interface="vgm_quik">
+ <feature name="part_id" value="25 stage theme 6.vgz" />
+ <dataarea name="quik" size="1696">
+ <rom name="25 stage theme 6.vgz" size="1696" crc="4675a148" sha1="ad3b382cd0015c111577376484264fcca9a58215" offset="0" />
+ </dataarea>
+ </part>
+ <part name="026" interface="vgm_quik">
+ <feature name="part_id" value="26 stage theme 7.vgz" />
+ <dataarea name="quik" size="1924">
+ <rom name="26 stage theme 7.vgz" size="1924" crc="0b57635c" sha1="aa0d5e6ebf507004dacbd5995ea7386c6fa583df" offset="0" />
+ </dataarea>
+ </part>
+ <part name="027" interface="vgm_quik">
+ <feature name="part_id" value="27 the ancient pyramid.vgz" />
+ <dataarea name="quik" size="2789">
+ <rom name="27 the ancient pyramid.vgz" size="2789" crc="1b084f3e" sha1="31072fb484798bd3f48b0d07712541e24f31e207" offset="0" />
+ </dataarea>
+ </part>
+ <part name="028" interface="vgm_quik">
+ <feature name="part_id" value="28 big city (airplane).vgz" />
+ <dataarea name="quik" size="2372">
+ <rom name="28 big city (airplane).vgz" size="2372" crc="ef0f0f42" sha1="c9df4ec521e0146dc852699d5f5cf4b7d0f9a7bb" offset="0" />
+ </dataarea>
+ </part>
+ <part name="029" interface="vgm_quik">
+ <feature name="part_id" value="29 clash.vgz" />
+ <dataarea name="quik" size="3920">
+ <rom name="29 clash.vgz" size="3920" crc="2da9723f" sha1="b5e325e1dda1143f2dd3c071511b437d469debcc" offset="0" />
+ </dataarea>
+ </part>
+ <part name="030" interface="vgm_quik">
+ <feature name="part_id" value="30 battle.vgz" />
+ <dataarea name="quik" size="4853">
+ <rom name="30 battle.vgz" size="4853" crc="f80a1a56" sha1="12d3407f64db5e44b923e30b8ddf6e47cae1c663" offset="0" />
+ </dataarea>
+ </part>
+ <part name="031" interface="vgm_quik">
+ <feature name="part_id" value="31 battle (airplane).vgz" />
+ <dataarea name="quik" size="5118">
+ <rom name="31 battle (airplane).vgz" size="5118" crc="81c9dfb6" sha1="900fe54dd316694878d654d923a40eb8073bb7d5" offset="0" />
+ </dataarea>
+ </part>
+ <part name="032" interface="vgm_quik">
+ <feature name="part_id" value="32 big battle.vgz" />
+ <dataarea name="quik" size="2400">
+ <rom name="32 big battle.vgz" size="2400" crc="b9f242ab" sha1="6bbc9d7a93111e01fe316c000949a3288f39cc8c" offset="0" />
+ </dataarea>
+ </part>
+ <part name="033" interface="vgm_quik">
+ <feature name="part_id" value="33 big battle (airplane).vgz" />
+ <dataarea name="quik" size="2177">
+ <rom name="33 big battle (airplane).vgz" size="2177" crc="1a88f950" sha1="8d91769bed407cb63707e73e475de3a201994cc4" offset="0" />
+ </dataarea>
+ </part>
+ <part name="034" interface="vgm_quik">
+ <feature name="part_id" value="34 p-switch.vgz" />
+ <dataarea name="quik" size="956">
+ <rom name="34 p-switch.vgz" size="956" crc="6b137254" sha1="60ab8df6c610fdc609f286104bfb1c0d3d36bd0f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="035" interface="vgm_quik">
+ <feature name="part_id" value="35 time's running out!.vgz" />
+ <dataarea name="quik" size="1447">
+ <rom name="35 time's running out.vgz" size="1447" crc="2e6d12c7" sha1="4efbc18767631e6dab446ec9481d4ee5f97e7142" offset="0" />
+ </dataarea>
+ </part>
+ <part name="036" interface="vgm_quik">
+ <feature name="part_id" value="36 time's almost out!.vgz" />
+ <dataarea name="quik" size="2083">
+ <rom name="36 time's almost out.vgz" size="2083" crc="792df6f4" sha1="f072a8e8b9dd37ec38f3a85ef0b6c386acbeb316" offset="0" />
+ </dataarea>
+ </part>
+ <part name="037" interface="vgm_quik">
+ <feature name="part_id" value="37 stage clear!.vgz" />
+ <dataarea name="quik" size="352">
+ <rom name="37 stage clear.vgz" size="352" crc="56e8b5c8" sha1="4576753434f91ca6fbc70f0539208eb37a116cdf" offset="0" />
+ </dataarea>
+ </part>
+ <part name="038" interface="vgm_quik">
+ <feature name="part_id" value="38 bonus game.vgz" />
+ <dataarea name="quik" size="870">
+ <rom name="38 bonus game.vgz" size="870" crc="09fb9b64" sha1="d89f66d5b1ebdbe10101bc30cdd86f648c39906a" offset="0" />
+ </dataarea>
+ </part>
+ <part name="039" interface="vgm_quik">
+ <feature name="part_id" value="39 bonus fanfare.vgz" />
+ <dataarea name="quik" size="779">
+ <rom name="39 bonus fanfare.vgz" size="779" crc="41f2d472" sha1="14bac3e0362125b33c614146f142a8c3e41241d8" offset="0" />
+ </dataarea>
+ </part>
+ <part name="040" interface="vgm_quik">
+ <feature name="part_id" value="40 world clear!.vgz" />
+ <dataarea name="quik" size="1049">
+ <rom name="40 world clear.vgz" size="1049" crc="2779c219" sha1="d5de8bf392c9c524d712e4922e902c8e83e1d7d7" offset="0" />
+ </dataarea>
+ </part>
+ <part name="041" interface="vgm_quik">
+ <feature name="part_id" value="41 dk escapes! (no intro).vgz" />
+ <dataarea name="quik" size="1252">
+ <rom name="41 dk escapes (no intro).vgz" size="1252" crc="94a3f34a" sha1="f0c154f379c63e0e1e57c631225cd740ea1ffcd7" offset="0" />
+ </dataarea>
+ </part>
+ <part name="042" interface="vgm_quik">
+ <feature name="part_id" value="42 scaling the tower.vgz" />
+ <dataarea name="quik" size="6205">
+ <rom name="42 scaling the tower.vgz" size="6205" crc="ac93ad52" sha1="90e6218a27ac452b22c5eb437d39341a83d8003b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="043" interface="vgm_quik">
+ <feature name="part_id" value="43 showdown at the tower.vgz" />
+ <dataarea name="quik" size="11364">
+ <rom name="43 showdown at the tower.vgz" size="11364" crc="41c9b38e" sha1="4b112eb16b2d8217b36a985617cf1945e4be8561" offset="0" />
+ </dataarea>
+ </part>
+ <part name="044" interface="vgm_quik">
+ <feature name="part_id" value="44 showdown clear!.vgz" />
+ <dataarea name="quik" size="1642">
+ <rom name="44 showdown clear.vgz" size="1642" crc="b8e9356a" sha1="c65964bdbfcc1942a956c4cd46935cd86585b6af" offset="0" />
+ </dataarea>
+ </part>
+ <part name="045" interface="vgm_quik">
+ <feature name="part_id" value="45 final battle.vgz" />
+ <dataarea name="quik" size="7407">
+ <rom name="45 final battle.vgz" size="7407" crc="8af498d5" sha1="f02bd5becc4a2e2bd8b0d9a6d29a53a0987449b7" offset="0" />
+ </dataarea>
+ </part>
+ <part name="046" interface="vgm_quik">
+ <feature name="part_id" value="46 ending.vgz" />
+ <dataarea name="quik" size="1986">
+ <rom name="46 ending.vgz" size="1986" crc="84387de0" sha1="ee04f3685324bcf67dedec7aa7dcf0d795e70e1e" offset="0" />
+ </dataarea>
+ </part>
+ <part name="047" interface="vgm_quik">
+ <feature name="part_id" value="47 lose life.vgz" />
+ <dataarea name="quik" size="528">
+ <rom name="47 lose life.vgz" size="528" crc="70c33896" sha1="1ac980e75f25eec68998d597b43c5ead8093e6a0" offset="0" />
+ </dataarea>
+ </part>
+ <part name="048" interface="vgm_quik">
+ <feature name="part_id" value="48 death by fall.vgz" />
+ <dataarea name="quik" size="532">
+ <rom name="48 death by fall.vgz" size="532" crc="9c9db30e" sha1="940390e72722dd522a85274df86d5d2d45b92308" offset="0" />
+ </dataarea>
+ </part>
+ <part name="049" interface="vgm_quik">
+ <feature name="part_id" value="49 death by impact.vgz" />
+ <dataarea name="quik" size="772">
+ <rom name="49 death by impact.vgz" size="772" crc="df131fe6" sha1="a1424c416e6f50bb247c7da4ad968656697be777" offset="0" />
+ </dataarea>
+ </part>
+ <part name="050" interface="vgm_quik">
+ <feature name="part_id" value="50 game over.vgz" />
+ <dataarea name="quik" size="1012">
+ <rom name="50 game over.vgz" size="1012" crc="bfa39915" sha1="42d9015e49d74e080f321219712bc67c7ef1b3cd" offset="0" />
+ </dataarea>
+ </part>
+ <part name="051" interface="vgm_quik">
+ <feature name="part_id" value="51 staff roll.vgz" />
+ <dataarea name="quik" size="7942">
+ <rom name="51 staff roll.vgz" size="7942" crc="df373cd1" sha1="23b6f2bd6f9e6096d2c61c0d0cb48c22d1aa00be" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="download_pce">
+ <description>Down Load (PC Engine)</description>
+ <year>1990</year>
+ <publisher>NEC Avenue</publisher>
+ <info name="cores" value="HuC6280"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 title, stage 6-3.vgz" />
+ <dataarea name="quik" size="15445">
+ <rom name="01 title, stage 6-3.vgz" size="15445" crc="69c3d0fd" sha1="d867ed300d77eef396d86b4b853db122c4d1b171" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 start demo, stage 6-4.vgz" />
+ <dataarea name="quik" size="13322">
+ <rom name="02 start demo, stage 6-4.vgz" size="13322" crc="b14d5170" sha1="53be0f55f11ced6634f56f1329b3bcb42b07360d" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 weapon select.vgz" />
+ <dataarea name="quik" size="10269">
+ <rom name="03 weapon select.vgz" size="10269" crc="33af9538" sha1="31deeaa602692a204c91ea18bf17367103e0597b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 stage 1-1, demo 4-2.vgz" />
+ <dataarea name="quik" size="54241">
+ <rom name="04 stage 1-1, demo 4-2.vgz" size="54241" crc="cd099c26" sha1="d67e804f420c18a872eb575c3cf121d2c8819a1b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 boss 1.vgz" />
+ <dataarea name="quik" size="8182">
+ <rom name="05 boss 1.vgz" size="8182" crc="bf1f4ac7" sha1="0f60d75fae3e24879bcf099b65aa0a79406f3ef8" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 stage 1-2, 4-2.vgz" />
+ <dataarea name="quik" size="14002">
+ <rom name="06 stage 1-2, 4-2.vgz" size="14002" crc="158db7c2" sha1="b6fe36494d93e401044ba98397d4fb8c2803c860" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 stage 1-3.vgz" />
+ <dataarea name="quik" size="14219">
+ <rom name="07 stage 1-3.vgz" size="14219" crc="b460f9e9" sha1="652c7895f88ade14cfa585cfc374e495857361d6" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 demo 1-1, 2-1, mission incomplete.vgz" />
+ <dataarea name="quik" size="10673">
+ <rom name="08 demo 1-1, 2-1, mission incomplete.vgz" size="10673" crc="06f1c182" sha1="2d4b937dbd39fa9309e4333653a722b26e5869a5" offset="0" />
+ </dataarea>
+ </part>
+ <part name="009" interface="vgm_quik">
+ <feature name="part_id" value="09 demo 1-2, 3-2.vgz" />
+ <dataarea name="quik" size="19156">
+ <rom name="09 demo 1-2, 3-2.vgz" size="19156" crc="b60f76f5" sha1="e51ce7c477f3573d0fb682b721e00f1e0531d424" offset="0" />
+ </dataarea>
+ </part>
+ <part name="010" interface="vgm_quik">
+ <feature name="part_id" value="10 stage 2, 6-1, 6-2.vgz" />
+ <dataarea name="quik" size="30372">
+ <rom name="10 stage 2, 6-1, 6-2.vgz" size="30372" crc="f7decc12" sha1="226f9fe7ca13773aed4fe8811f3feac5e249620d" offset="0" />
+ </dataarea>
+ </part>
+ <part name="011" interface="vgm_quik">
+ <feature name="part_id" value="11 boss 2.vgz" />
+ <dataarea name="quik" size="11471">
+ <rom name="11 boss 2.vgz" size="11471" crc="14353f3a" sha1="1537b3b77d2a0e42b40bd22c8ae5960f72213bea" offset="0" />
+ </dataarea>
+ </part>
+ <part name="012" interface="vgm_quik">
+ <feature name="part_id" value="12 demo 2-2.vgz" />
+ <dataarea name="quik" size="12976">
+ <rom name="12 demo 2-2.vgz" size="12976" crc="27e87542" sha1="8f047913e5719e9fbeeb280f9c46211eaa5105a3" offset="0" />
+ </dataarea>
+ </part>
+ <part name="013" interface="vgm_quik">
+ <feature name="part_id" value="13 stage 3, 4-1, 5.vgz" />
+ <dataarea name="quik" size="21628">
+ <rom name="13 stage 3, 4-1, 5.vgz" size="21628" crc="515e2376" sha1="e2499001103a1614ff3381d50ea7ce4e25a4e185" offset="0" />
+ </dataarea>
+ </part>
+ <part name="014" interface="vgm_quik">
+ <feature name="part_id" value="14 demo 3-1, 4-1.vgz" />
+ <dataarea name="quik" size="11292">
+ <rom name="14 demo 3-1, 4-1.vgz" size="11292" crc="0aaa682d" sha1="c5a4f1c5976077c114677d43e05ce8afde3e98b1" offset="0" />
+ </dataarea>
+ </part>
+ <part name="015" interface="vgm_quik">
+ <feature name="part_id" value="15 demo 5.vgz" />
+ <dataarea name="quik" size="13618">
+ <rom name="15 demo 5.vgz" size="13618" crc="73c16118" sha1="e05c81f539062776230badfe73531c6a3b5614a0" offset="0" />
+ </dataarea>
+ </part>
+ <part name="016" interface="vgm_quik">
+ <feature name="part_id" value="16 last boss.vgz" />
+ <dataarea name="quik" size="11636">
+ <rom name="16 last boss.vgz" size="11636" crc="1719c3d6" sha1="e02a40560826146443782d9cb85a618658c0cc0a" offset="0" />
+ </dataarea>
+ </part>
+ <part name="017" interface="vgm_quik">
+ <feature name="part_id" value="17 staff roll.vgz" />
+ <dataarea name="quik" size="34619">
+ <rom name="17 staff roll.vgz" size="34619" crc="3e635e77" sha1="6798fb3cbc4d9f7310c43d62606fd8040bf4b18b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="018" interface="vgm_quik">
+ <feature name="part_id" value="18 unknown 1.vgz" />
+ <dataarea name="quik" size="9116">
+ <rom name="18 unknown 1.vgz" size="9116" crc="0025dbee" sha1="e8a7d613b18b3ab0ca1a7be959359bed5d68e0c8" offset="0" />
+ </dataarea>
+ </part>
+ <part name="019" interface="vgm_quik">
+ <feature name="part_id" value="19 unknown 2.vgz" />
+ <dataarea name="quik" size="11965">
+ <rom name="19 unknown 2.vgz" size="11965" crc="e7238abe" sha1="5eac2401bafc4b0b3df4442ef0fe0a2f981c1a22" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="downld2_pcecd">
+ <description>Down Load 2 (PC Engine CD-ROM2)</description>
+ <year>1991</year>
+ <publisher>NEC Avenue</publisher>
+ <info name="cores" value="HuC6280"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 opening.vgz" />
+ <dataarea name="quik" size="7884">
+ <rom name="01 opening.vgz" size="7884" crc="52c48f88" sha1="2cf851401f2e9d1c1eaabff6364db277d72a20e0" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 demo 1-1.vgz" />
+ <dataarea name="quik" size="6365">
+ <rom name="02 demo 1-1.vgz" size="6365" crc="eb06a34e" sha1="0229ad480f813c063aca9ec9fc6071366b4bdc65" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 demo 1-2.vgz" />
+ <dataarea name="quik" size="2385">
+ <rom name="03 demo 1-2.vgz" size="2385" crc="35649430" sha1="162561d240545ef897e9cfeb9f7da14864cd5e06" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 demo 1-3.vgz" />
+ <dataarea name="quik" size="2714">
+ <rom name="04 demo 1-3.vgz" size="2714" crc="f6af4031" sha1="ea6740d75c07c6614395f5cde1d164ee4eff0aae" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 demo 1-4.vgz" />
+ <dataarea name="quik" size="11750">
+ <rom name="05 demo 1-4.vgz" size="11750" crc="855888d2" sha1="e2c443958374086b5d1612d885dc013f125e4dff" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 demo 1-5.vgz" />
+ <dataarea name="quik" size="13067">
+ <rom name="06 demo 1-5.vgz" size="13067" crc="16501db3" sha1="f226b17e419536dffbac0216335d6e7ff692489b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 demo 1-6.vgz" />
+ <dataarea name="quik" size="2544">
+ <rom name="07 demo 1-6.vgz" size="2544" crc="40e7c326" sha1="de9f7cd8b1475f093fcdda05a06dec5467a29f78" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 demo 1-7.vgz" />
+ <dataarea name="quik" size="7541">
+ <rom name="08 demo 1-7.vgz" size="7541" crc="7e550376" sha1="5e1ccd10a519f910c5d6fa071c0d0184c87ec743" offset="0" />
+ </dataarea>
+ </part>
+ <part name="009" interface="vgm_quik">
+ <feature name="part_id" value="09 demo 2-1, 3.vgz" />
+ <dataarea name="quik" size="18759">
+ <rom name="09 demo 2-1, 3.vgz" size="18759" crc="bd616923" sha1="b4204af5f984c92b0ae63e3afd52de497eba6eb0" offset="0" />
+ </dataarea>
+ </part>
+ <part name="010" interface="vgm_quik">
+ <feature name="part_id" value="10 demo 2-2, 4, 6.vgz" />
+ <dataarea name="quik" size="15917">
+ <rom name="10 demo 2-2, 4, 6.vgz" size="15917" crc="5228f158" sha1="84fc034d4f3e147ee84bf4d31a676fe5727d3098" offset="0" />
+ </dataarea>
+ </part>
+ <part name="011" interface="vgm_quik">
+ <feature name="part_id" value="11 demo 5-1.vgz" />
+ <dataarea name="quik" size="9506">
+ <rom name="11 demo 5-1.vgz" size="9506" crc="f17be46c" sha1="10a4c4ef7e24355afc231c3b32ca4ff9a3439cb6" offset="0" />
+ </dataarea>
+ </part>
+ <part name="012" interface="vgm_quik">
+ <feature name="part_id" value="12 demo 5-2.vgz" />
+ <dataarea name="quik" size="11967">
+ <rom name="12 demo 5-2.vgz" size="11967" crc="5fb74006" sha1="05f9dcb39336f9a367785ded3ec605628db5e415" offset="0" />
+ </dataarea>
+ </part>
+ <part name="013" interface="vgm_quik">
+ <feature name="part_id" value="13 demo 7-1.vgz" />
+ <dataarea name="quik" size="15001">
+ <rom name="13 demo 7-1.vgz" size="15001" crc="56a37160" sha1="897c73e47b9620a746601fa76503a546bacc1df3" offset="0" />
+ </dataarea>
+ </part>
+ <part name="014" interface="vgm_quik">
+ <feature name="part_id" value="14 demo 7-2.vgz" />
+ <dataarea name="quik" size="5894">
+ <rom name="14 demo 7-2.vgz" size="5894" crc="57f453e7" sha1="060f70d70d49444947bcd6428a2379fc2d01c48c" offset="0" />
+ </dataarea>
+ </part>
+ <part name="015" interface="vgm_quik">
+ <feature name="part_id" value="15 demo 8-1.vgz" />
+ <dataarea name="quik" size="15700">
+ <rom name="15 demo 8-1.vgz" size="15700" crc="1f36b7ef" sha1="c9d3b03d4fe400009e3943aa2a004c38312c192c" offset="0" />
+ </dataarea>
+ </part>
+ <part name="016" interface="vgm_quik">
+ <feature name="part_id" value="16 demo 8-2.vgz" />
+ <dataarea name="quik" size="5003">
+ <rom name="16 demo 8-2.vgz" size="5003" crc="88ed1f39" sha1="95d1a2478b4a495f4e8e9a05675d9f0f961b1a06" offset="0" />
+ </dataarea>
+ </part>
+ <part name="017" interface="vgm_quik">
+ <feature name="part_id" value="17 demo 8-3.vgz" />
+ <dataarea name="quik" size="10541">
+ <rom name="17 demo 8-3.vgz" size="10541" crc="c78974a0" sha1="f4ea999a7828dd7437cea4489b1bf7199b8f5e2c" offset="0" />
+ </dataarea>
+ </part>
+ <part name="018" interface="vgm_quik">
+ <feature name="part_id" value="18 ending 1.vgz" />
+ <dataarea name="quik" size="9623">
+ <rom name="18 ending 1.vgz" size="9623" crc="c4951abf" sha1="51069094ecc9bfecaf644551d2df9ab9a828ab56" offset="0" />
+ </dataarea>
+ </part>
+ <part name="019" interface="vgm_quik">
+ <feature name="part_id" value="19 ending 2.vgz" />
+ <dataarea name="quik" size="3918">
+ <rom name="19 ending 2.vgz" size="3918" crc="42c1b00e" sha1="1595f386671d0d0d365312516a8bf3823bc46243" offset="0" />
+ </dataarea>
+ </part>
+ <part name="020" interface="vgm_quik">
+ <feature name="part_id" value="20 game over.vgz" />
+ <dataarea name="quik" size="2590">
+ <rom name="20 game over.vgz" size="2590" crc="be13186a" sha1="e9cad7c42af42c3221d72c2132c9c1c656ad95d3" offset="0" />
+ </dataarea>
+ </part>
+ <part name="021" interface="vgm_quik">
+ <feature name="part_id" value="21 unknown.vgz" />
+ <dataarea name="quik" size="6495">
+ <rom name="21 unknown.vgz" size="6495" crc="ad84b200" sha1="bc10c61cc1c3b64a9be1d7c5f0bd8ae0b80dd79d" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="f1tb_pce">
+ <description>F1 Triple Battle (PC Engine)</description>
+ <year>1989</year>
+ <publisher>Human</publisher>
+ <info name="cores" value="HuC6280"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 f1 triple battle.vgz" />
+ <dataarea name="quik" size="586171">
+ <rom name="01 f1 triple battle.vgz" size="586171" crc="2481ca4b" sha1="cadedccad71212fa28ba6b598c5295c9b5dc34c2" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 course select.vgz" />
+ <dataarea name="quik" size="80762">
+ <rom name="02 course select.vgz" size="80762" crc="cc24b96c" sha1="6d354d32edacaf667b04aa5d9f4bc6be2384425f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 machine setting.vgz" />
+ <dataarea name="quik" size="48244">
+ <rom name="03 machine setting.vgz" size="48244" crc="e42125c1" sha1="7f529d71910563deaa64d831470408b680bffe56" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 contents.vgz" />
+ <dataarea name="quik" size="33942">
+ <rom name="04 contents.vgz" size="33942" crc="e2c66f47" sha1="90175f47ad823a2f4cd24b679701f23ba8727ce3" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 starting grid.vgz" />
+ <dataarea name="quik" size="135273">
+ <rom name="05 starting grid.vgz" size="135273" crc="965d7add" sha1="ffec27c76e07dadcad69ba7937d035976acb62c4" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 introduction.vgz" />
+ <dataarea name="quik" size="128700">
+ <rom name="06 introduction.vgz" size="128700" crc="b781114c" sha1="8a67a04f978169f4a94f4d9860f412052aeb1748" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 results.vgz" />
+ <dataarea name="quik" size="37641">
+ <rom name="07 results.vgz" size="37641" crc="6b3ca8c2" sha1="818071b904e2569f5328f5c3b0e63bc13c05bda9" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 password ~in~.vgz" />
+ <dataarea name="quik" size="102244">
+ <rom name="08 password ~in~.vgz" size="102244" crc="e73ccb95" sha1="1353978b2b1de0b6099235201d0c516c1d4d2c32" offset="0" />
+ </dataarea>
+ </part>
+ <part name="009" interface="vgm_quik">
+ <feature name="part_id" value="09 password ~out~.vgz" />
+ <dataarea name="quik" size="240599">
+ <rom name="09 password ~out~.vgz" size="240599" crc="21c6c6d3" sha1="95c72d5c82544cf174fdb629609bab13b5b2857b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="010" interface="vgm_quik">
+ <feature name="part_id" value="10 loser.vgz" />
+ <dataarea name="quik" size="61625">
+ <rom name="10 loser.vgz" size="61625" crc="ebde9292" sha1="6b6521a31125653205adfb434fea89d4ff17f868" offset="0" />
+ </dataarea>
+ </part>
+ <part name="011" interface="vgm_quik">
+ <feature name="part_id" value="11 winner ~ending~.vgz" />
+ <dataarea name="quik" size="208422">
+ <rom name="11 winner ~ending~.vgz" size="208422" crc="0151ec68" sha1="dbe0144ccb01abf5950dbb844e6d78fc21f8841f" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="ferrari_nes">
+ <description>Ferrari Grand Prix Challenge (NES)</description>
+ <year>1992</year>
+ <publisher>Acclaim (U, E) / Coconuts Japan (J)</publisher>
+ <info name="cores" value="NES APU (N2A03)"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 title screen.vgz" />
+ <dataarea name="quik" size="28895">
+ <rom name="01 title screen.vgz" size="28895" crc="f4f5c641" sha1="3d7de947b7835cccdcc9eb6d78f0f71565a00f8a" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 menu theme 1.vgz" />
+ <dataarea name="quik" size="5027">
+ <rom name="02 menu theme 1.vgz" size="5027" crc="8d841f08" sha1="8bbb8365189114e91da36e4add1fa1b29c69d6e0" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 menu theme 2.vgz" />
+ <dataarea name="quik" size="9642">
+ <rom name="03 menu theme 2.vgz" size="9642" crc="913053d9" sha1="f59578d6ff759e9b6915498d9a40d02182bca0ca" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 race theme 1.vgz" />
+ <dataarea name="quik" size="20649">
+ <rom name="04 race theme 1.vgz" size="20649" crc="27cc5937" sha1="1df9a3cfd3ba7d9d81361aec7482bc2feb9dcf1c" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 lap times - continue.vgz" />
+ <dataarea name="quik" size="2743">
+ <rom name="05 lap times - continue.vgz" size="2743" crc="829d3d72" sha1="c04f03ea7c4996a371881bd5ca989f234cc5eb03" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 qualifying times.vgz" />
+ <dataarea name="quik" size="2122">
+ <rom name="06 qualifying times.vgz" size="2122" crc="e34ad5b9" sha1="3c37386c8de74d18ccffa7cd56b960150814e069" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 race theme 2.vgz" />
+ <dataarea name="quik" size="5252">
+ <rom name="07 race theme 2.vgz" size="5252" crc="f212ce89" sha1="3d0a49ed08b152fa5fbf51954b449e6969863f62" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 race theme 3.vgz" />
+ <dataarea name="quik" size="18918">
+ <rom name="08 race theme 3.vgz" size="18918" crc="358296eb" sha1="3e4d60c38755e9a49356ec17f749f22b776e8112" offset="0" />
+ </dataarea>
+ </part>
+ <part name="009" interface="vgm_quik">
+ <feature name="part_id" value="09 ranking.vgz" />
+ <dataarea name="quik" size="9436">
+ <rom name="09 ranking.vgz" size="9436" crc="aad53af5" sha1="944ff17911bc0909a95bde43d2e03025e362ad93" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="fsoccr90_pce">
+ <description>Formation Soccer - Human Cup '90 (PC Engine)</description>
+ <year>1990</year>
+ <publisher>Human</publisher>
+ <info name="cores" value="HuC6280"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 annihilator.vgz" />
+ <dataarea name="quik" size="156501">
+ <rom name="01 annihilator.vgz" size="156501" crc="b26c18ea" sha1="49b9d02e586d2c236330e0d0539a6857f538b050" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 knocked out.vgz" />
+ <dataarea name="quik" size="159177">
+ <rom name="02 knocked out.vgz" size="159177" crc="f042de48" sha1="2e47ae5da42ab845d504a62a7b0ba744237e89c2" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 kericode.vgz" />
+ <dataarea name="quik" size="75408">
+ <rom name="03 kericode.vgz" size="75408" crc="85981afb" sha1="647b3ce35ccf514e8a8f6baac49c165f35e7c297" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 lazy.vgz" />
+ <dataarea name="quik" size="189509">
+ <rom name="04 lazy.vgz" size="189509" crc="35ac5378" sha1="f7c4a886d0855fdde6f879bfc9bdff779001b278" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 shake your heads.vgz" />
+ <dataarea name="quik" size="177515">
+ <rom name="05 shake your heads.vgz" size="177515" crc="f853696f" sha1="0df7322fe22e9816690ab312f91ec48439250e48" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 great columbia.vgz" />
+ <dataarea name="quik" size="29879">
+ <rom name="06 great columbia.vgz" size="29879" crc="595bc4d1" sha1="b1fee29e4bd4d0f23e304f43003da4a94c4bf005" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 physical.vgz" />
+ <dataarea name="quik" size="110141">
+ <rom name="07 physical.vgz" size="110141" crc="06785a84" sha1="bd4f8035098c3018a7fea6757b2df1fa11ddec32" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 coffee or tea.vgz" />
+ <dataarea name="quik" size="114803">
+ <rom name="08 coffee or tea.vgz" size="114803" crc="fe1765fd" sha1="ef0777b48e77c096d83de3c2f6e2d4e2a39faa77" offset="0" />
+ </dataarea>
+ </part>
+ <part name="009" interface="vgm_quik">
+ <feature name="part_id" value="09 stop smoking.vgz" />
+ <dataarea name="quik" size="52668">
+ <rom name="09 stop smoking.vgz" size="52668" crc="a349b80b" sha1="8375fe6efb97e5eb63173cb87159ded164079d43" offset="0" />
+ </dataarea>
+ </part>
+ <part name="010" interface="vgm_quik">
+ <feature name="part_id" value="10 cocoa.vgz" />
+ <dataarea name="quik" size="53959">
+ <rom name="10 cocoa.vgz" size="53959" crc="2b488302" sha1="01efc350968a97b714f74eec6c43b10b03d767e3" offset="0" />
+ </dataarea>
+ </part>
+ <part name="011" interface="vgm_quik">
+ <feature name="part_id" value="11 chappy's news.vgz" />
+ <dataarea name="quik" size="2475">
+ <rom name="11 chappy's news.vgz" size="2475" crc="e69554de" sha1="d51a0be50f3c2df498eab02e4511127244fb1d48" offset="0" />
+ </dataarea>
+ </part>
+ <part name="012" interface="vgm_quik">
+ <feature name="part_id" value="12 weather report.vgz" />
+ <dataarea name="quik" size="5707">
+ <rom name="12 weather report.vgz" size="5707" crc="89189474" sha1="7d39b9757a7ee92f962a6b3f7012be6ac096a5fc" offset="0" />
+ </dataarea>
+ </part>
+ <part name="013" interface="vgm_quik">
+ <feature name="part_id" value="13 idol singer.vgz" />
+ <dataarea name="quik" size="55769">
+ <rom name="13 idol singer.vgz" size="55769" crc="9a69bc4b" sha1="ed83a9c224ba89b5eeb43addf2a05542175bce20" offset="0" />
+ </dataarea>
+ </part>
+ <part name="014" interface="vgm_quik">
+ <feature name="part_id" value="14 f1 3 battle.vgz" />
+ <dataarea name="quik" size="190689">
+ <rom name="14 f1 3 battle.vgz" size="190689" crc="ad9508a6" sha1="f013b1c7857b7cd085479469c6f75e5941cc4639" offset="0" />
+ </dataarea>
+ </part>
+ <part name="015" interface="vgm_quik">
+ <feature name="part_id" value="15 prowrestling.vgz" />
+ <dataarea name="quik" size="159051">
+ <rom name="15 prowrestling.vgz" size="159051" crc="813b0bfa" sha1="d08c444f4a510a2cfb9e82f7b2256cf11efb3a4f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="016" interface="vgm_quik">
+ <feature name="part_id" value="16 ff4 winner.vgz" />
+ <dataarea name="quik" size="15099">
+ <rom name="16 ff4 winner.vgz" size="15099" crc="4ef392c5" sha1="4a13af773d73f7a9411e28a39ad6565724fd30b2" offset="0" />
+ </dataarea>
+ </part>
+ <part name="017" interface="vgm_quik">
+ <feature name="part_id" value="17 win! win! win!.vgz" />
+ <dataarea name="quik" size="54226">
+ <rom name="17 win win win.vgz" size="54226" crc="a73d3155" sha1="24bbfa108cbbb3fffd5d66029a3d6d210a9107b7" offset="0" />
+ </dataarea>
+ </part>
+ <part name="018" interface="vgm_quik">
+ <feature name="part_id" value="18 kanasiki time up.vgz" />
+ <dataarea name="quik" size="34511">
+ <rom name="18 kanasiki time up.vgz" size="34511" crc="268e162b" sha1="25f17b02b94a18d6a66aaae67b8a25ee39540cf0" offset="0" />
+ </dataarea>
+ </part>
+ <part name="019" interface="vgm_quik">
+ <feature name="part_id" value="19 pk start.vgz" />
+ <dataarea name="quik" size="28074">
+ <rom name="19 pk start.vgz" size="28074" crc="75c36497" sha1="6be586568e8f7ed3ab7cd34aba6ebab2d328b3fc" offset="0" />
+ </dataarea>
+ </part>
+ <part name="020" interface="vgm_quik">
+ <feature name="part_id" value="20 gokurou samba.vgz" />
+ <dataarea name="quik" size="227786">
+ <rom name="20 gokurou samba.vgz" size="227786" crc="f2173d13" sha1="19d60a88defa3f6c18d2ca07bab473247a442094" offset="0" />
+ </dataarea>
+ </part>
+ <part name="021" interface="vgm_quik">
+ <feature name="part_id" value="21 u are winner.vgz" />
+ <dataarea name="quik" size="24004">
+ <rom name="21 u are winner.vgz" size="24004" crc="2c294012" sha1="615a0d41011c13cfe48db6c97723443846d78631" offset="0" />
+ </dataarea>
+ </part>
+ <part name="022" interface="vgm_quik">
+ <feature name="part_id" value="22 the great player.vgz" />
+ <dataarea name="quik" size="114700">
+ <rom name="22 the great player.vgz" size="114700" crc="bd83e23d" sha1="37b57a6be949032cb93e82b3fcea7fe5e2fa4b15" offset="0" />
+ </dataarea>
+ </part>
+ <part name="023" interface="vgm_quik">
+ <feature name="part_id" value="23 farewell.vgz" />
+ <dataarea name="quik" size="30591">
+ <rom name="23 farewell.vgz" size="30591" crc="8f4abbdc" sha1="d4a26156d67a68f15619df24dd7c11000fc2f397" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="fsoccer_pce">
+ <description>Formation Soccer on J.League (PC Engine)</description>
+ <year>1994</year>
+ <publisher>Human</publisher>
+ <info name="cores" value="HuC6280"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 title.vgz" />
+ <dataarea name="quik" size="224733">
+ <rom name="01 title.vgz" size="224733" crc="30c29b18" sha1="69d26baaced35e509182d6b5429ab620cd85ee47" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 game select.vgz" />
+ <dataarea name="quik" size="98231">
+ <rom name="02 game select.vgz" size="98231" crc="472f87cb" sha1="8353c82b657be0c678a5083d856145293eec8ddb" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 all star mode.vgz" />
+ <dataarea name="quik" size="68760">
+ <rom name="03 all star mode.vgz" size="68760" crc="e38935c4" sha1="3f27a0ed7cca7f6e52f408a0839198addf35ca4f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 j.league mode.vgz" />
+ <dataarea name="quik" size="30886">
+ <rom name="04 j.league mode.vgz" size="30886" crc="cc042f70" sha1="cef17ffef91d326178cc569a2c6ca7b7682cf867" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 save load.vgz" />
+ <dataarea name="quik" size="32974">
+ <rom name="05 save load.vgz" size="32974" crc="fdaa35ee" sha1="60e44fee9fa028c44e0ceb74383708c699b92a89" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 vs.vgz" />
+ <dataarea name="quik" size="41602">
+ <rom name="06 vs.vgz" size="41602" crc="9478ee54" sha1="6c23aa4bc08480121ac240a9f6c45eae7f56dbda" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 formation.vgz" />
+ <dataarea name="quik" size="42586">
+ <rom name="07 formation.vgz" size="42586" crc="a2da3da3" sha1="3f6d499f0be7157df83ec19b2ca5b6b0684cb0b6" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 antlers.vgz" />
+ <dataarea name="quik" size="64995">
+ <rom name="08 antlers.vgz" size="64995" crc="a7fd9595" sha1="03e1b9da25e69811fbb0942b03731cfff0e66759" offset="0" />
+ </dataarea>
+ </part>
+ <part name="009" interface="vgm_quik">
+ <feature name="part_id" value="09 jef united.vgz" />
+ <dataarea name="quik" size="131364">
+ <rom name="09 jef united.vgz" size="131364" crc="3c3c61ed" sha1="c8dbfd8152e6be999b0cc0c41926f47d0543a836" offset="0" />
+ </dataarea>
+ </part>
+ <part name="010" interface="vgm_quik">
+ <feature name="part_id" value="10 red diamonds.vgz" />
+ <dataarea name="quik" size="68457">
+ <rom name="10 red diamonds.vgz" size="68457" crc="e33fce95" sha1="ba7f795072be5ae909490dc80bb863f1e7f7d945" offset="0" />
+ </dataarea>
+ </part>
+ <part name="011" interface="vgm_quik">
+ <feature name="part_id" value="11 verdy.vgz" />
+ <dataarea name="quik" size="114008">
+ <rom name="11 verdy.vgz" size="114008" crc="fc451da8" sha1="5e3ee2cef212c91c7898467aa7d59ec7fa140516" offset="0" />
+ </dataarea>
+ </part>
+ <part name="012" interface="vgm_quik">
+ <feature name="part_id" value="12 marinos.vgz" />
+ <dataarea name="quik" size="107307">
+ <rom name="12 marinos.vgz" size="107307" crc="e17d2eb2" sha1="3c9ab1ee483c5efb7d27f1728f408f3c8b183928" offset="0" />
+ </dataarea>
+ </part>
+ <part name="013" interface="vgm_quik">
+ <feature name="part_id" value="13 flugels.vgz" />
+ <dataarea name="quik" size="167617">
+ <rom name="13 flugels.vgz" size="167617" crc="cf9c1698" sha1="cb48bfbe7bf7be67ed171719b53b3f8f5b4ea5df" offset="0" />
+ </dataarea>
+ </part>
+ <part name="014" interface="vgm_quik">
+ <feature name="part_id" value="14 s-pulse.vgz" />
+ <dataarea name="quik" size="110116">
+ <rom name="14 s-pulse.vgz" size="110116" crc="5eab355a" sha1="30ea920d2aebdbd3a2d4275286bf68e3218accfe" offset="0" />
+ </dataarea>
+ </part>
+ <part name="015" interface="vgm_quik">
+ <feature name="part_id" value="15 grampus.vgz" />
+ <dataarea name="quik" size="125092">
+ <rom name="15 grampus.vgz" size="125092" crc="bbb2d481" sha1="a269cc9bbf9b29b608161e3cdfe585afb97fc566" offset="0" />
+ </dataarea>
+ </part>
+ <part name="016" interface="vgm_quik">
+ <feature name="part_id" value="16 gamba.vgz" />
+ <dataarea name="quik" size="98554">
+ <rom name="16 gamba.vgz" size="98554" crc="a9486aaf" sha1="c0ee213ef1949f4fc4b150f1b093f249aab39320" offset="0" />
+ </dataarea>
+ </part>
+ <part name="017" interface="vgm_quik">
+ <feature name="part_id" value="17 sanfrecce.vgz" />
+ <dataarea name="quik" size="118879">
+ <rom name="17 sanfrecce.vgz" size="118879" crc="25adfef0" sha1="e40b648e4aa01c69809317d0a4819749bbb6d192" offset="0" />
+ </dataarea>
+ </part>
+ <part name="018" interface="vgm_quik">
+ <feature name="part_id" value="18 all star 1.vgz" />
+ <dataarea name="quik" size="120896">
+ <rom name="18 all star 1.vgz" size="120896" crc="24a1bd9b" sha1="336aa171bb715447f1095714312afb6080632939" offset="0" />
+ </dataarea>
+ </part>
+ <part name="019" interface="vgm_quik">
+ <feature name="part_id" value="19 all star 2.vgz" />
+ <dataarea name="quik" size="105057">
+ <rom name="19 all star 2.vgz" size="105057" crc="bb1464cf" sha1="be2b0bbacc1379ab31a66e5dac39ba1578575e34" offset="0" />
+ </dataarea>
+ </part>
+ <part name="020" interface="vgm_quik">
+ <feature name="part_id" value="20 half time.vgz" />
+ <dataarea name="quik" size="45267">
+ <rom name="20 half time.vgz" size="45267" crc="8e58c9ab" sha1="472d45c8010c67cb8b27737925c63ff1a0e15725" offset="0" />
+ </dataarea>
+ </part>
+ <part name="021" interface="vgm_quik">
+ <feature name="part_id" value="21 sudden death start.vgz" />
+ <dataarea name="quik" size="12796">
+ <rom name="21 sudden death start.vgz" size="12796" crc="79ab21d1" sha1="71763eaf9b7fe2b0bef5df638936360111b9eded" offset="0" />
+ </dataarea>
+ </part>
+ <part name="022" interface="vgm_quik">
+ <feature name="part_id" value="22 sudden death.vgz" />
+ <dataarea name="quik" size="74089">
+ <rom name="22 sudden death.vgz" size="74089" crc="5f329c7f" sha1="8f57fc7bf4d18d798ef2b354a5674391f73ff854" offset="0" />
+ </dataarea>
+ </part>
+ <part name="023" interface="vgm_quik">
+ <feature name="part_id" value="23 pk start.vgz" />
+ <dataarea name="quik" size="13526">
+ <rom name="23 pk start.vgz" size="13526" crc="b32169e4" sha1="5b9bd1e1429498028f57fa2c4efcd88744083d78" offset="0" />
+ </dataarea>
+ </part>
+ <part name="024" interface="vgm_quik">
+ <feature name="part_id" value="24 pk.vgz" />
+ <dataarea name="quik" size="53325">
+ <rom name="24 pk.vgz" size="53325" crc="3207b14b" sha1="34bf92b7a25659d94b0ee67c3299a4bbff1250af" offset="0" />
+ </dataarea>
+ </part>
+ <part name="025" interface="vgm_quik">
+ <feature name="part_id" value="25 win.vgz" />
+ <dataarea name="quik" size="43759">
+ <rom name="25 win.vgz" size="43759" crc="4fb5d912" sha1="2fe5f83b550eccc8efbcead23d8286adb989c51a" offset="0" />
+ </dataarea>
+ </part>
+ <part name="026" interface="vgm_quik">
+ <feature name="part_id" value="26 loss.vgz" />
+ <dataarea name="quik" size="71479">
+ <rom name="26 loss.vgz" size="71479" crc="2951977c" sha1="541f62c3d5d43c137793b8bb30b16625b649d861" offset="0" />
+ </dataarea>
+ </part>
+ <part name="027" interface="vgm_quik">
+ <feature name="part_id" value="27 draw.vgz" />
+ <dataarea name="quik" size="50486">
+ <rom name="27 draw.vgz" size="50486" crc="7593b9ff" sha1="f966b1b0e9e23b7bc54f8c889962f9ba56527011" offset="0" />
+ </dataarea>
+ </part>
+ <part name="028" interface="vgm_quik">
+ <feature name="part_id" value="28 j.league result.vgz" />
+ <dataarea name="quik" size="51795">
+ <rom name="28 j.league result.vgz" size="51795" crc="6c26407a" sha1="eae7f70bcf06b72d62588ef608394c9427a1f0cd" offset="0" />
+ </dataarea>
+ </part>
+ <part name="029" interface="vgm_quik">
+ <feature name="part_id" value="29 j.league final match.vgz" />
+ <dataarea name="quik" size="62441">
+ <rom name="29 j.league final match.vgz" size="62441" crc="3ced65c1" sha1="25be6c507e1e814f1f8be79545adc354f53a90a9" offset="0" />
+ </dataarea>
+ </part>
+ <part name="030" interface="vgm_quik">
+ <feature name="part_id" value="30 ending.vgz" />
+ <dataarea name="quik" size="504739">
+ <rom name="30 ending.vgz" size="504739" crc="a35e758a" sha1="ec6e8ac48d2903b1840508573f67f0bb7f4a14b8" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="gforce2_st">
+ <description>Galaxy Force II (Atari ST)</description>
+ <year>1989</year>
+ <publisher>Activision</publisher>
+ <info name="cores" value="YM2149"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 scene select ~ beyond the galaxy [scene b].vgz" />
+ <dataarea name="quik" size="7210">
+ <rom name="01 scene select ~ beyond the galaxy [scene b].vgz" size="7210" crc="d754d10b" sha1="0d1f0b2100802c4cb5626fd69ca204e72e6dcee0" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 alone fighter [scene a].vgz" />
+ <dataarea name="quik" size="9548">
+ <rom name="02 alone fighter [scene a].vgz" size="9548" crc="9a539701" sha1="1eae9158f21647775980fea836de839870751a30" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 take back [scene c].vgz" />
+ <dataarea name="quik" size="7706">
+ <rom name="03 take back [scene c].vgz" size="7706" crc="1ec42292" sha1="3db589ee53d288b1b3fdbfcdb9ed650cb5233aaa" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 try-z [scene d].vgz" />
+ <dataarea name="quik" size="5622">
+ <rom name="04 try-z [scene d].vgz" size="5622" crc="bec8c35b" sha1="cf17b3acf83e455b31376cd05bcb89826699171f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 defeat [scene e].vgz" />
+ <dataarea name="quik" size="8661">
+ <rom name="05 defeat [scene e].vgz" size="8661" crc="4ae10259" sha1="50dbcbea528d44af3937c1411595fd9d60569d4f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 stage clear.vgz" />
+ <dataarea name="quik" size="771">
+ <rom name="06 stage clear.vgz" size="771" crc="edf8f038" sha1="23fa9d468e2f7bb99e60b97deb2b9c7b9f1013d7" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 name entry.vgz" />
+ <dataarea name="quik" size="2846">
+ <rom name="07 name entry.vgz" size="2846" crc="fc8f5c98" sha1="81989e2f8049e06ad00d2ebf1f69de2bac0c987a" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="loffire_st">
+ <description>Line of Fire (Atari ST)</description>
+ <year>1990</year>
+ <publisher>U.S. Gold</publisher>
+ <info name="cores" value="YM2149"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 dynamite guy ~ jungle queen (title).vgz" />
+ <dataarea name="quik" size="13249">
+ <rom name="01 dynamite guy ~ jungle queen (title).vgz" size="13249" crc="8b3ad013" sha1="ccd7448d7b60ca773f1776d5ebe6dd0d3254356d" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 stranger (stage clear).vgz" />
+ <dataarea name="quik" size="3152">
+ <rom name="02 stranger (stage clear).vgz" size="3152" crc="13adf444" sha1="8563d61d4c42291fb2e26b71b2dee540110d994d" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="lockload">
+ <description>Locked 'N Loaded (Arcade)</description>
+ <year>1994</year>
+ <publisher>Data East</publisher>
+ <info name="cores" value="YM2151, OKIM6295"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 terrorism (demo).vgz" />
+ <dataarea name="quik" size="65147">
+ <rom name="01 terrorism (demo).vgz" size="65147" crc="0db7a9f1" sha1="d463dd1852aaeca616decd2118114ea0885e2e7d" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 credit.vgz" />
+ <dataarea name="quik" size="4757">
+ <rom name="02 credit.vgz" size="4757" crc="b5ddeb28" sha1="a6216ab5db7e2cf3ef53796f823bd27ad86de847" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 double magnum (start).vgz" />
+ <dataarea name="quik" size="79556">
+ <rom name="03 double magnum (start).vgz" size="79556" crc="8196ee19" sha1="e58823d969a8157556e4f8bf26a386a9923a7131" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 sighting (game select).vgz" />
+ <dataarea name="quik" size="41040">
+ <rom name="04 sighting (game select).vgz" size="41040" crc="aeec7739" sha1="662226b26141f703a80d634d0e4bb4399242054f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 preparing for battle (stage select).vgz" />
+ <dataarea name="quik" size="95397">
+ <rom name="05 preparing for battle (stage select).vgz" size="95397" crc="8bf6de06" sha1="40d6ead430650106fbec278540dffb60ad538808" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 know your job (story).vgz" />
+ <dataarea name="quik" size="68834">
+ <rom name="06 know your job (story).vgz" size="68834" crc="daa9bd3f" sha1="e6a1246cd89efba815cd223503eb76a5abc51dff" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 gunhard (theme of gunhard).vgz" />
+ <dataarea name="quik" size="122630">
+ <rom name="07 gunhard (theme of gunhard).vgz" size="122630" crc="8663680c" sha1="746a22183eac7155841bfdb5bcc727955f04702b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 change magazine (scene clear).vgz" />
+ <dataarea name="quik" size="35645">
+ <rom name="08 change magazine (scene clear).vgz" size="35645" crc="bbf1d866" sha1="fbffb421a049ba4accd3d95cce6f26502a390558" offset="0" />
+ </dataarea>
+ </part>
+ <part name="009" interface="vgm_quik">
+ <feature name="part_id" value="09 dead line (bgm 2).vgz" />
+ <dataarea name="quik" size="95711">
+ <rom name="09 dead line (bgm 2).vgz" size="95711" crc="49b21101" sha1="a60c1f69b5edb597b7df1681abe4288f474ade76" offset="0" />
+ </dataarea>
+ </part>
+ <part name="010" interface="vgm_quik">
+ <feature name="part_id" value="10 heat of the moment (bgm 3).vgz" />
+ <dataarea name="quik" size="83943">
+ <rom name="10 heat of the moment (bgm 3).vgz" size="83943" crc="1aadc6d7" sha1="308e0eb03da59795f7b7ab853942db9c9926d20b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="011" interface="vgm_quik">
+ <feature name="part_id" value="11 maximum load (boss 1).vgz" />
+ <dataarea name="quik" size="115979">
+ <rom name="11 maximum load (boss 1).vgz" size="115979" crc="6ab6452b" sha1="783661b17820bce3738b9ac517ce9cc0cb2601c6" offset="0" />
+ </dataarea>
+ </part>
+ <part name="012" interface="vgm_quik">
+ <feature name="part_id" value="12 safe way back (stage clear).vgz" />
+ <dataarea name="quik" size="63027">
+ <rom name="12 safe way back (stage clear).vgz" size="63027" crc="bd1fda98" sha1="cc0b4fda577f7d6da8bb31d37ecb58e885af6638" offset="0" />
+ </dataarea>
+ </part>
+ <part name="013" interface="vgm_quik">
+ <feature name="part_id" value="13 hydra shock (bgm 4).vgz" />
+ <dataarea name="quik" size="98304">
+ <rom name="13 hydra shock (bgm 4).vgz" size="98304" crc="1f47da3b" sha1="e96260a14808be6d45e43062c399950158b270ae" offset="0" />
+ </dataarea>
+ </part>
+ <part name="014" interface="vgm_quik">
+ <feature name="part_id" value="14 crazy rockn' roll (boss 2).vgz" />
+ <dataarea name="quik" size="85921">
+ <rom name="14 crazy rockn' roll (boss 2).vgz" size="85921" crc="fca0e4ee" sha1="5705da21a500f908c9fc49634bddd620bc33bb5b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="015" interface="vgm_quik">
+ <feature name="part_id" value="15 all clear (game clear).vgz" />
+ <dataarea name="quik" size="24989">
+ <rom name="15 all clear (game clear).vgz" size="24989" crc="83cc0b32" sha1="b83407c715322dcd3c88e3d30dcc72f19f14f743" offset="0" />
+ </dataarea>
+ </part>
+ <part name="016" interface="vgm_quik">
+ <feature name="part_id" value="16 last resort (roll).vgz" />
+ <dataarea name="quik" size="73287">
+ <rom name="16 last resort (roll).vgz" size="73287" crc="23ae8989" sha1="896a13cd1b55213ff547d06d369a6749cdf7b6fd" offset="0" />
+ </dataarea>
+ </part>
+ <part name="017" interface="vgm_quik">
+ <feature name="part_id" value="17 shake up! (continue).vgz" />
+ <dataarea name="quik" size="49177">
+ <rom name="17 shake up (continue).vgz" size="49177" crc="cf7eecdc" sha1="d008e8ef81cb895708630696dd541bb643541c09" offset="0" />
+ </dataarea>
+ </part>
+ <part name="018" interface="vgm_quik">
+ <feature name="part_id" value="18 take fire! (game over).vgz" />
+ <dataarea name="quik" size="52146">
+ <rom name="18 take fire (game over).vgz" size="52146" crc="3d12ece3" sha1="0c820fd6feb456cd9096272eaed4aeb6bebab0bc" offset="0" />
+ </dataarea>
+ </part>
+ <part name="019" interface="vgm_quik">
+ <feature name="part_id" value="19 super event (gun club theme).vgz" />
+ <dataarea name="quik" size="46925">
+ <rom name="19 super event (gun club theme).vgz" size="46925" crc="7528a20c" sha1="4fc677e88d3a89bad803273ca1dffa04679598df" offset="0" />
+ </dataarea>
+ </part>
+ <part name="020" interface="vgm_quik">
+ <feature name="part_id" value="20 shooter on the line... (start).vgz" />
+ <dataarea name="quik" size="30782">
+ <rom name="20 shooter on the line... (start).vgz" size="30782" crc="8b6af9b2" sha1="ea398f0527b48d4fac05efeaef0b0e3766097032" offset="0" />
+ </dataarea>
+ </part>
+ <part name="021" interface="vgm_quik">
+ <feature name="part_id" value="21 point blank (bgm 1).vgz" />
+ <dataarea name="quik" size="25929">
+ <rom name="21 point blank (bgm 1).vgz" size="25929" crc="2bc76be8" sha1="b081ae5ec44eb7e87f7c33d3eeef00cc075a247a" offset="0" />
+ </dataarea>
+ </part>
+ <part name="022" interface="vgm_quik">
+ <feature name="part_id" value="22 stop it! (stop).vgz" />
+ <dataarea name="quik" size="48392">
+ <rom name="22 stop it (stop).vgz" size="48392" crc="050d34fc" sha1="31e7b343b5fe52b9d46c31fa6284a8d8feee41f6" offset="0" />
+ </dataarea>
+ </part>
+ <part name="023" interface="vgm_quik">
+ <feature name="part_id" value="23 result (stage clear).vgz" />
+ <dataarea name="quik" size="29058">
+ <rom name="23 result (stage clear).vgz" size="29058" crc="5e8849ac" sha1="9afa03cb4b5fa67f332b84cdb577e9c2ad43129e" offset="0" />
+ </dataarea>
+ </part>
+ <part name="024" interface="vgm_quik">
+ <feature name="part_id" value="24 10x (bgm 2).vgz" />
+ <dataarea name="quik" size="33229">
+ <rom name="24 10x (bgm 2).vgz" size="33229" crc="691556fe" sha1="d9c9e4d76e5cb0a2139c96e1e7026fedb9f6237d" offset="0" />
+ </dataarea>
+ </part>
+ <part name="025" interface="vgm_quik">
+ <feature name="part_id" value="25 sorry (no clear).vgz" />
+ <dataarea name="quik" size="37233">
+ <rom name="25 sorry (no clear).vgz" size="37233" crc="60c70048" sha1="0cdf13a4ba4ea98182f3b8050352696330a7343a" offset="0" />
+ </dataarea>
+ </part>
+ <part name="026" interface="vgm_quik">
+ <feature name="part_id" value="26 grand master (ending).vgz" />
+ <dataarea name="quik" size="13120">
+ <rom name="26 grand master (ending).vgz" size="13120" crc="6b455393" sha1="61fc978f43f3112a8680c1c52cc6f8c664de4814" offset="0" />
+ </dataarea>
+ </part>
+ <part name="027" interface="vgm_quik">
+ <feature name="part_id" value="27 killing house (score game theme).vgz" />
+ <dataarea name="quik" size="63481">
+ <rom name="27 killing house (score game theme).vgz" size="63481" crc="7c32a593" sha1="0355937aa203df867ea5cc1eaeb5b7cca074cc25" offset="0" />
+ </dataarea>
+ </part>
+ <part name="028" interface="vgm_quik">
+ <feature name="part_id" value="28 ready for action (start).vgz" />
+ <dataarea name="quik" size="33818">
+ <rom name="28 ready for action (start).vgz" size="33818" crc="98ec8fea" sha1="1cb91647df11bcb9a8b4c53f2343364ff3e4de29" offset="0" />
+ </dataarea>
+ </part>
+ <part name="029" interface="vgm_quik">
+ <feature name="part_id" value="29 shooting line (bgm 1).vgz" />
+ <dataarea name="quik" size="43730">
+ <rom name="29 shooting line (bgm 1).vgz" size="43730" crc="0ca5ff8c" sha1="6c1e0d2b568e71684064d5c57aedf049760ba944" offset="0" />
+ </dataarea>
+ </part>
+ <part name="030" interface="vgm_quik">
+ <feature name="part_id" value="30 tactical (bgm 2).vgz" />
+ <dataarea name="quik" size="18584">
+ <rom name="30 tactical (bgm 2).vgz" size="18584" crc="a04e9e93" sha1="2041d8ffb6f643d8c6f18e7ad7ce76e33e752618" offset="0" />
+ </dataarea>
+ </part>
+ <part name="031" interface="vgm_quik">
+ <feature name="part_id" value="31 wonderland (win-loss game theme).vgz" />
+ <dataarea name="quik" size="52149">
+ <rom name="31 wonderland (win-loss game theme).vgz" size="52149" crc="bd921e08" sha1="6838c7ee2dbb37afc67b10641197441434125538" offset="0" />
+ </dataarea>
+ </part>
+ <part name="032" interface="vgm_quik">
+ <feature name="part_id" value="32 enjoy! (start).vgz" />
+ <dataarea name="quik" size="30471">
+ <rom name="32 enjoy (start).vgz" size="30471" crc="682359b6" sha1="53f451bc4da40fbd56531c7dc222ca776ddd173b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="033" interface="vgm_quik">
+ <feature name="part_id" value="33 panel attack (game 1).vgz" />
+ <dataarea name="quik" size="54232">
+ <rom name="33 panel attack (game 1).vgz" size="54232" crc="681d4935" sha1="ff1b5a391554b9e94bf73f7fec03dd9e78cc9583" offset="0" />
+ </dataarea>
+ </part>
+ <part name="034" interface="vgm_quik">
+ <feature name="part_id" value="34 cockroach busters (game 2).vgz" />
+ <dataarea name="quik" size="7886">
+ <rom name="34 cockroach busters (game 2).vgz" size="7886" crc="78d469e1" sha1="f9a3c7a235c15b83ab872956034139ec07bd5810" offset="0" />
+ </dataarea>
+ </part>
+ <part name="035" interface="vgm_quik">
+ <feature name="part_id" value="35 animal slot (game 3).vgz" />
+ <dataarea name="quik" size="32302">
+ <rom name="35 animal slot (game 3).vgz" size="32302" crc="4c669199" sha1="8659b09f4b0d064ecb3bf319a0eab3d59ee9518e" offset="0" />
+ </dataarea>
+ </part>
+ <part name="036" interface="vgm_quik">
+ <feature name="part_id" value="36 concentration (game 4).vgz" />
+ <dataarea name="quik" size="21399">
+ <rom name="36 concentration (game 4).vgz" size="21399" crc="f8b7a535" sha1="8759c4fa9a3e31e5660ef23be9cf9de43d153e17" offset="0" />
+ </dataarea>
+ </part>
+ <part name="037" interface="vgm_quik">
+ <feature name="part_id" value="37 save the earth (game 5).vgz" />
+ <dataarea name="quik" size="9329">
+ <rom name="37 save the earth (game 5).vgz" size="9329" crc="263b0c3c" sha1="2908accba79ad48d95b1e19a78d7559ecf935fb3" offset="0" />
+ </dataarea>
+ </part>
+ <part name="038" interface="vgm_quik">
+ <feature name="part_id" value="38 end happily (ending).vgz" />
+ <dataarea name="quik" size="17923">
+ <rom name="38 end happily (ending).vgz" size="17923" crc="e7593215" sha1="e1cd67348cb8b3c4fd12184f857834328e64619a" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="looneycc_gbc">
+ <description>Looney Tunes - Carrot Crazy (Nintendo Game Boy Color)</description>
+ <year>1998</year>
+ <publisher>Infogrames</publisher>
+ <info name="cores" value="Game Boy DMG (LR35902)"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 warner bros. intro.vgz" />
+ <dataarea name="quik" size="2295">
+ <rom name="01 warner bros. intro.vgz" size="2295" crc="c9c4d92a" sha1="df537a1e18e3272df184c7bebc38e6aa06cbb4c8" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 language select ~ options ~ level complete ~ bonus stage.vgz" />
+ <dataarea name="quik" size="4837">
+ <rom name="02 language select ~ options ~ level complete ~ bonus stage.vgz" size="4837" crc="1dda751c" sha1="867900ba7eb28e4d1721cff3db290b745525a00f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 title screen.vgz" />
+ <dataarea name="quik" size="4561">
+ <rom name="03 title screen.vgz" size="4561" crc="b1f9e94c" sha1="f50d989a7d4d5ad10660f5d1ef87b6b4c6c249d4" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 storyline ~ level select.vgz" />
+ <dataarea name="quik" size="16111">
+ <rom name="04 storyline ~ level select.vgz" size="16111" crc="ba959f9d" sha1="00dcc9de7716a0de107d019626e69bfd9b727cf9" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 level selected ~ extra life ~ game over.vgz" />
+ <dataarea name="quik" size="1390">
+ <rom name="05 level selected ~ extra life ~ game over.vgz" size="1390" crc="8a48afb4" sha1="e367a5f3cab80d2c88acd30f9e79fcfc6604d9fa" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 level intro.vgz" />
+ <dataarea name="quik" size="1765">
+ <rom name="06 level intro.vgz" size="1765" crc="37c9b1c9" sha1="74ae0879c1a4306f0c0322ddf2836415e87f6210" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 treasure island.vgz" />
+ <dataarea name="quik" size="19256">
+ <rom name="07 treasure island.vgz" size="19256" crc="2efeb12c" sha1="acdfc6ae176d01ced449e2e8832e15c98e9772a6" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 crazy town.vgz" />
+ <dataarea name="quik" size="7623">
+ <rom name="08 crazy town.vgz" size="7623" crc="d634e187" sha1="118d757115a5ff8bba071aad9daf3addff2d2a86" offset="0" />
+ </dataarea>
+ </part>
+ <part name="009" interface="vgm_quik">
+ <feature name="part_id" value="09 taz's zoo.vgz" />
+ <dataarea name="quik" size="7125">
+ <rom name="09 taz's zoo.vgz" size="7125" crc="05e0441c" sha1="916ca437adbf566bfeccd489ebcf2697b47b924f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="010" interface="vgm_quik">
+ <feature name="part_id" value="10 the space station.vgz" />
+ <dataarea name="quik" size="13645">
+ <rom name="10 the space station.vgz" size="13645" crc="f3552ba4" sha1="cc8496130a8988bb7c15da532ecd394c7756cd08" offset="0" />
+ </dataarea>
+ </part>
+ <part name="011" interface="vgm_quik">
+ <feature name="part_id" value="11 elmer fudd's forest.vgz" />
+ <dataarea name="quik" size="9622">
+ <rom name="11 elmer fudd's forest.vgz" size="9622" crc="5511b6b2" sha1="708fd1ceb49cde0b19110966aa2622cbf57f8980" offset="0" />
+ </dataarea>
+ </part>
+ <part name="012" interface="vgm_quik">
+ <feature name="part_id" value="12 boss battle.vgz" />
+ <dataarea name="quik" size="4053">
+ <rom name="12 boss battle.vgz" size="4053" crc="a2a60d86" sha1="5c32d56c2f85177f0b508d287ca3ce9ed55d3ae9" offset="0" />
+ </dataarea>
+ </part>
+ <part name="013" interface="vgm_quik">
+ <feature name="part_id" value="13 lose life.vgz" />
+ <dataarea name="quik" size="1023">
+ <rom name="13 lose life.vgz" size="1023" crc="9be7be23" sha1="1abd2fca4aaf391e09f03e4926aa92a33fd2875a" offset="0" />
+ </dataarea>
+ </part>
+ <part name="014" interface="vgm_quik">
+ <feature name="part_id" value="14 unused song.vgz" />
+ <dataarea name="quik" size="4293">
+ <rom name="14 unused song.vgz" size="4293" crc="0249f3a9" sha1="770b8519802fa1025a023f97d53fbe11da9c4ea4" offset="0" />
+ </dataarea>
+ </part>
+ <part name="015" interface="vgm_quik">
+ <feature name="part_id" value="15 unused jingle.vgz" />
+ <dataarea name="quik" size="1332">
+ <rom name="15 unused jingle.vgz" size="1332" crc="60977fdc" sha1="156b7dfd24ac77f47d1ee6de04d684f1f8158576" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="looneytw_gbc">
+ <description>Looney Tunes - Twouble! (Nintendo Game Boy Color)</description>
+ <year>1998</year>
+ <publisher>Infogrames</publisher>
+ <info name="cores" value="Game Boy DMG (LR35902)"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 title screen.vgz" />
+ <dataarea name="quik" size="5893">
+ <rom name="01 title screen.vgz" size="5893" crc="f4b3f8d7" sha1="1b38122c16cc08573a34006902440a260d15d089" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 chasing tweety.vgz" />
+ <dataarea name="quik" size="10192">
+ <rom name="02 chasing tweety.vgz" size="10192" crc="04cfbbef" sha1="4e54ba5fbb0dc4af21cc03034dc4ce8bbb49f49f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 granny's house.vgz" />
+ <dataarea name="quik" size="43041">
+ <rom name="03 granny's house.vgz" size="43041" crc="f5ea8cef" sha1="18c8cdbe32fa9777f4020846138e024079a1fca1" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 granny's cellar.vgz" />
+ <dataarea name="quik" size="7629">
+ <rom name="04 granny's cellar.vgz" size="7629" crc="90b2e300" sha1="6f2a609d9915bed9806c008e035bf616b4a51b2f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 in the garden.vgz" />
+ <dataarea name="quik" size="25773">
+ <rom name="05 in the garden.vgz" size="25773" crc="6e955bd8" sha1="9798e217f116a5a47926842fbd637134cd2302b3" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 out in the streets.vgz" />
+ <dataarea name="quik" size="10285">
+ <rom name="06 out in the streets.vgz" size="10285" crc="05c35082" sha1="c8e16627edc474b49332a71d5dee6cffd901c5f3" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 in the toy shop.vgz" />
+ <dataarea name="quik" size="16219">
+ <rom name="07 in the toy shop.vgz" size="16219" crc="050fe49c" sha1="5fbfff37596df001f94e83de8e1e621f6ca8fb2a" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 staff roll.vgz" />
+ <dataarea name="quik" size="4194">
+ <rom name="08 staff roll.vgz" size="4194" crc="69646115" sha1="11fc63da2c25a0a51e4840e4040c8782401d5fd6" offset="0" />
+ </dataarea>
+ </part>
+ <part name="009" interface="vgm_quik">
+ <feature name="part_id" value="09 game over.vgz" />
+ <dataarea name="quik" size="1724">
+ <rom name="09 game over.vgz" size="1724" crc="b39f7028" sha1="5758338332095657402c8b7628f425ea695090ee" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="machbrkr">
+ <description>Mach Breakers - Numan Athletics 2 (Namco NB-2)</description>
+ <year>1995</year>
+ <publisher>Namco</publisher>
+ <info name="cores" value="C352"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 attract.vgz" />
+ <dataarea name="quik" size="113768">
+ <rom name="01 attract.vgz" size="113768" crc="f1d4b263" sha1="0e2a3467cf92f3abe9f7e275e8fa0bc3d1d4519f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 credit.vgz" />
+ <dataarea name="quik" size="9439">
+ <rom name="02 credit.vgz" size="9439" crc="fae8215e" sha1="b3758c2c43150e3f000f94ddbca15356ad847d8b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 opening.vgz" />
+ <dataarea name="quik" size="215709">
+ <rom name="03 opening.vgz" size="215709" crc="84a59b91" sha1="a88f5e87f1a2cb1e15a78a6eca229b431a45616c" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 game select.vgz" />
+ <dataarea name="quik" size="82257">
+ <rom name="04 game select.vgz" size="82257" crc="73a62e64" sha1="24d90b1c5881beeb5ca142cfe8783278f14d0dc9" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 how to play.vgz" />
+ <dataarea name="quik" size="99183">
+ <rom name="05 how to play.vgz" size="99183" crc="5458f997" sha1="74f37d5ebbcafe41df7f3ca25599d535a602f6b4" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 4p jingle.vgz" />
+ <dataarea name="quik" size="83606">
+ <rom name="06 4p jingle.vgz" size="83606" crc="11eda55c" sha1="a5ce362d6aa51bee8b113a4d613c9cde3217b639" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 1p jingle.vgz" />
+ <dataarea name="quik" size="72560">
+ <rom name="07 1p jingle.vgz" size="72560" crc="17e98db4" sha1="79bbb41dc04f26ec5f8e165f5d8e0645ddddc33e" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 maximum speed.vgz" />
+ <dataarea name="quik" size="95958">
+ <rom name="08 maximum speed.vgz" size="95958" crc="603311c3" sha1="9e2cd98231b9ca7cbf3d1244887b7aaafaa0ea3c" offset="0" />
+ </dataarea>
+ </part>
+ <part name="009" interface="vgm_quik">
+ <feature name="part_id" value="09 monster drag.vgz" />
+ <dataarea name="quik" size="112827">
+ <rom name="09 monster drag.vgz" size="112827" crc="b73eef9c" sha1="6522f8211b233deb9dcad593854f8d38941d8d44" offset="0" />
+ </dataarea>
+ </part>
+ <part name="010" interface="vgm_quik">
+ <feature name="part_id" value="10 ice crasher.vgz" />
+ <dataarea name="quik" size="137921">
+ <rom name="10 ice crasher.vgz" size="137921" crc="d9491f61" sha1="83eee826838f14d45998d331d8a302040e7a2159" offset="0" />
+ </dataarea>
+ </part>
+ <part name="011" interface="vgm_quik">
+ <feature name="part_id" value="11 hyper glider.vgz" />
+ <dataarea name="quik" size="218281">
+ <rom name="11 hyper glider.vgz" size="218281" crc="7781048e" sha1="cfee0dace0064af6f93f079b72d8a65cacd2fdec" offset="0" />
+ </dataarea>
+ </part>
+ <part name="012" interface="vgm_quik">
+ <feature name="part_id" value="12 beast hole.vgz" />
+ <dataarea name="quik" size="184999">
+ <rom name="12 beast hole.vgz" size="184999" crc="1b56d099" sha1="ba46a93df2518982e7c20df40fe496bd3af9d8b3" offset="0" />
+ </dataarea>
+ </part>
+ <part name="013" interface="vgm_quik">
+ <feature name="part_id" value="13 future gate.vgz" />
+ <dataarea name="quik" size="168375">
+ <rom name="13 future gate.vgz" size="168375" crc="183cee1b" sha1="37255419d5cb4b3d574df43f094ed590fc2ea1e9" offset="0" />
+ </dataarea>
+ </part>
+ <part name="014" interface="vgm_quik">
+ <feature name="part_id" value="14 super stunt.vgz" />
+ <dataarea name="quik" size="120994">
+ <rom name="14 super stunt.vgz" size="120994" crc="78402be5" sha1="b9bfd7786e7bd83a473d13fef1e72006f2d5944d" offset="0" />
+ </dataarea>
+ </part>
+ <part name="015" interface="vgm_quik">
+ <feature name="part_id" value="15 bombs away.vgz" />
+ <dataarea name="quik" size="114383">
+ <rom name="15 bombs away.vgz" size="114383" crc="980eeda0" sha1="684a0cbae0496d7e8e5726e4e4e4c849be1ecdea" offset="0" />
+ </dataarea>
+ </part>
+ <part name="016" interface="vgm_quik">
+ <feature name="part_id" value="16 deep diver.vgz" />
+ <dataarea name="quik" size="65569">
+ <rom name="16 deep diver.vgz" size="65569" crc="31eee16b" sha1="d50e56c9e64f77d2f7d5ec4455736e5cc25bbc7c" offset="0" />
+ </dataarea>
+ </part>
+ <part name="017" interface="vgm_quik">
+ <feature name="part_id" value="17 deep diver (return to surface).vgz" />
+ <dataarea name="quik" size="69526">
+ <rom name="17 deep diver (return to surface).vgz" size="69526" crc="e3d0b7d3" sha1="63a4451e1e7ae07d816f3f3aadf4b81e598267ae" offset="0" />
+ </dataarea>
+ </part>
+ <part name="018" interface="vgm_quik">
+ <feature name="part_id" value="18 rapid jump.vgz" />
+ <dataarea name="quik" size="117694">
+ <rom name="18 rapid jump.vgz" size="117694" crc="eb655acd" sha1="906f0b820ba95b0ea2f295b93d0be13974a864cb" offset="0" />
+ </dataarea>
+ </part>
+ <part name="019" interface="vgm_quik">
+ <feature name="part_id" value="19 block buster.vgz" />
+ <dataarea name="quik" size="106090">
+ <rom name="19 block buster.vgz" size="106090" crc="7305b9a8" sha1="c5e1d61c3bc652f6611afeab92504e0a51bcabc0" offset="0" />
+ </dataarea>
+ </part>
+ <part name="020" interface="vgm_quik">
+ <feature name="part_id" value="20 ground spike.vgz" />
+ <dataarea name="quik" size="132779">
+ <rom name="20 ground spike.vgz" size="132779" crc="6bb6b1c4" sha1="7f5024993e85aed280d9fc2f9e1d1213a0b8335a" offset="0" />
+ </dataarea>
+ </part>
+ <part name="021" interface="vgm_quik">
+ <feature name="part_id" value="21 game clear.vgz" />
+ <dataarea name="quik" size="60532">
+ <rom name="21 game clear.vgz" size="60532" crc="a4166742" sha1="bceb88893427d8c51229803bc96b9979253d2de2" offset="0" />
+ </dataarea>
+ </part>
+ <part name="022" interface="vgm_quik">
+ <feature name="part_id" value="22 game fail.vgz" />
+ <dataarea name="quik" size="58154">
+ <rom name="22 game fail.vgz" size="58154" crc="612859e3" sha1="53ac706f954f35053ec093567c255cbfb2f28ddb" offset="0" />
+ </dataarea>
+ </part>
+ <part name="023" interface="vgm_quik">
+ <feature name="part_id" value="23 charamela.vgz" />
+ <dataarea name="quik" size="24534">
+ <rom name="23 charamela.vgz" size="24534" crc="7a59ebc2" sha1="32b042d0a1a039a68590720f9a010cc49ae91f94" offset="0" />
+ </dataarea>
+ </part>
+ <part name="024" interface="vgm_quik">
+ <feature name="part_id" value="24 game over.vgz" />
+ <dataarea name="quik" size="53024">
+ <rom name="24 game over.vgz" size="53024" crc="ed609b78" sha1="8e4c1f24e00963028d43228d7ede35ff26dc19cb" offset="0" />
+ </dataarea>
+ </part>
+ <part name="025" interface="vgm_quik">
+ <feature name="part_id" value="25 photo finish.vgz" />
+ <dataarea name="quik" size="94309">
+ <rom name="25 photo finish.vgz" size="94309" crc="bd5cc5da" sha1="5f9045acc3aa15d03db1f734b49d63ed87dd4a90" offset="0" />
+ </dataarea>
+ </part>
+ <part name="026" interface="vgm_quik">
+ <feature name="part_id" value="26 world record.vgz" />
+ <dataarea name="quik" size="85326">
+ <rom name="26 world record.vgz" size="85326" crc="4989fd2c" sha1="e7801d341f6298cc7f555587c6616d7542a297df" offset="0" />
+ </dataarea>
+ </part>
+ <part name="027" interface="vgm_quik">
+ <feature name="part_id" value="27 1p clear.vgz" />
+ <dataarea name="quik" size="69668">
+ <rom name="27 1p clear.vgz" size="69668" crc="c3fef452" sha1="24c656b7d0f0b611e308ae9f4dbe8d7e41c098a5" offset="0" />
+ </dataarea>
+ </part>
+ <part name="028" interface="vgm_quik">
+ <feature name="part_id" value="28 continue.vgz" />
+ <dataarea name="quik" size="98955">
+ <rom name="28 continue.vgz" size="98955" crc="46beac6d" sha1="a9454fc946d546e3ed6ad147155f31c06ea42bd0" offset="0" />
+ </dataarea>
+ </part>
+ <part name="029" interface="vgm_quik">
+ <feature name="part_id" value="29 exhibition.vgz" />
+ <dataarea name="quik" size="169010">
+ <rom name="29 exhibition.vgz" size="169010" crc="4cea1e77" sha1="c0e621fdda78c17414f64402469b2015d5a1809b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="030" interface="vgm_quik">
+ <feature name="part_id" value="30 reward.vgz" />
+ <dataarea name="quik" size="169579">
+ <rom name="30 reward.vgz" size="169579" crc="85b91cc5" sha1="f738f3ea93d7db5759a5e514ad167c672a1fcdf4" offset="0" />
+ </dataarea>
+ </part>
+ <part name="031" interface="vgm_quik">
+ <feature name="part_id" value="31 ending (cpu victory condition).vgz" />
+ <dataarea name="quik" size="200998">
+ <rom name="31 ending (cpu victory condition).vgz" size="200998" crc="90968fa2" sha1="a2874a57bb888206f4db4ba1897e9585a065ec8f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="032" interface="vgm_quik">
+ <feature name="part_id" value="32 johnny sanders bgm.vgz" />
+ <dataarea name="quik" size="68086">
+ <rom name="32 johnny sanders bgm.vgz" size="68086" crc="53a9f462" sha1="d717d77f9b839b687bf03632fd197117d3c84857" offset="0" />
+ </dataarea>
+ </part>
+ <part name="033" interface="vgm_quik">
+ <feature name="part_id" value="33 sophia rayleigh bgm.vgz" />
+ <dataarea name="quik" size="71225">
+ <rom name="33 sophia rayleigh bgm.vgz" size="71225" crc="7162c85c" sha1="ba420b8f4df5392c67b2cfb78ca357b7f47c9e58" offset="0" />
+ </dataarea>
+ </part>
+ <part name="034" interface="vgm_quik">
+ <feature name="part_id" value="34 long rui-hu'an bgm.vgz" />
+ <dataarea name="quik" size="55122">
+ <rom name="34 long rui-hu'an bgm.vgz" size="55122" crc="3ec5bf35" sha1="6b7ae93ebcb0a1ce6fbfa2168b6d9a4401fffc69" offset="0" />
+ </dataarea>
+ </part>
+ <part name="035" interface="vgm_quik">
+ <feature name="part_id" value="35 makoto kotobuki bgm.vgz" />
+ <dataarea name="quik" size="69772">
+ <rom name="35 makoto kotobuki bgm.vgz" size="69772" crc="b5c2f4f1" sha1="a4fd19d095edd0272199632cae68783e0b873e81" offset="0" />
+ </dataarea>
+ </part>
+ <part name="036" interface="vgm_quik">
+ <feature name="part_id" value="36 masala tikka masala bgm.vgz" />
+ <dataarea name="quik" size="87725">
+ <rom name="36 masala tikka masala bgm.vgz" size="87725" crc="ac6ffcd4" sha1="b3235998afa6b3ce989cf6203d27fdbc93cb6063" offset="0" />
+ </dataarea>
+ </part>
+ <part name="037" interface="vgm_quik">
+ <feature name="part_id" value="37 karl weisemann bgm.vgz" />
+ <dataarea name="quik" size="58832">
+ <rom name="37 karl weisemann bgm.vgz" size="58832" crc="ae1e82c7" sha1="97bcc4c53f3fef0106b66bc0044201dbac657240" offset="0" />
+ </dataarea>
+ </part>
+ <part name="038" interface="vgm_quik">
+ <feature name="part_id" value="38 michael fletcher bgm.vgz" />
+ <dataarea name="quik" size="145401">
+ <rom name="38 michael fletcher bgm.vgz" size="145401" crc="bed107b9" sha1="95a99d49f427224145bcff6d5fc957f91d9cde6f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="039" interface="vgm_quik">
+ <feature name="part_id" value="39 ending (cpu failure condition).vgz" />
+ <dataarea name="quik" size="133436">
+ <rom name="39 ending (cpu failure condition).vgz" size="133436" crc="cda79171" sha1="8587242522dd0e783443b5bd8fbd12de5889f317" offset="0" />
+ </dataarea>
+ </part>
+ <part name="040" interface="vgm_quik">
+ <feature name="part_id" value="40 bad ending.vgz" />
+ <dataarea name="quik" size="102562">
+ <rom name="40 bad ending.vgz" size="102562" crc="fa5ea6ea" sha1="9813b974b73163509aa354826f4fedd90c8516b1" offset="0" />
+ </dataarea>
+ </part>
+ <part name="041" interface="vgm_quik">
+ <feature name="part_id" value="41 ranking.vgz" />
+ <dataarea name="quik" size="109862">
+ <rom name="41 ranking.vgz" size="109862" crc="d83d564b" sha1="ed209b551021947a2167d3e1eb010d7ace6f784d" offset="0" />
+ </dataarea>
+ </part>
+ <part name="042" interface="vgm_quik">
+ <feature name="part_id" value="42 results display.vgz" />
+ <dataarea name="quik" size="110563">
+ <rom name="42 results display.vgz" size="110563" crc="d69b46f1" sha1="29d842ff8cc41587ca785de66ebd5cb6d48caa8e" offset="0" />
+ </dataarea>
+ </part>
+ <part name="043" interface="vgm_quik">
+ <feature name="part_id" value="43 opening (manchinpou version).vgz" />
+ <dataarea name="quik" size="220253">
+ <rom name="43 opening (manchinpou version).vgz" size="220253" crc="95ca39a9" sha1="c6ece977d85c366e24bf2c3c59d3f1eb3020cf66" offset="0" />
+ </dataarea>
+ </part>
+ <part name="044" interface="vgm_quik">
+ <feature name="part_id" value="44 opening (short version).vgz" />
+ <dataarea name="quik" size="115351">
+ <rom name="44 opening (short version).vgz" size="115351" crc="ae5ef9b4" sha1="1e3c3469b49ed51fac22b6ba5d47892120947cf3" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="nbbatman">
+ <description>Ninja Baseball Bat Man (Irem M92)</description>
+ <year>1993</year>
+ <publisher>Irem</publisher>
+ <info name="cores" value="YM2151, GA20"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 coin inserted.vgz" />
+ <dataarea name="quik" size="9291">
+ <rom name="01 coin inserted.vgz" size="9291" crc="3e128851" sha1="a23ef432da3e16a6a26dd4e745359954ba0e55f0" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 player select.vgz" />
+ <dataarea name="quik" size="32685">
+ <rom name="02 player select.vgz" size="32685" crc="17072aac" sha1="a6a7ef375f1c13e95a16e0bc40f8405e1c90b0fd" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 seattle [stage 1].vgz" />
+ <dataarea name="quik" size="201061">
+ <rom name="03 seattle [stage 1].vgz" size="201061" crc="acab0e01" sha1="8e4eea50aeac5321453a69d2ca459351e8d30ba3" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 boss theme.vgz" />
+ <dataarea name="quik" size="158900">
+ <rom name="04 boss theme.vgz" size="158900" crc="7e4cd56b" sha1="6010757ac346ec5abecd6e0b91e7e4ac20df7afc" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 stage clear!.vgz" />
+ <dataarea name="quik" size="16184">
+ <rom name="05 stage clear.vgz" size="16184" crc="8cca7fa0" sha1="2c7599ed4c6e17ee26f4c07df06a9458e59cb6a9" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 story sequence.vgz" />
+ <dataarea name="quik" size="31793">
+ <rom name="06 story sequence.vgz" size="31793" crc="e848e876" sha1="b2a22893698b26eb715a4e630bb92c186ceafb82" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 cisco [stage 2].vgz" />
+ <dataarea name="quik" size="102079">
+ <rom name="07 cisco [stage 2].vgz" size="102079" crc="e62d73ea" sha1="583cc4067f2daba0b717cb009939d4b8e01ce7a5" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 bonus stage get ready!.vgz" />
+ <dataarea name="quik" size="435435">
+ <rom name="08 bonus stage get ready.vgz" size="435435" crc="201defe1" sha1="e763995da9a0db39215bc0a1ae0d3ebc2968ee96" offset="0" />
+ </dataarea>
+ </part>
+ <part name="009" interface="vgm_quik">
+ <feature name="part_id" value="09 bonus stage.vgz" />
+ <dataarea name="quik" size="20891">
+ <rom name="09 bonus stage.vgz" size="20891" crc="3384c156" sha1="8f84fc8fb6aaa20b629cfd24ddde1d25a0fc99e7" offset="0" />
+ </dataarea>
+ </part>
+ <part name="010" interface="vgm_quik">
+ <feature name="part_id" value="10 vegas [stage 3].vgz" />
+ <dataarea name="quik" size="112019">
+ <rom name="10 vegas [stage 3].vgz" size="112019" crc="9e953694" sha1="f35199d143436d5b7dda8a082481963dd5ab8be1" offset="0" />
+ </dataarea>
+ </part>
+ <part name="011" interface="vgm_quik">
+ <feature name="part_id" value="11 texas [stage 4].vgz" />
+ <dataarea name="quik" size="239759">
+ <rom name="11 texas [stage 4].vgz" size="239759" crc="92cc698e" sha1="2a9ff6249ca401a18710374018a0314383a33c77" offset="0" />
+ </dataarea>
+ </part>
+ <part name="012" interface="vgm_quik">
+ <feature name="part_id" value="12 florida [stage 5-1].vgz" />
+ <dataarea name="quik" size="442842">
+ <rom name="12 florida [stage 5-1].vgz" size="442842" crc="ae4951fd" sha1="5eaaab74a353846c0496c658bbb68a3f515acde7" offset="0" />
+ </dataarea>
+ </part>
+ <part name="013" interface="vgm_quik">
+ <feature name="part_id" value="13 florida (the lab) [stage 5-2].vgz" />
+ <dataarea name="quik" size="213057">
+ <rom name="13 florida (the lab) [stage 5-2].vgz" size="213057" crc="ede22392" sha1="4649976230d9c03a99b43b75ae75aacbc555ec66" offset="0" />
+ </dataarea>
+ </part>
+ <part name="014" interface="vgm_quik">
+ <feature name="part_id" value="14 chicago [stage 6].vgz" />
+ <dataarea name="quik" size="147646">
+ <rom name="14 chicago [stage 6].vgz" size="147646" crc="275c6a16" sha1="a148b0448e45b0d156304bfe8ccb172aca6e3551" offset="0" />
+ </dataarea>
+ </part>
+ <part name="015" interface="vgm_quik">
+ <feature name="part_id" value="15 statue completed.vgz" />
+ <dataarea name="quik" size="441061">
+ <rom name="15 statue completed.vgz" size="441061" crc="e2491102" sha1="3093286c3194b7aedb7a7e3a7b06dec58b0fcadf" offset="0" />
+ </dataarea>
+ </part>
+ <part name="016" interface="vgm_quik">
+ <feature name="part_id" value="16 new york [final stage].vgz" />
+ <dataarea name="quik" size="112771">
+ <rom name="16 new york [final stage].vgz" size="112771" crc="0ba21d66" sha1="408b13e9448ed2741dddd69e2ba65e082021cb21" offset="0" />
+ </dataarea>
+ </part>
+ <part name="017" interface="vgm_quik">
+ <feature name="part_id" value="17 final boss theme.vgz" />
+ <dataarea name="quik" size="116935">
+ <rom name="17 final boss theme.vgz" size="116935" crc="ce3f82e2" sha1="b8e03b54b2e35793f80432ae4012d81a96b91671" offset="0" />
+ </dataarea>
+ </part>
+ <part name="018" interface="vgm_quik">
+ <feature name="part_id" value="18 ending.vgz" />
+ <dataarea name="quik" size="446876">
+ <rom name="18 ending.vgz" size="446876" crc="375a7a41" sha1="65e589a983600352a73189dc0eeab25d44382676" offset="0" />
+ </dataarea>
+ </part>
+ <part name="019" interface="vgm_quik">
+ <feature name="part_id" value="19 credits.vgz" />
+ <dataarea name="quik" size="104280">
+ <rom name="19 credits.vgz" size="104280" crc="443a026d" sha1="9a391dbef2d6e22b9cce6851268d6e70a45c7cc0" offset="0" />
+ </dataarea>
+ </part>
+ <part name="020" interface="vgm_quik">
+ <feature name="part_id" value="20 continue.vgz" />
+ <dataarea name="quik" size="440790">
+ <rom name="20 continue.vgz" size="440790" crc="a80236d2" sha1="50aa5a2971e983afbc94460b4685f80b487013ec" offset="0" />
+ </dataarea>
+ </part>
+ <part name="021" interface="vgm_quik">
+ <feature name="part_id" value="21 game over.vgz" />
+ <dataarea name="quik" size="12279">
+ <rom name="21 game over.vgz" size="12279" crc="95e7f5cf" sha1="60632995511aa9046663825cd29859ebc54f66ff" offset="0" />
+ </dataarea>
+ </part>
+ <part name="022" interface="vgm_quik">
+ <feature name="part_id" value="22 unknown 1.vgz" />
+ <dataarea name="quik" size="12239">
+ <rom name="22 unknown 1.vgz" size="12239" crc="959716c5" sha1="6d6fa07ace9e1de503b0c21e81c22352460869fa" offset="0" />
+ </dataarea>
+ </part>
+ <part name="023" interface="vgm_quik">
+ <feature name="part_id" value="23 unknown 2.vgz" />
+ <dataarea name="quik" size="435112">
+ <rom name="23 unknown 2.vgz" size="435112" crc="e4735fb6" sha1="697cbe285bdada2c78d6ceea2eeab53deb91245a" offset="0" />
+ </dataarea>
+ </part>
+ <part name="024" interface="vgm_quik">
+ <feature name="part_id" value="24 unknown 3.vgz" />
+ <dataarea name="quik" size="435262">
+ <rom name="24 unknown 3.vgz" size="435262" crc="ab3412b8" sha1="b4f724a43a0aa3981fedf7293fcc1022cfac4f68" offset="0" />
+ </dataarea>
+ </part>
+ <part name="025" interface="vgm_quik">
+ <feature name="part_id" value="25 unknown 4.vgz" />
+ <dataarea name="quik" size="434613">
+ <rom name="25 unknown 4.vgz" size="434613" crc="3e3dfc21" sha1="79e8f6a05a3832cf2e51f522095c9c4913b4a7b9" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="schmeisr">
+ <description>Schmeiser Robo (Arcade)</description>
+ <year>1993</year>
+ <publisher>Hot-B</publisher>
+ <info name="cores" value="YM2151, OKIM6295"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 credit.vgz" />
+ <dataarea name="quik" size="4668">
+ <rom name="01 credit.vgz" size="4668" crc="9cdfb661" sha1="d3a9c30e59c4abc6d395b130983bee21cfe53bf9" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 operation explanation, new york stage.vgz" />
+ <dataarea name="quik" size="29823">
+ <rom name="02 operation explanation, new york stage.vgz" size="29823" crc="b71f4567" sha1="757edc2a3a777f137368c0d8b6f5f3f1ffb9cbaa" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 character select.vgz" />
+ <dataarea name="quik" size="23242">
+ <rom name="03 character select.vgz" size="23242" crc="e2d9ef78" sha1="181d2dec6971335f913a830779b687d8095488f7" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 marine stage.vgz" />
+ <dataarea name="quik" size="65442">
+ <rom name="04 marine stage.vgz" size="65442" crc="5b7c7419" sha1="58069f736a214861b7fc60cbeaee15c94c79e5b6" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 player win.vgz" />
+ <dataarea name="quik" size="25236">
+ <rom name="05 player win.vgz" size="25236" crc="2bb9834f" sha1="5728eed93f8eef0dc59107106ea74b9681716a6f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 story demo 1.vgz" />
+ <dataarea name="quik" size="50194">
+ <rom name="06 story demo 1.vgz" size="50194" crc="7b83063b" sha1="4fd62f260f02a90ef42b3680211b5970187c483e" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 aerial stage.vgz" />
+ <dataarea name="quik" size="37909">
+ <rom name="07 aerial stage.vgz" size="37909" crc="1a64fbb1" sha1="b5a3d10e754912aa897b56a54e1d75a633564f5d" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 story demo 2.vgz" />
+ <dataarea name="quik" size="69414">
+ <rom name="08 story demo 2.vgz" size="69414" crc="7e1c19c3" sha1="679e16ee253fd15c1e377700ad0a4337c2715578" offset="0" />
+ </dataarea>
+ </part>
+ <part name="009" interface="vgm_quik">
+ <feature name="part_id" value="09 iceberg stage.vgz" />
+ <dataarea name="quik" size="42642">
+ <rom name="09 iceberg stage.vgz" size="42642" crc="a0fe8a1b" sha1="80ef0d1afe3c2fe643f88569680b34bfcbbf3a36" offset="0" />
+ </dataarea>
+ </part>
+ <part name="010" interface="vgm_quik">
+ <feature name="part_id" value="10 volcano stage.vgz" />
+ <dataarea name="quik" size="24553">
+ <rom name="10 volcano stage.vgz" size="24553" crc="bf3a2d3e" sha1="9a4e46f42555d447da9ddd28f4c3cdc8232d8f0f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="011" interface="vgm_quik">
+ <feature name="part_id" value="11 underwater stage.vgz" />
+ <dataarea name="quik" size="28221">
+ <rom name="11 underwater stage.vgz" size="28221" crc="17e92ff0" sha1="f74c5f3b204308593460c68b77ec03335ac2a3cd" offset="0" />
+ </dataarea>
+ </part>
+ <part name="012" interface="vgm_quik">
+ <feature name="part_id" value="12 story demo 3.vgz" />
+ <dataarea name="quik" size="44938">
+ <rom name="12 story demo 3.vgz" size="44938" crc="123cd4a7" sha1="3d3dcc3b319debe5ddc2dae72480f1f606021791" offset="0" />
+ </dataarea>
+ </part>
+ <part name="013" interface="vgm_quik">
+ <feature name="part_id" value="13 dinosaur stage.vgz" />
+ <dataarea name="quik" size="27121">
+ <rom name="13 dinosaur stage.vgz" size="27121" crc="36b98664" sha1="c1f1f3bc5ea72216ac5891ae0a4c30276e9a6047" offset="0" />
+ </dataarea>
+ </part>
+ <part name="014" interface="vgm_quik">
+ <feature name="part_id" value="14 egypt stage.vgz" />
+ <dataarea name="quik" size="38476">
+ <rom name="14 egypt stage.vgz" size="38476" crc="9c03fbdc" sha1="89ba8120114c61468b7f72516a024815b7acadb3" offset="0" />
+ </dataarea>
+ </part>
+ <part name="015" interface="vgm_quik">
+ <feature name="part_id" value="15 staff roll.vgz" />
+ <dataarea name="quik" size="48115">
+ <rom name="15 staff roll.vgz" size="48115" crc="fff7fe72" sha1="a1aeead040679ec0cf5e3e7d1ace2850d5fc23e1" offset="0" />
+ </dataarea>
+ </part>
+ <part name="016" interface="vgm_quik">
+ <feature name="part_id" value="16 new challenger.vgz" />
+ <dataarea name="quik" size="12863">
+ <rom name="16 new challenger.vgz" size="12863" crc="cbcb31dd" sha1="992ce49f23c6690a5bb060d2429e5d1be6c6c02e" offset="0" />
+ </dataarea>
+ </part>
+ <part name="017" interface="vgm_quik">
+ <feature name="part_id" value="17 player lose.vgz" />
+ <dataarea name="quik" size="45849">
+ <rom name="17 player lose.vgz" size="45849" crc="7adc289b" sha1="ff17243dce8dd287da00452b0adef4c24b43d0d0" offset="0" />
+ </dataarea>
+ </part>
+ <part name="018" interface="vgm_quik">
+ <feature name="part_id" value="18 continue.vgz" />
+ <dataarea name="quik" size="15202">
+ <rom name="18 continue.vgz" size="15202" crc="cd808bc0" sha1="2178a2aa5024a77bf81d93a191449782f1b2c58f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="019" interface="vgm_quik">
+ <feature name="part_id" value="19 game over.vgz" />
+ <dataarea name="quik" size="23962">
+ <rom name="19 game over.vgz" size="23962" crc="36bf2e43" sha1="859c707ee194a7a984e8326edfb068001080eabc" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="shangha2">
+ <description>Shanghai II (Arcade)</description>
+ <year>1989</year>
+ <publisher>Sunsoft</publisher>
+ <info name="cores" value="YM2203"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 round start.vgz" />
+ <dataarea name="quik" size="1168">
+ <rom name="01 round start.vgz" size="1168" crc="9ed15bfb" sha1="32104ee270c5b9de77a1a3fa0c405f1c1e8a3d98" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 round bgm 1.vgz" />
+ <dataarea name="quik" size="2599">
+ <rom name="02 round bgm 1.vgz" size="2599" crc="37646393" sha1="5c31d2d6538551c93dbbf4253c3399c403d4ad70" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 round complete.vgz" />
+ <dataarea name="quik" size="1135">
+ <rom name="03 round complete.vgz" size="1135" crc="2b8664f7" sha1="958ecf602cd1286096369ac18e0b0a06ffd5da38" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 cutscene.vgz" />
+ <dataarea name="quik" size="1544">
+ <rom name="04 cutscene.vgz" size="1544" crc="bba99986" sha1="e7acea172aa03edfe28b8dbccc65c46ba4c945f7" offset="0" />
+ </dataarea>
+ </part>
+ <part name="005" interface="vgm_quik">
+ <feature name="part_id" value="05 round bgm 2.vgz" />
+ <dataarea name="quik" size="3016">
+ <rom name="05 round bgm 2.vgz" size="3016" crc="9ec819f8" sha1="a1b066545bab35822805c4dfe1e02ce78c793f27" offset="0" />
+ </dataarea>
+ </part>
+ <part name="006" interface="vgm_quik">
+ <feature name="part_id" value="06 round bgm 3.vgz" />
+ <dataarea name="quik" size="2673">
+ <rom name="06 round bgm 3.vgz" size="2673" crc="e90bf4cc" sha1="a982fccfca07a1e68ea0ebf163f304303b397207" offset="0" />
+ </dataarea>
+ </part>
+ <part name="007" interface="vgm_quik">
+ <feature name="part_id" value="07 continue.vgz" />
+ <dataarea name="quik" size="1731">
+ <rom name="07 continue.vgz" size="1731" crc="19f6b225" sha1="a1cb0e0fee55a45434e320572a3aae8d5b6d67ee" offset="0" />
+ </dataarea>
+ </part>
+ <part name="008" interface="vgm_quik">
+ <feature name="part_id" value="08 game over.vgz" />
+ <dataarea name="quik" size="791">
+ <rom name="08 game over.vgz" size="791" crc="bd7daeae" sha1="fe6fc08a534fa720d748dfd1a3a1e51ae929cd36" offset="0" />
+ </dataarea>
+ </part>
+ <part name="009" interface="vgm_quik">
+ <feature name="part_id" value="09 name entry.vgz" />
+ <dataarea name="quik" size="2320">
+ <rom name="09 name entry.vgz" size="2320" crc="a3fa792f" sha1="7be492bde4b50a8535c6d25e351e1810b636af6d" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="quiksilv_st">
+ <description>The Adventures of Quik &amp; Silva (Atari ST)</description>
+ <year>1991</year>
+ <publisher>New Bits on the RAM</publisher>
+ <info name="cores" value="YM2149"/>
+ <part name="001" interface="vgm_quik">
+ <feature name="part_id" value="01 main theme.vgz" />
+ <dataarea name="quik" size="7365758">
+ <rom name="01 main theme.vgz" size="7365758" crc="27f01373" sha1="4a25b692e6adabecadd7337f2b2d30e08148a71a" offset="0" />
+ </dataarea>
+ </part>
+ <part name="002" interface="vgm_quik">
+ <feature name="part_id" value="02 stage 1, 4, 7.vgz" />
+ <dataarea name="quik" size="9939">
+ <rom name="02 stage 1, 4, 7.vgz" size="9939" crc="204c88d2" sha1="cccb4e7878867907a7b8f7b17878069621e24258" offset="0" />
+ </dataarea>
+ </part>
+ <part name="003" interface="vgm_quik">
+ <feature name="part_id" value="03 stage 2, 5, 8.vgz" />
+ <dataarea name="quik" size="11891">
+ <rom name="03 stage 2, 5, 8.vgz" size="11891" crc="3b3cfda0" sha1="9d3a2cec8661a8fdd638233e836b02a5ade21762" offset="0" />
+ </dataarea>
+ </part>
+ <part name="004" interface="vgm_quik">
+ <feature name="part_id" value="04 stage 3, 6.vgz" />
+ <dataarea name="quik" size="8291">
+ <rom name="04 stage 3, 6.vgz" size="8291" crc="97b33ae9" sha1="449cdac8891333f19e6bcb5b79f5297816a59ca0" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
<!-- Project 2612 VGM Archives located at http://project2612.org/list.php
Also https://archive.org/details/Project2612CompleteArchive20180623681Sets.7z
diff --git a/scripts/src/machine.lua b/scripts/src/machine.lua
index 739ec81b0db..1e1c601b56e 100644
--- a/scripts/src/machine.lua
+++ b/scripts/src/machine.lua
@@ -1976,6 +1976,18 @@ end
---------------------------------------------------
--
+--@src/devices/machine/ldv4200hle.h,MACHINES["LDV4200HLE"] = true
+---------------------------------------------------
+
+if (MACHINES["LDV4200HLE"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/ldv4200hle.cpp",
+ MAME_DIR .. "src/devices/machine/ldv4200hle.h",
+ }
+end
+
+---------------------------------------------------
+--
--@src/devices/machine/ldp1000.h,MACHINES["LDP1000"] = true
---------------------------------------------------
diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua
index fdc2b97fb27..108228f30b1 100644
--- a/scripts/target/mame/arcade.lua
+++ b/scripts/target/mame/arcade.lua
@@ -542,6 +542,7 @@ MACHINES["LC89510"] = true
MACHINES["LDPR8210"] = true
MACHINES["LDSTUB"] = true
MACHINES["LDV1000"] = true
+MACHINES["LDV4200HLE"] = true
MACHINES["LDP1000"] = true
MACHINES["LDP1450"] = true
MACHINES["LDVP931"] = true
diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua
index 30b1ff15c98..c78154e829e 100644
--- a/scripts/target/mame/mess.lua
+++ b/scripts/target/mame/mess.lua
@@ -3554,6 +3554,7 @@ files {
MAME_DIR .. "src/mame/drivers/roland_sc55.cpp",
MAME_DIR .. "src/mame/drivers/roland_sc88.cpp",
MAME_DIR .. "src/mame/drivers/roland_tb303.cpp",
+ MAME_DIR .. "src/mame/drivers/roland_tnsc1.cpp",
MAME_DIR .. "src/mame/drivers/roland_tr505.cpp",
MAME_DIR .. "src/mame/drivers/roland_tr606.cpp",
MAME_DIR .. "src/mame/drivers/roland_tr707.cpp",
diff --git a/src/devices/bus/abcbus/lux4105.cpp b/src/devices/bus/abcbus/lux4105.cpp
index 1dd961e08e9..324fd542ac7 100644
--- a/src/devices/bus/abcbus/lux4105.cpp
+++ b/src/devices/bus/abcbus/lux4105.cpp
@@ -280,7 +280,7 @@ void luxor_4105_device::write_sasi_data(uint8_t data)
// clock REQ FF
m_req = m_sasi->req_r();
-
+
update_ack();
update_dma();
}
@@ -304,7 +304,7 @@ WRITE_LINE_MEMBER( luxor_4105_device::write_sasi_cd )
WRITE_LINE_MEMBER( luxor_4105_device::write_sasi_req )
{
if (LOG) logerror("%s REQ %u\n", machine().describe_context(), state);
-
+
if (!state)
{
// reset REQ FF
@@ -540,6 +540,6 @@ void luxor_4105_device::abcbus_prac(int state)
if (LOG) logerror("%s PRAC %u\n", machine().describe_context(), state);
m_prac = state;
-
+
update_dma();
}
diff --git a/src/devices/bus/nes/jy.cpp b/src/devices/bus/nes/jy.cpp
index 8010fd70a1c..577c5bd306c 100644
--- a/src/devices/bus/nes/jy.cpp
+++ b/src/devices/bus/nes/jy.cpp
@@ -262,7 +262,7 @@ uint8_t nes_jy_typea_device::read_l(offs_t offset)
return m_latch;
}
- return get_open_bus(); // open bus
+ return get_open_bus();
}
void nes_jy_typea_device::write_l(offs_t offset, uint8_t data)
@@ -289,7 +289,7 @@ uint8_t nes_jy_typea_device::read_m(offs_t offset)
if (m_reg[0] & 0x80)
return m_prg[(m_bank_6000 & m_prg_mask) * 0x2000 + (offset & 0x1fff)];
- return get_open_bus(); // open bus
+ return get_open_bus();
}
diff --git a/src/devices/bus/nes/kaiser.cpp b/src/devices/bus/nes/kaiser.cpp
index 644597dbd12..6d68862c360 100644
--- a/src/devices/bus/nes/kaiser.cpp
+++ b/src/devices/bus/nes/kaiser.cpp
@@ -723,7 +723,7 @@ uint8_t nes_ks7017_device::read_ex(offs_t offset)
return temp;
}
- return get_open_bus(); // open bus
+ return get_open_bus();
}
/*-------------------------------------------------
diff --git a/src/devices/bus/nes/mmc3.cpp b/src/devices/bus/nes/mmc3.cpp
index ded4c21db0e..924f206481d 100644
--- a/src/devices/bus/nes/mmc3.cpp
+++ b/src/devices/bus/nes/mmc3.cpp
@@ -362,7 +362,7 @@ uint8_t nes_txrom_device::read_m(offs_t offset)
return m_prgram[offset & (m_prgram.size() - 1)];
}
- return get_open_bus(); // open bus
+ return get_open_bus();
}
@@ -398,10 +398,10 @@ uint8_t nes_hkrom_device::read_m(offs_t offset)
LOG_MMC(("hkrom read_m, offset: %04x\n", offset));
if (offset < 0x1000)
- return get_open_bus(); // open bus
+ return get_open_bus();
if (!(m_mmc6_reg & 0xa0))
- return get_open_bus(); // open bus
+ return get_open_bus();
if (BIT(offset, 9) && BIT(m_mmc6_reg, 7)) // access to upper half of 1k when upper read is enabled
return m_mmc6_ram[offset & 0x3ff];
diff --git a/src/devices/bus/nes/multigame.cpp b/src/devices/bus/nes/multigame.cpp
index 1a140f6175a..8c8b289b084 100644
--- a/src/devices/bus/nes/multigame.cpp
+++ b/src/devices/bus/nes/multigame.cpp
@@ -3138,7 +3138,7 @@ uint8_t nes_bmc_gold150_device::read_h(offs_t offset)
{
LOG_MMC(("bmc_gold150 read_h, offset: %04x\n", offset));
- if (m_latch) // open bus
+ if (m_latch)
return get_open_bus();
else
return hi_access_rom(offset);
diff --git a/src/devices/bus/nes/namcot.cpp b/src/devices/bus/nes/namcot.cpp
index cb8f0bd5b9a..36c2320f2ca 100644
--- a/src/devices/bus/nes/namcot.cpp
+++ b/src/devices/bus/nes/namcot.cpp
@@ -524,7 +524,7 @@ uint8_t nes_namcot175_device::read_m(offs_t offset)
if (!m_battery.empty() && !m_wram_protect)
return m_battery[offset & (m_battery.size() - 1)];
- return get_open_bus(); // open bus
+ return get_open_bus();
}
void nes_namcot175_device::write_m(offs_t offset, uint8_t data)
@@ -605,7 +605,7 @@ uint8_t nes_namcot163_device::read_m(offs_t offset)
if (!m_battery.empty() && offset < m_battery.size())
return m_battery[offset & (m_battery.size() - 1)];
- return get_open_bus(); // open bus
+ return get_open_bus();
}
void nes_namcot163_device::write_m(offs_t offset, uint8_t data)
diff --git a/src/devices/bus/nes/pirate.cpp b/src/devices/bus/nes/pirate.cpp
index 32db966505c..00ebe8ec71e 100644
--- a/src/devices/bus/nes/pirate.cpp
+++ b/src/devices/bus/nes/pirate.cpp
@@ -780,6 +780,6 @@ uint8_t nes_fujiya_device::read_m(offs_t offset)
if (offset == 0x7001 || offset == 0x7777)
return m_latch | ((offset >> 8) & 0x7f);
- return get_open_bus(); // open bus
+ return get_open_bus();
}
#endif
diff --git a/src/devices/bus/nes/sunsoft.cpp b/src/devices/bus/nes/sunsoft.cpp
index 8de91c95f99..809364bbe44 100644
--- a/src/devices/bus/nes/sunsoft.cpp
+++ b/src/devices/bus/nes/sunsoft.cpp
@@ -426,7 +426,7 @@ uint8_t nes_sunsoft_4_device::read_m(offs_t offset)
if (!m_prgram.empty() && m_wram_enable)
return m_prgram[offset & (m_prgram.size() - 1)];
- return get_open_bus(); // open bus
+ return get_open_bus();
}
/*-------------------------------------------------
@@ -542,7 +542,7 @@ uint8_t nes_sunsoft_fme7_device::read_m(offs_t offset)
return m_prgram[((bank * 0x2000) + offset) & (m_prgram.size() - 1)];
}
- return get_open_bus(); // open bus
+ return get_open_bus();
}
diff --git a/src/devices/bus/nes/sunsoft_dcs.cpp b/src/devices/bus/nes/sunsoft_dcs.cpp
index 73827474ed8..1a9e681d0df 100644
--- a/src/devices/bus/nes/sunsoft_dcs.cpp
+++ b/src/devices/bus/nes/sunsoft_dcs.cpp
@@ -269,7 +269,7 @@ uint8_t nes_sunsoft_dcs_device::read_m(offs_t offset)
if (!m_prgram.empty() && m_wram_enable)
return m_prgram[offset & (m_prgram.size() - 1)];
- return get_open_bus(); // open bus
+ return get_open_bus();
}
diff --git a/src/devices/bus/nes/taito.cpp b/src/devices/bus/nes/taito.cpp
index 8c806672a7d..b30f1196449 100644
--- a/src/devices/bus/nes/taito.cpp
+++ b/src/devices/bus/nes/taito.cpp
@@ -362,7 +362,7 @@ uint8_t nes_x1_005_device::read_m(offs_t offset)
if (offset >= 0x1f00 && m_latch == 0xa3)
return m_x1_005_ram[offset & 0x7f];
- return get_open_bus(); // open bus
+ return get_open_bus();
}
/*-------------------------------------------------
@@ -465,5 +465,5 @@ uint8_t nes_x1_017_device::read_m(offs_t offset)
if (offset < 0x1400 && m_reg[2] == 0x84)
return m_x1_017_ram[0x1000 + (offset & 0x3ff)];
- return get_open_bus(); // open bus
+ return get_open_bus();
}
diff --git a/src/devices/cpu/arm7/arm7dasm.cpp b/src/devices/cpu/arm7/arm7dasm.cpp
index 63d442080b4..7e59fdfaf98 100644
--- a/src/devices/cpu/arm7/arm7dasm.cpp
+++ b/src/devices/cpu/arm7/arm7dasm.cpp
@@ -354,7 +354,7 @@ u32 arm7_disassembler::arm7_disasm( std::ostream &stream, uint32_t pc, uint32_t
/* xxxx 0001 0B00 nnnn dddd 0000 1001 mmmm */
util::stream_format( stream, "SWP%s%s", pConditionCode, (opcode & 0x400000)?"B":"" ); //Bit 22 = Byte/Word selection
WritePadding(stream, start_position);
-
+
//Rd, Rm, [Rn]
util::stream_format( stream, "R%d, R%d, [R%d]",
(opcode>>12)&0xf, opcode&0xf, (opcode>>16)&0xf );
@@ -637,7 +637,7 @@ u32 arm7_disassembler::arm7_disasm( std::ostream &stream, uint32_t pc, uint32_t
{
/* immediate form */
util::stream_format( stream, "[R%d%s", rn, (opcode&0x01000000)?"":"]" );
-
+
//hide zero offsets
if(opcode&0xfff) {
stream << ", #";
diff --git a/src/devices/cpu/b5000/b5000base.cpp b/src/devices/cpu/b5000/b5000base.cpp
index 08211dfa334..e6acd3a5aed 100644
--- a/src/devices/cpu/b5000/b5000base.cpp
+++ b/src/devices/cpu/b5000/b5000base.cpp
@@ -5,7 +5,7 @@
Rockwell B5000 family MCU cores
This MCU series sits between A4000 and the more publicly available PPS4/1.
-Known part numbers: A/B5000, A/B5300, A/B5500, A/B5900, B6000, B6100.
+Known part numbers: A/B5000, A5300, A/B5500, A/B5900, B6000, B6100.
The latter two were manufactured for Mattel, with small modifications
useful for making handheld games. In fact, the programmer of the first
Mattel handheld games was a circuit designer at Rockwell.
@@ -13,6 +13,7 @@ Mattel handheld games was a circuit designer at Rockwell.
The main difference between Axxxx and Bxxxx is that B runs on low power,
there's also a small change with the way they output LEDs.
+A5300 might not be in this series, the page size is 0x3f instead of 0x40.
A4000 is similar, but too many differences to emulate in this device, probably.
*/
diff --git a/src/devices/cpu/b5000/b5000d.cpp b/src/devices/cpu/b5000/b5000d.cpp
index e5bcefc2fe5..3e40a00daff 100644
--- a/src/devices/cpu/b5000/b5000d.cpp
+++ b/src/devices/cpu/b5000/b5000d.cpp
@@ -113,7 +113,7 @@ offs_t b5000_common_disassembler::common_disasm(const u8 *lut_opmap, std::ostrea
case 1: stream << "S"; break; // 0,1
case 2: stream << "C"; break; // 1,0
case 3: stream << "C,S"; break; // 1,1
- default: break;
+ default: break;
}
}
else if (instr >= em_LB0 && instr <= em_LB11)
diff --git a/src/devices/cpu/i960/i960.cpp b/src/devices/cpu/i960/i960.cpp
index 110a752dbdc..c4dfc964a51 100644
--- a/src/devices/cpu/i960/i960.cpp
+++ b/src/devices/cpu/i960/i960.cpp
@@ -1457,12 +1457,12 @@ void i960_cpu_device::execute_op(uint32_t opcode)
case 0x4: // dmovt
/*
- The dmovt instruction moves a 32-bit word from one register to another
- and tests the least-significant byte of the operand to determine if it is a
- valid ASCII-coded decimal digit (001100002 through 001110012,
- corresponding to the decimal digits 0 through 9). For valid digits, the
- condition code (CC) is set to 000; otherwise the condition code is set to
- 010.
+ The dmovt instruction moves a 32-bit word from one register to another
+ and tests the least-significant byte of the operand to determine if it is a
+ valid ASCII-coded decimal digit (001100002 through 001110012,
+ corresponding to the decimal digits 0 through 9). For valid digits, the
+ condition code (CC) is set to 000; otherwise the condition code is set to
+ 010.
*/
m_icount -= 7;
t1 = get_1_ri(opcode);
diff --git a/src/devices/cpu/m6502/m6500_1.cpp b/src/devices/cpu/m6502/m6500_1.cpp
index d03dcdbdd76..5767899755e 100644
--- a/src/devices/cpu/m6502/m6500_1.cpp
+++ b/src/devices/cpu/m6502/m6500_1.cpp
@@ -58,14 +58,14 @@
appear to include the addition of an onboard power-on reset. It
is unknown what other differences these devices have.
- TODO:
- - For some reason most if not all Amiga MCU programs accesses arbitrary
+ TODO:
+ - For some reason most if not all Amiga MCU programs accesses arbitrary
zero page 0x90-0xff with a back-to-back cmp($00, x) opcode at
PC=c06-c08 with the actual result discarded. X can be any value in
- the 0x90-0xff range, depending on the last user keypress row source
+ the 0x90-0xff range, depending on the last user keypress row source
e.g. 0xdf-0xe0 for 'A', 0xef-0xf0 for 'Q', 0xfb-0xfc for function
- keys.
- This can be extremely verbose in the logging facility so we currently
+ keys.
+ This can be extremely verbose in the logging facility so we currently
nop it out for the time being.
***************************************************************************/
diff --git a/src/devices/machine/8364_paula.cpp b/src/devices/machine/8364_paula.cpp
index cd6b958b927..d16739f0cc3 100644
--- a/src/devices/machine/8364_paula.cpp
+++ b/src/devices/machine/8364_paula.cpp
@@ -11,8 +11,8 @@
- convert volume values to non-linear dB scale (cfr. )
- Verify ADKCON modulation;
- Verify manual mode:
- \- AGA roadkill during gameplay, which also has very long period setups,
- extremely aliased;
+ \- AGA roadkill during gameplay, which also has very long period setups,
+ extremely aliased;
- When a DMA stop occurs, is the correlated channel playback stopped
at the end of the current cycle or as soon as possible like current
implementation?
diff --git a/src/devices/machine/akiko.cpp b/src/devices/machine/akiko.cpp
index 76867f0ed0b..1e5aee6db16 100644
--- a/src/devices/machine/akiko.cpp
+++ b/src/devices/machine/akiko.cpp
@@ -11,13 +11,13 @@
- Chunky to planar converter
- 2x CIA chips
- TODO:
+ TODO:
- Reportedly the CD drive should be a Sony KSM-2101BAM,
- schematics shows Akiko connected to a laconic "26-pin CD connector"
- - NVRAM needs inheriting from i2c_24c08_device;
- - Handle tray open/close events, needed at very least by:
- \- cdtv:cdremix2 load sequences;
- \- kangfu on cd32 as "out of memory" workaround;
+ schematics shows Akiko connected to a laconic "26-pin CD connector"
+ - NVRAM needs inheriting from i2c_24c08_device;
+ - Handle tray open/close events, needed at very least by:
+ \- cdtv:cdremix2 load sequences;
+ \- kangfu on cd32 as "out of memory" workaround;
***************************************************************************/
@@ -759,7 +759,7 @@ void akiko_device::update_cdrom()
{
resp[1] = 0x80;
}
-
+
// needed by cdtv:defcrown (would otherwise hardlock emulation)
m_cdrom_cmd_start = (m_cdrom_cmd_start + 2) & 0xff;
diff --git a/src/devices/machine/amiga_copper.cpp b/src/devices/machine/amiga_copper.cpp
index aedcc05f545..f3e0c249a75 100644
--- a/src/devices/machine/amiga_copper.cpp
+++ b/src/devices/machine/amiga_copper.cpp
@@ -2,24 +2,24 @@
// copyright-holders:Aaron Giles, Angelo Salese
/**************************************************************************************************
- Amiga Copper
-
- "Co-processor" contained inside Agnus,
- it's a finite-state machine that either wait to a h/v video beam position or direct writes to
- the Amiga chipset registers via program lists, ranging from "simple" video mode/color changes
- to override sprite structures and beyond ...
-
- TODO:
- - Current handling is horizontally offset by several pixels, also cfr. amiga video notes
- (screen geometry slightly incorrect?);
- - Fix Bitplane offset corruption in some games (e.g. exile, zoola, AGA games).
- Same as above?
- - Fix missing/corrupt sprites in known nasty examples
- (e.g. zoola status bar, parasol score layer on top, riskyw backgrounds);
- - Find & verify cdang examples (especially for ECS/AGA);
- - Find & verify examples that uses this non-canonically,
- i.e. anything that may use this for controlling Paula, FDC or Blitter;
- - Add debugger command for printing the current disassembler structure;
+ Amiga Copper
+
+ "Co-processor" contained inside Agnus,
+ it's a finite-state machine that either wait to a h/v video beam position or direct writes to
+ the Amiga chipset registers via program lists, ranging from "simple" video mode/color changes
+ to override sprite structures and beyond ...
+
+ TODO:
+ - Current handling is horizontally offset by several pixels, also cfr. amiga video notes
+ (screen geometry slightly incorrect?);
+ - Fix Bitplane offset corruption in some games (e.g. exile, zoola, AGA games).
+ Same as above?
+ - Fix missing/corrupt sprites in known nasty examples
+ (e.g. zoola status bar, parasol score layer on top, riskyw backgrounds);
+ - Find & verify cdang examples (especially for ECS/AGA);
+ - Find & verify examples that uses this non-canonically,
+ i.e. anything that may use this for controlling Paula, FDC or Blitter;
+ - Add debugger command for printing the current disassembler structure;
**************************************************************************************************/
@@ -28,7 +28,7 @@
#define LOG_WARN (1U << 1) // Show warnings
#define LOG_COPINS (1U << 2) // Show instruction fetches thru COPINS
-#define LOG_INST (1U << 3) // Show live instruction fetches
+#define LOG_INST (1U << 3) // Show live instruction fetches
#define LOG_PC (1U << 4) // Show PC fetches
#define LOG_CHIPSET (1U << 5) // Show custom chipset writes
@@ -78,7 +78,7 @@ amiga_copper_device::amiga_copper_device(const machine_config &mconfig, const ch
void amiga_copper_device::device_start()
-{
+{
m_host_space = &m_host_cpu->space(AS_PROGRAM);
m_chipmem_r.resolve_safe(0);
@@ -92,7 +92,7 @@ void amiga_copper_device::device_start()
save_item(NAME(m_state_waitblit));
save_item(NAME(m_waitval));
save_item(NAME(m_waitmask));
-// save_item(NAME(m_wait_offset));
+// save_item(NAME(m_wait_offset));
save_item(NAME(m_pending_data));
save_item(NAME(m_pending_offset));
}
@@ -126,7 +126,7 @@ void amiga_copper_device::regs_map(address_map &map)
map(0x06, 0x07).w(FUNC(amiga_copper_device::copxlcl_w<1>));
map(0x08, 0x09).rw(FUNC(amiga_copper_device::copjmpx_r<0>), FUNC(amiga_copper_device::copjmpx_w<0>));
map(0x0a, 0x0b).rw(FUNC(amiga_copper_device::copjmpx_r<1>), FUNC(amiga_copper_device::copjmpx_w<1>));
-// map(0x0c, 0x0d).w(FUNC(amiga_copper_device::copins_w));
+// map(0x0c, 0x0d).w(FUNC(amiga_copper_device::copins_w));
}
void amiga_copper_device::dmacon_set(u16 data)
@@ -135,7 +135,7 @@ void amiga_copper_device::dmacon_set(u16 data)
m_dma_copen = bool(BIT(data, 7));
}
-/*
+/*
* COPCON 02E W A Copper Control Register
*
* ---- ---- ---- --x- CDANG (Copper Danger Mode) setting
@@ -146,10 +146,10 @@ void amiga_copper_device::dmacon_set(u16 data)
* access to the blitter HW therefore $dff080 is the
* minimum for non-cdang and $dff040 for cdang mode.
*
- * In ECS and AGA the latter limitation is lifted so Copper
+ * In ECS and AGA the latter limitation is lifted so Copper
* can access $dff000-$dff03f too, which basically means the
* possibility of accessing disk block regs.
- * (i.e. the other regs are either r/o or wouldn't have much
+ * (i.e. the other regs are either r/o or wouldn't have much
* sense to write via Copper).
*
*/
@@ -267,7 +267,7 @@ int amiga_copper_device::execute_next(int xpos, int ypos, bool is_blitter_busy)
{
m_state_waiting = false;
//#if GUESS_COPPER_OFFSET
-// return xpos + COPPER_CYCLES_TO_PIXELS(1 + m_wait_offset);
+// return xpos + COPPER_CYCLES_TO_PIXELS(1 + m_wait_offset);
//#else
return xpos + COPPER_CYCLES_TO_PIXELS(1 + 3);
//#endif
@@ -289,7 +289,7 @@ int amiga_copper_device::execute_next(int xpos, int ypos, bool is_blitter_busy)
m_host_space->write_word(0xdff08c, word0);
m_pc += 2;
xpos += COPPER_CYCLES_TO_PIXELS(1);
-
+
/* fetch the second data word */
word1 = m_chipmem_r(m_pc);
m_host_space->write_word(0xdff08c, word1);
@@ -355,7 +355,7 @@ int amiga_copper_device::execute_next(int xpos, int ypos, bool is_blitter_busy)
{
LOGINST(" Waiting for %04x & %04x (currently %04x)\n",
m_waitval,
- m_waitmask,
+ m_waitmask,
(ypos << 8) | (xpos >> 1)
);
@@ -367,7 +367,7 @@ int amiga_copper_device::execute_next(int xpos, int ypos, bool is_blitter_busy)
{
int curpos = (ypos << 8) | (xpos >> 1);
- LOGINST(" Skipping if %04x & %04x (currently %04x)\n",
+ LOGINST(" Skipping if %04x & %04x (currently %04x)\n",
m_waitval,
m_waitmask,
(ypos << 8) | (xpos >> 1)
diff --git a/src/devices/machine/amiga_copper.h b/src/devices/machine/amiga_copper.h
index fe9791c381f..15fe5c3cd00 100644
--- a/src/devices/machine/amiga_copper.h
+++ b/src/devices/machine/amiga_copper.h
@@ -2,7 +2,7 @@
// copyright-holders:Aaron Giles, Angelo Salese
/***************************************************************************
- Amiga Copper
+ Amiga Copper
***************************************************************************/
@@ -68,7 +68,7 @@ private:
u16 m_waitmask;
u16 m_pending_offset;
u16 m_pending_data;
-// int m_wait_offset;
+// int m_wait_offset;
// waitstate delays for copper
// basically anything that doesn't belong to Angus has a penalty for Copper
diff --git a/src/devices/machine/laserdsc.cpp b/src/devices/machine/laserdsc.cpp
index 4d04ea68505..45304a428f7 100644
--- a/src/devices/machine/laserdsc.cpp
+++ b/src/devices/machine/laserdsc.cpp
@@ -54,6 +54,9 @@ const uint32_t VIRTUAL_LEAD_OUT_TRACKS = LEAD_OUT_MIN_SIZE_IN_UM * 1000 / NOMINA
// CORE IMPLEMENTATION
//**************************************************************************
+ALLOW_SAVE_TYPE(laserdisc_device::player_state);
+ALLOW_SAVE_TYPE(laserdisc_device::slider_position);
+
//-------------------------------------------------
// laserdisc_device - constructor
//-------------------------------------------------
@@ -69,6 +72,7 @@ laserdisc_device::laserdisc_device(const machine_config &mconfig, device_type ty
m_overclip(0, -1, 0, -1),
m_overupdate_rgb32(*this),
m_disc(nullptr),
+ m_is_cav_disc(false),
m_width(0),
m_height(0),
m_fps_times_1million(0),
@@ -227,6 +231,73 @@ void laserdisc_device::device_start()
"laserdisc",
configuration_manager::load_delegate(&laserdisc_device::config_load, this),
configuration_manager::save_delegate(&laserdisc_device::config_save, this));
+
+ // register state
+ save_item(NAME(m_player_state.m_state));
+ save_item(NAME(m_player_state.m_substate));
+ save_item(NAME(m_player_state.m_param));
+ save_item(NAME(m_player_state.m_endtime));
+
+ save_item(NAME(m_saved_state.m_state));
+ save_item(NAME(m_saved_state.m_substate));
+ save_item(NAME(m_saved_state.m_param));
+ save_item(NAME(m_saved_state.m_endtime));
+
+ save_item(NAME(m_overposx));
+ save_item(NAME(m_overposy));
+ save_item(NAME(m_overscalex));
+ save_item(NAME(m_overscaley));
+
+ save_item(NAME(m_orig_config.m_overposx));
+ save_item(NAME(m_orig_config.m_overposy));
+ save_item(NAME(m_orig_config.m_overscalex));
+ save_item(NAME(m_orig_config.m_overscaley));
+
+ save_item(NAME(m_overwidth));
+ save_item(NAME(m_overheight));
+ save_item(NAME(m_overclip.min_x));
+ save_item(NAME(m_overclip.max_x));
+ save_item(NAME(m_overclip.min_y));
+ save_item(NAME(m_overclip.max_y));
+
+ save_item(NAME(m_vbidata));
+ save_item(NAME(m_is_cav_disc));
+ save_item(NAME(m_width));
+ save_item(NAME(m_height));
+ save_item(NAME(m_fps_times_1million));
+ save_item(NAME(m_samplerate));
+ save_item(NAME(m_chdtracks));
+
+ save_item(NAME(m_audiosquelch));
+ save_item(NAME(m_videosquelch));
+ save_item(NAME(m_fieldnum));
+ save_item(NAME(m_curtrack));
+ save_item(NAME(m_maxtrack));
+ save_item(NAME(m_attospertrack));
+ save_item(NAME(m_sliderupdate));
+
+ save_item(STRUCT_MEMBER(m_frame, m_numfields));
+ save_item(STRUCT_MEMBER(m_frame, m_lastfield));
+ save_item(NAME(m_videoindex));
+
+ save_item(NAME(m_audiobuffer[0]));
+ save_item(NAME(m_audiobuffer[1]));
+ save_item(NAME(m_audiobufsize));
+ save_item(NAME(m_audiobufin));
+ save_item(NAME(m_audiobufout));
+ save_item(NAME(m_audiocursamples));
+ save_item(NAME(m_audiomaxsamples));
+
+ save_item(STRUCT_MEMBER(m_metadata, white));
+ save_item(STRUCT_MEMBER(m_metadata, line16));
+ save_item(STRUCT_MEMBER(m_metadata, line17));
+ save_item(STRUCT_MEMBER(m_metadata, line18));
+ save_item(STRUCT_MEMBER(m_metadata, line1718));
+
+ save_item(NAME(m_videoenable));
+
+ save_item(NAME(m_overenable));
+ save_item(NAME(m_overindex));
}
@@ -398,7 +469,9 @@ void laserdisc_device::set_slider_speed(int32_t tracks_per_vsync)
// negative values store negative times
else
+ {
m_attospertrack = -(vsyncperiod / -tracks_per_vsync).as_attoseconds();
+ }
if (LOG_SLIDER)
printf("Slider speed = %d\n", tracks_per_vsync);
@@ -685,6 +758,23 @@ void laserdisc_device::init_disc()
err = m_disc->read_metadata(AV_LD_METADATA_TAG, 0, m_vbidata);
if (err || (m_vbidata.size() != totalhunks * VBI_PACKED_BYTES))
throw emu_fatalerror("Precomputed VBI metadata missing or incorrect size");
+
+ m_is_cav_disc = false;
+ vbi_metadata vbidata_even = { 0 };
+ vbi_metadata_unpack(&vbidata_even, nullptr, &m_vbidata[m_chdtracks * VBI_PACKED_BYTES]);
+ if ((vbidata_even.line1718 & VBI_MASK_CAV_PICTURE) == VBI_CODE_CAV_PICTURE)
+ {
+ m_is_cav_disc = true;
+ }
+ else
+ {
+ vbi_metadata vbidata_odd = { 0 };
+ vbi_metadata_unpack(&vbidata_odd, nullptr, &m_vbidata[(m_chdtracks + 1) * VBI_PACKED_BYTES]);
+ if ((vbidata_odd.line1718 & VBI_MASK_CAV_PICTURE) == VBI_CODE_CAV_PICTURE)
+ {
+ m_is_cav_disc = true;
+ }
+ }
}
m_maxtrack = std::max(m_maxtrack, VIRTUAL_LEAD_IN_TRACKS + VIRTUAL_LEAD_OUT_TRACKS + m_chdtracks);
}
diff --git a/src/devices/machine/laserdsc.h b/src/devices/machine/laserdsc.h
index b706afb5816..15a107804f1 100644
--- a/src/devices/machine/laserdsc.h
+++ b/src/devices/machine/laserdsc.h
@@ -158,7 +158,7 @@ protected:
};
// common laserdisc states
- enum player_state
+ enum player_state : uint32_t
{
LDSTATE_NONE, // unspecified state
LDSTATE_EJECTING, // in the process of ejecting
@@ -190,7 +190,7 @@ protected:
};
// slider position
- enum slider_position
+ enum slider_position : uint32_t
{
SLIDER_MINIMUM, // at the minimum value
SLIDER_VIRTUAL_LEADIN, // within the virtual lead-in area
@@ -204,8 +204,8 @@ protected:
struct player_state_info
{
player_state m_state; // current state
- int32_t m_substate; // internal sub-state; starts at 0 on any state change
- int32_t m_param; // parameter for current state
+ int32_t m_substate; // internal sub-state; starts at 0 on any state change
+ int32_t m_param; // parameter for current state
attotime m_endtime; // minimum ending time for current state
};
@@ -233,6 +233,7 @@ protected:
int32_t generic_update(const vbi_metadata &vbi, int fieldnum, const attotime &curtime, player_state_info &curstate);
// general helpers
+ bool is_cav_disc() const { return m_is_cav_disc; }
bool is_start_of_frame(const vbi_metadata &vbi);
int frame_from_metadata(const vbi_metadata &metadata);
int chapter_from_metadata(const vbi_metadata &metadata);
@@ -277,6 +278,7 @@ private:
// disc parameters
chd_file * m_disc; // handle to the disc itself
std::vector<uint8_t> m_vbidata; // pointer to precomputed VBI data
+ bool m_is_cav_disc; // precomputed check if the mounted disc is CAV
int m_width; // width of video
int m_height; // height of video
uint32_t m_fps_times_1million; // frame rate of video
diff --git a/src/devices/machine/ldv4200hle.cpp b/src/devices/machine/ldv4200hle.cpp
new file mode 100644
index 00000000000..c86b3e4cee7
--- /dev/null
+++ b/src/devices/machine/ldv4200hle.cpp
@@ -0,0 +1,948 @@
+// license:BSD-3-Clause
+// copyright-holders:Ryan Holtz
+/*************************************************************************
+
+ ldv4200hle.cpp
+
+ Pioneer LD-V4200 laserdisc player simulation.
+
+**************************************************************************
+
+ To do:
+
+ * On-screen display support
+ * Better CLV support
+ * Chapter-search support
+ * Commands that Time Traveler doesn't use:
+ - Door Open/Close
+ - Reject
+ - Pause/Still
+ - Scan Forward/Reverse
+ - Multitrack-Jump Forward/Reverse
+ - Clear
+ - Leadout Symbol
+ - Key Lock and on-screen functions
+ - Status Requests
+ - Registers A-D
+
+*************************************************************************/
+
+
+#include "emu.h"
+#include "ldv4200hle.h"
+
+
+#define LOG_COMMAND_BYTES (1 << 1U)
+#define LOG_COMMANDS (1 << 2U)
+#define LOG_COMMAND_BUFFERS (1 << 3U)
+#define LOG_REPLIES (1 << 4U)
+#define LOG_REPLY_BYTES (1 << 5U)
+#define LOG_SEARCHES (1 << 6U)
+#define LOG_STOPS (1 << 7U)
+#define LOG_SQUELCHES (1 << 8U)
+#define LOG_FRAMES (1 << 9U)
+#define LOG_ALL (LOG_COMMAND_BYTES | LOG_COMMANDS | LOG_COMMAND_BUFFERS | LOG_REPLY_BYTES | LOG_SEARCHES | LOG_STOPS | LOG_SQUELCHES | LOG_FRAMES)
+
+#define VERBOSE (0)
+#include "logmacro.h"
+
+
+
+//**************************************************************************
+// GLOBAL VARIABLES
+//**************************************************************************
+
+// devices
+DEFINE_DEVICE_TYPE(PIONEER_LDV4200HLE, pioneer_ldv4200hle_device, "ldv4200hle", "Pioneer LD-V4200 HLE")
+
+
+
+//**************************************************************************
+// PIONEER LD-V4200 HLE IMPLEMENTATION
+//**************************************************************************
+
+//-------------------------------------------------
+// pioneer_ldv4200hle_device - constructor
+//-------------------------------------------------
+
+pioneer_ldv4200hle_device::pioneer_ldv4200hle_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : laserdisc_device(mconfig, PIONEER_LDV4200HLE, tag, owner, clock)
+ , device_serial_interface(mconfig, *this)
+ , m_serial_tx(*this)
+ , m_vbi_fetch(nullptr)
+ , m_cmd_length(0)
+ , m_cmd_running(false)
+ , m_reply_write_index(0)
+ , m_reply_read_index(0)
+ , m_mode(MODE_PARK)
+ , m_chapter(0)
+ , m_time(0)
+ , m_frame(0)
+ , m_search_chapter(~0U)
+ , m_search_frame(~0U)
+ , m_mark_chapter(~0U)
+ , m_mark_frame(~0U)
+ , m_key_lock(0)
+ , m_video_switch(1)
+ , m_audio_switch(0)
+ , m_display_switch(0)
+ , m_address_flag(ADDRESS_FRAME)
+ , m_speed(60)
+ , m_speed_accum(0)
+ , m_comm_ctrl(3)
+ , m_reg_a(3)
+ , m_reg_b(0)
+ , m_reg_c(0)
+ , m_reg_d(0)
+ , m_aux_port(3)
+ , m_curr_frame(0)
+{
+}
+
+
+//-------------------------------------------------
+// add_command_byte - handle a new data byte
+// received over the serial link
+//-------------------------------------------------
+
+void pioneer_ldv4200hle_device::add_command_byte(uint8_t data)
+{
+ // Space and L/F codes are ignored in command sequences, per LD-V4400 Level I & III User's Manual, pg. 4-8
+ if (data == 0x20 || data == 0x0a)
+ return;
+
+ LOGMASKED(LOG_COMMAND_BYTES, "Command byte added: %02x\n", data);
+ if (m_cmd_length < std::size(m_cmd_buffer))
+ {
+ m_cmd_buffer[m_cmd_length] = data;
+ m_cmd_length++;
+ }
+ if (data == 0x0d)
+ {
+ normalize_command_buffer();
+ process_command_buffer();
+ m_cmd_length = 0;
+ }
+}
+
+
+//-------------------------------------------------
+// queue_reply - queues a reply string to send
+// back to the host
+//-------------------------------------------------
+
+void pioneer_ldv4200hle_device::queue_reply(const char *reply)
+{
+ char print_buf[128];
+
+ uint8_t max_writable = (uint8_t)std::size(m_reply_buffer);
+ for (uint8_t i = 0; i < max_writable && reply[i] != 0; i++)
+ {
+ m_reply_buffer[m_reply_write_index] = reply[i];
+ m_reply_write_index = (m_reply_write_index + 1) % max_writable;
+ print_buf[i] = (reply[i] == '\x0d' ? 0 : reply[i]);
+ }
+ LOGMASKED(LOG_REPLIES, "Sending reply: %s\n", print_buf);
+
+ if (!m_replying)
+ {
+ m_replying = true;
+ LOGMASKED(LOG_REPLY_BYTES, "Sending reply byte: %02x\n", (uint8_t)m_reply_buffer[m_reply_read_index]);
+ transmit_register_setup(m_reply_buffer[m_reply_read_index]);
+ }
+}
+
+
+//-------------------------------------------------
+// queue_error - queues an error-code string to
+// send back to the host
+//-------------------------------------------------
+
+void pioneer_ldv4200hle_device::queue_error(error_code err)
+{
+ char buf[5] = { 'E', '0', '0', '\x0d', '\0' };
+ buf[1] += err / 10;
+ buf[2] += err % 10;
+ queue_reply(buf);
+}
+
+
+//-------------------------------------------------
+// normalize_command_buffer - ensure any alphabet
+// characters in the command buffer are
+// upper-cased for matching purposes.
+//-------------------------------------------------
+
+void pioneer_ldv4200hle_device::normalize_command_buffer()
+{
+ char print_buf[64];
+ for (uint8_t i = 0; i < m_cmd_length; i++)
+ {
+ if (m_cmd_buffer[i] >= 'a' && m_cmd_buffer[i] <= 'z')
+ {
+ m_cmd_buffer[i] &= ~0x20;
+ }
+ print_buf[i] = (char)m_cmd_buffer[i];
+ }
+ print_buf[m_cmd_length - 1] = '\0';
+ LOGMASKED(LOG_COMMAND_BUFFERS, "Command Buffer: %02d:%02d:%02d: %s\n", (int)(machine().time().seconds() / 60), (int)(machine().time().seconds()) % 60, (machine().time() * 100).seconds() % 100, print_buf);
+}
+
+
+//-------------------------------------------------
+// process_command_buffer - process a command
+// line sent from the host
+//-------------------------------------------------
+
+void pioneer_ldv4200hle_device::process_command_buffer()
+{
+ if (m_cmd_length <= 1)
+ return;
+
+ error_code err = ERR_NONE;
+ uint8_t cmd_index = 0;
+ bool send_reply = true;
+ while (cmd_index < m_cmd_length && err == ERR_NONE)
+ {
+ if (cmd_index == (m_cmd_length - 1) && m_cmd_buffer[cmd_index] == 0x0d)
+ {
+ break;
+ }
+
+ uint32_t value = ~0U;
+ if (is_number(m_cmd_buffer[cmd_index]))
+ {
+ cmd_index += parse_numeric_value(cmd_index, value, err);
+ }
+ if (err == ERR_NONE)
+ {
+ cmd_index += process_command(cmd_index, value, err);
+ if (m_cmd_running)
+ {
+ send_reply = false;
+ }
+ }
+ }
+
+ if (send_reply)
+ {
+ if (err == ERR_NONE)
+ {
+ queue_reply("R\x0d");
+ }
+ else
+ {
+ queue_error(err);
+ }
+ }
+}
+
+
+//-------------------------------------------------
+// bcd_to_literal - converts a BCD value used in
+// commands a direct numeric value
+//-------------------------------------------------
+
+uint32_t pioneer_ldv4200hle_device::bcd_to_literal(uint32_t bcd)
+{
+ uint32_t value = 0;
+ uint32_t shift = 28;
+ uint32_t multiplier = 10000000;
+ for (uint32_t i = 0; i < 8; i++)
+ {
+ uint32_t digit = (bcd >> shift) & 0xf;
+ bcd &= ~(0xf << shift);
+
+ value += digit * multiplier;
+
+ multiplier /= 10;
+ shift -= 4;
+ }
+ return value;
+}
+
+
+//-------------------------------------------------
+// is_number - indicates if a given character is
+// a numeric value
+//-------------------------------------------------
+
+bool pioneer_ldv4200hle_device::is_number(char value)
+{
+ return value >= '0' && value <= '9';
+}
+
+
+//-------------------------------------------------
+// parse_numeric_value - parses a numeric value
+// from the command buffer
+//-------------------------------------------------
+
+uint8_t pioneer_ldv4200hle_device::parse_numeric_value(uint8_t cmd_index, uint32_t &value, error_code &err)
+{
+ static const uint8_t MAX_NUMBER_LENGTH = 7;
+ uint8_t number_length = 0;
+ value = 0;
+ while (number_length < MAX_NUMBER_LENGTH && is_number(m_cmd_buffer[cmd_index]) && cmd_index < m_cmd_length)
+ {
+ value *= 10;
+ value += m_cmd_buffer[cmd_index] - '0';
+ cmd_index++;
+ number_length++;
+ }
+
+ if (cmd_index == m_cmd_length)
+ {
+ err = ERR_COMMUNICATION;
+ return number_length;
+ }
+
+ if (number_length == MAX_NUMBER_LENGTH && is_number(m_cmd_buffer[cmd_index]))
+ {
+ err = ERR_MISSING_ARGUMENT;
+ return number_length;
+ }
+
+ return number_length;
+}
+
+
+//-------------------------------------------------
+// process_command - processes a single command
+// from the command buffer
+//-------------------------------------------------
+
+uint8_t pioneer_ldv4200hle_device::process_command(uint8_t cmd_index, uint32_t value, error_code &err)
+{
+ const uint8_t remaining_bytes = m_cmd_length - cmd_index;
+ if (remaining_bytes == 1 && m_cmd_buffer[cmd_index] == 0x0d)
+ {
+ // Done processing
+ return remaining_bytes;
+ }
+ else if (remaining_bytes < 3)
+ {
+ // Not enough data in the buffer to form a valid command
+ err = ERR_COMMUNICATION;
+ return remaining_bytes;
+ }
+
+ uint16_t command = (m_cmd_buffer[cmd_index] << 8) | m_cmd_buffer[cmd_index + 1];
+ switch (command)
+ {
+ case CMD_DOOR_OPEN:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Door Open\n", machine().describe_context());
+ break;
+ case CMD_DOOR_CLOSE:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Door Close\n", machine().describe_context());
+ break;
+ case CMD_REJECT:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Reject\n", machine().describe_context());
+ break;
+ case CMD_START:
+ LOGMASKED(LOG_COMMANDS | LOG_SQUELCHES, "%s: Command: Start (squelching audio, unsquelching + disabling video)\n", machine().describe_context());
+ m_mode = MODE_PAUSE;
+ video_enable(false);
+ set_video_squelch(false);
+ set_audio_squelch(true, true);
+ break;
+ case CMD_PLAY:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Play [%d] (cancelling search)\n", machine().describe_context(), value == ~0U ? 0 : value);
+ m_speed_accum = 0;
+ m_mode = MODE_PLAY;
+ update_audio_squelch();
+ update_video_enable();
+ if (value != ~0U)
+ {
+ LOGMASKED(LOG_COMMANDS, "%s: Setting stop frame\n", machine().describe_context());
+ m_mark_frame = value + 1;
+ m_cmd_running = true;
+ }
+ m_search_frame = ~0U;
+ m_search_chapter = ~0U;
+ break;
+ case CMD_PAUSE:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Pause\n", machine().describe_context());
+ m_mode = MODE_PAUSE;
+ video_enable(false);
+ set_audio_squelch(true, true);
+ break;
+ case CMD_STILL:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Still\n", machine().describe_context());
+ m_mode = MODE_STILL;
+ set_audio_squelch(true, true);
+ break;
+ case CMD_STEP_FORWARD:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Step Forward\n", machine().describe_context());
+ m_mode = MODE_STILL;
+ set_audio_squelch(true, true);
+ m_mark_frame = ~0U;
+ advance_slider(1);
+ break;
+ case CMD_STEP_REVERSE:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Step Reverse\n", machine().describe_context());
+ m_mode = MODE_STILL;
+ set_audio_squelch(true, true);
+ m_mark_frame = ~0U;
+ advance_slider(-1);
+ break;
+ case CMD_SCAN_FORWARD:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Scan Forward\n", machine().describe_context());
+ break;
+ case CMD_SCAN_REVERSE:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Scan Reverse\n", machine().describe_context());
+ break;
+ case CMD_MULTISPEED_FORWARD:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Multi-Speed Forward (%d) (cancelling search)\n", machine().describe_context(), value == ~0U ? 0 : value);
+ m_mode = MODE_MS_FORWARD;
+ m_search_frame = ~0U;
+ m_search_chapter = ~0U;
+ if (value != ~0U)
+ {
+ LOGMASKED(LOG_COMMANDS, "%s: Setting stop frame\n", machine().describe_context());
+ m_mark_frame = value + 1;
+ m_cmd_running = true;
+ }
+ break;
+ case CMD_MULTISPEED_REVERSE:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Multi-Speed Reverse (%d) (cancelling search)\n", machine().describe_context(), value == ~0U ? 0 : value);
+ m_mode = MODE_MS_REVERSE;
+ m_search_frame = ~0U;
+ m_search_chapter = ~0U;
+ if (value != ~0U)
+ {
+ LOGMASKED(LOG_COMMANDS, "%s: Setting stop frame\n", machine().describe_context());
+ m_mark_frame = value + 1;
+ m_cmd_running = true;
+ }
+ break;
+ case CMD_SPEED_SET:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Speed Set %05d\n", machine().describe_context(), value);
+ if (is_cav_disc())
+ {
+ m_speed = value;
+ if (m_speed == 0)
+ {
+ m_speed = 1;
+ }
+ else if (m_speed > 255)
+ {
+ m_speed = 255;
+ }
+ }
+ else
+ {
+ err = ERR_NOT_AVAILABLE;
+ }
+ break;
+ case CMD_SEARCH:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Search %d\n", machine().describe_context(), value);
+ begin_search(value);
+ m_cmd_running = true;
+ m_mode = MODE_SEARCH;
+ break;
+ case CMD_MULTITRACK_FORWARD:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Multi-Track Jump Forward %05d\n", machine().describe_context(), value);
+ break;
+ case CMD_MULTITRACK_REVERSE:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Multi-Track Jump Reverse %05d\n", machine().describe_context(), value);
+ break;
+ case CMD_STOP_MARKER:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Stop Marker %d\n", machine().describe_context(), value);
+ if (m_address_flag == ADDRESS_FRAME)
+ {
+ m_mark_frame = value + 1;
+ }
+ else if (m_address_flag == ADDRESS_CHAPTER)
+ {
+ m_mark_chapter = value;
+ }
+ break;
+ case CMD_FRAME_SET:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Frame Set\n", machine().describe_context());
+ m_address_flag = ADDRESS_FRAME;
+ break;
+ case CMD_TIME_SET:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Time Set\n", machine().describe_context());
+ if (!is_cav_disc())
+ {
+ m_address_flag = ADDRESS_TIME;
+ }
+ else
+ {
+ err = ERR_NOT_AVAILABLE;
+ }
+ break;
+ case CMD_CHAPTER_SET:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Chapter Set\n", machine().describe_context());
+ m_address_flag = ADDRESS_CHAPTER;
+ break;
+ case CMD_CLEAR:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Clear\n", machine().describe_context());
+ break;
+ case CMD_LEADOUT_SYMBOL:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Lead-Out Symbol\n", machine().describe_context());
+ break;
+ case CMD_AUDIO_CTRL:
+ m_audio_switch = value;
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Audio Control %05d\n", machine().describe_context(), value);
+ update_audio_squelch();
+ break;
+ case CMD_VIDEO_CTRL:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Video Control %05d\n", machine().describe_context(), value);
+ m_video_switch = value;
+ update_video_enable();
+ break;
+ case CMD_KEY_LOCK:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Key Lock %05d\n", machine().describe_context(), value);
+ break;
+ case CMD_DISPLAY_CONTROL:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Display Control %05d\n", machine().describe_context(), value);
+ break;
+ case CMD_CLEAR_SCREEN:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Clear Screen\n", machine().describe_context());
+ break;
+ case CMD_PRINT_CHAR:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Print Character %05d\n", machine().describe_context(), value);
+ break;
+ case CMD_REQ_FRAME_NUMBER:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Frame Number Request\n", machine().describe_context());
+ break;
+ case CMD_REQ_TIME_CODE:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Time Code Request\n", machine().describe_context());
+ break;
+ case CMD_REQ_CHAPTER_NUMBER:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Chapter Number Request\n", machine().describe_context());
+ break;
+ case CMD_REQ_PLAYER_MODE:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Player Active Mode Request\n", machine().describe_context());
+ break;
+ case CMD_REQ_DISC_STATUS:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Disc Status Request\n", machine().describe_context());
+ break;
+ case CMD_REQ_LDP_MODEL:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: LDP Model Name Request\n", machine().describe_context());
+ break;
+ case CMD_REQ_PIONEER_DISC_ID:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Pioneer User's Code Request (Disc ID)\n", machine().describe_context());
+ break;
+ case CMD_REQ_STANDARD_DISC_ID:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Standard User's Code Request (Disc ID)\n", machine().describe_context());
+ break;
+ case CMD_REQ_TV_SYSTEM:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Television System Request\n", machine().describe_context());
+ break;
+ case CMD_COMMUNICATION_CTRL:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Communication Control %05d\n", machine().describe_context(), value);
+ break;
+ case CMD_REQ_CCR_MODE:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: CCR Mode Request\n", machine().describe_context());
+ break;
+ case CMD_REGISTER_A_SET:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Register A Set (Display) %d\n", machine().describe_context(), value);
+ break;
+ case CMD_REGISTER_B_SET:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Register B Set (Squelch Control) %d\n", machine().describe_context(), value);
+ break;
+ case CMD_REGISTER_C_SET:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Register C Set (Miscellaneous) %d\n", machine().describe_context(), value);
+ break;
+ case CMD_REGISTER_D_SET:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Register D Set (RS-232) %d\n", machine().describe_context(), value);
+ break;
+ case CMD_REQ_REGISTER_A:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Register A Request (Display)\n", machine().describe_context());
+ break;
+ case CMD_REQ_REGISTER_B:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Register B Request (Squelch Control)\n", machine().describe_context());
+ break;
+ case CMD_REQ_REGISTER_C:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Register C Request (Miscellaneous)\n", machine().describe_context());
+ break;
+ case CMD_REQ_REGISTER_D:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Register D Request (RS-232)\n", machine().describe_context());
+ break;
+ case CMD_REQ_INPUT_UNIT:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Input Unit Request\n", machine().describe_context());
+ break;
+ case CMD_INPUT_NUMBER_WAIT:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Input Number Wait\n", machine().describe_context());
+ break;
+ default:
+ LOGMASKED(LOG_COMMANDS, "%s: Command: Unknown (%c%c)\n", machine().describe_context(), m_cmd_buffer[cmd_index], m_cmd_buffer[cmd_index + 1]);
+ err = ERR_NOT_AVAILABLE;
+ break;
+ }
+
+ return 2;
+}
+
+
+//-------------------------------------------------
+// begin_search - initiates a search operation
+//-------------------------------------------------
+
+void pioneer_ldv4200hle_device::begin_search(uint32_t value)
+{
+ if (m_address_flag == ADDRESS_FRAME)
+ {
+ m_search_frame = value + 1;
+ LOGMASKED(LOG_SEARCHES, "%s: Beginning search from frame address %d\n", machine().describe_context(), value);
+ }
+ else if (m_address_flag == ADDRESS_CHAPTER)
+ {
+ m_search_chapter = value;
+ LOGMASKED(LOG_SEARCHES, "%s: Beginning search from chapter address %d\n", machine().describe_context(), value);
+ }
+
+ set_audio_squelch(true, true);
+
+ if (std::abs((int32_t)m_search_frame - (int32_t)m_curr_frame) > 100)
+ {
+ LOGMASKED(LOG_SEARCHES | LOG_SQUELCHES, "%s: Search distance is outside +/- 100 frames, squelching audio+video\n", machine().describe_context());
+ video_enable(false);
+ set_audio_squelch(true, true);
+ }
+ else
+ {
+ LOGMASKED(LOG_SEARCHES | LOG_SQUELCHES, "%s: Search distance is within +/- 100 frames, squelching audio and doing live search\n", machine().describe_context());
+ }
+}
+
+
+//-------------------------------------------------
+// update_audio_squelch - set audio squelch state
+// on the base device based on our audio switch
+//-------------------------------------------------
+
+void pioneer_ldv4200hle_device::update_audio_squelch()
+{
+ const bool squelch_both = (m_mode == MODE_STILL || m_mode == MODE_PAUSE || m_mode == MODE_SEARCH);
+ const bool squelch_left = !(m_audio_switch == 1 || m_audio_switch == 3) || squelch_both;
+ const bool squelch_right = !(m_audio_switch == 2 || m_audio_switch == 3) || squelch_both;
+ set_audio_squelch(squelch_left, squelch_right);
+ LOGMASKED(LOG_SQUELCHES, "%s: Updating audio squelch (L:%d, R:%d)\n", machine().describe_context(), squelch_left, squelch_right);
+}
+
+
+//-------------------------------------------------
+// update_video_enable - set video enable state
+// on the base device based on our video switch
+//-------------------------------------------------
+
+void pioneer_ldv4200hle_device::update_video_enable()
+{
+ video_enable(m_video_switch == 1 && (m_mode == MODE_STILL || m_mode == MODE_PLAY || m_mode == MODE_MS_FORWARD || m_mode == MODE_MS_REVERSE));
+ LOGMASKED(LOG_SQUELCHES, "%s: Updating video enable (Switch:%d, Mode:%d)\n", machine().describe_context(), m_video_switch, m_mode);
+}
+
+
+//-------------------------------------------------
+// device_start - device initialization
+//-------------------------------------------------
+
+void pioneer_ldv4200hle_device::device_start()
+{
+ // pass through to the parent
+ laserdisc_device::device_start();
+
+ m_serial_tx.resolve_safe();
+
+ // allocate timers
+ m_vbi_fetch = timer_alloc(TID_VBI_DATA_FETCH);
+
+ // register state saving
+ save_item(NAME(m_cmd_buffer));
+ save_item(NAME(m_cmd_length));
+ save_item(NAME(m_cmd_running));
+ save_item(NAME(m_reply_buffer));
+ save_item(NAME(m_reply_write_index));
+ save_item(NAME(m_reply_read_index));
+ save_item(NAME(m_replying));
+ save_item(NAME(m_mode));
+ save_item(NAME(m_chapter));
+ save_item(NAME(m_time));
+ save_item(NAME(m_frame));
+ save_item(NAME(m_search_chapter));
+ save_item(NAME(m_search_frame));
+ save_item(NAME(m_mark_chapter));
+ save_item(NAME(m_mark_frame));
+ save_item(NAME(m_key_lock));
+ save_item(NAME(m_video_switch));
+ save_item(NAME(m_audio_switch));
+ save_item(NAME(m_display_switch));
+ save_item(NAME(m_address_flag));
+ save_item(NAME(m_speed));
+ save_item(NAME(m_speed_accum));
+ save_item(NAME(m_comm_ctrl));
+ save_item(NAME(m_reg_a));
+ save_item(NAME(m_reg_b));
+ save_item(NAME(m_reg_c));
+ save_item(NAME(m_reg_d));
+ save_item(NAME(m_aux_port));
+ save_item(NAME(m_curr_frame));
+}
+
+
+//-------------------------------------------------
+// device_reset - device reset
+//-------------------------------------------------
+
+void pioneer_ldv4200hle_device::device_reset()
+{
+ // pass through to the parent
+ laserdisc_device::device_reset();
+
+ // initialize diserial
+ set_tra_rate(attotime::from_hz(4800));
+ set_rcv_rate(attotime::from_hz(4800));
+ set_data_frame(1, 8, PARITY_NONE, STOP_BITS_1);
+
+ // reset our state
+ m_vbi_fetch->adjust(attotime::never);
+
+ std::fill_n(m_cmd_buffer, 0, std::size(m_cmd_buffer));
+ m_cmd_length = 0;
+ m_cmd_running = false;
+ std::fill_n(m_reply_buffer, 0, std::size(m_reply_buffer));
+ m_reply_write_index = 0;
+ m_reply_read_index = 0;
+ m_replying = false;
+ m_mode = MODE_PARK;
+ m_chapter = 0;
+ m_time = 0;
+ m_frame = 0;
+ m_search_chapter = ~0U;
+ m_search_frame = ~0U;
+ m_mark_chapter = ~0U;
+ m_mark_frame = ~0U;
+ m_key_lock = 0;
+ m_video_switch = 1;
+ m_audio_switch = 0;
+ m_display_switch = 0;
+ m_address_flag = ADDRESS_FRAME;
+ m_speed = 60;
+ m_speed_accum = 0;
+ m_comm_ctrl = 3;
+ m_reg_a = 3;
+ m_reg_b = 0;
+ m_reg_c = 0;
+ m_reg_d = 0;
+ m_aux_port = 3;
+ m_curr_frame = 0;
+
+ video_enable(false);
+ set_audio_squelch(true, true);
+}
+
+
+//-------------------------------------------------
+// device_timer - handle timers set by this
+// device
+//-------------------------------------------------
+
+void pioneer_ldv4200hle_device::device_timer(emu_timer &timer, device_timer_id id, int param)
+{
+ switch (id)
+ {
+ case TID_VBI_DATA_FETCH:
+ {
+ uint32_t line = get_field_code(LASERDISC_CODE_LINE1718, false);
+ if ((line & 0xf80000) == 0xf80000 || line == VBI_CODE_LEADIN || line == VBI_CODE_LEADOUT)
+ {
+ uint32_t old_frame = m_curr_frame;
+ if (line == VBI_CODE_LEADIN)
+ m_curr_frame = 0;
+ else if (line == VBI_CODE_LEADOUT)
+ m_curr_frame = 54000;
+ else
+ m_curr_frame = bcd_to_literal(line & 0x7ffff);
+
+ LOGMASKED(LOG_FRAMES, "Current frame is %d (VBI 16: %06x, VBI 17: %06x, VBI 18: %06x, VBI 1718: %06x\n", m_curr_frame,
+ get_field_code(LASERDISC_CODE_LINE16, false),
+ get_field_code(LASERDISC_CODE_LINE17, false),
+ get_field_code(LASERDISC_CODE_LINE18, false),
+ line);
+
+ if (m_mode != MODE_STILL && m_mode != MODE_PAUSE)
+ {
+ if (m_mark_frame != ~0U && m_search_frame == ~0U)
+ {
+ int32_t old_delta = (int32_t)old_frame - (int32_t)m_mark_frame;
+ int32_t curr_delta = (int32_t)m_curr_frame - (int32_t)m_mark_frame;
+ LOGMASKED(LOG_STOPS, "%s: Stop Mark is currently %d, old frame is %d, current frame is %d, old delta %d, curr delta %d\n", machine().describe_context(), m_mark_frame, old_frame, m_curr_frame, old_delta, curr_delta);
+ if (curr_delta == 0 || std::signbit(old_delta) != std::signbit(curr_delta))
+ {
+ m_mark_frame = ~0U;
+ if (is_cav_disc())
+ {
+ LOGMASKED(LOG_STOPS | LOG_SQUELCHES, "%s: Stop Mark: Zero delta w/ CAV disc, entering still mode and squelching audio\n", machine().describe_context());
+ m_mode = MODE_STILL;
+ update_video_enable();
+ }
+ else
+ {
+ LOGMASKED(LOG_STOPS | LOG_SQUELCHES, "%s: Stop Mark: Zero delta w/ CLV disc, entering still mode and squelching video+audio\n", machine().describe_context());
+ m_mode = MODE_PAUSE;
+ video_enable(false);
+ }
+
+ set_audio_squelch(true, true);
+
+ if (m_cmd_running)
+ {
+ LOGMASKED(LOG_SEARCHES | LOG_COMMANDS, "%s: Stop Mark: Command running, sending reply\n", machine().describe_context());
+ m_cmd_running = false;
+ queue_reply("R\x0d");
+ }
+ }
+ }
+
+ if (m_search_frame != ~0U)
+ {
+ // TODO: Chapter-search support
+ int32_t delta = (int32_t)m_curr_frame - (int32_t)m_search_frame;
+ LOGMASKED(LOG_SEARCHES, "%s: Searching from current frame %d with delta %d\n", machine().describe_context(), m_curr_frame, delta);
+ if (delta == 0)
+ {
+ // We've found our frame, enter play, pause or still mode.
+ m_search_frame = ~0U;
+ if (is_cav_disc())
+ {
+ LOGMASKED(LOG_SEARCHES | LOG_SQUELCHES, "%s: Search Mark: Zero delta w/ CAV disc, entering still mode and squelching audio\n", machine().describe_context());
+ m_mode = MODE_STILL;
+ update_video_enable();
+ }
+ else
+ {
+ LOGMASKED(LOG_SEARCHES | LOG_SQUELCHES, "%s: Search Mark: Zero delta w/ CLV disc, entering still mode and squelching video+audio\n", machine().describe_context());
+ m_mode = MODE_PAUSE;
+ video_enable(false);
+ }
+
+ set_audio_squelch(true, true);
+
+ if (m_cmd_running)
+ {
+ LOGMASKED(LOG_SEARCHES | LOG_COMMANDS, "%s: Search Mark: Command running, sending reply\n", machine().describe_context());
+ m_cmd_running = false;
+ queue_reply("R\x0d");
+ }
+ }
+ else if (delta >= -2 && delta < 0)
+ {
+ LOGMASKED(LOG_SEARCHES, "%s: Negative-near delta, letting disc run to current\n", machine().describe_context());
+ // We're approaching our frame, let it run up.
+ }
+ else
+ {
+ if (delta < 0)
+ {
+ advance_slider(std::max(1, -delta / 2));
+ }
+ else
+ {
+ advance_slider(std::min(-2, -delta / 2));
+ }
+ }
+ }
+ }
+ }
+ break;
+ }
+
+ // pass everything else onto the parent
+ default:
+ laserdisc_device::device_timer(timer, id, param);
+ break;
+ }
+}
+
+
+//-------------------------------------------------
+// player_vsync - VSYNC callback, called at the
+// start of the blanking period
+//-------------------------------------------------
+
+void pioneer_ldv4200hle_device::player_vsync(const vbi_metadata &vbi, int fieldnum, const attotime &curtime)
+{
+ // set a timer to fetch the VBI data when it is ready
+ if (m_mode > MODE_DOOR_OPEN)
+ {
+ m_vbi_fetch->adjust(screen().time_until_pos(19*2));
+ }
+}
+
+
+//-------------------------------------------------
+// player_update - update callback, called on
+// the first visible line of the frame
+//-------------------------------------------------
+
+int32_t pioneer_ldv4200hle_device::player_update(const vbi_metadata &vbi, int fieldnum, const attotime &curtime)
+{
+ if (!fieldnum)
+ return 0;
+
+ if (m_mode == MODE_MS_FORWARD || m_mode == MODE_MS_REVERSE)
+ {
+ m_speed_accum += m_speed;
+ int elapsed_tracks = m_speed_accum / 60;
+ m_speed_accum -= elapsed_tracks * 60;
+ if (m_mode == MODE_MS_REVERSE)
+ elapsed_tracks *= -1;
+ return elapsed_tracks;
+ }
+
+
+ if (m_mode == MODE_PLAY || m_mode == MODE_SEARCH)
+ {
+ return 1;
+ }
+
+ return 0;
+}
+
+
+//-------------------------------------------------
+// rcv_complete - called by diserial when we
+// have received a complete byte
+//-------------------------------------------------
+
+void pioneer_ldv4200hle_device::rcv_complete()
+{
+ receive_register_extract();
+ add_command_byte(get_received_char());
+}
+
+
+//-------------------------------------------------
+// tra_complete - called by diserial when we
+// have transmitted a complete byte
+//-------------------------------------------------
+
+void pioneer_ldv4200hle_device::tra_complete()
+{
+ m_reply_read_index = (m_reply_read_index + 1) % (uint8_t)std::size(m_reply_buffer);
+ if (m_reply_read_index != m_reply_write_index)
+ {
+ uint8_t data = (uint8_t)m_reply_buffer[m_reply_read_index];
+ LOGMASKED(LOG_REPLY_BYTES, "Sending reply byte: %02x\n", data);
+ transmit_register_setup(data);
+ }
+ else
+ {
+ m_replying = false;
+ }
+}
+
+
+//-------------------------------------------------
+// tra_callback - called by diserial when we
+// transmit a single bit
+//-------------------------------------------------
+
+void pioneer_ldv4200hle_device::tra_callback()
+{
+ m_serial_tx(transmit_register_get_data_bit());
+}
diff --git a/src/devices/machine/ldv4200hle.h b/src/devices/machine/ldv4200hle.h
new file mode 100644
index 00000000000..f57763698eb
--- /dev/null
+++ b/src/devices/machine/ldv4200hle.h
@@ -0,0 +1,217 @@
+// license:BSD-3-Clause
+// copyright-holders:Ryan Holtz
+/*************************************************************************
+
+ ldv1000hle.h
+
+ Pioneer LD-V4200 laserdisc player simulation.
+
+*************************************************************************/
+
+#ifndef MAME_MACHINE_LDV4200_H
+#define MAME_MACHINE_LDV4200_H
+
+#pragma once
+
+#include "laserdsc.h"
+#include "diserial.h"
+
+
+//**************************************************************************
+// GLOBAL VARIABLES
+//**************************************************************************
+
+// device type definition
+DECLARE_DEVICE_TYPE(PIONEER_LDV4200HLE, pioneer_ldv4200hle_device)
+
+
+
+//**************************************************************************
+// GLOBAL HELPERS
+//**************************************************************************
+
+// Note: This should be included within the class rather than the global namespace.
+// However, doing so results in a "called in a constant expression before its definition is complete" error for the enum values.
+static constexpr uint16_t make_ldv4000_command(const char *str) { return ((uint8_t)str[0] << 8) | (uint8_t)str[1]; }
+
+
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> pioneer_ldv4200hle_device
+
+class pioneer_ldv4200hle_device : public laserdisc_device, public device_serial_interface
+{
+public:
+ // construction/destruction
+ pioneer_ldv4200hle_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
+
+ auto serial_tx() { return m_serial_tx.bind(); }
+
+protected:
+ // timer IDs
+ enum
+ {
+ TID_VBI_DATA_FETCH = TID_FIRST_PLAYER_TIMER
+ };
+
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param) override;
+
+ // laserdisc overrides
+ virtual void player_vsync(const vbi_metadata &vbi, int fieldnum, const attotime &curtime) override;
+ virtual int32_t player_update(const vbi_metadata &vbi, int fieldnum, const attotime &curtime) override;
+ virtual void player_overlay(bitmap_yuy16 &bitmap) override { }
+
+ // diserial overrides
+ virtual void rcv_complete() override;
+ virtual void tra_complete() override;
+ virtual void tra_callback() override;
+
+private:
+ enum player_command : uint16_t
+ {
+ CMD_DOOR_OPEN = make_ldv4000_command("OP"),
+ CMD_DOOR_CLOSE = make_ldv4000_command("CO"),
+ CMD_REJECT = make_ldv4000_command("RJ"),
+ CMD_START = make_ldv4000_command("SA"),
+ CMD_PLAY = make_ldv4000_command("PL"),
+ CMD_PAUSE = make_ldv4000_command("PA"),
+ CMD_STILL = make_ldv4000_command("ST"),
+ CMD_STEP_FORWARD = make_ldv4000_command("SF"),
+ CMD_STEP_REVERSE = make_ldv4000_command("SR"),
+ CMD_SCAN_FORWARD = make_ldv4000_command("NF"),
+ CMD_SCAN_REVERSE = make_ldv4000_command("NR"),
+ CMD_MULTISPEED_FORWARD = make_ldv4000_command("MF"),
+ CMD_MULTISPEED_REVERSE = make_ldv4000_command("MR"),
+ CMD_SPEED_SET = make_ldv4000_command("SP"),
+ CMD_SEARCH = make_ldv4000_command("SE"),
+ CMD_MULTITRACK_FORWARD = make_ldv4000_command("JF"),
+ CMD_MULTITRACK_REVERSE = make_ldv4000_command("JR"),
+ CMD_STOP_MARKER = make_ldv4000_command("SM"),
+ CMD_FRAME_SET = make_ldv4000_command("FR"),
+ CMD_TIME_SET = make_ldv4000_command("TM"),
+ CMD_CHAPTER_SET = make_ldv4000_command("CH"),
+ CMD_CLEAR = make_ldv4000_command("CL"),
+ CMD_LEADOUT_SYMBOL = make_ldv4000_command("LO"),
+ CMD_AUDIO_CTRL = make_ldv4000_command("AD"),
+ CMD_VIDEO_CTRL = make_ldv4000_command("VD"),
+ CMD_KEY_LOCK = make_ldv4000_command("KL"),
+ CMD_DISPLAY_CONTROL = make_ldv4000_command("DS"),
+ CMD_CLEAR_SCREEN = make_ldv4000_command("CS"),
+ CMD_PRINT_CHAR = make_ldv4000_command("PR"),
+ CMD_REQ_FRAME_NUMBER = make_ldv4000_command("?F"),
+ CMD_REQ_TIME_CODE = make_ldv4000_command("?T"),
+ CMD_REQ_CHAPTER_NUMBER = make_ldv4000_command("?C"),
+ CMD_REQ_PLAYER_MODE = make_ldv4000_command("?P"),
+ CMD_REQ_DISC_STATUS = make_ldv4000_command("?D"),
+ CMD_REQ_LDP_MODEL = make_ldv4000_command("?X"),
+ CMD_REQ_PIONEER_DISC_ID = make_ldv4000_command("?U"),
+ CMD_REQ_STANDARD_DISC_ID = make_ldv4000_command("$Y"),
+ CMD_REQ_TV_SYSTEM = make_ldv4000_command("?S"),
+ CMD_COMMUNICATION_CTRL = make_ldv4000_command("CM"),
+ CMD_REQ_CCR_MODE = make_ldv4000_command("?M"),
+ CMD_REGISTER_A_SET = make_ldv4000_command("RA"),
+ CMD_REGISTER_B_SET = make_ldv4000_command("RB"),
+ CMD_REGISTER_C_SET = make_ldv4000_command("RC"),
+ CMD_REGISTER_D_SET = make_ldv4000_command("RD"),
+ CMD_REQ_REGISTER_A = make_ldv4000_command("$A"),
+ CMD_REQ_REGISTER_B = make_ldv4000_command("$B"),
+ CMD_REQ_REGISTER_C = make_ldv4000_command("$C"),
+ CMD_REQ_REGISTER_D = make_ldv4000_command("$D"),
+ CMD_REQ_INPUT_UNIT = make_ldv4000_command("#I"),
+ CMD_INPUT_NUMBER_WAIT = make_ldv4000_command("?N")
+ };
+
+ enum player_mode : uint8_t
+ {
+ MODE_PARK,
+ MODE_DOOR_OPEN,
+ MODE_PAUSE,
+ MODE_PLAY,
+ MODE_MS_FORWARD,
+ MODE_MS_REVERSE,
+ MODE_SEARCH,
+ MODE_STILL
+ };
+
+ enum address_mode : uint8_t
+ {
+ ADDRESS_FRAME,
+ ADDRESS_TIME,
+ ADDRESS_CHAPTER
+ };
+
+ enum error_code : uint8_t
+ {
+ ERR_NONE = 0xff,
+ ERR_COMMUNICATION = 0,
+ ERR_NOT_AVAILABLE = 4,
+ ERR_MISSING_ARGUMENT = 6,
+ ERR_DISC_NOT_LOADED = 11,
+ ERR_SEARCH = 12,
+ ERR_DEFOCUS = 13,
+ ERR_PICTURE_STOP = 15,
+ ERR_OTHER_INPUT = 16,
+ ERR_PANIC = 99
+ };
+
+ void add_command_byte(uint8_t data);
+
+ void queue_reply(const char *reply);
+ void queue_error(error_code err);
+
+ void normalize_command_buffer();
+ void process_command_buffer();
+
+ static uint32_t bcd_to_literal(uint32_t bcd);
+ static bool is_number(char value);
+ uint8_t parse_numeric_value(uint8_t cmd_index, uint32_t &value, error_code &err);
+ uint8_t process_command(uint8_t cmd_index, uint32_t value, error_code &err);
+
+ void begin_search(uint32_t value);
+
+ void update_audio_squelch();
+ void update_video_enable();
+
+ // internal state
+ devcb_write_line m_serial_tx;
+ emu_timer * m_vbi_fetch;
+ char m_cmd_buffer[21];
+ uint8_t m_cmd_length;
+ bool m_cmd_running;
+ char m_reply_buffer[64];
+ uint8_t m_reply_write_index;
+ uint8_t m_reply_read_index;
+ bool m_replying;
+
+ uint8_t m_mode; // current player mode
+ uint32_t m_chapter;
+ uint32_t m_time;
+ uint32_t m_frame; // raw frame index (CAV mode)
+ uint32_t m_search_chapter;
+ uint32_t m_search_frame;
+ uint32_t m_mark_chapter;
+ uint32_t m_mark_frame;
+
+ uint8_t m_key_lock;
+ uint8_t m_video_switch;
+ uint8_t m_audio_switch;
+ uint8_t m_display_switch;
+ uint8_t m_address_flag;
+ uint16_t m_speed;
+ uint32_t m_speed_accum;
+ uint8_t m_comm_ctrl;
+ uint8_t m_reg_a;
+ uint8_t m_reg_b;
+ uint8_t m_reg_c;
+ uint8_t m_reg_d;
+ uint8_t m_aux_port;
+ uint32_t m_curr_frame;
+};
+
+#endif // MAME_MACHINE_LDV4200_H
diff --git a/src/devices/machine/z80dma.cpp b/src/devices/machine/z80dma.cpp
index a00c00726c0..38148ff6350 100644
--- a/src/devices/machine/z80dma.cpp
+++ b/src/devices/machine/z80dma.cpp
@@ -335,7 +335,7 @@ int z80dma_device::is_ready()
void z80dma_device::interrupt_check()
{
m_out_int_cb(m_ip ? ASSERT_LINE : CLEAR_LINE);
-
+
int ieo = m_iei;
if (m_ip) {
ieo = 0;
diff --git a/src/devices/machine/z80dma.h b/src/devices/machine/z80dma.h
index fb1b282726b..26613e74b80 100644
--- a/src/devices/machine/z80dma.h
+++ b/src/devices/machine/z80dma.h
@@ -129,7 +129,7 @@ private:
uint8_t m_latch;
// interrupts
- int m_iei; // interrupt enable input
+ int m_iei; // interrupt enable input
int m_ip; // interrupt pending
int m_ius; // interrupt under service
uint8_t m_vector; // interrupt vector
diff --git a/src/devices/sound/k051649.cpp b/src/devices/sound/k051649.cpp
index fa122b8fd1a..5ddffc5f36f 100644
--- a/src/devices/sound/k051649.cpp
+++ b/src/devices/sound/k051649.cpp
@@ -143,7 +143,7 @@ void k051649_device::sound_stream_update(sound_stream &stream, std::vector<read_
}
// scale to 11 bit digital output on chip
if (voice.key)
- outputs[0].add_int(i, (voice.waveram[voice.counter] * voice.volume) >> 4, 1024);
+ outputs[0].add_int(i, (voice.waveram[voice.counter] * voice.volume) >> 4, 1024);
}
}
}
diff --git a/src/lib/formats/flex_dsk.cpp b/src/lib/formats/flex_dsk.cpp
index 45ea85ee257..52edc624c8f 100644
--- a/src/lib/formats/flex_dsk.cpp
+++ b/src/lib/formats/flex_dsk.cpp
@@ -111,7 +111,7 @@ int flex_format::find_size(util::random_read &io, uint32_t form_factor, const st
return -1;
uint8_t boot0_sector_id = 1;
- // uint8_t boot1_sector_id = 2;
+ // uint8_t boot1_sector_id = 2;
// This floppy format uses a strategy of looking for 6800 boot code to
// set the numbering of the first two sectors. If this is shown to not
@@ -124,11 +124,11 @@ int flex_format::find_size(util::random_read &io, uint32_t form_factor, const st
// boot1 is not actually used (yet?)
// Look for a link to the next sector, normal usage.
- // if (boot1[0] != 0 || boot1[1] != 3)
- // {
+ // if (boot1[0] != 0 || boot1[1] != 3)
+ // {
// If not then assume it is a boot sector.
- // boot1_sector_id = 1;
- // }
+ // boot1_sector_id = 1;
+ // }
}
for (int i=0; formats[i].form_factor; i++) {
diff --git a/src/mame/audio/gottlieb.cpp b/src/mame/audio/gottlieb.cpp
index 029940ea6f8..43a4658e79b 100644
--- a/src/mame/audio/gottlieb.cpp
+++ b/src/mame/audio/gottlieb.cpp
@@ -195,8 +195,8 @@ uint8_t gottlieb_sound_p3_device::r6530b_r()
void gottlieb_sound_p3_device::r6530b_w(u8 data)
{
-// if (BIT(data, 6))
-// m_cpu->set_input_line(M6502_IRQ_LINE, CLEAR_LINE);
+// if (BIT(data, 6))
+// m_cpu->set_input_line(M6502_IRQ_LINE, CLEAR_LINE);
}
diff --git a/src/mame/drivers/abc1600.cpp b/src/mame/drivers/abc1600.cpp
index 312146da43f..201041283b6 100644
--- a/src/mame/drivers/abc1600.cpp
+++ b/src/mame/drivers/abc1600.cpp
@@ -34,7 +34,7 @@
TODO:
- - z80dma.cpp register read must return byte UP counter value (0x200 at end of block, not 0 as it does now)
+ - z80dma.cpp register read must return byte UP counter value (0x200 at end of block, not 0 as it does now)
- short/long reset (RSTBUT)
- CIO
- optimize timers!
diff --git a/src/mame/drivers/alvg.cpp b/src/mame/drivers/alvg.cpp
index f69a05647ea..bf63d849fa5 100644
--- a/src/mame/drivers/alvg.cpp
+++ b/src/mame/drivers/alvg.cpp
@@ -149,7 +149,7 @@ private:
// bsmt
u8 rdstat_r() { return m_bsmt_rdcode; }
u8 rdcode_r() { m_audiocpu->set_input_line(0, CLEAR_LINE); return m_cpu_to_bsmt; }
- void wrcode_w(u8 data) { m_bsmt_to_cpu = data; m_via1->write_ca1(BIT(data, 0)); }
+ void wrcode_w(u8 data) { m_bsmt_to_cpu = data; m_via1->write_ca1(BIT(data, 0)); }
void bsmt_w(offs_t offset, u8 data);
void watch_w(u8 data) { if (!BIT(data, 6)) m_bsmt->reset(); }
void bsmt_ready_w() { m_bsmt_rdcode |= 0x80; }
diff --git a/src/mame/drivers/asuka.cpp b/src/mame/drivers/asuka.cpp
index ff7e833957a..478bff7bf58 100644
--- a/src/mame/drivers/asuka.cpp
+++ b/src/mame/drivers/asuka.cpp
@@ -1403,7 +1403,7 @@ ROM_START( bonzeadv )
ROM_LOAD( "b41-13.20", 0x00000, 0x10000, CRC(9e464254) SHA1(b6f6126b54c15320ecaa652d0eeabaa4cd94bd26) ) // banked
// no ADPCM-A samples
-
+
ROM_REGION( 0x80000, "ymsnd:adpcmb", 0 )
ROM_LOAD( "b41-04.48", 0x00000, 0x80000, CRC(c668638f) SHA1(07238a6cb4d93ffaf6351657163b5d80f0dbf688) )
ROM_END
@@ -1430,7 +1430,7 @@ ROM_START( bonzeadvo )
ROM_LOAD( "b41-13.20", 0x00000, 0x10000, CRC(9e464254) SHA1(b6f6126b54c15320ecaa652d0eeabaa4cd94bd26) ) // banked
// no ADPCM-A samples
-
+
ROM_REGION( 0x80000, "ymsnd:adpcmb", 0 )
ROM_LOAD( "b41-04.48", 0x00000, 0x80000, CRC(c668638f) SHA1(07238a6cb4d93ffaf6351657163b5d80f0dbf688) )
ROM_END
@@ -1457,7 +1457,7 @@ ROM_START( bonzeadvu )
ROM_LOAD( "b41-13.20", 0x00000, 0x10000, CRC(9e464254) SHA1(b6f6126b54c15320ecaa652d0eeabaa4cd94bd26) ) // banked
// no ADPCM-A samples
-
+
ROM_REGION( 0x80000, "ymsnd:adpcmb", 0 )
ROM_LOAD( "b41-04.48", 0x00000, 0x80000, CRC(c668638f) SHA1(07238a6cb4d93ffaf6351657163b5d80f0dbf688) )
ROM_END
diff --git a/src/mame/drivers/cosmos_playc8f.cpp b/src/mame/drivers/cosmos_playc8f.cpp
index eecc3931f91..44c6687676d 100644
--- a/src/mame/drivers/cosmos_playc8f.cpp
+++ b/src/mame/drivers/cosmos_playc8f.cpp
@@ -27,8 +27,7 @@
#include "sound/okim9810.h"
#include "speaker.h"
-namespace
-{
+namespace {
class cosmos_playc8f_state : public driver_device
{
@@ -45,7 +44,7 @@ public:
private:
required_device<m68hc05_device> m_maincpu;
- optional_device<mcs51_cpu_device> m_soundcpu;
+ optional_device<mcs51_cpu_device> m_soundcpu;
};
static INPUT_PORTS_START(playc8f)
@@ -54,7 +53,7 @@ INPUT_PORTS_END
// PLAYC8F + SY-MUSIC01 (music)
void cosmos_playc8f_state::playc8f_symusic01(machine_config &config)
{
- M68HC705C8A(config, m_maincpu, 4_MHz_XTAL);
+ M68HC705C8A(config, m_maincpu, 4_MHz_XTAL);
I80C51(config, m_soundcpu, 6_MHz_XTAL); // Actually an AT89C51
@@ -67,12 +66,12 @@ void cosmos_playc8f_state::playc8f_symusic01(machine_config &config)
// PLAYC8F (without sound hardware)
void cosmos_playc8f_state::playc8f(machine_config &config)
{
- M68HC705C8A(config, m_maincpu, 4_MHz_XTAL);
+ M68HC705C8A(config, m_maincpu, 4_MHz_XTAL);
}
ROM_START(bgbasketb)
ROM_REGION(0x002000, "maincpu", 0)
- ROM_LOAD("basketball_2004-01-22.u13", 0x000000, 0x002000, CRC(5dd80da6) SHA1(5671d7166c7131ce0ad415da16842f271cc7ac3f)) // MC68HC705C8P
+ ROM_LOAD("srlqj02-2-01_2013-03-23.u13", 0x000000, 0x002000, CRC(9ab77de9) SHA1(c3507636dfe963023d5894403b850b65da2613b4)) // MC705C8ACPE
ROM_REGION(0x001000, "soundcpu", 0)
ROM_LOAD("mglqj-y-3-3_2004-10-22.u2", 0x000000, 0x001000, NO_DUMP) // AT89C51, protected
@@ -84,7 +83,7 @@ ROM_END
ROM_START(bgbasketbb)
ROM_REGION(0x002000, "maincpu", 0)
- ROM_LOAD("srlqj02-2-01_2013-03-23.u13", 0x000000, 0x002000, CRC(9ab77de9) SHA1(c3507636dfe963023d5894403b850b65da2613b4)) // MC705C8ACPE
+ ROM_LOAD("basketball_2004-01-22.u13", 0x000000, 0x002000, CRC(5dd80da6) SHA1(5671d7166c7131ce0ad415da16842f271cc7ac3f)) // MC68HC705C8P
ROM_REGION(0x001000, "soundcpu", 0)
ROM_LOAD("mglqj-y-3-3_2004-10-22.u2", 0x000000, 0x001000, NO_DUMP) // AT89C51, protected
diff --git a/src/mame/drivers/cps1.cpp b/src/mame/drivers/cps1.cpp
index 61a101d22fd..f7f86ac404d 100644
--- a/src/mame/drivers/cps1.cpp
+++ b/src/mame/drivers/cps1.cpp
@@ -3120,16 +3120,16 @@ static INPUT_PORTS_START( pang3b4 )
PORT_DIPSETTING( 0x18, "3" )
PORT_DIPSETTING( 0x00, "4" )
PORT_DIPNAME( 0x60, 0x20, "Extend" ) PORT_DIPLOCATION("DIP-B:6,7")
- PORT_DIPSETTING( 0x00, "30K, 250K, 1M, 3M, 7M" )
+ PORT_DIPSETTING( 0x00, "30K, 250K, 1M, 3M, 7M" )
PORT_DIPSETTING( 0x20, "80K, 500k, 2M, 5M, 10M" )
PORT_DIPSETTING( 0x40, "250K, 1M, 3M, 7M, 15M" )
PORT_DIPSETTING( 0x60, "Not extend" )
PORT_DIPNAME( 0x80, 0x80, "Free play" ) PORT_DIPLOCATION("DIP-B:8")
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("DSWC")
- PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "DIP-C:1" )
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "DIP-C:1" )
PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "DIP-C:2" )
PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "DIP-C:3" )
PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "DIP-C:4" ) // Missing freeze code @ 0x020B74
@@ -13360,8 +13360,8 @@ ROM_END
/* This bootleg uses a bootlegged B board nearly identical to that used in sf2ceblp.
In my set:
- - Board-A is missing so I don't know if a normal or a dash board was used.
- - Board-C is an hacked 88622-C-5 with an unusual CPS-B-12 and clearly it's not its C-board because
+ - Board-A is missing so I don't know if a normal or a dash board was used.
+ - Board-C is an hacked 88622-C-5 with an unusual CPS-B-12 and clearly it's not its C-board because
code analisys led to identify the CPS_B_21_DEF as the right configuration.
- Board-B has some missing components:
- audio cpu code EPROM @B13 (pang3b pa3_11.11f used instead)
@@ -13370,10 +13370,10 @@ ROM_END
The program code is almost the same as of pang3b with some minor, yet interesting, hacks:
- Dip switch use for board configuration (code@ 0x000300, 0xe0000) instead of a serial EPROM
- Removed freeze from dip switch (code@ 020B74)
- - Some code to handle the PIC (protection?).
+ - Some code to handle the PIC (protection?).
Read and write to addresses 0x5762b0 and 0x57a2b0 occurs in the code but the return value is never really used (nop or bra skips relevant parts)
and so seems that the PIC protection is ineffective.
- - Read and write to port 0x80017a (EEPROM in pang3) still are present in the code, but are filtered by the PAL16V8 @ E13 so there is no need to
+ - Read and write to port 0x80017a (EEPROM in pang3) still are present in the code, but are filtered by the PAL16V8 @ E13 so there is no need to
create a port for that address here in mame (altough this causes a popmessage "CPS-B read port 3A contact MAMEDEV" to occurr at startup if compiled with
DEBUG=1)
@@ -13436,7 +13436,7 @@ ROM_END
/* B-Board Mitchell 94916-10 */
/* This set comes from an encrypted bootleg that uses a very well reproduced Mitchell 94916-10 B-Board surmounted by an
- original Capcom 90631C-5 C-Board taken from a Knights of the round board (there's a sticker on it).
+ original Capcom 90631C-5 C-Board taken from a Knights of the round board (there's a sticker on it).
Protection chip MACH215 is present. */
ROM_START( pang3b5 )
ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
@@ -13456,7 +13456,7 @@ ROM_START( pang3b5 )
ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
ROM_LOAD( "pa3_11.11f", 0x00000, 0x08000, CRC(cb1423a2) SHA1(3191bf5d340168647881738cb2aed09b1d86146e) ) // == 11.11f has the same content of pa3w_16.10l from pang3 romset
- ROM_IGNORE( 0x18000 )
+ ROM_IGNORE( 0x18000 )
ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
ROM_LOAD( "pa3_05.10d", 0x00000, 0x20000, CRC(73a10d5d) SHA1(999465e4fbc35a34746d2db61ad49f61403d5af7) ) // 5.10c has the same content of pa3_05.10d from pang3 romset
@@ -13472,7 +13472,7 @@ ROM_START( pang3b5 )
ROM_REGION( 0x0200, "bboardplds", 0 )
ROM_LOAD( "cp1b1f_boot.1f", 0x0000, 0x0117, CRC(658849dc) SHA1(4fc386fa33322ce52334dee1391d617e0754bde0) )
ROM_LOAD( "cp1b8k.8k", 0x0000, 0x0117, CRC(8a52ea7a) SHA1(47a59abc54a83292cfd6faa2d293c8f948c7ea03) ) // I was not able to dump the original PAL. Tryied to swap it with a legit CP1B8K on real hw
- // and it's working, so I suppose they're functionally equivalent
+ // and it's working, so I suppose they're functionally equivalent
ROM_LOAD( "cp1b9ka.9k", 0x0000, 0x0117, CRC(238d3ff4) SHA1(597f429d6a0ea485746322592604188c1ec87595) ) // The PAL @ 9k was bruteforced and verified to be to be functionally equivalent to a standard cp1b9ka
ROM_REGION( 0x0200, "cboardplds", 0 )
@@ -14180,31 +14180,30 @@ Pang 3b4 - code accesso to $5762b0 and $57a2b0 (PIC)
*/
uint16_t cps_state::pang3b4_prot_r()
{
-
- if ((pang3b4_prot & 0xFF) >=0 && (pang3b4_prot & 0xFF) <=7)
- return (pang3b4_prot & 0xFF)+0x20; // Game level + extend
- if (pang3b4_prot == 0x17)
- return 0x7321; // Guessed from code @0x314
- return 0xFFFF;
+ if ((pang3b4_prot & 0xff) >=0 && (pang3b4_prot & 0xff) <=7)
+ return (pang3b4_prot & 0xff) + 0x20; // Game level + extend
+ if (pang3b4_prot == 0x17)
+ return 0x7321; // Guessed from code @0x314
+ return 0xffff;
}
void cps_state::pang3b4_prot_w(uint16_t data)
{
- pang3b4_prot = data;
+ pang3b4_prot = data;
}
void cps_state::init_pang3b4()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x5762b0, 0x5762b1, write16smo_delegate(*this, FUNC(cps_state::pang3b4_prot_w)));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x57A2b0, 0x57A2b1, read16smo_delegate(*this, FUNC(cps_state::pang3b4_prot_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x5762b0, 0x5762b1, write16smo_delegate(*this, FUNC(cps_state::pang3b4_prot_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x57a2b0, 0x57a2b1, read16smo_delegate(*this, FUNC(cps_state::pang3b4_prot_r)));
- /* In pang3 the Mach215 security chip outputs 2 control signals (pins 4, 6) which switch the eeprom in/out serial data lines onto the main 68k data bus when required
- They're mapped in the CPS-B address range but there is not the EPROM on the board
- Read and write to port 0x80017a still are present in the code, but they are filtered by the PAL16V8 @ E13 */
- m_maincpu->space(AS_PROGRAM).nop_readwrite(0x80017a, 0x80017b);
+ /* In pang3 the Mach215 security chip outputs 2 control signals (pins 4, 6) which switch the eeprom in/out serial data lines onto the main 68k data bus when required
+ They're mapped in the CPS-B address range but there is not the EPROM on the board
+ Read and write to port 0x80017a still are present in the code, but they are filtered by the PAL16V8 @ E13 */
+ m_maincpu->space(AS_PROGRAM).nop_readwrite(0x80017a, 0x80017b);
- init_cps1();
+ init_cps1();
}
diff --git a/src/mame/drivers/cubo.cpp b/src/mame/drivers/cubo.cpp
index 793272cedcb..77df43d90c5 100644
--- a/src/mame/drivers/cubo.cpp
+++ b/src/mame/drivers/cubo.cpp
@@ -11,7 +11,7 @@
- remove m_input_hack functions, needed to make inputs working
- lsrquiz2i, lsrquizg: access violation on microtouch_device destructor when exiting emulation
Caused by microtouch_device::rcv_complete() overrunning the m_rx_buffer
- array space with 149 (array size=16).
+ array space with 149 (array size=16).
Known Games:
@@ -1070,7 +1070,7 @@ void cubo_state::cubo(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &cubo_state::cubo_mem);
ADDRESS_MAP_BANK(config, m_overlay).set_map(&cubo_state::overlay_2mb_map32).set_options(ENDIANNESS_BIG, 32, 22, 0x200000);
- ADDRESS_MAP_BANK(config, m_chipset).set_map(&cubo_state::aga_map).set_options(ENDIANNESS_BIG, 32, 9, 0x200);
+ ADDRESS_MAP_BANK(config, m_chipset).set_map(&cubo_state::aga_map).set_options(ENDIANNESS_BIG, 32, 9, 0x200);
AMIGA_COPPER(config, m_copper, amiga_state::CLK_28M_PAL / 2);
m_copper->set_host_cpu_tag(m_maincpu);
diff --git a/src/mame/drivers/dec0.cpp b/src/mame/drivers/dec0.cpp
index 6dbbb153a03..f70955f2168 100644
--- a/src/mame/drivers/dec0.cpp
+++ b/src/mame/drivers/dec0.cpp
@@ -53,8 +53,9 @@ ToDo:
- Fighting Fantasy (bootleg) doesn't move on when killing the Lamia, is the MCU involved?
- Hook up the 68705 in Midnight Resistance (bootleg) (it might not be used, leftover from the Fighting Fantasy bootleg on the same PCB?)
- Get rid of ROM patch in Hippodrome;
-- background pen in Birdie Try is presumably wrong.
-- Pixel clock frequency isn't verified
+- background pen in Birdie Try is presumably wrong;
+- Unemulated coin counter, manuals mentions it but nowhere to be found, HW triggered?
+- Pixel clock frequency isn't verified;
Bad Dudes MCU implements a command to calculate a program ROM checksum and
compare the low byte of the result to a value supplied by the host CPU, but it
@@ -523,9 +524,9 @@ void dec0_state::ffantasybl_map(address_map &map)
{
dec0_map(map);
- map(0x0024c880, 0x0024cbff).ram(); // what is this? layer 3-related??
- map(0x00242024, 0x00242025).r(FUNC(dec0_state::ffantasybl_242024_r));
- map(0x00ff87ee, 0x00ff87ef).portr("VBLANK");
+ map(0x24c880, 0x24cbff).ram(); // what is this? layer 3-related??
+ map(0x242024, 0x242025).r(FUNC(dec0_state::ffantasybl_242024_r));
+ map(0xff87ee, 0xff87ef).portr("VBLANK");
}
void dec0_state::dec0_tb_map(address_map &map)
@@ -967,18 +968,18 @@ static INPUT_PORTS_START( dec0 )
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 )
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) /* Button 3 - only in Service Mode */
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 ) /* Button 4 - only in Service Mode */
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL /* Button 3 - only in Service Mode */
- PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_COCKTAIL /* Button 4 - only in Service Mode */
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) /* Button 3 - only in Service Mode */
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) /* Button 4 - only in Service Mode */
PORT_START("SYSTEM")
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON5 ) /* Button 5 - only in Service Mode */
- PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_COCKTAIL /* Button 5 - only in Service Mode */
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) /* Button 5 - only in Service Mode */
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_START2 )
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_COIN1 )
@@ -997,13 +998,13 @@ static INPUT_PORTS_START( dec1 )
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 )
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) /* Button 3 - only in Service Mode */
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL /* Button 3 - only in Service Mode */
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) /* Button 3 - only in Service Mode */
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 )
PORT_START("SYSTEM")
@@ -1074,8 +1075,8 @@ static INPUT_PORTS_START( hbarrel )
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Fire")
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Bomb")
PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Fire")
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Bomb")
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Fire")
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Bomb")
PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_MODIFY("SYSTEM")
@@ -1131,8 +1132,8 @@ static INPUT_PORTS_START( bandit )
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Fire")
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Bomb")
PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Fire")
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Bomb")
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Fire")
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Bomb")
PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNUSED )
#if 0
@@ -1226,8 +1227,8 @@ static INPUT_PORTS_START( birdtry )
// PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Shoot")
// PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Select")
PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNUSED )
-// PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Shoot")
-// PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Select")
+// PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Shoot")
+// PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Select")
PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_MODIFY("SYSTEM")
@@ -1292,8 +1293,8 @@ static INPUT_PORTS_START( baddudes )
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Attack")
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Jump")
PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Attack")
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Jump")
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Attack")
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Jump")
PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_MODIFY("SYSTEM")
@@ -1353,8 +1354,8 @@ static INPUT_PORTS_START( robocop )
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Attack")
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Jump")
PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Attack")
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Jump")
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Attack")
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Jump")
PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_MODIFY("SYSTEM")
@@ -1408,8 +1409,8 @@ static INPUT_PORTS_START( hippodrm )
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Attack")
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Jump")
PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Attack")
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Jump")
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Attack")
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Jump")
PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_MODIFY("SYSTEM")
@@ -1481,8 +1482,8 @@ static INPUT_PORTS_START( slyspy )
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Attack")
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Jump")
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Attack")
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Jump")
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Attack")
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Jump")
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("DSW")
@@ -1525,8 +1526,8 @@ static INPUT_PORTS_START( midres )
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Fire")
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Jump")
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Fire")
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Jump")
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Fire")
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Jump")
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("DSW")
@@ -1564,6 +1565,17 @@ static INPUT_PORTS_START( midres )
PORT_INCLUDE( rotary_ports )
INPUT_PORTS_END
+static INPUT_PORTS_START( midres2 )
+ PORT_INCLUDE( midres )
+
+ // game reads positional buffers but discards the result and instead reads the rotation state from b3
+ // Press once for rotating clockwise, depress and press again for counterclockwise
+ // NB: this matches MD port B-1 control scheme
+ PORT_MODIFY("INPUTS")
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P1 Rotation") PORT_PLAYER(1)
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P2 Rotation") PORT_PLAYER(2)
+INPUT_PORTS_END
+
static INPUT_PORTS_START( midresb )
PORT_INCLUDE( dec0 )
@@ -1571,8 +1583,8 @@ static INPUT_PORTS_START( midresb )
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Fire")
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Jump")
PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Fire")
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Jump")
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Fire")
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Jump")
PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_MODIFY("SYSTEM")
@@ -1622,12 +1634,12 @@ static INPUT_PORTS_START( bouldash )
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) // escape
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) /* Button 3 - only in Service Mode */
// PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL // squeeze diamond
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL // escape
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(2)
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) // squeeze diamond
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) // escape
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED )
// PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 )
@@ -4266,7 +4278,7 @@ GAME( 1989, slyspy, secretag, slyspy, slyspy, dec0_state, init_slysp
GAME( 1989, slyspy3, secretag, slyspy, slyspy, dec0_state, init_slyspy, ROT0, "Data East USA", "Sly Spy (US revision 3)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, slyspy2, secretag, slyspy, slyspy, dec0_state, init_slyspy, ROT0, "Data East USA", "Sly Spy (US revision 2)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, midres, 0, midres, midres, dec0_state, empty_init, ROT0, "Data East Corporation", "Midnight Resistance (World, set 1)", MACHINE_SUPPORTS_SAVE )
-GAME( 1989, midres2, midres, midres, midres, dec0_state, empty_init, ROT0, "Data East Corporation", "Midnight Resistance (World, set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, midres2, midres, midres, midres2, dec0_state, empty_init, ROT0, "Data East Corporation", "Midnight Resistance (World, set 2)", MACHINE_SUPPORTS_SAVE ) // uses button 3 for rotating, later rev?
GAME( 1989, midresu, midres, midres, midres, dec0_state, empty_init, ROT0, "Data East USA", "Midnight Resistance (US)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, midresj, midres, midres, midres, dec0_state, empty_init, ROT0, "Data East Corporation", "Midnight Resistance (Japan)", MACHINE_SUPPORTS_SAVE )
GAME( 1990, bouldash, 0, slyspy, bouldash, dec0_state, init_slyspy, ROT0, "Data East Corporation (licensed from First Star)", "Boulder Dash / Boulder Dash Part 2 (World)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/generalplus_gpl_unknown.cpp b/src/mame/drivers/generalplus_gpl_unknown.cpp
index 5e3a38a0917..dacc222477f 100644
--- a/src/mame/drivers/generalplus_gpl_unknown.cpp
+++ b/src/mame/drivers/generalplus_gpl_unknown.cpp
@@ -66,7 +66,7 @@ private:
required_region_ptr<uint16_t> m_spirom;
required_ioport m_testio;
-
+
uint16_t reg3001_r(offs_t offset);
void reg3001_w(offs_t offset, uint16_t data);
uint16_t reg3002_r(offs_t offset);
@@ -262,7 +262,7 @@ void generalplus_gpl_unknown_state::reg3034_w(offs_t offset, uint16_t data)
void generalplus_gpl_unknown_state::reg3041_audiodac_w(offs_t offset, uint16_t data)
{
-// logerror("%s: reg3041_audiodac_w %04x\n", machine().describe_context(), data);
+// logerror("%s: reg3041_audiodac_w %04x\n", machine().describe_context(), data);
// mapacman only writes 0000 / 7fff / 8000, but is known to have more limited sound than other units
@@ -322,7 +322,7 @@ void generalplus_gpl_unknown_state::reg30e2_w(offs_t offset, uint16_t data)
/* this appears to be querying the SPI Flash, eg.
command 0xab = Read Electonic Signature
command 0x9f = Read ID of the SPI Flash
-
+
[:] ':maincpu' (0075DD): reg3001_w 1c00
[:] ':maincpu' (00769B): reg3001_w 0c00
[:] ':maincpu' (00769F): reg30e2_w 00ab (WITHOUT m_3001 & 0x1000)
@@ -380,9 +380,9 @@ mapacman vectors
4863 irq 1 - just acks by writing 4000 to 3051, no payload
486A irq 2 (used - needed to pass check on value in RAM changing in boot) acks with 2000 to 3051
487D irq 3 (used - needed to pass check on value in RAM changing shortly after) acks with 0100 to 3051?
- 4886 irq 4 - just acks by writing 10 to 3051, no payload
+ 4886 irq 4 - just acks by writing 10 to 3051, no payload
488C irq 5 - push/pop/return
- 488F irq 6 - push/pop/return
+ 488F irq 6 - push/pop/return
4892 irq 7 - minimal payload, no 3051 ack?
*/
@@ -429,15 +429,15 @@ void generalplus_gpl_unknown_state::reg3092_lcd_w(offs_t offset, uint16_t data)
/*
if (m_displayposx == 256)
{
- m_displayposy++;
- m_displayposx = 0;
+ m_displayposy++;
+ m_displayposx = 0;
}
*/
/*
if (m_displayposy == 128)
{
- m_displayposy = 0;
- m_displayposx = 0;
+ m_displayposy = 0;
+ m_displayposx = 0;
}
*/
}
diff --git a/src/mame/drivers/hankin.cpp b/src/mame/drivers/hankin.cpp
index 315eebda143..b4d33270b5b 100644
--- a/src/mame/drivers/hankin.cpp
+++ b/src/mame/drivers/hankin.cpp
@@ -654,8 +654,8 @@ ROM_END
} // Anonymous namespace
-GAME(1978, fjholden, 0, hankin, hankin, hankin_state, empty_init, ROT0, "Hankin", "FJ Holden", MACHINE_IS_SKELETON_MECHANICAL )
-GAME(1978, orbit1, 0, hankin, hankin, hankin_state, empty_init, ROT0, "Hankin", "Orbit 1", MACHINE_IS_SKELETON_MECHANICAL )
-GAME(1980, shark, 0, hankin, hankin, hankin_state, empty_init, ROT0, "Hankin", "Shark", MACHINE_IS_SKELETON_MECHANICAL )
-GAME(1980, howzat, 0, hankin, hankin, hankin_state, empty_init, ROT0, "Hankin", "Howzat!", MACHINE_IS_SKELETON_MECHANICAL )
-GAME(1981, empsback, 0, hankin, hankin, hankin_state, empty_init, ROT0, "Hankin", "The Empire Strike Back", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(1978, fjholden, 0, hankin, hankin, hankin_state, empty_init, ROT0, "Hankin", "FJ Holden", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(1978, orbit1, 0, hankin, hankin, hankin_state, empty_init, ROT0, "Hankin", "Orbit 1", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(1980, shark, 0, hankin, hankin, hankin_state, empty_init, ROT0, "Hankin", "Shark", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(1980, howzat, 0, hankin, hankin, hankin_state, empty_init, ROT0, "Hankin", "Howzat!", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(1981, empsback, 0, hankin, hankin, hankin_state, empty_init, ROT0, "Hankin", "The Empire Strikes Back (Hankin Pinball)", MACHINE_IS_SKELETON_MECHANICAL )
diff --git a/src/mame/drivers/hh_b5000.cpp b/src/mame/drivers/hh_b5000.cpp
index b9ebda9e3da..cad33f3aa6e 100644
--- a/src/mame/drivers/hh_b5000.cpp
+++ b/src/mame/drivers/hh_b5000.cpp
@@ -235,14 +235,15 @@ ROM_END
/***************************************************************************
- Mattel Missile Attack (model 2048) / Battlestar Galactica: Space Alert (model 2448)
+ Mattel Missile Attack (model 2048) / Space Alert (model 2448)
* B6000 MCU (label B6001CA/EA, die label B6001)
* 2-digit 7seg display, 21 other leds, 1-bit sound
The initial release was called Missile Attack, it didn't sell well (Mattel
blamed it on NBC for refusing to air their commercial). They changed the
- title/setting and advertised an upcoming rerelease as "Flash Gordon", but
- changed plans and named it "Battlestar Galactica: Space Alert".
+ title/setting and rereleased it as "Space Alert" (aka "Battlestar Galactica:
+ Space Alert"). In 1980, they advertised another rerelease, this time as
+ "Flash Gordon", but that didn't come out.
***************************************************************************/
@@ -716,7 +717,7 @@ ROM_END
// YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
CONS( 1976, autorace, 0, 0, autorace, autorace, autorace_state, empty_init, "Mattel Electronics", "Auto Race", MACHINE_SUPPORTS_SAVE )
-CONS( 1977, misatk, 0, 0, misatk, misatk, misatk_state, empty_init, "Mattel Electronics", "Missile Attack (Mattel)", MACHINE_SUPPORTS_SAVE )
+CONS( 1977, misatk, 0, 0, misatk, misatk, misatk_state, empty_init, "Mattel Electronics", "Missile Attack / Space Alert", MACHINE_SUPPORTS_SAVE )
CONS( 1977, mfootb, 0, 0, mfootb, mfootb, mfootb_state, empty_init, "Mattel Electronics", "Football (Mattel)", MACHINE_SUPPORTS_SAVE )
CONS( 1978, mbaseb, 0, 0, mbaseb, mbaseb, mbaseb_state, empty_init, "Mattel Electronics", "Baseball (Mattel)", MACHINE_SUPPORTS_SAVE )
CONS( 1980, gravity, 0, 0, gravity, gravity, gravity_state, empty_init, "Mattel Electronics", "Gravity (Mattel)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/hng64.cpp b/src/mame/drivers/hng64.cpp
index 569c85e461b..12d1509ab98 100644
--- a/src/mame/drivers/hng64.cpp
+++ b/src/mame/drivers/hng64.cpp
@@ -32,7 +32,7 @@ Notes:
* Xrally and Roads Edge have a symbols table at respectively 0xb2f30 and 0xe10c0
ToDo:
- * Sprite garbage in Beast Busters 2nd Nightmare, another irq issue?
+ * Sprite garbage in Beast Busters: Second Nightmare, another irq issue?
* Samurai Shodown 64 2 puts "Press 1p & 2p button" msg in gameplay, known to be a MCU simulation issue, i/o port 4 doesn't
seem to be just an input port but controls program flow too.
* Work out the purpose of the interrupts and how many are needed.
@@ -74,11 +74,11 @@ This is a 3D system comprising....
There are only 7 games on this system. In some cases the game name changes depending on the BIOS region.
The games in order of release are....
-001 Roads Edge / Round Trip
+001 Roads Edge / Round Trip RV
002 Samurai Shodown 64 / Samurai Spirits 64
003 Xtreme Rally / Off Beat Racer!
-004 Beast Busters 2nd Nightmare
-005 Samurai Shodown: Warrior's Rage / Samurai Spirits 2: Asura Zanmaden
+004 Beast Busters: Second Nightmare
+005 Samurai Shodown 64: Warriors Rage / Samurai Spirits 2: Asura Zanmaden
006 Fatal Fury: Wild Ambition / Garou Densetsu: Wild Ambition
007 Buriki One: World Grapple Tournament '99 in Tokyo
@@ -257,7 +257,7 @@ A special I/O board is required to boot the system which plugs into two custom c
There are 3 types:
LVS-IOJ runs the driving games and the Samurai Showdown games.
LVS-JAM runs all of the fighting games.
-LVS-IGX runs the gun game (Beast Busters 2nd Nightmare).
+LVS-IGX runs the gun game (Beast Busters: Second Nightmare).
Note using an incompatible game and I/O board combination will result in an error at bootup 'MACHINE CODE ERROR'
For the driving games the network is also checked.
As a work-around, to satisfy the network check on driving games simply join CON8 pins 1, 3, 5, 6, 7 & 8 then the
@@ -348,7 +348,7 @@ Notes:
The second I/O board 'LVS-IGX' dated 10-11-1997 does not have a JAMMA edge connector. It has the same 6-pin JST VH power connector on the
bottom of the board. There are several JST XA connectors for hooking up the controls. There is no audio power AMP or volume pot on the
-board. This board only runs the gun game 'Beast Busters 2nd Nightmare'.
+board. This board only runs the gun game 'Beast Busters: Second Nightmare'.
LVS-IGX SNK 1997.11.10
|---------------------------------------------|
@@ -493,16 +493,16 @@ The actual carts are only about 1/4 to 1/3rd populated.
Some of the IC locations between DG1 and DG2 are different also. See the source code below
for the exact number of ROMs used per game and ROM placements.
-Games that use the LVS-DG1 cart: Road's Edge / Round Trip
+Games that use the LVS-DG1 cart: Road's Edge / Round Trip RV
Xtreme Rally / Off Beat Racer!
- Beast Busters 2nd Nightmare
+ Beast Busters: Second Nightmare
Samurai Shodown 64 / Samurai Spirits 64
-Games that use the LVS-DG2 cart: Fatal Fury: Wild Ambition
- Buriki One
- Samurai Shodown: Warrior's Rage / Samurai Spirits 2: Asura Zanmaden
+Games that use the LVS-DG2 cart: Fatal Fury: Wild Ambition / Garou Densetsu: Wild Ambition
+ Buriki One: World Grapple Tournament '99 in Tokyo
+ Samurai Shodown 64: Warriors Rage / Samurai Spirits 2: Asura Zanmaden
-There might be a Rev.A program for Buriki One and Round Trip, we have Rev. B dumps.
+There might be a Rev.A program for Buriki One and Round Trip RV, we have Rev. B dumps.
pr = program
sc = scroll characters
@@ -2919,10 +2919,10 @@ ROM_END
GAME( 1997, hng64, 0, hng64_default, hng64, hng64_state, init_hng64, ROT0, "SNK", "Hyper NeoGeo 64 Bios", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND|MACHINE_IS_BIOS_ROOT )
/* Games */
-GAME( 1997, roadedge, hng64, hng64_drive, hng64_drive, hng64_state, init_roadedge, ROT0, "SNK", "Roads Edge / Round Trip (rev.B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) /* 001 */
+GAME( 1997, roadedge, hng64, hng64_drive, hng64_drive, hng64_state, init_roadedge, ROT0, "SNK", "Roads Edge / Round Trip RV (rev.B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) /* 001 */
GAME( 1998, sams64, hng64, hng64_fight, hng64_fight, hng64_state, init_ss64, ROT0, "SNK", "Samurai Shodown 64 / Samurai Spirits 64", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) /* 002 */
GAME( 1998, xrally, hng64, hng64_drive, hng64_drive, hng64_state, init_hng64_drive, ROT0, "SNK", "Xtreme Rally / Off Beat Racer!", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) /* 003 */
-GAME( 1998, bbust2, hng64, hng64_shoot, hng64_shoot, hng64_state, init_hng64_shoot, ROT0, "SNK", "Beast Busters 2nd Nightmare", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) /* 004 */
-GAME( 1998, sams64_2, hng64, hng64_fight, hng64_fight, hng64_state, init_ss64, ROT0, "SNK", "Samurai Shodown: Warrior's Rage / Samurai Spirits 2: Asura Zanmaden", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) /* 005 */
-GAME( 1998, fatfurwa, hng64, hng64_fight, hng64_fight, hng64_state, init_hng64_fght, ROT0, "SNK", "Fatal Fury: Wild Ambition (rev.A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) /* 006 */
-GAME( 1999, buriki, hng64, hng64_fight, hng64_fight, hng64_state, init_hng64_fght, ROT0, "SNK", "Buriki One (rev.B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) /* 007 */
+GAME( 1998, bbust2, hng64, hng64_shoot, hng64_shoot, hng64_state, init_hng64_shoot, ROT0, "SNK", "Beast Busters: Second Nightmare", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) /* 004 */
+GAME( 1998, sams64_2, hng64, hng64_fight, hng64_fight, hng64_state, init_ss64, ROT0, "SNK", "Samurai Shodown 64: Warriors Rage / Samurai Spirits 2: Asura Zanmaden", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) /* 005 */
+GAME( 1998, fatfurwa, hng64, hng64_fight, hng64_fight, hng64_state, init_hng64_fght, ROT0, "SNK", "Fatal Fury: Wild Ambition / Garou Densetsu: Wild Ambition (rev.A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) /* 006 */
+GAME( 1999, buriki, hng64, hng64_fight, hng64_fight, hng64_state, init_hng64_fght, ROT0, "SNK", "Buriki One: World Grapple Tournament '99 in Tokyo (rev.B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) /* 007 */
diff --git a/src/mame/drivers/jpmsys5sw.cpp b/src/mame/drivers/jpmsys5sw.cpp
index 4c188005b41..8e226fab7db 100644
--- a/src/mame/drivers/jpmsys5sw.cpp
+++ b/src/mame/drivers/jpmsys5sw.cpp
@@ -1632,4 +1632,4 @@ GAME( 199?, j5revoa, j5revo, jpmsys5_ym, popeye, jpmsys5_state, empty_init,
GAMEL( 199?, j5sizl, 0, jpmsys5_ym, popeye, jpmsys5_state, empty_init, ROT0, "JPM", "Sizzling (JPM) (SYSTEM5)", GAME_FLAGS, layout_j5sizl )
-GAME( 1990, j5hilos, 0, jpmsys5_ym, popeye, jpmsys5_state, empty_init, ROT0, "JPM", "Hi-Ho Silver (JPM) (SYSTEM5)", GAME_FLAGS )
+GAME( 1990, j5hilos, 0, jpmsys5_ym, popeye, jpmsys5_state, empty_init, ROT0, "JPM", "Hi-Lo Silver (JPM) (SYSTEM5)", GAME_FLAGS )
diff --git a/src/mame/drivers/kaypro.cpp b/src/mame/drivers/kaypro.cpp
index e3b036f9ff8..1c1d8367c11 100644
--- a/src/mame/drivers/kaypro.cpp
+++ b/src/mame/drivers/kaypro.cpp
@@ -7,15 +7,15 @@
and 1x sio. One of the sio ports communicated with the keyboard with a coiled
telephone cord, complete with modular plug on each end. The keyboard carries
its own Intel 87C51 processor and is an intelligent device.
-
- Kaypro 5 notes:
- The Kaycomp Kay Pro V / Non-Linear Systems Kaypro 5: https://retrocmp.de/kaypro/kay-p1_vers.htm#kay-5,
- a version of the Kaypro II, but with a 5MB harddisk instead of one of the floppy drives, was announced
- in December 1982, but apart from the relevant articles of the time, only one photo can be found.
-
+
+ Kaypro 5 notes:
+ The Kaycomp Kay Pro V / Non-Linear Systems Kaypro 5: https://retrocmp.de/kaypro/kay-p1_vers.htm#kay-5,
+ a version of the Kaypro II, but with a 5MB harddisk instead of one of the floppy drives, was announced
+ in December 1982, but apart from the relevant articles of the time, only one photo can be found.
+
Kaypro 10 notes:
- This machine comes with a 10MB hard drive, split into 2 5MB partitions. It also has one floppy drive.
- The drive letters change depending on what drive it was booted from. The boot drive is always A:.
+ This machine comes with a 10MB hard drive, split into 2 5MB partitions. It also has one floppy drive.
+ The drive letters change depending on what drive it was booted from. The boot drive is always A:.
- If booted from floppy:
A: floppy
B: HD partition 1
diff --git a/src/mame/drivers/ksys573.cpp b/src/mame/drivers/ksys573.cpp
index c909cfe6cbd..4dad8c5d747 100644
--- a/src/mame/drivers/ksys573.cpp
+++ b/src/mame/drivers/ksys573.cpp
@@ -294,14 +294,14 @@ K: uses alt. ext. analog I/O board GX700-PWB(K)
GX700-PWB(K)A (C)2000 KONAMI
|-----------------------------|
-| CN9 CN4 |
+| CN9 CN4 |
| CN3 CN5 |
| |
| U2 U1 |
| |-----------------|
| CN6 |
| U3 U4 U5 U6 |
-| U7 U8 U9-U16 |
+| U7 U8 U9-U16 |
| U17 U18 |
| |
| U19 |
@@ -310,27 +310,27 @@ GX700-PWB(K)A (C)2000 KONAMI
|-----------------------------------------------|
Notes: (all ICs shown)
- CN1 - (bottom) Connector joining this PCB to the MAIN PCB
- CN2 - (unpopulated custom 80-pin)
- CN3 - JST ??12
- CN4 - JST ??12
- CN5 - JST ??12
- CN6 - JST ??10
- CN7 - (unpopulated 5-pin)
- CN8 - (unpopulated 8-pin)
- CN9 - (unpopulated 4-pin)
- U1 - Maxim DS2401 (SOIC6)
- U2 - (unpopulated SOIC8)
- U3 - Motorola 74LS74A (SOIC14)
- U4,U5,U6 - Motorola 74LS244 (SOIC20)
- U7 - (unpopulated 4-pad)
- U8 - AMD PALCE16V8Q-15, stamped 'X700K01' (DIP20)
- U9-16 - Sharp PC817XF (DIP4)
- U17 - TI 74LV245A (SOIC20)
- U18 - Motorola 74LS273 (SOIC20)
- U19 - (unpopulated PLCC44 socket)
- U20 - (unpopulated SOIC16)
- U21 - (unpopulated SOIC16)
+ CN1 - (bottom) Connector joining this PCB to the MAIN PCB
+ CN2 - (unpopulated custom 80-pin)
+ CN3 - JST ??12
+ CN4 - JST ??12
+ CN5 - JST ??12
+ CN6 - JST ??10
+ CN7 - (unpopulated 5-pin)
+ CN8 - (unpopulated 8-pin)
+ CN9 - (unpopulated 4-pin)
+ U1 - Maxim DS2401 (SOIC6)
+ U2 - (unpopulated SOIC8)
+ U3 - Motorola 74LS74A (SOIC14)
+ U4,U5,U6 - Motorola 74LS244 (SOIC20)
+ U7 - (unpopulated 4-pad)
+ U8 - AMD PALCE16V8Q-15, stamped 'X700K01' (DIP20)
+ U9-16 - Sharp PC817XF (DIP4)
+ U17 - TI 74LV245A (SOIC20)
+ U18 - Motorola 74LS273 (SOIC20)
+ U19 - (unpopulated PLCC44 socket)
+ U20 - (unpopulated SOIC16)
+ U21 - (unpopulated SOIC16)
PCMCIA Flash Card
diff --git a/src/mame/drivers/minitel_2_rpic.cpp b/src/mame/drivers/minitel_2_rpic.cpp
index 1b4301c0c24..a9618f4b94b 100644
--- a/src/mame/drivers/minitel_2_rpic.cpp
+++ b/src/mame/drivers/minitel_2_rpic.cpp
@@ -25,7 +25,7 @@
What is implemented but not working :
- - The rear serial port.(Prise péri-informatique)
+ - The rear serial port.(Prise péri-informatique)
(Internal 8051 serial port emulation missing).
What is not yet implemented :
@@ -197,12 +197,12 @@ void minitel_state::port1_w(uint8_t data)
{
LOG("PORT_1_MDM_TXD : %d \n", data & PORT_1_MDM_TXD );
}
-
+
if(lineconnected)
{
m_modem->write_txd(!!(data & PORT_1_MDM_TXD));
}
-
+
if( (port1 ^ data) & PORT_1_MDM_RTS )
{
LOG("PORT_1_MDM_RTS : %d \n", data & PORT_1_MDM_RTS );
diff --git a/src/mame/drivers/mk98.cpp b/src/mame/drivers/mk98.cpp
index 4039ad0db31..63a4bf6a372 100644
--- a/src/mame/drivers/mk98.cpp
+++ b/src/mame/drivers/mk98.cpp
@@ -382,7 +382,7 @@ uint8_t mk98_state::video_r(offs_t offset)
case 5:
return video_register_r();
}
-
+
return 0xff;
}
@@ -418,16 +418,16 @@ void mk98_state::mk98_map(address_map &map)
void mk98_state::mk98_io(address_map &map)
{
map.unmap_value_low();
-// map(0x0000, 0x000f).unmaprw();
+// map(0x0000, 0x000f).unmaprw();
map(0x0020, 0x002f).rw(m_pic8259, FUNC(mk98pic_device::read), FUNC(mk98pic_device::write));
map(0x0040, 0x004f).rw("pit8254", FUNC(pit8254_device::read), FUNC(pit8254_device::write));
map(0x0060, 0x0063).rw(FUNC(mk98_state::keyboard_r), FUNC(mk98_state::keyboard_w));
-// unidentified devices
-// map(0x00a0, 0x00a1).unmapw();
-// map(0x0110, 0x0111).unmapw();
-// map(0x0112, 0x0113).unmaprw();
-// map(0x0150, 0x0150).unmapw(); -- cart slot select
-// map(0x0170, 0x0170).unmapw();
+// unidentified devices
+// map(0x00a0, 0x00a1).unmapw();
+// map(0x0110, 0x0111).unmapw();
+// map(0x0112, 0x0113).unmaprw();
+// map(0x0150, 0x0150).unmapw(); -- cart slot select
+// map(0x0170, 0x0170).unmapw();
map(0x03d0, 0x03df).rw(FUNC(mk98_state::video_r), FUNC(mk98_state::video_w));
map(0x03f8, 0x03fe).rw("uart0", FUNC(ins8250_device::ins8250_r), FUNC(ins8250_device::ins8250_w));
map(0x03ff, 0x03ff).rw(FUNC(mk98_state::serial_r), FUNC(mk98_state::serial_w));
diff --git a/src/mame/drivers/mpu12wbk.cpp b/src/mame/drivers/mpu12wbk.cpp
index ef527a48032..199bd96ba41 100644
--- a/src/mame/drivers/mpu12wbk.cpp
+++ b/src/mame/drivers/mpu12wbk.cpp
@@ -138,9 +138,9 @@
Fruit Star Bonus control panel layout:
.------------------------------------------------------------------------------.
- | .--------. .--------. .--------. .--------. .--------. .--------. .--------. |
+ | .--------. .--------. .--------. .--------. .--------. .--------. .--------. |
| | BET | | TAKE | | STOP 1 | | STOP 2 | | STOP 3 | | STOP 4 | | START | |
- | '--------' '--------' '--------' '--------' '--------' '--------' '--------' |
+ | '--------' '--------' '--------' '--------' '--------' '--------' '--------' |
'------------------------------------------------------------------------------'
@@ -382,8 +382,8 @@
[2022-01-16 to 2022-03-04]
-
- After hard work....
+
+ After hard work....
- Fixed screen matrix according to the CRTC values.
- Improved memory map.
@@ -434,7 +434,7 @@
#include "tilemap.h"
#include "machine/ticket.h"
-#include "fruitstb.lh"
+#include "fruitstb.lh"
#define MASTER_CLOCK XTAL(8'000'000)
@@ -467,7 +467,7 @@ private:
tilemap_t *m_bg_tilemap = nullptr;
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
- required_device<ticket_dispenser_device> m_hopper;
+ required_device<ticket_dispenser_device> m_hopper;
output_finder<15> m_lamps;
void mp12wbk_outport(offs_t offset, uint8_t data);
@@ -491,7 +491,7 @@ private:
82s131 82s147
---------- ----------------------
- 3 2 1 0 7 6 5 4 3 2 1 0 Bits RESNET (Ohms)
+ 3 2 1 0 7 6 5 4 3 2 1 0 Bits RESNET (Ohms)
| | | | | | | | | | | | 3210
| '------------------------------------------- Color R -> ---x ----ZZZ(2200)----+---- RED
| | | | | | | | | | '-------- Color R -> --x- ----ZZZ(1000)----+
@@ -526,7 +526,7 @@ void mpu12wbk_state::mpu12wbk_palette(palette_device &palette) const
for (int i = 0; i < palette.entries(); i++)
{
int data = (color_prom2[i] << 8) | color_prom[i]; // 4bit + 8bit
- data = bitswap<12>(data, 8, 7, 6, 9, 5, 4, 3, 11, 2, 1, 0, 10);
+ data = bitswap<12>(data, 8, 7, 6, 9, 5, 4, 3, 11, 2, 1, 0, 10);
int bit0, bit1, bit2, bit3;
@@ -614,24 +614,24 @@ WRITE_LINE_MEMBER( mpu12wbk_state::crtc_vs )
void mpu12wbk_state::mpu12wbk_map(address_map &map)
{
- map(0x0000, 0x0fff).ram().share("nvram"); // Backed battery MB8464A-10L
- map(0x1300, 0x1300).rw("ay8910", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w)); // OK
- map(0x1301, 0x1301).w("ay8910", FUNC(ay8910_device::address_w)); // OK
- map(0x1400, 0x1400).w("crtc", FUNC(mc6845_device::address_w)); // OK
- map(0x1401, 0x1401).rw("crtc", FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w)); // OK
- map(0x1800, 0x1fff).ram().share("nvram2"); // Backed battery MB8464A-10L
- map(0x2000, 0x2fff).ram().w(FUNC(mpu12wbk_state::mpu12wbk_videoram_w)).share("videoram"); // 1x MB8464A-10L
- map(0x3000, 0x3fff).ram().w(FUNC(mpu12wbk_state::mpu12wbk_colorram_w)).share("colorram"); // 1x MB8464A-10L
-
- map(0x1000, 0x1000).portr("IN0"); // OK
- map(0x1004, 0x1004).portr("IN1"); // OK
- map(0x1008, 0x1008).portr("IN2"); // OK
+ map(0x0000, 0x0fff).ram().share("nvram"); // Backed battery MB8464A-10L
+ map(0x1300, 0x1300).rw("ay8910", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w)); // OK
+ map(0x1301, 0x1301).w("ay8910", FUNC(ay8910_device::address_w)); // OK
+ map(0x1400, 0x1400).w("crtc", FUNC(mc6845_device::address_w)); // OK
+ map(0x1401, 0x1401).rw("crtc", FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w)); // OK
+ map(0x1800, 0x1fff).ram().share("nvram2"); // Backed battery MB8464A-10L
+ map(0x2000, 0x2fff).ram().w(FUNC(mpu12wbk_state::mpu12wbk_videoram_w)).share("videoram"); // 1x MB8464A-10L
+ map(0x3000, 0x3fff).ram().w(FUNC(mpu12wbk_state::mpu12wbk_colorram_w)).share("colorram"); // 1x MB8464A-10L
+
+ map(0x1000, 0x1000).portr("IN0"); // OK
+ map(0x1004, 0x1004).portr("IN1"); // OK
+ map(0x1008, 0x1008).portr("IN2"); // OK
map(0x100c, 0x1018).w(FUNC(mpu12wbk_state::mp12wbk_outport)); // OK
- map(0x1100, 0x1100).portr("SW1"); // OK
+ map(0x1100, 0x1100).portr("SW1"); // OK
- map(0x8000, 0xffff).rom(); // OK
+ map(0x8000, 0xffff).rom(); // OK
};
@@ -643,64 +643,64 @@ void mpu12wbk_state::mpu12wbk_map(address_map &map)
Fruit Star Bonus - Out Ports
----------------------------
- 0x100C D0 Meter Coin ???
- D1 Meter Coin Out
- D2 Meter Coin In
- D3 Lamp Stop Reel 2
- D4 x
- D5 x
- D6 x
- D7 x
-
- 0x1010 D0 Lamp Stop Reel 3
- D1 Lamp Take
- D2 Lamp Stop Reel 4
- D3 Lamp Stop Reel 1
- D4 Start
- D5 Bet
- D6 Unused
- D7 Unused
-
- 0x1014 D0 ?0
- D1 ?0
- D2 ?0
- D3 ?0
- D4 ?0
- D5 ?1
- D6 ?0
- D7 ?0
-
- 0x1018 D0 ?1
- D1 ?1
- D2 ?1
- D3 ?1
- D4 ?1
- D5 x
- D6 ?1/0
- D7 x
+ 0x100C D0 Meter Coin ???
+ D1 Meter Coin Out
+ D2 Meter Coin In
+ D3 Lamp Stop Reel 2
+ D4 x
+ D5 x
+ D6 x
+ D7 x
+
+ 0x1010 D0 Lamp Stop Reel 3
+ D1 Lamp Take
+ D2 Lamp Stop Reel 4
+ D3 Lamp Stop Reel 1
+ D4 Start
+ D5 Bet
+ D6 Unused
+ D7 Unused
+
+ 0x1014 D0 ?0
+ D1 ?0
+ D2 ?0
+ D3 ?0
+ D4 ?0
+ D5 ?1
+ D6 ?0
+ D7 ?0
+
+ 0x1018 D0 ?1
+ D1 ?1
+ D2 ?1
+ D3 ?1
+ D4 ?1
+ D5 x
+ D6 ?1/0
+ D7 x
*/
void mpu12wbk_state::mp12wbk_outport(offs_t offset, uint8_t data)
{
-// logerror("Offset: %x - Data:%x\n", offset, data);
-
+// logerror("Offset: %x - Data:%x\n", offset, data);
+
switch( offset )
{
// 0x100C
- case 0x00: machine().bookkeeping().coin_counter_w(0, BIT(data, 0)); // M1 - Coins ???.
+ case 0x00: machine().bookkeeping().coin_counter_w(0, BIT(data, 0)); // M1 - Coins ???.
machine().bookkeeping().coin_counter_w(1, BIT(data, 1)); // M2 - Coins Out.
machine().bookkeeping().coin_counter_w(2, BIT(data, 2)); // M3 - Coins In.
m_lamps[6] = BIT(data, 3); // lamp6 (Stop 1) ok
break;
// 0x1010
- case 0x04: m_lamps[0] = BIT(data, 0); // lamp0 (Stop 3) ok
+ case 0x04: m_lamps[0] = BIT(data, 0); // lamp0 (Stop 3) ok
m_lamps[1] = BIT(data, 1); // lamp1 (Take)
m_lamps[2] = BIT(data, 2); // lamp2 (Stop 4) ok
m_lamps[3] = BIT(data, 3); // lamp3 (Stop 1) ok
m_lamps[4] = BIT(data, 4); // lamp4 (Start) ok
- m_lamps[5] = BIT(data, 5); // lamp5 (Bet) ok
+ m_lamps[5] = BIT(data, 5); // lamp5 (Bet) ok
break;
// 0x1014
@@ -708,9 +708,9 @@ void mpu12wbk_state::mp12wbk_outport(offs_t offset, uint8_t data)
break;
// 0x1018
- case 0x0c: break;
+ case 0x0c: break;
}
-};
+};
/********************************
@@ -723,122 +723,122 @@ void mpu12wbk_state::mp12wbk_outport(offs_t offset, uint8_t data)
---- 0x1000 ----
- D0 KeyOut
- D1 Coin2 / Change (Partial KeyOut). (DSW#3 ON for Coin2 Mode. OFF for Change Mode)
- D2 Payout (Hopper)
- D3 -
- D4 Hopper coin out
- D5 Coin3
- D6 KeyIn1 -> Stop1 -> 100 Credits
- -> Stop2 -> 1000 Credits
- -> Stop3 -> 100 Credits
- -> Take -> Clear
- -> Stop4 -> Accounting
-
- D7 Service -> Stop1 -> Program -> Stop1 -> Coin In 2 (0-20, 30, 40, 50, 60, 70, 80, 90, 100)
- -> Stop2 -> Coin In 3 (0-20, 30, 40, 50, 60, 70, 80, 90, 100)
- -> Stop3 -> Max Bet (DSW#5 ON) (1, 2, 3, 4, 5, 10, 20)
- -> Stop4 -> Coin Out (x1, x2, x3, x4)
- -> Bet -> Coin In 1 (0-20, 30, 40, 50, 60, 70, 80, 90, 100)
- -> Start -> End
-
- -> Stop2 -> Print Accounting 2
- -> Stop4 -> Screen Test / Lamp Test
- -> Start -> End
- -> Stop3 -> Hopper Fill
- -> Take -> 5 Seconds -> Data Clear
- -> Coin1 -> Button Echo
-
-
+ D0 KeyOut
+ D1 Coin2 / Change (Partial KeyOut). (DSW#3 ON for Coin2 Mode. OFF for Change Mode)
+ D2 Payout (Hopper)
+ D3 -
+ D4 Hopper coin out
+ D5 Coin3
+ D6 KeyIn1 -> Stop1 -> 100 Credits
+ -> Stop2 -> 1000 Credits
+ -> Stop3 -> 100 Credits
+ -> Take -> Clear
+ -> Stop4 -> Accounting
+
+ D7 Service -> Stop1 -> Program -> Stop1 -> Coin In 2 (0-20, 30, 40, 50, 60, 70, 80, 90, 100)
+ -> Stop2 -> Coin In 3 (0-20, 30, 40, 50, 60, 70, 80, 90, 100)
+ -> Stop3 -> Max Bet (DSW#5 ON) (1, 2, 3, 4, 5, 10, 20)
+ -> Stop4 -> Coin Out (x1, x2, x3, x4)
+ -> Bet -> Coin In 1 (0-20, 30, 40, 50, 60, 70, 80, 90, 100)
+ -> Start -> End
+
+ -> Stop2 -> Print Accounting 2
+ -> Stop4 -> Screen Test / Lamp Test
+ -> Start -> End
+ -> Stop3 -> Hopper Fill
+ -> Take -> 5 Seconds -> Data Clear
+ -> Coin1 -> Button Echo
+
+
---- 0x1004 ----
- D0 Stop2
- D1 Stop1
- D2 Stop3
- D3 Stop4
- D4 Start/Double
- D5 Take
- D6 Bet / Half Gamble
- D7 KeyIn2 -> Stop1 -> 100 Credits
- -> Stop2 -> 1000 Credits
- -> Stop3 -> 100 Credits
- -> Take -> Clear
+ D0 Stop2
+ D1 Stop1
+ D2 Stop3
+ D3 Stop4
+ D4 Start/Double
+ D5 Take
+ D6 Bet / Half Gamble
+ D7 KeyIn2 -> Stop1 -> 100 Credits
+ -> Stop2 -> 1000 Credits
+ -> Stop3 -> 100 Credits
+ -> Take -> Clear
---- 0x1008 ----
- D0 Coin1
- D1 Unknown
- D2 Operator Accounting
- D3 Unknown
- D4 Unknown
- D5 Unknown
- D6 Unknown
- D7 Unknown
+ D0 Coin1
+ D1 Unknown
+ D2 Operator Accounting
+ D3 Unknown
+ D4 Unknown
+ D5 Unknown
+ D6 Unknown
+ D7 Unknown
*/
static INPUT_PORTS_START( mpu12wbk )
PORT_START("IN0") // 0x1000
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) // DSW#2 OFF = Change; DSW#2 ON = Coin2
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) // DSW#2 OFF = Change; DSW#2 ON = Coin2
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("0-4") PORT_CODE(KEYCODE_S) // unknown
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("0-4") PORT_CODE(KEYCODE_S) // unknown
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN3 )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Supervisor Key") PORT_CODE(KEYCODE_8) PORT_TOGGLE // key in / other features
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Service") PORT_CODE(KEYCODE_0) // all settings
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Supervisor Key") PORT_CODE(KEYCODE_8) PORT_TOGGLE // key in / other features
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Service") PORT_CODE(KEYCODE_0) // all settings
PORT_START("IN1") // 0x1004
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Stop 2") // button 4 in layout.
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Stop 1") // button 3 in layout.
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Stop 3 / Paytable") // button 5 in layout.
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Stop 4 / Paytable") // button 6 in layout.
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start / Double (Doppeln)") // button 7 in layout.
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE ) PORT_NAME("Take (Loeschen-Nehmen)") // button 2 in layout.
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) PORT_NAME("Bet / Half Gamble") // button 1 in layout.
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Stop 2") // button 4 in layout.
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Stop 1") // button 3 in layout.
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Stop 3 / Paytable") // button 5 in layout.
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Stop 4 / Paytable") // button 6 in layout.
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start / Double (Doppeln)") // button 7 in layout.
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE ) PORT_NAME("Take (Loeschen-Nehmen)") // button 2 in layout.
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) PORT_NAME("Bet / Half Gamble") // button 1 in layout.
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Attendant Key") PORT_CODE(KEYCODE_9) PORT_TOGGLE // key in / in-out accounts
PORT_START("IN2") // 0x1008
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("2-2") PORT_CODE(KEYCODE_F) // unknown
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("2-2") PORT_CODE(KEYCODE_F) // unknown
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Operator Accounting") PORT_CODE(KEYCODE_E) PORT_TOGGLE // in-out accounts
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("2-4") PORT_CODE(KEYCODE_G) // unknown
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("2-5") PORT_CODE(KEYCODE_H) // unknown
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("2-6") PORT_CODE(KEYCODE_J) // unknown
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("2-7") PORT_CODE(KEYCODE_K) // unknown
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("2-8") PORT_CODE(KEYCODE_L) // unknown
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("2-4") PORT_CODE(KEYCODE_G) // unknown
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("2-5") PORT_CODE(KEYCODE_H) // unknown
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("2-6") PORT_CODE(KEYCODE_J) // unknown
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("2-7") PORT_CODE(KEYCODE_K) // unknown
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("2-8") PORT_CODE(KEYCODE_L) // unknown
PORT_START("SW1") // 0x1100
- PORT_DIPNAME( 0x01, 0x01, "Enable Remote Accounts Clear" ) PORT_DIPLOCATION("SW1:1")
+ PORT_DIPNAME( 0x01, 0x01, "Enable Remote Accounts Clear" ) PORT_DIPLOCATION("SW1:1")
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x02, "Quick Start on Max Bet" ) PORT_DIPLOCATION("SW1:2")
+ PORT_DIPNAME( 0x02, 0x02, "Quick Start on Max Bet" ) PORT_DIPLOCATION("SW1:2")
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x00, "Coin 2 Settings" ) PORT_DIPLOCATION("SW1:3")
+ PORT_DIPNAME( 0x04, 0x00, "Coin 2 Settings" ) PORT_DIPLOCATION("SW1:3")
PORT_DIPSETTING( 0x04, "Change" )
PORT_DIPSETTING( 0x00, "Coin 2" )
- PORT_DIPNAME( 0x08, 0x08, "Key In" ) PORT_DIPLOCATION("SW1:4")
+ PORT_DIPNAME( 0x08, 0x08, "Key In" ) PORT_DIPLOCATION("SW1:4")
PORT_DIPSETTING( 0x08, "Enable" )
PORT_DIPSETTING( 0x00, "Disable" )
- PORT_DIPNAME( 0x10, 0x00, "Max Bet Settings" ) PORT_DIPLOCATION("SW1:5")
+ PORT_DIPNAME( 0x10, 0x00, "Max Bet Settings" ) PORT_DIPLOCATION("SW1:5")
PORT_DIPSETTING( 0x10, "Allow" )
PORT_DIPSETTING( 0x00, "Deny" )
- PORT_DIPNAME( 0x20, 0x20, "Currency" ) PORT_DIPLOCATION("SW1:6")
+ PORT_DIPNAME( 0x20, 0x20, "Currency" ) PORT_DIPLOCATION("SW1:6")
PORT_DIPSETTING( 0x20, "Credits" )
PORT_DIPSETTING( 0x00, "Euro Currency" )
- PORT_DIPNAME( 0x40, 0x40, "Autostop") PORT_DIPLOCATION("SW1:7")
+ PORT_DIPNAME( 0x40, 0x40, "Autostop") PORT_DIPLOCATION("SW1:7")
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "Hopper" ) PORT_DIPLOCATION("SW1:8")
+ PORT_DIPNAME( 0x80, 0x80, "Hopper" ) PORT_DIPLOCATION("SW1:8")
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@@ -853,8 +853,8 @@ static const gfx_layout charlayout =
4,8,
RGN_FRAC(1,3),
6,
-// the first two bitplanes are inverted...
- { RGN_FRAC(0,3) + 4, RGN_FRAC(0,3), RGN_FRAC(1,3), RGN_FRAC(1,3) + 4, RGN_FRAC(2,3), RGN_FRAC(2,3) + 4 },
+// the first two bitplanes are inverted...
+ { RGN_FRAC(0,3) + 4, RGN_FRAC(0,3), RGN_FRAC(1,3), RGN_FRAC(1,3) + 4, RGN_FRAC(2,3), RGN_FRAC(2,3) + 4 },
{ 3, 2, 1, 0 },
{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
8*4*2
@@ -892,8 +892,8 @@ void mpu12wbk_state::mpu12wbk(machine_config &config)
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
// Default screen values analyzing the MC6845 setup / init.
- screen.set_size((48+1)*8, (48+1)*8); // From MC6845, registers 00 & 04. (value-1)
- screen.set_visarea(0*8, 48*8-1, 0*8, 32*8-1); // Driven by MC6845, registers 01 & 06
+ screen.set_size((48+1)*8, (48+1)*8); // From MC6845, registers 00 & 04. (value-1)
+ screen.set_visarea(0*8, 48*8-1, 0*8, 32*8-1); // Driven by MC6845, registers 01 & 06
screen.set_screen_update(FUNC(mpu12wbk_state::screen_update_mpu12wbk));
GFXDECODE(config, m_gfxdecode, "palette", gfx_mpu12wbk);
@@ -905,7 +905,7 @@ void mpu12wbk_state::mpu12wbk(machine_config &config)
crtc.set_char_width(4);
//crtc.out_vsync_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
crtc.out_vsync_callback().set(FUNC(mpu12wbk_state::crtc_vs));
-
+
// sound hardware
SPEAKER(config, "mono").front_center();
AY8910(config, "ay8910", MASTER_CLOCK / 4).add_route(ALL_OUTPUTS, "mono", 1.00); // clock guessed
@@ -985,7 +985,7 @@ ROM_END
The game displays 8.30UNG-200 in the service mode)
- Even when the version is higher in number,
+ Even when the version is higher in number,
program and graphics are older.
*/
@@ -1021,7 +1021,7 @@ ROM_END
Program flash ROM is inside a CPU epoxy block
with M6809 CPU and one PLD.
- Even when the version is higher in number,
+ Even when the version is higher in number,
program and graphics are older.
*/
diff --git a/src/mame/drivers/photoply.cpp b/src/mame/drivers/photoply.cpp
index 9fcc803a738..5f360111387 100644
--- a/src/mame/drivers/photoply.cpp
+++ b/src/mame/drivers/photoply.cpp
@@ -349,10 +349,10 @@ ROM_START(photoply99sp)
-Atmel AT89C2051 MCU (2KBytes internal ROM)
-Xtal 11.05MHz
-24C08W6 SEEPROM
- -HC132
+ -HC132
On each dongle there's a sticker with the revision number, but we've found the same MCU program on different revisions and
different SEEPROM contents on the same revision. We're adding here every found combination of MCU program and SEEPROM content.
- */
+ */
ROM_REGION(0xC00, "dongle", 0)
// Same MCU program as "pp_99_dongle_r3a", and "pp_99_dongle_r1" but with unique SEEPROM content
diff --git a/src/mame/drivers/roland_tnsc1.cpp b/src/mame/drivers/roland_tnsc1.cpp
new file mode 100644
index 00000000000..75ec9866772
--- /dev/null
+++ b/src/mame/drivers/roland_tnsc1.cpp
@@ -0,0 +1,70 @@
+// license:BSD-3-Clause
+// copyright-holders:
+
+/*
+ This is just a holder for the Roland "Style Data ROM" Software List to ensure they aren't orphaned
+ These "Style Data ROM" cards are used by various devices, but none of the devices have been dumped
+
+ Once a supported system is dumped this can be removed and the list can be hooked up to that
+
+ Possible systems:
+ Roland E-5
+ Roland E-20
+ Roland E-30
+ Roland E-35
+ Roland E-70
+ Roland Pro-E
+ Roland E/RA-50
+ Roland RA-90
+ Roland CA-30
+ Roland KR-500
+ Roland KR-3000
+*/
+
+#include "emu.h"
+#include "bus/generic/slot.h"
+#include "bus/generic/carts.h"
+#include "softlist_dev.h"
+
+
+class rlndtnsc1_state : public driver_device
+{
+public:
+ rlndtnsc1_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
+ m_cart(*this, "cartslot")
+ { }
+
+ void rlndtnsc1(machine_config &config);
+protected:
+ DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart_load);
+ optional_device<generic_slot_device> m_cart;
+};
+
+
+static INPUT_PORTS_START( rlndtnsc1 )
+INPUT_PORTS_END
+
+DEVICE_IMAGE_LOAD_MEMBER(rlndtnsc1_state::cart_load)
+{
+ uint32_t size = m_cart->common_get_size("rom");
+ m_cart->rom_alloc(size, GENERIC_ROM16_WIDTH, ENDIANNESS_LITTLE);
+ m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom");
+ return image_init_result::PASS;
+}
+
+void rlndtnsc1_state::rlndtnsc1(machine_config &config)
+{
+ GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "roland_tnsc1");
+ m_cart->set_width(GENERIC_ROM16_WIDTH);
+ m_cart->set_device_load(FUNC(rlndtnsc1_state::cart_load));
+ m_cart->set_must_be_loaded(true);
+
+ SOFTWARE_LIST(config, "cart_list").set_original("roland_tnsc1");
+}
+
+ROM_START( rlndtnsc1 )
+ROM_END
+
+
+CONS( 198?, rlndtnsc1, 0, 0, rlndtnsc1, rlndtnsc1, rlndtnsc1_state, empty_init, "Roland", "Roland Music Style Card Software List holder", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/senjyo.cpp b/src/mame/drivers/senjyo.cpp
index cf8ccb5184a..dcd83f27ec4 100644
--- a/src/mame/drivers/senjyo.cpp
+++ b/src/mame/drivers/senjyo.cpp
@@ -674,7 +674,7 @@ ROM_START( senjyo )
ROM_LOAD( "08k_10b.bin", 0x0a000, 0x2000, CRC(a9f41ec9) SHA1(c24f9d54593e764a0b4530b1a2550b999916992c) )
ROM_REGION( 0x0020, "proms", 0 ) /* PROMs */
- ROM_LOAD( "07b.bin", 0x0000, 0x0020, CRC(68db8300) SHA1(33cd6b5ed92d7b73a708f2e4b12b6e7f6496d0c6) ) /* unknown - timing? */
+ ROM_LOAD( "07b.bin", 0x0000, 0x0020, CRC(68db8300) SHA1(33cd6b5ed92d7b73a708f2e4b12b6e7f6496d0c6) ) /* waveform */
ROM_END
ROM_START( starforc )
@@ -711,7 +711,7 @@ ROM_START( starforc )
ROM_LOAD( "4.8lm", 0x08000, 0x4000, CRC(dd9d68a4) SHA1(34c60d2b34c7980bf65a5ebadb9c73f89128141f) )
ROM_REGION( 0x0020, "proms", 0 ) /* PROMs */
- ROM_LOAD( "07b.bin", 0x0000, 0x0020, CRC(68db8300) SHA1(33cd6b5ed92d7b73a708f2e4b12b6e7f6496d0c6) ) /* unknown - timing? */
+ ROM_LOAD( "07b.bin", 0x0000, 0x0020, CRC(68db8300) SHA1(33cd6b5ed92d7b73a708f2e4b12b6e7f6496d0c6) ) /* waveform */
ROM_END
ROM_START( starforcb )
@@ -753,7 +753,7 @@ ROM_START( starforcb )
ROM_LOAD( "b10.8l", 0x0a000, 0x2000, CRC(6ea27bec) SHA1(30da81a99d5920107751afda359576e426c497c4) )
ROM_REGION( 0x0020, "proms", 0 ) /* PROMs */
- ROM_LOAD( "a18s030.7b", 0x0000, 0x0020, CRC(68db8300) SHA1(33cd6b5ed92d7b73a708f2e4b12b6e7f6496d0c6) ) /* unknown - timing? */
+ ROM_LOAD( "a18s030.7b", 0x0000, 0x0020, CRC(68db8300) SHA1(33cd6b5ed92d7b73a708f2e4b12b6e7f6496d0c6) ) /* waveform */
ROM_END
ROM_START( starforca )
@@ -795,7 +795,7 @@ ROM_START( starforca )
ROM_LOAD( "10.bin", 0x0a000, 0x2000, CRC(6ea27bec) SHA1(30da81a99d5920107751afda359576e426c497c4) )
ROM_REGION( 0x0020, "proms", 0 ) /* PROMs */
- ROM_LOAD( "prom.bin", 0x0000, 0x0020, CRC(68db8300) SHA1(33cd6b5ed92d7b73a708f2e4b12b6e7f6496d0c6) ) /* unknown - timing? */
+ ROM_LOAD( "prom.bin", 0x0000, 0x0020, CRC(68db8300) SHA1(33cd6b5ed92d7b73a708f2e4b12b6e7f6496d0c6) ) /* waveform */
ROM_END
ROM_START( starforce )
@@ -834,7 +834,7 @@ ROM_START( starforce )
ROM_LOAD( "4.8lm", 0x08000, 0x4000, CRC(dd9d68a4) SHA1(34c60d2b34c7980bf65a5ebadb9c73f89128141f) )
ROM_REGION( 0x0020, "proms", 0 ) /* PROMs */
- ROM_LOAD( "07b.bin", 0x0000, 0x0020, CRC(68db8300) SHA1(33cd6b5ed92d7b73a708f2e4b12b6e7f6496d0c6) ) /* unknown - timing? */
+ ROM_LOAD( "07b.bin", 0x0000, 0x0020, CRC(68db8300) SHA1(33cd6b5ed92d7b73a708f2e4b12b6e7f6496d0c6) ) /* waveform */
ROM_END
ROM_START( megaforc )
@@ -871,7 +871,7 @@ ROM_START( megaforc )
ROM_LOAD( "4.8lm", 0x08000, 0x4000, CRC(dd9d68a4) SHA1(34c60d2b34c7980bf65a5ebadb9c73f89128141f) )
ROM_REGION( 0x0020, "proms", 0 ) /* PROMs */
- ROM_LOAD( "07b.bin", 0x0000, 0x0020, CRC(68db8300) SHA1(33cd6b5ed92d7b73a708f2e4b12b6e7f6496d0c6) ) /* unknown - timing? */
+ ROM_LOAD( "07b.bin", 0x0000, 0x0020, CRC(68db8300) SHA1(33cd6b5ed92d7b73a708f2e4b12b6e7f6496d0c6) ) /* waveform */
ROM_END
ROM_START( megaforcu ) /* While no "For use in the United States" notice, it's licensed to a US company for distribution */
@@ -908,7 +908,7 @@ ROM_START( megaforcu ) /* While no "For use in the United States" notice, it's l
ROM_LOAD( "4.8lm", 0x08000, 0x4000, CRC(dd9d68a4) SHA1(34c60d2b34c7980bf65a5ebadb9c73f89128141f) )
ROM_REGION( 0x0020, "proms", 0 ) /* PROMs */
- ROM_LOAD( "07b.bin", 0x0000, 0x0020, CRC(68db8300) SHA1(33cd6b5ed92d7b73a708f2e4b12b6e7f6496d0c6) ) /* unknown - timing? */
+ ROM_LOAD( "07b.bin", 0x0000, 0x0020, CRC(68db8300) SHA1(33cd6b5ed92d7b73a708f2e4b12b6e7f6496d0c6) ) /* waveform */
ROM_END
ROM_START( baluba )
@@ -945,7 +945,7 @@ ROM_START( baluba )
ROM_LOAD( "3", 0x08000, 0x4000, CRC(7ac24983) SHA1(4ac32d95af3147af5b9b1af1f292bb629c5d4fb9) )
ROM_REGION( 0x0020, "proms", 0 ) /* PROMs */
- ROM_LOAD( "07b.bin", 0x0000, 0x0020, CRC(68db8300) SHA1(33cd6b5ed92d7b73a708f2e4b12b6e7f6496d0c6) ) /* unknown - timing? */
+ ROM_LOAD( "07b.bin", 0x0000, 0x0020, CRC(68db8300) SHA1(33cd6b5ed92d7b73a708f2e4b12b6e7f6496d0c6) ) /* waveform */
ROM_END
diff --git a/src/mame/drivers/spinb.cpp b/src/mame/drivers/spinb.cpp
index 26f99449e90..db87d293340 100644
--- a/src/mame/drivers/spinb.cpp
+++ b/src/mame/drivers/spinb.cpp
@@ -19,7 +19,7 @@ There are mistakes in the sound board schematic: IC14 pin12 goes to IC5 pin13 on
Also, very unobvious is the fact that PIA ports A and B are swapped around compared to the Inder
soundcard.
-
+
Issues with the sound:
- MSM6585 sounds are very slow, like a faulty tape player. MSM5205 sounds are better, although some
speech can be slow.
diff --git a/src/mame/drivers/timetrv.cpp b/src/mame/drivers/timetrv.cpp
index c05012458a7..1ad98d23b3d 100644
--- a/src/mame/drivers/timetrv.cpp
+++ b/src/mame/drivers/timetrv.cpp
@@ -1,23 +1,19 @@
// license:BSD-3-Clause
-// copyright-holders:Angelo Salese
+// copyright-holders:Angelo Salese, Ryan Holtz
/*************************************************************************************************
(Hologram) Time Traveler (c) 1991 Virtual Image Productions / Sega
-preliminary driver by Angelo Salese
+Driver by Angelo Salese
+LaserDisc and artwork hookup by Ryan Holtz
TODO:
-- unemulated Pioneer LDV-4200 and Sony LDP-1450 players, needs a dump of the BIOSes and proper
- hook-up;
-- ICM7243B 14-segment alphanumeric LED display driver
+- Unemulated Sony LDP-1450 player, and Pioneer LD-V4200 is HLE; needs a dump of the BIOSes and
+ proper hook-up.
==================================================================================================
-Time Traveler ROM image
-
-warren@dragons-lair-project.com
-6/25/01
-
+Time Traveler ROM image courtesy of Warren O of the Dragon's Lair Project, 25 Jun. 2001
ROM is a 27C020 (256kbit x 8 = 256 KB)
ROM sticker says 6/18/91
@@ -31,79 +27,189 @@ CPU is an Intel 80188
#include "machine/eeprompar.h"
#include "machine/i8255.h"
#include "machine/ins8250.h"
+#include "machine/ldv4200hle.h"
#include "emupal.h"
-#include "screen.h"
+#include "speaker.h"
+
+#include "timetrv.lh"
+
+namespace {
class timetrv_state : public driver_device
{
public:
timetrv_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_led_vram_lo(*this, "led_vralo"),
- m_led_vram_hi(*this, "led_vrahi"),
- m_maincpu(*this, "maincpu") { }
+ : driver_device(mconfig, type, tag)
+ , m_led_vram_lo(*this, "led_vramlo")
+ , m_led_vram_hi(*this, "led_vramhi")
+ , m_maincpu(*this, "maincpu")
+ , m_uart(*this, "uart")
+ , m_laserdisc(*this, "laserdisc")
+ , m_digits(*this, "digit%u", 0U)
+ , m_decimals(*this, "decimal%u", 0U)
+ , m_cube_lamp(*this, "cube_lamp")
+ , m_player_lamps(*this, "player_lamp%u", 1U)
+ { }
void timetrv(machine_config &config);
private:
- required_shared_ptr<uint8_t> m_led_vram_lo;
- required_shared_ptr<uint8_t> m_led_vram_hi;
- uint8_t test1_r();
- uint8_t test2_r();
- uint8_t in_r();
- virtual void video_start() override;
- uint32_t screen_update_timetrv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
- required_device<cpu_device> m_maincpu;
- void timetrv_io(address_map &map);
+ virtual void machine_start() override;
+
void timetrv_map(address_map &map);
-};
+ void timetrv_io(address_map &map);
+ void ppi1_pc_w(uint8_t data);
+ uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
-void timetrv_state::video_start()
-{
-}
+ template <offs_t Bank> void led_w(offs_t offset, uint8_t data);
+
+ required_shared_ptr<uint8_t> m_led_vram_lo;
+ required_shared_ptr<uint8_t> m_led_vram_hi;
-uint32_t timetrv_state::screen_update_timetrv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+ required_device<cpu_device> m_maincpu;
+ required_device<ns16450_device> m_uart;
+ required_device<pioneer_ldv4200hle_device> m_laserdisc;
+ output_finder<16> m_digits;
+ output_finder<16> m_decimals;
+ output_finder<> m_cube_lamp;
+ output_finder<2> m_player_lamps;
+};
+
+void timetrv_state::machine_start()
{
- popmessage("%s%s",reinterpret_cast<char *>(m_led_vram_lo.target()),reinterpret_cast<char *>(m_led_vram_hi.target()));
- return 0;
+ m_digits.resolve();
+ m_decimals.resolve();
+ m_cube_lamp.resolve();
+ m_player_lamps.resolve();
}
-uint8_t timetrv_state::test1_r()
+void timetrv_state::ppi1_pc_w(uint8_t data)
{
- return ioport("IN0")->read();//machine().rand();
+ // Bit 3: 2P Start lamp
+ // Bit 4: 1P Start lamp
+ // Bit 5: Time Reversal Cube button-lamp
+ // Bit 6: Coin-up/start 'bip' noise
+ m_cube_lamp = BIT(data, 5);
+ m_player_lamps[0] = BIT(data, 4);
+ m_player_lamps[1] = BIT(data, 3);
}
-uint8_t timetrv_state::test2_r()
+uint32_t timetrv_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- /*bit 7,eeprom read bit*/
- return (ioport("IN1")->read() & 0x7f);//machine().rand();
+ return 0;
}
-
-uint8_t timetrv_state::in_r()
+template <offs_t Bank>
+void timetrv_state::led_w(offs_t offset, uint8_t data)
{
- return 0xff;
+ /*
+ 000000000
+ 5B 8 C1
+ 5 B 8 C 1
+ 5 B 8 C 1
+ 6666 7777
+ 4 A 9 D 2
+ 4 A 9 D 2
+ 4A 9 D2
+ 333EEE333
+
+ 00: 0000 0001 1011 1011 0x01bb @
+ 01: 0000 0000 1111 0111 0x00f7 A
+ 02: 0000 0011 1000 1111 0x038f B
+ 03: 0000 0000 0011 1001 0x0039 C
+ 04: 0000 0011 0000 1111 0x030f D
+ 05: 0000 0000 0111 1001 0x0079 E
+ 06: 0000 0000 0111 0001 0x0071 F
+ 07: 0000 0000 1011 1101 0x00bd G
+ 08: 0000 0000 1111 0110 0x00f6 H
+ 09: 0000 0011 0000 0000 0x0300 I
+ 0A: 0000 0000 0001 1110 0x001e J
+ 0B: 0011 0000 0111 0000 0x3070 K
+ 0C: 0000 0000 0011 1000 0x0038 L
+ 0D: 0001 1000 0011 0110 0x1836 M
+ 0E: 0010 1000 0011 0110 0x2836 N
+ 0F: 0000 0000 0011 1111 0x003f O
+ 10: 0000 0000 1111 0011 0x00f3 P
+ 11: 0010 0000 0011 1111 0x203f Q
+ 12: 0010 0000 1111 0011 0x20f3 R
+ 13: 0000 0000 1110 1101 0x00ed S
+ 14: 0000 0011 0000 0001 0x0301 T
+ 15: 0000 0000 0011 1110 0x003e U
+ 16: 0001 0100 0011 0000 0x1430 V
+ 17: 0010 0100 0011 0110 0x2436 W
+ 18: 0011 1100 0000 0000 0x3c00 X
+ 19: 0001 1010 0000 0000 0x1a00 Y
+ 1A: 0001 0100 0000 1001 0x1409 Z
+ 1B: 0011 0000 1000 0000 0x3080 [
+ 1C: 0010 1000 0000 0000 0x2800 Backslash
+ 1D: 0000 1100 0100 0000 0x0c40 ]
+ 1E: 0001 0100 0000 0011 0x1403 Arrow
+ 1F: 0000 0000 0000 1000 0x0008 _
+ 20: 0000 0000 0000 0000 0x0000 Space
+ 21: 0100 0001 0000 0000 0x4100 !
+ 22: 0000 0000 0010 0010 0x0022 "
+ 23: 0000 0011 1100 1110 0x03ce #
+ 24: 0000 0011 1110 1101 0x03ed $
+ 25: 0011 1100 1110 0100 0x3ce4 %
+ 26: 0011 1100 0000 1101 0x3c0d &
+ 27: 0000 0001 0000 0000 0x0100 '
+ 28: 0011 0000 0000 0000 0x3000 (
+ 29: 0000 1100 0000 0000 0x0c00 )
+ 2A: 0011 1111 1100 0000 0x3fc0 *
+ 2B: 0000 0011 1100 0000 0x03c0 +
+ 2C: 0000 0100 0000 0000 0x0400 ,
+ 2D: 0000 0000 1100 0000 0x00c0 -
+ 2E: 0100 0000 0000 0000 0x4000 .
+ 2F: 0001 0100 0000 0000 0x1400 /
+ 30: 0001 0100 0011 1111 0x143f 0
+ 31: 0000 0011 0000 0000 0x0300 1
+ 32: 0000 0000 1101 1011 0x00db 2
+ 33: 0000 0000 1100 1111 0x00cf 3
+ 34: 0000 0000 1110 0110 0x00e6 4
+ 35: 0010 0000 0110 1001 0x2069 5
+ 36: 0000 0000 1111 1101 0x00fd 6
+ 37: 0000 0000 0000 0111 0x0007 7
+ 38: 0000 0000 1111 1111 0x00ff 8
+ 39: 0000 0000 1110 1111 0x00ef 9
+ 3A: 0100 0000 0000 0000 0x4000 :
+ 3B: 0000 0100 0000 0000 0x0400 ;
+ 3C: 0000 0100 0000 1000 0x0408 <
+ 3D: 0000 0000 1100 1000 0x00c8 =
+ 3E: 0010 0000 0000 1000 0x2008 >
+ 3F: 0000 0010 1000 0011 0x0283 ?
+ */
+
+ static uint16_t const s_digit_data[0x40] =
+ {
+ 0x01bb, 0x00f7, 0x038f, 0x0039, 0x030f, 0x0079, 0x0071, 0x00bd, 0x00f6, 0x0300, 0x001e, 0x3070, 0x0038, 0x1836, 0x2836, 0x003f,
+ 0x00f3, 0x203f, 0x20f3, 0x00ed, 0x0301, 0x003e, 0x1430, 0x2436, 0x3c00, 0x1a00, 0x1409, 0x3080, 0x2800, 0x0c40, 0x1403, 0x0008,
+ 0x0000, 0x4100, 0x0022, 0x03ce, 0x03ed, 0x3ce4, 0x3c0d, 0x0100, 0x3000, 0x0c00, 0x3fc0, 0x03c0, 0x0400, 0x00c0, 0x4000, 0x1400,
+ 0x143f, 0x0300, 0x00db, 0x00cf, 0x00e6, 0x2069, 0x00fd, 0x0007, 0x00ff, 0x00ef, 0x4000, 0x0400, 0x0408, 0x00c8, 0x2008, 0x0283
+ };
+
+ const uint16_t digit_data = s_digit_data[data & 0x3f];
+ m_digits[Bank + offset] = digit_data & 0x3fff;
+ m_decimals[Bank + offset] = BIT(digit_data, 14);
}
void timetrv_state::timetrv_map(address_map &map)
{
- map(0x00000, 0x0ffff).ram(); //irq vectors + work ram
+ map(0x00000, 0x0ffff).ram(); // IRQ vectors + work RAM
map(0x10000, 0x107ff).rw("eeprom", FUNC(eeprom_parallel_28xx_device::read), FUNC(eeprom_parallel_28xx_device::write));
map(0xc0000, 0xfffff).rom();
}
void timetrv_state::timetrv_io(address_map &map)
{
- map(0x0122, 0x0123).nopw(); //eeprom write bits
map(0x1000, 0x1003).rw("ppi1", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x1080, 0x1083).rw("ppi2", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x1100, 0x1107).rw("uart", FUNC(ins8250_device::ins8250_r), FUNC(ins8250_device::ins8250_w));
- map(0x1180, 0x1187).ram().share("led_vralo");//led string,part 1
- map(0x1200, 0x1207).ram().share("led_vrahi");//led string,part 2
- map(0xff80, 0xffff).ram(); //am80188-em-like cpu internal regs?
+ map(0x1180, 0x1187).ram().w(FUNC(timetrv_state::led_w<0>)).share(m_led_vram_lo);
+ map(0x1200, 0x1207).ram().w(FUNC(timetrv_state::led_w<8>)).share(m_led_vram_hi);
+ map(0xff80, 0xffff).ram(); // CPU internal registers on 80188
}
@@ -116,35 +222,80 @@ static INPUT_PORTS_START( timetrv )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BILL1 )
PORT_START("IN1")
- PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
+ PORT_BIT( 0x8f, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Attack")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Reversal Cube")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE )
+
+ PORT_START("DSW1")
+ PORT_DIPNAME( 0x03, 0x02, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2")
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( 4C_1C ) )
+ PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:3,4")
+ PORT_DIPSETTING( 0x00, "2" )
+ PORT_DIPSETTING( 0x04, "3" )
+ PORT_DIPSETTING( 0x08, "4" )
+ PORT_DIPSETTING( 0x0c, "5" )
+ PORT_DIPUNUSED_DIPLOC( 0xf0, 0x00, "SW1:5,6,7,8" )
+
+ PORT_START("DSW2")
+ PORT_DIPNAME( 0x01, 0x00, "Max Reversal Cubes" ) PORT_DIPLOCATION("SW2:1")
+ PORT_DIPSETTING( 0x00, "6" )
+ PORT_DIPSETTING( 0x01, "36" )
+ PORT_DIPNAME( 0x0e, 0x04, "Reversal Cube Cost" ) PORT_DIPLOCATION("SW2:2,3,4")
+ PORT_DIPSETTING( 0x00, "1 Coin / 1 Cube" )
+ PORT_DIPSETTING( 0x02, "2 Coins / 1 Cube" )
+ PORT_DIPSETTING( 0x04, "1 Coins / 2 Cubes" )
+ PORT_DIPSETTING( 0x0a, "2 Coins / 3 Cubes" )
+ PORT_DIPSETTING( 0x08, "1 Coin / 3 Cubes" )
+ PORT_DIPSETTING( 0x0e, "1/2 Coins / 1/3 Cubes" )
+ PORT_DIPSETTING( 0x0c, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x06, DEF_STR( Unknown ) )
+ PORT_DIPNAME( 0x10, 0x00, DEF_STR( Level_Select ) ) PORT_DIPLOCATION("SW2:5")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( On ) )
+ PORT_DIPNAME( 0x60, 0x00, "Devil Behavior" ) PORT_DIPLOCATION("SW2:6,7")
+ PORT_DIPSETTING( 0x00, "Devil Can Take Lives" )
+ PORT_DIPSETTING( 0x20, "Devil Never Takes Lives" )
+ PORT_DIPSETTING( 0x40, "Devil Not In Game" )
+ PORT_DIPSETTING( 0x60, DEF_STR( Unknown ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW2:8" )
+
+ PORT_START("DSW3")
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW3:1")
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, DEF_STR( Service_Mode ) )
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- // 0x80 eeprom read bit
+ PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW3:2")
+ PORT_DIPSETTING( 0x02, DEF_STR( On ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW3:4,3")
+ PORT_DIPSETTING( 0x0c, DEF_STR( Medium ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Difficult ) )
+ PORT_DIPSETTING( 0x0c, DEF_STR( Very_Difficult ) )
+ PORT_DIPNAME( 0x10, 0x10, "LaserDisc Player Protocol" ) PORT_DIPLOCATION("SW3:5")
+ PORT_DIPSETTING( 0x10, "Pioneer LDV-4200" )
+ PORT_DIPSETTING( 0x00, "Sony LDP-1450" )
+ PORT_DIPNAME( 0xe0, 0x60, "Bill Multiplier" ) PORT_DIPLOCATION("SW3:6,7,8")
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x20, "2" )
+ PORT_DIPSETTING( 0x60, "4" )
+ PORT_DIPSETTING( 0xe0, "8" )
+ PORT_DIPSETTING( 0x40, "10" )
+ PORT_DIPSETTING( 0x80, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0xa0, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0xc0, DEF_STR( Unknown ) )
INPUT_PORTS_END
void timetrv_state::timetrv(machine_config &config)
{
/* basic machine hardware */
- I80188(config, m_maincpu, 20000000); //???
+ I80188(config, m_maincpu, 16_MHz_XTAL); // Confirmed from PCB layout diagram
m_maincpu->set_addrmap(AS_PROGRAM, &timetrv_state::timetrv_map);
m_maincpu->set_addrmap(AS_IO, &timetrv_state::timetrv_io);
// interrupts are generated by internally-driven timers
@@ -152,27 +303,28 @@ void timetrv_state::timetrv(machine_config &config)
EEPROM_2816(config, "eeprom");
i8255_device &ppi1(I8255(config, "ppi1"));
- ppi1.in_pa_callback().set(FUNC(timetrv_state::test1_r)); //inputs
- ppi1.in_pb_callback().set(FUNC(timetrv_state::test2_r)); //eeprom read bit + inputs
+ ppi1.in_pa_callback().set_ioport("IN0");
+ ppi1.in_pb_callback().set_ioport("IN1");
+ ppi1.out_pc_callback().set(FUNC(timetrv_state::ppi1_pc_w));
i8255_device &ppi2(I8255(config, "ppi2"));
- ppi2.in_pa_callback().set(FUNC(timetrv_state::in_r)); //dsw
- ppi2.in_pb_callback().set(FUNC(timetrv_state::in_r)); //dsw
- ppi2.in_pc_callback().set(FUNC(timetrv_state::in_r)); //dsw
+ ppi2.in_pa_callback().set_ioport("DSW1");
+ ppi2.in_pb_callback().set_ioport("DSW2");
+ ppi2.in_pc_callback().set_ioport("DSW3");
- NS16450(config, "uart", 1843200); // P82050 (serial interface for laserdisc)
+ NS16450(config, m_uart, 768000); // P82050 (serial interface for Laserdisc player)
+ m_uart->out_tx_callback().set(m_laserdisc, FUNC(pioneer_ldv4200hle_device::rx_w));
/* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(512, 512);
- screen.set_visarea(0*8, 512-1, 0*8, 512-1);
- screen.set_screen_update(FUNC(timetrv_state::screen_update_timetrv));
-
- PALETTE(config, "palette").set_entries(512);
+ PIONEER_LDV4200HLE(config, m_laserdisc, 0);
+ m_laserdisc->set_overlay(256, 256, FUNC(timetrv_state::screen_update));
+ m_laserdisc->add_route(0, "mono", 0.4);
+ m_laserdisc->add_route(1, "mono", 0.4);
+ m_laserdisc->add_ntsc_screen(config, "screen");
+ m_laserdisc->serial_tx().set(m_uart, FUNC(ns16450_device::rx_w));
/* sound hardware */
+ SPEAKER(config, "mono").front_center();
}
/***************************************************************************
@@ -186,7 +338,7 @@ ROM_START( timetrv )
ROM_LOAD( "tt061891.bin", 0xc0000, 0x40000, CRC(a3d44219) SHA1(7c5003b6d3df1e472db45abd725e7d3d43f0dfb4) )
DISK_REGION( "laserdisc" )
- DISK_IMAGE_READONLY( "timetrv", 0, NO_DUMP )
+ DISK_IMAGE_READONLY( "timetrv", 0, SHA1(8abb5e6aa58ab49477ef89f507264d35454f99d3) )
ROM_END
ROM_START( timetrv2 )
@@ -194,8 +346,12 @@ ROM_START( timetrv2 )
ROM_LOAD( "epr-72491.u9", 0xc0000, 0x40000, CRC(c7998e2f) SHA1(26060653b2368f52c304e6433b4f447f99a36839) )
DISK_REGION( "laserdisc" )
- DISK_IMAGE_READONLY( "timetrv", 0, NO_DUMP )
+ DISK_IMAGE_READONLY( "timetrv", 0, SHA1(8abb5e6aa58ab49477ef89f507264d35454f99d3) BAD_DUMP )
ROM_END
-GAME( 1991, timetrv, 0, timetrv, timetrv, timetrv_state, empty_init, ROT0, "Virtual Image Productions (Sega license)", "Time Traveler (set 1)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
-GAME( 1991, timetrv2, timetrv, timetrv, timetrv, timetrv_state, empty_init, ROT0, "Virtual Image Productions (Sega license)", "Time Traveler (set 2)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) // Europe?
+} // anonymous namespace
+
+
+
+GAMEL( 1991, timetrv, 0, timetrv, timetrv, timetrv_state, empty_init, ORIENTATION_FLIP_Y, "Virtual Image Productions (Sega license)", "Time Traveler (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND, layout_timetrv )
+GAMEL( 1991, timetrv2, timetrv, timetrv, timetrv, timetrv_state, empty_init, ORIENTATION_FLIP_Y, "Virtual Image Productions (Sega license)", "Time Traveler (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND, layout_timetrv ) // Different frame indices; Europe?
diff --git a/src/mame/drivers/vicdual.cpp b/src/mame/drivers/vicdual.cpp
index 7363a11b289..6d67e5eceba 100644
--- a/src/mame/drivers/vicdual.cpp
+++ b/src/mame/drivers/vicdual.cpp
@@ -2223,7 +2223,7 @@ static INPUT_PORTS_START( alphahob )
PORT_DIPNAME( 0x04, 0x00, "Missile Bonus Life" ) PORT_DIPLOCATION("SW1:3")
PORT_DIPSETTING( 0x00, "10k" )
PORT_DIPSETTING( 0x04, "15k" )
-
+
PORT_MODIFY("IN3")
PORT_DIPNAME( 0x04, 0x00, "Missile Final UFO Bonus" ) PORT_DIPLOCATION("SW1:4")
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
diff --git a/src/mame/includes/abc1600.h b/src/mame/includes/abc1600.h
index 9cd2ba0c143..d3b7d086f4f 100644
--- a/src/mame/includes/abc1600.h
+++ b/src/mame/includes/abc1600.h
@@ -124,7 +124,7 @@ private:
void spec_contr_reg_w(uint8_t data);
void dbrq_w(int state);
-
+
uint8_t cio_pa_r();
uint8_t cio_pb_r();
void cio_pb_w(uint8_t data);
diff --git a/src/mame/includes/amiga.h b/src/mame/includes/amiga.h
index 145aacad98e..3234200de83 100644
--- a/src/mame/includes/amiga.h
+++ b/src/mame/includes/amiga.h
@@ -317,10 +317,10 @@ public:
, m_cia_1(*this, "cia_1")
, m_rs232(*this, "rs232")
, m_centronics(*this, "centronics")
-// , m_agnus(*this, "agnus")
-// , m_denise(*this, "denise")
+// , m_agnus(*this, "agnus")
+// , m_denise(*this, "denise")
, m_copper(*this, "copper")
-// , m_blitter(*this, "blitter")
+// , m_blitter(*this, "blitter")
, m_paula(*this, "paula")
, m_fdc(*this, "fdc")
, m_screen(*this, "screen")
@@ -365,7 +365,7 @@ public:
/* chip RAM access */
uint16_t read_chip_ram(offs_t byteoffs)
{
- // We use rand() here so that an attempt to go beyond the allocated chip RAM
+ // We use rand() here so that an attempt to go beyond the allocated chip RAM
// (hopefully) doesn't go unnoticed.
// FIXME: most likely open bus instead.
return EXPECTED(byteoffs < m_chip_ram.bytes()) ? m_chip_ram.read(byteoffs >> 1) : machine().rand();
diff --git a/src/mame/layout/fruitstb.lay b/src/mame/layout/fruitstb.lay
index a56b3dc0d7a..c1d827e92ea 100644
--- a/src/mame/layout/fruitstb.lay
+++ b/src/mame/layout/fruitstb.lay
@@ -48,7 +48,7 @@ copyright-holders: Grull Osgo, Roberto Fresca.
<bounds x="0" y="0.3" width="1" height="0.4" />
</text>
</element>
-
+
<element name="stop4" defstate="0">
<rect state="1">
<color red="1.0" green="0.0" blue="0.0" />
@@ -61,7 +61,7 @@ copyright-holders: Grull Osgo, Roberto Fresca.
<bounds x="0" y="0.3" width="1" height="0.4" />
</text>
</element>
-
+
<element name="take" defstate="0">
<rect state="1">
@@ -255,7 +255,7 @@ copyright-holders: Grull Osgo, Roberto Fresca.
</element>
<element name="lamp6" ref="stop2" inputtag="IN1" inputmask="0x01">
<bounds x="1.85" y="3.10" width="0.30" height="0.30" />
- </element>
+ </element>
</view>
diff --git a/src/mame/layout/timetrv.lay b/src/mame/layout/timetrv.lay
new file mode 100644
index 00000000000..cad88c53a3c
--- /dev/null
+++ b/src/mame/layout/timetrv.lay
@@ -0,0 +1,65 @@
+<?xml version="1.0"?>
+<!--
+license:CC0
+copyright-holders:Ryan Holtz
+-->
+
+<mamelayout version="2">
+ <element name="led">
+ <led14seg>
+ <color red="0.0" green="1.0" blue="0.0" />
+ </led14seg>
+ </element>
+
+ <element name="dp">
+ <rect state="0"><color alpha="0.125" red="0.0" green="1.0" blue="0.0" /></rect>
+ <rect state="1"><color alpha="1.0" red="0.0" green="1.0" blue="0.0" /></rect>
+ </element>
+
+ <element name="reversal_cube" defstate="0">
+ <rect state="0"><color red="0.0" green="0.447" blue="0.682" /></rect>
+ <rect state="1"><color red="0.357" green="0.882" blue="1.0" /></rect>
+ </element>
+
+ <element name="p1_lamp" defstate="0">
+ <rect state="0"><color red="0.1" green="0.1" blue="0.1" /></rect>
+ <rect state="1"><color red="0.9" green="0.9" blue="0.9" /></rect>
+ <text string="PLAYER 1"><color red="0.3" green="0.3" blue="0.3" /></text>
+ </element>
+
+ <element name="p2_lamp" defstate="0">
+ <rect state="0"><color red="0.1" green="0.1" blue="0.1" /></rect>
+ <rect state="1"><color red="0.9" green="0.9" blue="0.9" /></rect>
+ <text string="PLAYER 2"><color red="0.3" green="0.3" blue="0.3" /></text>
+ </element>
+
+ <view name="Lamps and LEDs">
+ <screen index="0">
+ <bounds left="0" top="0" right="704" bottom="480" />
+ </screen>
+
+ <repeat count="16">
+ <param name="digit" start="0" increment="1" />
+ <param name="digit_x" start="256" increment="12" />
+ <param name="dp_x" start="265" increment="12" />
+ <element name="digit~digit~" ref="led" blend="add" state="0">
+ <bounds x="~digit_x~" y="0" width="10" height="16"/>
+ </element>
+ <element name="decimal~digit~" ref="dp" blend="add" state="0">
+ <bounds x="~dp_x~" y="14" width="2" height="2"/>
+ </element>
+ </repeat>
+
+ <element name="cube_lamp" ref="reversal_cube">
+ <bounds x="120" y="0" width="16" height="16" />
+ </element>
+
+ <element name="player_lamp1" ref="p1_lamp">
+ <bounds x="464" y="0" width="96" height="16" />
+ </element>
+
+ <element name="player_lamp2" ref="p2_lamp">
+ <bounds x="592" y="0" width="96" height="16" />
+ </element>
+ </view>
+</mamelayout>
diff --git a/src/mame/machine/abc1600mac.cpp b/src/mame/machine/abc1600mac.cpp
index fd604e7d746..bf9c1057f6c 100644
--- a/src/mame/machine/abc1600mac.cpp
+++ b/src/mame/machine/abc1600mac.cpp
@@ -231,7 +231,7 @@ uint8_t abc1600_mac_device::read(offs_t offset)
{
if (nonx)
{
- logerror("%s BUS ERROR R %05x:%06x (NONX %u WP %u TASK %u FC %u MAGIC %u)\n",
+ logerror("%s BUS ERROR R %05x:%06x (NONX %u WP %u TASK %u FC %u MAGIC %u)\n",
machine().describe_context(), offset, virtual_offset, nonx, wp, task, fc, m_magic);
dump();
m_write_buserr(offset, 1);
@@ -274,14 +274,14 @@ void abc1600_mac_device::write(offs_t offset, uint8_t data)
{
if (nonx)
{
- logerror("%s BUS ERROR W %05x:%06x (NONX %u WP %u TASK %u FC %u MAGIC %u)\n",
+ logerror("%s BUS ERROR W %05x:%06x (NONX %u WP %u TASK %u FC %u MAGIC %u)\n",
machine().describe_context(), offset, virtual_offset, nonx, wp, task, fc, m_magic);
dump();
m_write_buserr(offset, 0);
}
if (!wp)
{
- logerror("%s BUS ERROR W %05x:%06x (NONX %u WP %u TASK %u FC %u MAGIC %u)\n",
+ logerror("%s BUS ERROR W %05x:%06x (NONX %u WP %u TASK %u FC %u MAGIC %u)\n",
machine().describe_context(), offset, virtual_offset, nonx, wp, task, fc, m_magic);
dump();
m_write_buserr(offset, 0);
diff --git a/src/mame/machine/abc1600mac.h b/src/mame/machine/abc1600mac.h
index 0ce71fe1beb..82b3a4accc6 100644
--- a/src/mame/machine/abc1600mac.h
+++ b/src/mame/machine/abc1600mac.h
@@ -61,12 +61,12 @@ public:
void dma0_mreq_w(offs_t offset, uint8_t data) { dma_mreq_w(0, DMAMAP_R0_LO, offset, data); }
uint8_t dma0_iorq_r(offs_t offset) { return dma_iorq_r(DMAMAP_R0_LO, offset); }
void dma0_iorq_w(offs_t offset, uint8_t data) { dma_iorq_w(DMAMAP_R0_LO, offset, data); }
-
+
uint8_t dma1_mreq_r(offs_t offset) { return dma_mreq_r(1, DMAMAP_R1_LO, offset); }
void dma1_mreq_w(offs_t offset, uint8_t data) { dma_mreq_w(1, DMAMAP_R1_LO, offset, data); }
uint8_t dma1_iorq_r(offs_t offset) { return dma_iorq_r(DMAMAP_R1_LO, offset); }
void dma1_iorq_w(offs_t offset, uint8_t data) { dma_iorq_w(DMAMAP_R1_LO, offset, data); }
-
+
uint8_t dma2_mreq_r(offs_t offset) { return dma_mreq_r(2, DMAMAP_R2_LO, offset); }
void dma2_mreq_w(offs_t offset, uint8_t data) { dma_mreq_w(2, DMAMAP_R2_LO, offset, data); }
uint8_t dma2_iorq_r(offs_t offset) { return dma_iorq_r(DMAMAP_R2_LO, offset); }
@@ -121,7 +121,7 @@ private:
devcb_read8::array<3> m_read_tren;
devcb_write8::array<3> m_write_tren;
-
+
bool m_boote;
bool m_magic;
int m_task;
diff --git a/src/mame/machine/amiga.cpp b/src/mame/machine/amiga.cpp
index 1bae2b148ce..e1a21ae7fc9 100644
--- a/src/mame/machine/amiga.cpp
+++ b/src/mame/machine/amiga.cpp
@@ -1144,132 +1144,132 @@ void amiga_state::ocs_map(address_map &map)
map(0x000, 0x1ff).rw(FUNC(amiga_state::custom_chip_r), FUNC(amiga_state::custom_chip_w));
// Reading state section
-// map(0x000, 0x001).r(FUNC(amiga_state::bltddat_r));
-// map(0x002, 0x003).r(FUNC(amiga_state::dmaconr_r));
+// map(0x000, 0x001).r(FUNC(amiga_state::bltddat_r));
+// map(0x002, 0x003).r(FUNC(amiga_state::dmaconr_r));
map(0x004, 0x005).r(FUNC(amiga_state::vposr_r));
-// map(0x006, 0x007).r(FUNC(amiga_state::vhposr_r));
-// map(0x008, 0x009).r(FUNC(amiga_state::dskdatr_r));
+// map(0x006, 0x007).r(FUNC(amiga_state::vhposr_r));
+// map(0x008, 0x009).r(FUNC(amiga_state::dskdatr_r));
// TODO: verify if JOYxDAT really belongs to Denise (???)
-// map(0x00a, 0x00b).r(FUNC(amiga_state::joydat_r<0>));
-// map(0x00c, 0x00d).r(FUNC(amiga_state::joydat_r<1>));
-// map(0x00e, 0x00f).r(FUNC(amiga_state::clxdat_r));
+// map(0x00a, 0x00b).r(FUNC(amiga_state::joydat_r<0>));
+// map(0x00c, 0x00d).r(FUNC(amiga_state::joydat_r<1>));
+// map(0x00e, 0x00f).r(FUNC(amiga_state::clxdat_r));
map(0x010, 0x011).r(m_fdc, FUNC(amiga_fdc_device::adkcon_r));
-// map(0x012, 0x013).r(FUNC(amiga_state::potdat_r<0>)); // POT0DAT
-// map(0x014, 0x015).r(FUNC(amiga_state::potdat_r<1>));
-// map(0x016, 0x017).r(FUNC(amiga_state::potgor_r)); // a.k.a. POTINP
-// map(0x018, 0x019).r(FUNC(amiga_state::serdat_r));
+// map(0x012, 0x013).r(FUNC(amiga_state::potdat_r<0>)); // POT0DAT
+// map(0x014, 0x015).r(FUNC(amiga_state::potdat_r<1>));
+// map(0x016, 0x017).r(FUNC(amiga_state::potgor_r)); // a.k.a. POTINP
+// map(0x018, 0x019).r(FUNC(amiga_state::serdat_r));
map(0x01a, 0x01b).r(m_fdc, FUNC(amiga_fdc_device::dskbytr_r));
-// map(0x01c, 0x01d).r(m_paula, FUNC(paula_8364_device::intenar_r));
-// map(0x01e, 0x01f).r(m_paula, FUNC(paula_8364_device::intreqr_r));
+// map(0x01c, 0x01d).r(m_paula, FUNC(paula_8364_device::intenar_r));
+// map(0x01e, 0x01f).r(m_paula, FUNC(paula_8364_device::intreqr_r));
// FDC writes
// FIXME: these two belongs to Agnus, also shouldn't be readable
map(0x020, 0x021).rw(m_fdc, FUNC(amiga_fdc_device::dskpth_r), FUNC(amiga_fdc_device::dskpth_w));
map(0x022, 0x023).rw(m_fdc, FUNC(amiga_fdc_device::dskptl_r), FUNC(amiga_fdc_device::dskptl_w));
map(0x024, 0x025).w(m_fdc, FUNC(amiga_fdc_device::dsklen_w));
-// map(0x026, 0x027).w(m_fdc, FUNC(amiga_fdc_device::dskdat_w));
+// map(0x026, 0x027).w(m_fdc, FUNC(amiga_fdc_device::dskdat_w));
-// map(0x028, 0x029).w(FUNC(amiga_state::refptr_w));
+// map(0x028, 0x029).w(FUNC(amiga_state::refptr_w));
map(0x02a, 0x02b).w(FUNC(amiga_state::vposw_w));
-// map(0x02c, 0x02d).w(FUNC(amiga_state::vhposw_w));
+// map(0x02c, 0x02d).w(FUNC(amiga_state::vhposw_w));
map(0x02e, 0x02f).w(m_copper, FUNC(amiga_copper_device::copcon_w));
// input strobes
-// map(0x030, 0x031).w(FUNC(amiga_state::serdat_w));
-// map(0x032, 0x033).w(FUNC(amiga_state::serper_w));
-// map(0x034, 0x035).w(FUNC(amiga_state::potgo_w));
-// map(0x036, 0x037).w(FUNC(amiga_state::joytest_w));
+// map(0x030, 0x031).w(FUNC(amiga_state::serdat_w));
+// map(0x032, 0x033).w(FUNC(amiga_state::serper_w));
+// map(0x034, 0x035).w(FUNC(amiga_state::potgo_w));
+// map(0x036, 0x037).w(FUNC(amiga_state::joytest_w));
// video beam strobes
-// map(0x038, 0x039).w(FUNC(amiga_state::strequ_w));
-// map(0x03a, 0x03b).w(FUNC(amiga_state::strvbl_w));
-// map(0x03c, 0x03d).w(FUNC(amiga_state::strhor_w));
+// map(0x038, 0x039).w(FUNC(amiga_state::strequ_w));
+// map(0x03a, 0x03b).w(FUNC(amiga_state::strvbl_w));
+// map(0x03c, 0x03d).w(FUNC(amiga_state::strhor_w));
-// map(0x040, 0x075).m(m_blitter, FUNC(amiga_blitter_device::regs_map));
-// map(0x07c, 0x07d).r <open bus for OCS>
+// map(0x040, 0x075).m(m_blitter, FUNC(amiga_blitter_device::regs_map));
+// map(0x07c, 0x07d).r <open bus for OCS>
map(0x07e, 0x07f).w(m_fdc, FUNC(amiga_fdc_device::dsksync_w));
// Copper
map(0x080, 0x08b).m(m_copper, FUNC(amiga_copper_device::regs_map));
map(0x08c, 0x08d).w(m_copper, FUNC(amiga_copper_device::copins_w));
// Display window
-// map(0x08e, 0x08f).w(FUNC(amiga_state::diwstrt_w));
-// map(0x090, 0x091).w(FUNC(amiga_state::diwstop_w));
+// map(0x08e, 0x08f).w(FUNC(amiga_state::diwstrt_w));
+// map(0x090, 0x091).w(FUNC(amiga_state::diwstop_w));
// Display horizontal fetch
-// map(0x092, 0x093).w(FUNC(amiga_state::ddfstrt_w));
-// map(0x094, 0x095).w(FUNC(amiga_state::ddfstop_w));
-
-// map(0x096, 0x097).w(FUNC(amiga_state::dmacon_w));
-// map(0x098, 0x099).w(FUNC(amiga_state::clxcon_w));
-// map(0x09a, 0x09b).w(m_paula, FUNC(paula_8364_device::intena_w));
-// map(0x09c, 0x09d).w(m_paula, FUNC(paula_8364_device::intreq_w));
-// map(0x09e, 0x09f).w(m_paula, FUNC(paula_8364_device::adkcon_w));
+// map(0x092, 0x093).w(FUNC(amiga_state::ddfstrt_w));
+// map(0x094, 0x095).w(FUNC(amiga_state::ddfstop_w));
+
+// map(0x096, 0x097).w(FUNC(amiga_state::dmacon_w));
+// map(0x098, 0x099).w(FUNC(amiga_state::clxcon_w));
+// map(0x09a, 0x09b).w(m_paula, FUNC(paula_8364_device::intena_w));
+// map(0x09c, 0x09d).w(m_paula, FUNC(paula_8364_device::intreq_w));
+// map(0x09e, 0x09f).w(m_paula, FUNC(paula_8364_device::adkcon_w));
// Audio section
map(0x0a0, 0x0ab).m(m_paula, FUNC(paula_8364_device::audio_channel_map<0>));
map(0x0b0, 0x0bb).m(m_paula, FUNC(paula_8364_device::audio_channel_map<1>));
map(0x0c0, 0x0cb).m(m_paula, FUNC(paula_8364_device::audio_channel_map<2>));
map(0x0d0, 0x0db).m(m_paula, FUNC(paula_8364_device::audio_channel_map<3>));
-
+
// Bitplane pointer section
-// map(0x0e0, 0x0ff).m(amiga_state::bplxptr_map));
+// map(0x0e0, 0x0ff).m(amiga_state::bplxptr_map));
// Video bitplane registers
map(0x100, 0x101).w(FUNC(amiga_state::bplcon0_w));
-// map(0x102, 0x103).w(FUNC(amiga_state::bplcon1_w));
-// map(0x104, 0x105).w(FUNC(amiga_state::bplcon2_w));
+// map(0x102, 0x103).w(FUNC(amiga_state::bplcon1_w));
+// map(0x104, 0x105).w(FUNC(amiga_state::bplcon2_w));
-// map(0x108, 0x109).w(FUNC(amiga_state::bpl1mod_w));
-// map(0x10a, 0x10b).w(FUNC(amiga_state::bpl2mod_w));
+// map(0x108, 0x109).w(FUNC(amiga_state::bpl1mod_w));
+// map(0x10a, 0x10b).w(FUNC(amiga_state::bpl2mod_w));
-// map(0x110, 0x11f).m(amiga_state::bplxdat_map));
+// map(0x110, 0x11f).m(amiga_state::bplxdat_map));
// Sprite section
-// map(0x120, 0x17f).m(amiga_state::sprxpt_map));
+// map(0x120, 0x17f).m(amiga_state::sprxpt_map));
// Color section
-// map(0x180, 0x1bf).m(amiga_state::colorxx_map));
+// map(0x180, 0x1bf).m(amiga_state::colorxx_map));
}
void amiga_state::ecs_map(address_map &map)
{
ocs_map(map);
-// map(0x03e, 0x03f).w(FUNC(amiga_state::strlong_w));
-// map(0x078, 0x079).w(FUNC(amiga_state::sprhdat_w));
-// map(0x07c, 0x07d).r(FUNC(amiga_state::deniseid_r));
+// map(0x03e, 0x03f).w(FUNC(amiga_state::strlong_w));
+// map(0x078, 0x079).w(FUNC(amiga_state::sprhdat_w));
+// map(0x07c, 0x07d).r(FUNC(amiga_state::deniseid_r));
+
+// map(0x106, 0x107).w(FUNC(amiga_state::bplcon3_w));
-// map(0x106, 0x107).w(FUNC(amiga_state::bplcon3_w));
-
// Extended ECS registers
// video geometry regs
-// map(0x1c0, 0x1c7).m(FUNC(amiga_state::horz_screen_map));
-// map(0x1c8, 0x1cf).m(FUNC(amiga_state::vert_screen_map));
-// map(0x1dc, 0x1dd).w(FUNC(amiga_state::beamcon0_w));
+// map(0x1c0, 0x1c7).m(FUNC(amiga_state::horz_screen_map));
+// map(0x1c8, 0x1cf).m(FUNC(amiga_state::vert_screen_map));
+// map(0x1dc, 0x1dd).w(FUNC(amiga_state::beamcon0_w));
// Screen sync regs, VARHSY / VARVSY
-// map(0x1de, 0x1df).w(FUNC(amiga_state::hsstrt_w));
-// map(0x1e0, 0x1e1).w(FUNC(amiga_state::vsstrt_w));
+// map(0x1de, 0x1df).w(FUNC(amiga_state::hsstrt_w));
+// map(0x1e0, 0x1e1).w(FUNC(amiga_state::vsstrt_w));
-// map(0x1e2, 0x1e3).w(FUNC(amiga_state::hcenter_w));
-// map(0x1e4, 0x1e5).w(FUNC(amiga_state::diwhigh_w));
+// map(0x1e2, 0x1e3).w(FUNC(amiga_state::hcenter_w));
+// map(0x1e4, 0x1e5).w(FUNC(amiga_state::diwhigh_w));
// dummy, either related to copper lockup restart or "last N refresh cycles"
-// map(0x1fe, 0x1ff).?(FUNC(amiga_state::no_op_*));
+// map(0x1fe, 0x1ff).?(FUNC(amiga_state::no_op_*));
}
void amiga_state::aga_map(address_map &map)
{
ecs_map(map);
-// map(0x078, 0x079).w(FUNC(amiga_state::sprhdat_w));
+// map(0x078, 0x079).w(FUNC(amiga_state::sprhdat_w));
map(0x100, 0x101).w(FUNC(amiga_state::aga_bplcon0_w));
// UHRES regs
// TODO: may be shared with ECS?
-// map(0x1e6, 0x1e7).w(FUNC(amiga_state::bplhmod_w));
-// map(0x1e8, 0x1e9).w(FUNC(amiga_state::sprhpth_w));
-// map(0x1ea, 0x1eb).w(FUNC(amiga_state::sprhptl_w));
-// map(0x1ec, 0x1ed).w(FUNC(amiga_state::bplhpth_w));
-// map(0x1ed, 0x1ef).w(FUNC(amiga_state::bplhptl_w));
+// map(0x1e6, 0x1e7).w(FUNC(amiga_state::bplhmod_w));
+// map(0x1e8, 0x1e9).w(FUNC(amiga_state::sprhpth_w));
+// map(0x1ea, 0x1eb).w(FUNC(amiga_state::sprhptl_w));
+// map(0x1ec, 0x1ed).w(FUNC(amiga_state::bplhpth_w));
+// map(0x1ed, 0x1ef).w(FUNC(amiga_state::bplhptl_w));
-// map(0x1fc, 0x1fd).w(FUNC(amiga_state::fmode_w));
+// map(0x1fc, 0x1fd).w(FUNC(amiga_state::fmode_w));
}
@@ -1298,8 +1298,8 @@ void amiga_state::vposw_w(u16 data)
// TODO: ECS always resets the LOF no matter the setting
CUSTOM_REG(REG_VPOSR) = (data & VPOSR_LOF) | (data & 7);
// TODO: high bits of screen height
-// if (data & 7)
-// popmessage("Upper VPOSW set %02x", data);
+// if (data & 7)
+// popmessage("Upper VPOSW set %02x", data);
}
void amiga_state::bplcon0_w(u16 data)
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 03601e58f37..99419029193 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -36718,6 +36718,9 @@ sc88vl //
@source:roland_tb303.cpp
tb303 // Roland
+@source:roland_tnsc1.cpp
+rlndtnsc1 // Roland TN-SC1 ROM cards
+
@source:roland_tr505.cpp
tr505 //
diff --git a/src/mame/mess.flt b/src/mame/mess.flt
index 37db6d8e047..283032e234e 100644
--- a/src/mame/mess.flt
+++ b/src/mame/mess.flt
@@ -903,6 +903,7 @@ roland_s50.cpp
roland_sc55.cpp
roland_sc88.cpp
roland_tb303.cpp
+roland_tnsc1.cpp
roland_tr505.cpp
roland_tr606.cpp
roland_tr707.cpp
diff --git a/src/mame/video/cps1.cpp b/src/mame/video/cps1.cpp
index 583d2cb834f..3ff169a6f82 100644
--- a/src/mame/video/cps1.cpp
+++ b/src/mame/video/cps1.cpp
@@ -1537,7 +1537,7 @@ static const struct gfx_range mapper_CP1B1F_boot_table[] =
// bank0 = pin 16 (ROMs 1,7 /ce)
// pin 18 (ROMs 3,9 /ce)
// bank1 = pin 17 (ROMs 2,8 /ce)
- // pin 19 (ROMs 4,10 /ce)
+ // pin 19 (ROMs 4,10 /ce)
// An a19 line is available on pin 13 for 32MBit roms (pin 44 of the EPROM) but is unused.
// pin 14 is fixed high in 16Mbit mode and is driven by gfx_chnl (CPS B-21 pin 108) if 32Mbit mode is selected
@@ -1964,7 +1964,7 @@ static const struct CPS1config cps1_config_table[]=
{"pang3b", CPS_B_21_DEF, mapper_CP1B1F }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */
{"pang3b2", CPS_B_21_DEF, mapper_CP1B1F }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */
{"pang3b3", CPS_B_17, mapper_CP1B1F }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */
- {"pang3b4", CPS_B_21_DEF, mapper_pang3b4 },
+ {"pang3b4", CPS_B_21_DEF, mapper_pang3b4 },
{"pang3b5", CPS_B_21_DEF, mapper_CP1B1F_boot }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */
{"ganbare", CPS_B_21_DEF, mapper_GBPR2 },
{"gulunpa", CPS_B_21_DEF, mapper_gulunpa }, // wrong
diff --git a/src/mame/video/spectrum.cpp b/src/mame/video/spectrum.cpp
index 57204c3a26b..971fa935c8c 100644
--- a/src/mame/video/spectrum.cpp
+++ b/src/mame/video/spectrum.cpp
@@ -41,7 +41,7 @@ void spectrum_128_state::video_start()
The screen consists of 312 scanlines as follows:
64 border lines (the last 48 are actual border lines; the others may be
- border lines or vertical retrace)
+ border lines or vertical retrace)
192 screen lines
56 border lines
diff --git a/src/osd/sdl/window.cpp b/src/osd/sdl/window.cpp
index 7c903fb8a17..0bf11ddfa9a 100644
--- a/src/osd/sdl/window.cpp
+++ b/src/osd/sdl/window.cpp
@@ -94,17 +94,17 @@ bool sdl_osd_interface::window_init()
// initialize the renderer
const int fallbacks[VIDEO_MODE_COUNT] = {
- -1, // NONE -> no fallback
- -1, // No GDI on Linux
+ -1, // NONE -> no fallback
+ -1, // No GDI on Linux
#if defined(USE_OPENGL) && USE_OPENGL
- VIDEO_MODE_OPENGL, // BGFX -> OpenGL
+ VIDEO_MODE_OPENGL, // BGFX -> OpenGL
-1, // OpenGL -> no fallback
#else
- VIDEO_MODE_SDL2ACCEL, // BGFX -> SDL2Accel
+ VIDEO_MODE_SDL2ACCEL, // BGFX -> SDL2Accel
#endif
-1, // SDL2ACCEL -> no fallback
- -1, // No D3D on Linux
- -1, // SOFT -> no fallback
+ -1, // No D3D on Linux
+ -1, // SOFT -> no fallback
};
int current_mode = video_config.mode;