libretro / mame2003-libretro

MAME 0.78 for libretro. Compatible with MAME 0.78 sets.
Other
90 stars 75 forks source link

Possible DAT correction for Xevious clone named Xevios #396

Closed Wilstorm closed 5 years ago

Wilstorm commented 5 years ago

Xevios is a clone of Xevious but doesn't have the sample flag set so it's creating it's own partial duplicate sample set vs merging up to the parent. Also it might need additional missing samples from the parent set possibly, whereas currently there's only one explo1.wav in the set.

Current line:

<game name="xevios" cloneof="xevious" romof="xevious">

Updated line:

<game name="xevios" cloneof="xevious" romof="xevious" sampleof="xevious">

Updated sample lines that would go below explo1.wav:

<sample name="explo2.wav"/>
<sample name="explo3.wav"/>
<sample name="explo4.wav"/>
Wilstorm commented 5 years ago

@markwkidd - Just a quick note. I added this here as it doesn't add or remove any ROMs but does make a correction to the samples and merges them up.

I corrected the line above to what it should be and added the additional samples too if needed as they wouldn't change anything either because they already exist in the parent.

I know you have done some maintenance cleanup in the past on DAT syntax errors and also I see it's corrected in Plus so I thought I would add this here if you end up doing any DAT maintenance. If not just let me know and I can close it.

ghost commented 5 years ago
Xevios is a clone of Xevious but doesn't have the sample flag set so it's creating it's own partial duplicate sample set vs merging up to the parent.

There is no partial duplicate a wrong bad guess.

https://github.com/libretro/mame2003-libretro/blob/133ef799e03b29001ca274f17c5ab43558e28dd2/src/drivers/xevious.c#L929-L937 change this here or delete the extra structure and set the driver use the parent parent samples. Just put a pr in for which one is you prefer.

Me and arcadez done the namco update for plus so thats probably why its fixed there.

Wilstorm commented 5 years ago

I thought it was clearly posted above in the OP and I don't know how else to explain it to you if you don't understand how DAT's work. It is indeed a wrongly named and a partial sample set.

Here is the DAT ROM header copied directly from the DAT file. It's missing the sampleof="xevious" setting shown in the line below.

<game name="xevios" cloneof="xevious" romof="xevious">

Since it's missing the sampleof=xevious setting it's pulling the sample wav file from the parent (xevious) and creating a separate sample set named xevios.zip when it should be xevious.zip.

It uses the same samples as the parent ROM Xevious so it only makes sense to merge it up to the parent ROM sample set and not have a incomplete partial set named something completely different from the parent.

Also looking at your const above it's missing 3 additional samples as I stated in the OP. Only 1 is present in the DAT.

<sample name="explo2.wav"/>
<sample name="explo3.wav"/>
<sample name="explo4.wav"/>

I have no idea how to do a PR for code changes or I would.

Here's the Xevios information directly from the DAT that clearly shows the issues:

