lr-mame2003 driver improvement and backport
-
https://github.com/libretro/mame2003-libretro/pull/245
https://github.com/libretro/mame2003-libretro/pull/244@gamez-fan Big thanks to dink from the FBA dev team for handcrafting the missing priority prom for
which we had no dump for.Hot off the press this one as you cant currantly play it in MAME, i had a hand in dumping this
rare prototype myself and my buddy dink from the FBA dev team handcrafted the prom, i had
this code handy for testing purposes it seemed a waste to just not use it here. -
@riverstorm said in lr-mame2003 driver improvement and backport:
"Pochi & Nyaa"
"Rock'n Tread 3 (Japan)"
"Rock'n Tread 4 (Japan)"@gamez-fan If you get a moment can you take a look for the correct files/info to build out the DAT? I seem to find the newer versions with incorrect information. I did try and create an account on the other forum but it tells me to contact the Board Admin when I try and login after registering/verification.
It's going well but slow. I found some of the information you gave me is the parent ROMs and not the clones so I am back to going into each driver and spot checking the ROMs. I try and find what I can if incorrect.
Did you happen to know if size is anywhere in the source driver? ClrMame will throw errors if you have the correct name & hashes but an incorrect size. The nice things is the sizes seem to mostly conform to multiples of 1024.
Is "In Your Face" working now in lr-mame2003, if so I can add that one also. Nice fix, time for some NBA! ;)
Games fixed and or now working
Avenging Spirit megasys1.c
Driftout 94 ssv.c
Fire Barrel m107.c
Monster Slider ssv.c
Snowboard Championship gaelco2.c
Street Fighter (with Added Speedup) sf1.c
Twin Eagle 2 ssv.cThe changes above are only code updates and not ROM correct?
-
@gamez-fan I was hoping you had sent working information but I think there's just to much missing information to make a go of this. Half the ROMs seem to be downloaded from random websites, were jammed into a zip and are not at all working.
cabalbl looks like it's a split-merge and has 1 correct ROM. Fixeight looks like a merge but it's using the clone vs. parent and some are non-merge. There's extraneous BIOS files scattered all over and random html files with names like "downloaded.from.<URL REMOVED>.html. In addition to almost impossible to find files like m1/m1d. The King of Fighters 2003 is missing an extremely hard to find 271-osjd file. If someone doesn't release these ROMs "into the wild" the information is of no use. Unless you do have a working test ROMs and just didn't put them in an archive somewhere which wouldn't make sense to add most and leave out rare ones. I don't know if you're testing these games as you go or pasting code but it seems like part of what you have done hasn't been tested.
I have a decent working framework (minus samples) but I think it would have been a big mistake to merge this current information with the main DAT. I almost took it that what you had was tested and working but on a thought I started looking through some of the files and found several non-working ROMs. Some of perfect though.
I don't know if there's some way to organize all this information, all the new additions and changes you're making as you go. Like a list for reference of exact ROMs that have been tested and working.
There's a good amount of games here and once the main list is complete if there was a list of some sorts it would be great for reference of new working games, to be added, checking progress, etc.
Right now it's all over the map of does this or that work, is there a proper dump, should I add this clone, does this decrypted version work (maybe, I don't know), etc.
I do not like doing documentation but I know the value of it. A piece of software is sometimes only as good as it's documentation.
I think what you have done so far is invaluable for lr-mame2003 with new additions it only strengthens the emulator but some type of proper documentation and/or procedure as new games are added would be highly beneficial in organizing all the changes you're making. I think right now you have to pear pick through a thread as no such list exists of new working games. I know there's a handful of games I would love to add to the working library but you need to know they exist to add them and right now not even a complete list exists let alone a proper DAT but I do appreciate and I am grateful for all these new additions you've made!
-
I've been really busy these last few days plus i dont think i can offer ya much help with this as i dont have much experience with dat files per say
plus after looking i can confirm the drivers do not contain any info around Rom sizes other than boot values for Emulator use which wont help
you with regards to creating a dat.Thats why i just decided to send ya a working version for each new game in order to update the Rom packs for this core and that way users will
at least have one Rom version they can use without the need for a datfile which for some Roms will be no good anyway as they are no longer available
to download eg older Neogeo's.I tested all the Roms i sent you and can guarantee they will work with the exception of some of the larger NeoGeo Roms which i just
pulled off a backup DVD for my Xbox MAME Emulator i assumed they would have been correct for this core tell me which ones
dont work and i'll try and obtain a working replacement as i do have more Roms kicking around on disc somewhere.What are the errors you are getting with the NeoGeo games missing Roms on boot..?? or something else..??
-
@gamez-fan said in lr-mame2003 driver improvement and backport:
What are the errors you are getting with the NeoGeo games missing Roms on boot..?? or something else..??
I know it's a busy time of year and I appreciate all you have done and time invested. I haven't even tried running them yet. Here's one example but there's more. The source file for "The King of Fighters 2003" neogeo.c:
ROM_START( kof2003d ) // Decrypted C Roms 6295 ROM_REGION( 0x900000, REGION_CPU1, 0 ) 6296 ROM_LOAD32_WORD_SWAP( "271-p1.bin", 0x000000, 0x400000, CRC(b9da070c) ) 6297 ROM_LOAD32_WORD_SWAP( "271-p2.bin", 0x000002, 0x400000, CRC(da3118c4) ) 6298 ROM_LOAD16_WORD_SWAP( "271-p3.bin", 0x800000, 0x100000, CRC(5cefd0d2) ) 6299 ROM_LOAD16_WORD_SWAP( "271-p3d.bin", 0x800000, 0x100000, CRC(59d376da) ) 6300 6301 ROM_REGION( 0x100000, REGION_GFX1, 0 ) 6302 ROM_FILL( 0x000000, 0x100000, 0 ) 6303 ROM_REGION( 0x20000, REGION_GFX2, 0 ) 6304 ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) ) 6305 6306 ROM_REGION16_BE( 0x40000, REGION_USER1, 0 ) 6307 ROM_LOAD16_WORD_SWAP( "271-osjd.bin", 0x00000, 0x040000, CRC(c521b5bc) ) 6308 NEOGEO_BIOS 6309 6310 ROM_REGION( 0x90000, REGION_CPU2, 0 ) 6311 ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) ) 6312 ROM_LOAD( "271-m1d.bin", 0x00000, 0x80000, CRC(0e86af8f) ) 6313 ROM_RELOAD( 0x10000, 0x80000 ) 6314 ROM_REGION( 0x10000, REGION_GFX4, 0 ) 6315 ROM_LOAD( "000-lo.lo", 0x00000, 0x10000, CRC(e09e253c) ) 6316 6317 ROM_REGION( 0x1000000, REGION_SOUND1, ROMREGION_SOUNDONLY ) 6318 ROM_LOAD( "271-v1d.bin", 0x000000, 0x1000000, CRC(2964f36e) ) 6319 6320 NO_DELTAT_REGION 6321 6322 ROM_REGION( 0x6000000, REGION_GFX3, 0 ) 6323 ROM_LOAD16_BYTE( "271-c1d.bin", 0x0000000, 0x1000000, CRC(c29acd28) ) 6324 ROM_LOAD16_BYTE( "271-c2d.bin", 0x0000001, 0x1000000, CRC(328e80b1) ) 6325 ROM_LOAD16_BYTE( "271-c3d.bin", 0x2000000, 0x1000000, CRC(020a11f1) ) 6326 ROM_LOAD16_BYTE( "271-c4d.bin", 0x2000001, 0x1000000, CRC(991b5ed2) ) 6327 ROM_LOAD16_BYTE( "271-c5d.bin", 0x4000000, 0x1000000, CRC(c2de8b66) ) 6328 ROM_LOAD16_BYTE( "271-c6d.bin", 0x4000001, 0x1000000, CRC(3ff750db) ) 6329 ROM_END
Here's the ROM kof2003d in raw format below. If you notice it's missing
<rom name="271-osjd.bin" size="131072" crc="c521b5bc"/>
but also it has an extra unneeded ROM:
2.<rom name="271-bios.bin" size="262144" crc="c521b5bc" sha1="c9a5db63523191dedd1b39baab8772f64f09b77f"/>
I don't have the SHA1 information or the ROM to generate it. If there's a working game I can generate 100's of entries in seconds but you still need to go back and fill in the full name vs. ROM name (i.e. - kof2003d so it reads The King of Fighters 2003) year, manufacturer, parent/clone relationship's, etc. So it's still time consuming but bearable.
My thought was if you code a new change and put together the ROM for testing to make sure it works. Then it's incredibly time saving to have a ROM and do it that way.
Without a working ROM you have to CTRL-F to search the drivers in the source code, click on the driver, search the driver for the ROM name, hit enter 20 times because it's reference over and over in the driver. Then finally take that source code ROM information like in the example above and cut-n-paste one line at a time to format it like below. It's incredibly time consuming vs using a working ROM as a starting base.
It can be done without a working ROM but it's exponentially longer to do. If I know the ROM is correct I can generate a DAT, skip verification and go directly to adding the name, year, manufacturer samples and parent/clone relationships.
Building a DAT from scratch without working ROMs is brutal. Everything in the DAT has to match 100% right down to the size or it will show an incomplete set. It's just to easy to make mistakes with manual entries.
I could take the approach that most of the files are correct and were close. Skipping any verification. Shoot me message if something doesn't work. A big time saver. In this case several games I would assume will not run and also the extraneous entries like extra BIOS and ROM site URL readme files, etc. are just extra junk that is unneeded in the ROM or DAT.
The other thing was just a good complete list. You had listed Cabal 3 button as working but is that cabal, cabalbl, cabala, cabalus, cabalus2. I had it as the bootleg version but that might not be correct.
<game name="kof2003d"> <description>kof2003d</description> <rom name="271-p1.bin" size="4194304" crc="b9da070c" sha1="1a26325af142a4dd221c336061761468598c4634"/> <rom name="271-p2.bin" size="4194304" crc="da3118c4" sha1="582e4f44f03276adecb7b2848d3b96bf6da57f1e"/> <rom name="271-p3.bin" size="1048576" crc="5cefd0d2" sha1="cddc3164629fed4b6f715e12b109ad35d1009355"/> <rom name="271-c1d.bin" size="16777216" crc="c29acd28" sha1="8a10409c5a9ad95fa9b56e94c14f1b96101fb179"/> <rom name="271-m1d.bin" size="524288" crc="0e86af8f" sha1="769102b67bb1a699cfa5674d66cdb46ae633cb65"/> <rom name="271-v1d.bin" size="16777216" crc="2964f36e" sha1="bfc52f81354eb57e27acb3b80fe1547b9e070293"/> <rom name="271-c2d.bin" size="16777216" crc="328e80b1" sha1="c7f8069488be1a88a2ea03718b6a131f5c96bd3f"/> <rom name="271-c3d.bin" size="16777216" crc="020a11f1" sha1="85cfae76234f72b0039ebc02f931bb2a9c10b1af"/> <rom name="271-p3d.bin" size="1048576" crc="59d376da" sha1="3c3ad0b79e8b37e838893a8f7b87e11d7eeee8f2"/> <rom name="271-c4d.bin" size="16777216" crc="991b5ed2" sha1="99c4c470bc9cb388773e27de6df4a16803fc7b45"/> <rom name="271-c5d.bin" size="16777216" crc="c2de8b66" sha1="40c2ea48fc20d470163a9dbb40c0276fc4cfceb9"/> <rom name="271-c6d.bin" size="16777216" crc="3ff750db" sha1="714f14a2eb2df6f25d10a6b6aff4b3adfbc7a5dc"/> <rom name="271-bios.bin" size="262144" crc="c521b5bc" sha1="c9a5db63523191dedd1b39baab8772f64f09b77f"/> </game>
-
@gamez-fan said in lr-mame2003 driver improvement and backport:
Thats why i just decided to send ya a working version for each new game in order to update the Rom packs for this core and that way users will
at least have one Rom version they can use without the need for a datfile which for some Roms will be no good anyway as they are no longer available
to download eg older Neogeo's.Older arcade ROMs are widely available. I find it hard to believe that there are any ROMs required which can't be found online. Could you give an example of this issue?
-
@markwkidd said in lr-mame2003 driver improvement and backport:
Older arcade ROMs are widely available. I find it hard to believe that there are any ROMs required which can't be found online. Could you give an example of this issue?
This one has me baffled but I might be missing it someplace. I am not sure what @gamez-fan has for hard to locate files.
<rom name="271-osjd.bin" size="131072" crc="c521b5bc"/>
-
@riverstorm yes that one looks like an error, specifically in the filesize.
I believe the file needed is more commonly named "271-bios.bin" and it has a size of 262,144. The CRC32 for this NeoGeo ROM is, as you posted, c521b5bc.
-
@markwkidd said in lr-mame2003 driver improvement and backport:
@gamez-fan said in lr-mame2003 driver improvement and backport:
Thats why i just decided to send ya a working version for each new game in order to update the Rom packs for this core and that way users will
at least have one Rom version they can use without the need for a datfile which for some Roms will be no good anyway as they are no longer available
to download eg older Neogeo's.Older arcade ROMs are widely available. I find it hard to believe that there are any ROMs required which can't be found online. Could you give an example of this issue?
Well if say you wanted to trackdown the NeoGeo games i added support for you would run into problems with alot of them due to the way the older MAME
cores boot these games eg bypass the encrypted Roms in some cases and load a decrypted version instead, now since these Roms are no longer required
as MAME properly handles the encryption nowadays you tend to find the ole Roms we need have been replaced with newer ones which for us when using
MAME2003 are incorrect plus the NeoGeo Roms we need are lost over time.BTW i just booted kof2003d.zip the exact same one i sent ya's and im playing it now so i guess that clears up whether it's correct or not, right ok it seems
your all gonna keep pestering me about this so i'll drop my currant work on updating Kaneko16 for this core and switch to adding in all the proper
SHA1's to the Neogeo driver -
@markwkidd said in lr-mame2003 driver improvement and backport:
Older arcade ROMs are widely available. I find it hard to believe that there are any ROMs required which can't be found online. Could you give an example of this issue?
@markwkidd & @gamez-fan I know you guys are on the programming side so this isn't anything new really to explain. I am not sure if you're just trying to get a feel for what the situation is like. From the checking I've been doing there's several files unavailable for these new working ROM sets based on pulling info. from the source code updates. I have a whole list but that was one I spent a considerable amount of time on.
It seems some are just no longer used such as an m1d files (the m version). It seems to be common part of the name for the decrypted versions back then. Now the code allows for proper decryption of encrypted files and they are no longer needed in some cases and sort of are lost and forgotten.
I believe the file needed is more commonly named "271-bios.bin" and it has a size of 262,144. The CRC32 for this NeoGeo ROM is, as you posted, c521b5bc.
Thanks for the information. That's the type of thing where I get stuck but you seemed to figure it out fairly quickly where as I spent a good half hour and finally called it good. I think there's an art to it to a degree! ;) Having the "new" name should help now.
I will continue on with what I am doing long form but it's going to take a while longer to work through each one. I think these updates and additions to lr-mame2003 are permanent so I would like to build out a clean DAT with just the needed information.
If I do get stuck in tracking a ROM would it be in forum policy violation to inquiry about ROM information only as long as no links are posted? I'll get a list together of "missing" files down the road.
I am heading to Florida for the holidays so will be out for a while but will continue working on it once I return. The file has grown to large to fit in a post so at some point I'll need an upload place if you guys want to review it. It never hurts to have a second pair of eyes to catch any errors.
-
@gamez-fan said in lr-mame2003 driver improvement and backport:
BTW i just booted kof2003d.zip the exact same one i sent ya's and im playing it now so i guess that clears up whether it's correct
@gamez-fan So picking on this ROM in the source code. It doesn't do a pre-check to verify the file exists? It's listed and loaded in the source but the game still launches? Do you have the file in the parent ROM possibly? I thought all files needed to be present to even launch?
<rom name="271-osjd.bin" size="131072" crc="c521b5bc"/>
-
@riverstorm said in lr-mame2003 driver improvement and backport:
@gamez-fan said in lr-mame2003 driver improvement and backport:
BTW i just booted kof2003d.zip the exact same one i sent ya's and im playing it now so i guess that clears up whether it's correct
@gamez-fan So picking on this ROM in the source code. It doesn't do a pre-check to verify the file exists? It's listed and loaded in the source but the game still launches? Do you have the file in the parent ROM possibly? I thought all files needed to be present to even launch?
<rom name="271-osjd.bin" size="131072" crc="c521b5bc"/>
Hmm i just seen the above while kof2003d booted that means one of two things i have it maybe in another Neogeo Rom in my set and the game is picking it
up from there or it's actually a dummy load that the game does not require i'll look over my Neogeo Roms later certainly my Neogeo bios from my own
set has more Roms inside it than the one i uploaded the other day i'd better send it your way. -
@gamez-fan said in lr-mame2003 driver improvement and backport:
it seems
your all gonna keep pestering me about this so i'll drop my currant work on updating Kaneko16 for this core and switch to adding in all the proper
SHA1's to the Neogeo driverSorry @gamez-fan I wasn't implying anything as I know your time is important too. It's just my own frustration building out a new DAT feels a bit overwhelming. If anything the exact files listed in the source would be killer though.
I always thought a "pre-check" of files being present was always done. It seems odd that it would launch the game missing a ROM listed in the driver and then just crash if it ever calls it and it's not present? ;)
-
@gamez-fan said in lr-mame2003 driver improvement and backport:
it's actually a dummy load that the game does not require
Ah that makes sense but it would still need to exist somewhere in the parent/clone relationship even if unused.
-
@riverstorm said in lr-mame2003 driver improvement and backport:
@gamez-fan said in lr-mame2003 driver improvement and backport:
it's actually a dummy load that the game does not require
Ah that makes sense but it would still need to exist somewhere in the parent/clone relationship even if unused.
Sure but i dont know if it's available anymore..?? take the other day when i was looking for 271.m1d.bin when i put that directly into a google search
all the links were on Chinese sites over 15 years old and will be dead now hence why in the end i had to add the SVC Bootleg as it was the
only version i had a Rom for.So im all for helping ya's out here a bit so folks can play the games i've added but i know for a fact adding those SHA1's to the Neogeo driver will be
a waste of my time likely as the Roms to which im adding them will be all but impossible to find unless someone is in the know of a place to grab em..?? -
@gamez-fan said in lr-mame2003 driver improvement and backport:
@riverstorm said in lr-mame2003 driver improvement and backport:
@gamez-fan said in lr-mame2003 driver improvement and backport:
it's actually a dummy load that the game does not require
Ah that makes sense but it would still need to exist somewhere in the parent/clone relationship even if unused.
Sure but i dont know if it's available anymore..?? take the other day when i was looking for 271.m1d.bin when i put that directly into a google search
all the links were on Chinese sites over 15 years old and will be dead now hence why in the end i had to add the SVC Bootleg as it was the
only version i had a Rom for.So im all for helping ya's out here a bit so folks can play the games i've added but i know for a fact adding those SHA1's to the Neogeo driver will be
a waste of my time likely as the Roms to which im adding them will be all but impossible to find unless someone is in the know of a place to grab em..??I'm somewhat in the know.
Could you give me an example of a ROM with its CRC or SHA1 that you think will be impossible to find? Honestly I'm a skeptic that any of these ROMs are not available.
On United States public radio there is a show called "Car Talk" which sometimes airs a segment called "Stump the Chump." I'm willing to be the Chump if you are willing to try to stump me with the CRC of a ROM that is no longer in circulation.
-
@markwkidd said in lr-mame2003 driver improvement and backport:
Ok then try this one.............
ROM_START( svcchaos )
ROM_REGION( 0x2000000, REGION_CPU1, 0 )
ROM_LOAD16_WORD_SWAP( "269-p1.bin", 0x000000, 0x2000000, CRC(432cfdfc) SHA1(19b40d32188a8bace6d2d570c6cf3d2f1e31e379) )ROM_REGION( 0x80000, REGION_GFX1, 0 ) ROM_FILL( 0x000000, 0x80000, 0 ) ROM_REGION( 0x20000, REGION_GFX2, 0 ) ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) ROM_REGION( 0x80000, REGION_USER4, 0 ) ROM_LOAD( "269-m1.bin", 0x00000, 0x80000, CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) ) NEO_BIOS_SOUND_128K( "269-m1d.bin", CRC(fd4f0ff9) SHA1(e97e864aaa4789d854363512986e80c0606da996) ) ROM_REGION( 0x1000000, REGION_SOUND1, ROMREGION_SOUNDONLY ) ROM_LOAD( "269-v1.bin", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) ) ROM_LOAD( "269-v2.bin", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) ) NO_DELTAT_REGION ROM_REGION( 0x4000000, REGION_GFX3, 0 ) ROM_LOAD( "269-c1.bin", 0x0000000, 0x2000000, CRC(1b608f9c) SHA1(4e70ad182da2ca18815bd3936efb04a06ebce01e) ) ROM_LOAD( "269-c2.bin", 0x2000000, 0x2000000, CRC(5a95f294) SHA1(6123cc7b20b494076185d27c2ffea910e124b195) )
ROM_END
I almost had it just one shy maybe you'll find it.
NEO_BIOS_SOUND_128K( "269-m1d.bin", CRC(fd4f0ff9) SHA1(e97e864aaa4789d854363512986e80c0606da996) )
-
@gamez-fan said in lr-mame2003 driver improvement and backport:
a waste of my time likely as the Roms to which im adding them will be
I see your point but it doesn't seem like it would be a complete waste of time. I thought duplicate CRC's are common-ish (not sure the word I am looking for there) beyond parent/clones which require a different name for merge sets if that's the case which is a different thing altogether. Same name but different CRC's probably common with 1,000's of IC chips.
With this small number of games not as big a deal but now merge it up to the main DAT and you have thousands of CRC's ClrMamePro is sorting through trying to match. I guess I wouldn't add it to the code either knowing that but I would add it to the DAT and let it guarantee the correct ROM is present. I am guessing if it's a duplicate CRC but actually the incorrect ROM you're going to experience some weird anomaly when playing.
all but impossible to find unless someone is in the know of a place to grab em..??
I guess also I was assuming you had access to the ROMs you're adding and was able to test and play them? I take it from that statement that's not the case? I can appreciate adding the changes but if you're sure they don't exist or if you can't find them then they really aren't playable?
Instead of using "pre-check" maybe "pre-load" might be a better word? All those ROMs are preloaded and hash checked whether used or not. There can only be one parent/clone relationship at a time. It can be a one to many relationship (thinking like a NAT but no clone to clone) and MAME doesn't care which of these two files it resides in or set type (non-merge, merged, split-merge) to work properly barring the BIOS. If the game loads you only need to look at 2 files to find the ROM.
If even one ROM doesn't pass the name/CRC/SHA1/(size?) then MAME is going to kick an error and drop you out of the emulator. The thought being if you don't have exactly what you're listing in the driver there's no way the game will launch if the ROM isn't present regardless if the driver is for reference or actually used. It checks if the file hash matches the code hash and loads it up. If all ROMs load successfully hopefully your game sprites, sound, etc. load and play properly.
-
@gamez-fan said in lr-mame2003 driver improvement and backport:
NEO_BIOS_SOUND_128K( "269-m1d.bin", CRC(fd4f0ff9) SHA1(e97e864aaa4789d854363512986e80c0606da996) )
Here's what I can tell you.
This dump of
269-m1d.bin
was never as far as I can tell used in official MAME. Before thesvc
driver was introduced in MAME 0.103u2, there were however MAME PLUS builds that incorporated a work-in-progress driver using that version of the ROM.When the driver appears in MAME 0.103u2, everyone is using a dump of that ROM with crc=
447b3123
sha1=a09adc2c0ee2ee0f01287ceb97474a1a58093bd2
I am pretty handy with tracking down specific ROMs but this one really may be lost in time. You stumped me! But I want to ask: is this really the version of the ROM that the backported code requires, since it was never apparently used by MAME? What version of MAME does the backport come from?
-
@markwkidd It wouldn't surprise me if the rom comes from CoinOps, MAMEoX or some other Xbox First generation Mame port.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.