ROM conversion for storage on SDcard.
Before we can use the NeoSD we need to have at least one game stored on the SD card. Let's go through the process of doing this now as without Neo Geo ROMs to load, the NeoSD has no more use than making a good door wedge.
This will hopefully be a painless operation and very simple. I will need to use a conversion tool and have access to the Neo Geo ROM library as used in MAME available (in my case that's split sets). The tool should find Neo Geo ROMs from the selected directory (in zips) and then store each game into a single new .neo format file for storage on the SD card. I'm told it will not matter if non Neo Geo game ROMs are also in the MAME ROM directory as they will be skipped. Any encrypted Neo Geo ROMs are decrypted during the conversion process and I am assured apart from this no patching is applied to remove game protections for known protection mechanisms. I will be confirming this claim is accurate later by using the Universe Bios game cart CRC check as it's a bold claim indeed.
The tool I have been given is command line based and only needs to run once to convert the MAME Neo Geo library. You must have the 32bit Microsoft C++ redistributable installed (even on a 64bit OS) or you'll see problems with the conversions. This can be obtained from
https://www.microsoft.com/en-us/download/details.aspx?id=53587.
I guess the tool should reject any ROM it finds with a bad CRC32 compared to the expected MAME ROM. Thus not creating the .neo file for the game in question when that happens. The tool should also be able to build .neo files for Neo Geo ROMs that are not in MAME and the usage information seems to confirm this.
NeoBuilder Usage:
Converting all MAME zip files in a directory:
NeoBuilder -d Directory_absolute_path
Converting a MAME zip file:
NeoBuilder zipfile_absolute_path
Converting a generic zip file:
NeoBuilder -n GameName -m developer -y year -g genre zipfile_absolute_path
The first two options are purely related to the conversion of Neo Geo games as they are used in the MAME emulator. The third option (generic) is used to create .neo files for Neo Geo games and revisions which are available but not supported by MAME (Metal Slug 2 Turbo for example).
Ok, let's give it a go.
I have a class10 16GB ScanDisk Ultra micro (HC) SDcard ready to go (8GB card is not large enough to store all games). Check... The Neo Geo MAME ROM library based on version .179. Check... Command line prompt pointing to the directory holding the conversion tool. Check...
neobuilder -d c:\neogeo
I twiddled my thumbs for 5 minutes while the conversion process took place. The created .neo files were placed into the same directory as the tool and not the directory holding the zipped ROMs. Errors were displayed on screen during the conversion process in the command line window. Given the amount of ROMs being converted (or skipped) during this process a generated error.txt file which automatically opens once the process is complete would be a very helpful addition.
At the moment I can see the tool revision I have does not convert every single MAME Neo Geo ROM, some bootlegs and other games were skipped. I have queried this already and have been told they will be converted in a future version of the tool. At the moment they are concentrating on original games over bootlegs as they have other priorities to take care of. A couple of notable exceptions I spotted were dragonsh (darkseed) and kf2k3pcb were not converted. Irrmaze (The Irritating Maze) also threw up a CRC32 error but the .neo file was still built, I assumed this would not be the case.
The irrmaze issue is caused by the tool being based on a previous version of MAME so this issue will for sure be fixed before release. I thought it would be a good idea however to see if I could use the other features of NeoBuilder to fix this game (bear in mind only more advanced users are likely to use this feature). I did the following after changing the ROM zip name;
neobuilder -n "The Irritating Maze" -m "SNK / Saurus" -y 1997 -g Other c:\neogeo\irrmazea.zip
Indeed it did create a nice new .neo file but on inspecting it I could see it was not correctly created compared to the other with bad CRC32. The problem relates to the P ROM in this game having a 2MB P1. The tool had placed the P1 and P2 area of the ROM into the .neo file in the wrong order. All I had to do however was alter the P ROM data to match the generic format (P1,P2 and not P2,P1), then run the tool again and the correct .neo file was created.
The only remaining issue was a screenshot not being added in, I have let them know an option (maybe "-s") to choose a screenshot may be an idea. I manually edited the .neo file myself to do it.
I could also create the Dragons Heaven/DarkSeed .neo using the same tool but I first had to interleave EP1 / EP2, add a buffer M1 and V1 into the zip and do some ROM renaming. Once done the builder spat out a dragonsh.neo which looks ok, I used the following to build it;
neobuilder -n "Dragons' Heaven / Dark Seed" -m "Prototype" -y 1997 -g Fighting c:\neogeo\dragonsh.zip
In case you are interested, the following genres are currently available in NeoBuilder as options;
Other, Action, BeatEmUp, Sports, Driving, Platformer, Mahjong,
Shooter, Quiz, Fighting, Puzzle.
Once all the ROMS were converted I simply copied the .neo files onto the SDcard which should be formatted in the FAT32 format. Now all that is left to do is plug it into the SDcard slot on the side of the NeoSD.
Conclusion
The NeoBuilder tool as it stands now does a good job converting the official Neo Geo games used in MAME. I'm told it should be updated at some point to have a GUI, this should make the process more straightforward for some. NeoBuilder is a little bit awkward however when trying to convert games not in MAME or in a different format than the tool expects. There are a couple of clone sets in WinKawaks for example that are not in MAME. I ended up simply copying the .neo file of the parent. Then changing its internal game name and pasting the different ROM directly over the data already in the .neo file (using a hex editor). For me personally it was easier doing it this way than using the tool given I had an almost accurate .neo file to work with.
In the end the tool was what I expected based on what I was told. It's not the final version I must stress so I expect to see it getting better in the coming weeks. To recap some changes/additions that would be helpful in my personal opinion after my first experience;
- When using either option related to converting MAME ROMs, do not create the .neo file when a needed ROM fails the CRC32 check during conversion process (regardless of ROM type). The Generic conversion process however should never check a ROMs CRC32 (which is how it appears to work already).
- Creation of an error.txt file which is opened after the MAME ROM conversion process competes.
- The generic creation of .neo files being a little more advanced in checking of a few known instances of how data is stored in Neo Geo ROMs. 2MB P1 for example where P1 data is from 0x100000 - 0x1FFFFF and P2 from 0x00000 0xFFFFF.
- The addition of an "-s" option when creating from generic ROMs so the user can choose a screenshot from one of those available. This could be done by choosing a ROM set game the converter understands that has a screenshot. For example "-s kof94" would give the kof94 screenshot to the created .neo.