<game name="xevios" cloneof="xevious" romof="xevious">
        <description>Xevios</description>
        <driver>xevios</driver>
        <year>1982</year>
        <manufacturer>bootleg</manufacturer>
        <rom name="4.7h" size="4096" crc="1f8ca4c0" sha1="9fdaa2e0016c07e274544f8334778fe81b8344a5" region="cpu1" offset="0"/>
        <rom name="5.6h" size="4096" crc="2e47ce8f" sha1="fb35dd086e98279a5f17036f624ef5294c777d84" region="cpu1" offset="1000"/>
        <rom name="xvi_3.2m" merge="xvi_3.2m" size="4096" crc="79754b7d" sha1="c6a154858716e1f073b476824b183de20e06d093" region="cpu1" offset="2000"/>
        <rom name="w7.4h" size="4096" crc="17f48277" sha1="ffe590acf07985355ef91fbe0fc3dcf6e8fd62fd" region="cpu1" offset="3000"/>
        <rom name="xvi_5.3f" merge="xvi_5.3f" size="4096" crc="c85b703f" sha1="15f1c005b9d806a384ab1f2240b9c580bfe83893" region="cpu2" offset="0"/>
        <rom name="xvi_6.3j" merge="xvi_6.3j" size="4096" crc="e18cdaad" sha1="6b79efee1a9642edb9f752101737132401248aed" region="cpu2" offset="1000"/>
        <rom name="xvi_7.2c" merge="xvi_7.2c" size="4096" crc="dd35cf1c" sha1="f8d1f8e019d8198308443c2e7e815d0d04b23d14" region="cpu3" offset="0"/>
        <rom name="xvi_12.3b" merge="xvi_12.3b" size="4096" crc="088c8b26" sha1="9c3b61dfca2f84673a78f7f66e363777a8f47a59" region="gfx1" dispose="yes" offset="0"/>
        <rom name="xvi_13.3c" merge="xvi_13.3c" size="4096" crc="de60ba25" sha1="32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7" region="gfx2" dispose="yes" offset="0"/>
        <rom name="xvi_14.3d" merge="xvi_14.3d" size="4096" crc="535cdbbc" sha1="fb9ffe5fc43e0213231267e98d605d43c15f61e8" region="gfx2" dispose="yes" offset="1000"/>
        <rom name="xvi_15.4m" merge="xvi_15.4m" size="8192" crc="dc2c0ecb" sha1="19ddbd9805f77f38c9a9a1bb30dba6c720b8609f" region="gfx3" dispose="yes" offset="0"/>
        <rom name="16.8d" size="8192" crc="44262c04" sha1="4291f83193d11064c2ba6a9af27951b93bb945c3" region="gfx3" dispose="yes" offset="2000"/>
        <rom name="xvi_17.4p" merge="xvi_17.4p" size="8192" crc="dfb587ce" sha1="acff2bf5cde85a16cdc98a52cdea11f77fadf25a" region="gfx3" dispose="yes" offset="4000"/>
        <rom name="xvi_16.4n" merge="xvi_16.4n" size="4096" crc="605ca889" sha1="3bf380ef76c03822a042ecc73b5edd4543c268ce" region="gfx3" dispose="yes" offset="6000"/>
        <rom name="10.1d" size="4096" crc="10baeebb" sha1="c544c9e0bb7a1ef93b3f2c2c1397f659d5334373" region="gfx4" offset="0"/>
        <rom name="xvi_10.2b" merge="xvi_10.2b" size="8192" crc="ae3ba9e5" sha1="49064b25667ffcd81137cd5e800df4b78b182a46" region="gfx4" offset="1000"/>
        <rom name="12.3d" size="4096" crc="51a4e83b" sha1="fbf3b1e47b75c5e0b297ee2cd6597b1dfd80bc6f" region="gfx4" offset="3000"/>
        <rom name="xvi_8bpr.6a" merge="xvi_8bpr.6a" size="256" crc="5cc2727f" sha1="0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1" region="proms" offset="0"/>
        <rom name="xvi_9bpr.6d" merge="xvi_9bpr.6d" size="256" crc="5c8796cc" sha1="63015e3c0874afc6b1ca032f1ffb8f90562c77c8" region="proms" offset="100"/>
        <rom name="xvi10bpr.6e" merge="xvi10bpr.6e" size="256" crc="3cb60975" sha1="c94d5a5dd4d8a08d6d39c051a4a722581b903f45" region="proms" offset="200"/>
        <rom name="xvi_7bpr.4h" merge="xvi_7bpr.4h" size="512" crc="22d98032" sha1="ec6626828c79350417d08b98e9631ad35edd4a41" region="proms" offset="300"/>
        <rom name="xvi_6bpr.4f" merge="xvi_6bpr.4f" size="512" crc="3a7599f0" sha1="a4bdf58c190ca16fc7b976c97f41087a61fdb8b8" region="proms" offset="500"/>
        <rom name="xvi_4bpr.3l" merge="xvi_4bpr.3l" size="512" crc="fd8b9d91" sha1="87ddf0b9d723aabb422d6d416aa9ec6bc246bf34" region="proms" offset="700"/>
        <rom name="xvi_5bpr.3m" merge="xvi_5bpr.3m" size="512" crc="bf906d82" sha1="776168a73d3b9f0ce05610acc8a623deae0a572b" region="proms" offset="900"/>
        <rom name="xvi_2bpr.7n" merge="xvi_2bpr.7n" size="256" crc="550f06bc" sha1="816a0fafa0b084ac11ae1af70a5186539376fc2a" region="sound1" offset="0"/>
        <rom name="xvi_1bpr.5n" merge="xvi_1bpr.5n" size="256" crc="77245b66" sha1="0c4d0bee858b97632411c440bea6948a74759746" region="sound1" offset="100"/>
        <rom name="1.16j" size="4096" crc="2618f0ce" sha1="54e8644b5609d6f6ec717a7469c76901eb79f26e" region="user1" offset="0"/>
        <rom name="2.17b" size="8192" crc="de359fac" sha1="a55df9984bfffafeadae8a5a63b07f1fa9c5eebf" region="user1" offset="1000"/>
        <sample name="explo1.wav"/>
        <chip type="cpu" name="Z80" clock="3072000"/>
        <chip type="cpu" name="Z80" clock="3072000"/>
        <chip type="cpu" name="Z80" clock="3072000"/>
        <chip type="audio" name="Namco"/>
        <chip type="audio" name="Samples"/>
        <video screen="raster" orientation="vertical" width="224" height="288" aspectx="3" aspecty="4" refresh="60.606060"/>
        <sound channels="1"/>
        <input players="2" control="joy8way" buttons="2" coins="2"/>
        <dipswitch name="Flags Award Bonus Life">
            <dipvalue name="No"/>
            <dipvalue name="Yes" default="yes"/>
        </dipswitch>
        <dipswitch name="Coin B">
            <dipvalue name="2 Coins/1 Credit"/>
            <dipvalue name="1 Coin/1 Credit" default="yes"/>
            <dipvalue name="2 Coins/3 Credits"/>
            <dipvalue name="1 Coin/2 Credits"/>
        </dipswitch>
        <dipswitch name="Difficulty">
            <dipvalue name="Easy"/>
            <dipvalue name="Normal" default="yes"/>
            <dipvalue name="Hard"/>
            <dipvalue name="Hardest"/>
        </dipswitch>
        <dipswitch name="Freeze?">
            <dipvalue name="Off" default="yes"/>
            <dipvalue name="On"/>
        </dipswitch>
        <dipswitch name="Coin A">
            <dipvalue name="2 Coins/1 Credit"/>
            <dipvalue name="1 Coin/1 Credit" default="yes"/>
            <dipvalue name="2 Coins/3 Credits"/>
            <dipvalue name="1 Coin/2 Credits"/>
        </dipswitch>
        <dipswitch name="Bonus Life">
            <dipvalue name="10K 40K 40K"/>
            <dipvalue name="10K 50K 50K"/>
            <dipvalue name="20K 50K 50K"/>
            <dipvalue name="20K 60K 60K" default="yes"/>
            <dipvalue name="20K 70K 70K"/>
            <dipvalue name="20K 80K 80K"/>
            <dipvalue name="20K 60K"/>
            <dipvalue name="None"/>
        </dipswitch>
        <dipswitch name="Lives">
            <dipvalue name="1"/>
            <dipvalue name="2"/>
            <dipvalue name="3" default="yes"/>
            <dipvalue name="5"/>
        </dipswitch>
        <dipswitch name="Cabinet">
            <dipvalue name="Upright" default="yes"/>
            <dipvalue name="Cocktail"/>
        </dipswitch>
        <dipswitch name="Service Mode">
        </dipswitch>
        <driver status="good" color="good" sound="good" palettesize="129"/>
    </game>
markwkidd commented 5 years ago

@Wilstorm if the DAT were corrected, would the Xevios samples be exactly the same as Xevious, or are any of the WAV files different?

Wilstorm commented 5 years ago

@markwkidd - They should be the same matching the parent samples. Technically it should work fine. This is more of a cleanup suggestion. When you use a ROM management utility it will create an extraneous sample zip set that isn't needed.

ghost commented 5 years ago

@Wilstorm technically it wont work fine well xevios wont as its set to use the samples in the driver regardless if you edit your dat or not.

@markwkidd change https://github.com/libretro/mame2003-libretro/blob/133ef799e03b29001ca274f17c5ab43558e28dd2/src/drivers/xevious.c#L1049

to

MDRV_SOUND_ADD(SAMPLES, samples_interface)

Wilstorm commented 5 years ago

Yep that makes sense and nope I left it as is in the DAT. I wondered if it would require a code update to generate a corrected DAT since it's "dynamically" generated from within any game. Thanks.

ghost commented 5 years ago

i just put a pull request in to fix this surprised it still isint fixed.

https://github.com/libretro/mame2003-libretro/pull/439/commits/bab9ac04ff83edf4b6c27c8a11f353b462ceaf48

go here https://github.com/libretro/mame2003-libretro/blob/9b88011bad367e1a31a56ea69ee9b92ef1c1884e/metadata/mame2003.xml

then near the bottom you will see view raw right click and save link as let me know how you get on or just wait for the pull req

Wilstorm commented 5 years ago

@grant2258 - Thank you for update on this one too. You and Arcadez are rock stars with all you been doing lately! ;) It's been open for months so I can wait a bit longer for the pull req to test it.

I've actually been playing some games as of late instead of "tweaking" all the time. I've come to the conclusion there's always something to tweak and you just need to enjoy a game now and again.

Wilstorm commented 5 years ago

@grant2258 - Thanks for the fix on the DAT also. I rebuilt my set and the the samples are now merged to the parent and the set is complete. I will close this issue out.