Arcade ROM Builder & Injector GUI

https://github.com/MiSTer-devel/Main_MiSTer/wiki

Moderators: Mug UK, Zorro 2, Greenious, spiny, Sorgelig, Moderator Team

nakedarthur
Atariator
Atariator
Posts: 22
Joined: Sun Dec 09, 2018 7:48 pm

Arcade ROM Builder & Injector GUI

Postby nakedarthur » Mon Mar 04, 2019 3:37 am

Hey all - thanks for all the amazing work on MiSTer (I was really happy to see my Wavebeam NES palette on there :). Anyway, I'm super lazy and kept forgetting how to get from a BAT and RBF file to an injected RBF so I made a little Windows GUI app to help out.

Image

FEATURES
- Easily build ROMs for MiSTer without hours of research!
- Supports titles with multiple ZIPs, extra required data (Donkey Kong) and/or IPS patching (Arkanoid)
- MD5 checksum verification
- Optional RBF injection

INSTRUCTIONS
1) Download MAG 0.24 and extract the folder. Make sure you have .NET 4.6.1 Framework installed.
2) Start MAG, and press Update Database to grab the latest ROM definitions from Git
3) Select the game you'd like to build, and then place the required ROM ZIP(s), external data, and/or patches in MAG\ROM
4) If you'd like to inject your new ROM into the RBF just check the box and select the RBF you downloaded from Git
5) Click "Create" and your final rom (or injected RBF) will be in the root folder

That's all there is to it, hopefully it will help others out too. It's still a little rough at the moment, but let me know if you have any problems or suggestions.
Last edited by nakedarthur on Mon Mar 11, 2019 12:44 am, edited 22 times in total.

warham
Atari maniac
Atari maniac
Posts: 92
Joined: Fri Oct 12, 2018 7:17 am

Re: Arcade Injector GUI

Postby warham » Mon Mar 04, 2019 7:14 am

Confused what this is doing... Is it creating an .RBF file that does not require the A.*.ROM file?

brunosilva
Atari freak
Atari freak
Posts: 67
Joined: Mon Apr 09, 2018 10:58 pm

Re: Arcade Injector GUI

Postby brunosilva » Mon Mar 04, 2019 11:12 am

@warham - the injector "injects" the rom inside the rbf file (after this there is no need to have the rom file).

pros:
- no need to have several folders with the same core and different roms (maybe in near future all the cores loads other roms :D )

cons:
- if the core is updated, you need to inject the cores all over again

mutmuthux
Atariator
Atariator
Posts: 22
Joined: Mon Mar 04, 2019 8:11 am

Re: Arcade Injector GUI

Postby mutmuthux » Mon Mar 04, 2019 11:22 am

Sorry for my lack of understanding. I'm very new to MiSTer and FPGA :o

Can this be used to inject a hacked ROM into a core ?
For instance, inject dkongj rom into the dkong core
Or the fast shoot hack into Galaga

hyperterminal
Obsessive compulsive Atari behavior
Obsessive compulsive Atari behavior
Posts: 144
Joined: Sun Jul 09, 2017 1:43 pm

Re: Arcade Injector GUI

Postby hyperterminal » Mon Mar 04, 2019 12:36 pm

mutmuthux wrote:Sorry for my lack of understanding. I'm very new to MiSTer and FPGA :o

Can this be used to inject a hacked ROM into a core ?
For instance, inject dkongj rom into the dkong core
Or the fast shoot hack into Galaga

Yes it can be used to inject hacked roms into Arcade cores. You can look at NML32's YouTube videos to see which roms are compatible and PM him in case you need help.

nakedarthur
Atariator
Atariator
Posts: 22
Joined: Sun Dec 09, 2018 7:48 pm

Re: Arcade Injector GUI

Postby nakedarthur » Mon Mar 04, 2019 3:39 pm

brunosilva wrote:cons:
- if the core is updated, you need to inject the cores all over again


That's why I designed it the way I did with the separate BAT, RBF and ROM folders. If you inject it once and leave the files in the folders, all you need to do when an updated core comes out is drop the new RBF in the folder and hit Create.

ericgus
Captain Atari
Captain Atari
Posts: 465
Joined: Fri Apr 08, 2016 4:53 am
Location: Boston MA - USA

Re: Arcade Injector GUI

Postby ericgus » Mon Mar 04, 2019 8:19 pm

nakedarthur wrote:
brunosilva wrote:cons:
- if the core is updated, you need to inject the cores all over again


That's why I designed it the way I did with the separate BAT, RBF and ROM folders. If you inject it once and leave the files in the folders, all you need to do when an updated core comes out is drop the new RBF in the folder and hit Create.


Wouldnt this make more sense to run it as a Mister script from the F12/scripts menu instead of a windows bat file? more so for people like myself that run the "update.sh" mister script and dont usually download individual RBFs directly/sftp them over.

mutmuthux
Atariator
Atariator
Posts: 22
Joined: Mon Mar 04, 2019 8:11 am

Re: Arcade Injector GUI

Postby mutmuthux » Tue Mar 05, 2019 10:44 am

hyperterminal wrote:
mutmuthux wrote:Sorry for my lack of understanding. I'm very new to MiSTer and FPGA :o

Can this be used to inject a hacked ROM into a core ?
For instance, inject dkongj rom into the dkong core
Or the fast shoot hack into Galaga

Yes it can be used to inject hacked roms into Arcade cores. You can look at NML32's YouTube videos to see which roms are compatible and PM him in case you need help.


Excellent. Thanks for the heads up on NML32 YT vids
:)

nakedarthur
Atariator
Atariator
Posts: 22
Joined: Sun Dec 09, 2018 7:48 pm

Re: Arcade ROM Builder & Injector GUI

Postby nakedarthur » Tue Mar 05, 2019 9:00 pm

Updated to version 0.11 now (with a rename of the app). I've changed it so it will tell you the standard ROM zip required, but allows you to pick any you want. This way you can easily have alternate variations of your ROMs with hacks and not have to rename each time you rebuild it. I tested it on a couple like Galaga Fast Shoot hack and it seems to work OK.

zomgugoff
Atari freak
Atari freak
Posts: 58
Joined: Tue Jan 29, 2019 10:12 am

Re: Arcade ROM Builder & Injector GUI

Postby zomgugoff » Wed Mar 06, 2019 3:12 am

Can it also tell you what version of MAME the rom needs to be from? Is that known? I had to go though a couple different romsets to get all of the combines roms built. It's not even mentioned on the Github pages for the cores.

nakedarthur
Atariator
Atariator
Posts: 22
Joined: Sun Dec 09, 2018 7:48 pm

Re: Arcade ROM Builder & Injector GUI

Postby nakedarthur » Wed Mar 06, 2019 4:53 am

No, unfortunately the Ini/bat files only have the zip name and the file contents. I was thinking about adding a check for it to tell you if the zip contents don't match what it wants, that might help out with the versioning. Anyway, for what its worth I've had good luck with .158 set so far.

nakedarthur
Atariator
Atariator
Posts: 22
Joined: Sun Dec 09, 2018 7:48 pm

Re: Arcade ROM Builder & Injector GUI

Postby nakedarthur » Fri Mar 08, 2019 5:46 pm

Image

I am redesigning things a bit yet again. I was looking ahead to 1943s release and saw Sorgelig is getting much fancier with the BATs. Unfortunately the menu breaks compatibility with my app so I started to think of alternatives. It's a pain anyway for every single person wanting to play a game to download a BAT, so it got me thinking the better way to do this is to have one master list on GIT we can update with ROM data, and the app will use it for building the ROMs. I've already added the download/update functionality in the app, so now I'm down to basically going through the ROMs and verifying everything is OK, and I need to add a few more features like handling multiple ZIPs per title.

Sorgelig
Ultimate Atarian
Ultimate Atarian
Posts: 5220
Joined: Mon Dec 14, 2015 10:51 am
Location: Russia/Taiwan

Re: Arcade ROM Builder & Injector GUI

Postby Sorgelig » Fri Mar 08, 2019 7:27 pm

I haven't been involved much into 1943 port. So Jotego went non-standard way.
Basically it could be just several bat files instead one big...

nakedarthur
Atariator
Atariator
Posts: 22
Joined: Sun Dec 09, 2018 7:48 pm

Re: Arcade ROM Builder & Injector GUI

Postby nakedarthur » Fri Mar 08, 2019 7:45 pm

Sorry, I wasn't trying to blame anyone, just saw you had committed it :D

In other news, I've gotten multiple ZIP file support working. When testing a few more titles though, I noticed there are some odd cases like Donkey Kong that needs the wav data in separate files, so I need to add proper file checks next to tell you exactly what you're missing in the case you forget to download those. I think the only other outlier I've seen so far was Arkanoid that needs IPS patcher support. That shouldn't be hard to add either. Hopefully I'll have a test release by tomorrow.

hubertbanas
Atariator
Atariator
Posts: 25
Joined: Sun Dec 23, 2018 7:06 pm

Re: Arcade ROM Builder & Injector GUI

Postby hubertbanas » Fri Mar 08, 2019 8:32 pm

nakedarthur wrote:Hopefully I'll have a test release by tomorrow.


Will you be making it cross platform Windows/MacOS/Linux?

nakedarthur
Atariator
Atariator
Posts: 22
Joined: Sun Dec 09, 2018 7:48 pm

Re: Arcade ROM Builder & Injector GUI

Postby nakedarthur » Fri Mar 08, 2019 8:43 pm

hubertbanas wrote:
nakedarthur wrote:Hopefully I'll have a test release by tomorrow.


Will you be making it cross platform Windows/MacOS/Linux?


Just Windows for now until I get things working sufficiently. In general the GUI shouldn't be hard to port, but it relies on the Windows injector utility so that functionality would have to ported over somehow. I'm honestly not that familiar with where things are on the other platforms.

wesclemens
Retro freak
Retro freak
Posts: 11
Joined: Fri Feb 22, 2019 1:08 am

Re: Arcade ROM Builder & Injector GUI

Postby wesclemens » Fri Mar 08, 2019 9:03 pm

hubertbanas wrote:
nakedarthur wrote:Hopefully I'll have a test release by tomorrow.


Will you be making it cross platform Windows/MacOS/Linux?


I build a simple script with a GUI that I used to convert all the ROM files. It is is written in Python and should work on Linux, Windows and MacOS. I personally run Linux and MacOS so cross platform is a must for me.

Currently it downloads all the build_rom.ini and creates and combined ini file. I hate to see the effort doubled up maybe there is a way we can combined our efforts.

https://github.com/wesclemens/Rom_Builder_MiSTer

hubertbanas
Atariator
Atariator
Posts: 25
Joined: Sun Dec 23, 2018 7:06 pm

Re: Arcade ROM Builder & Injector GUI

Postby hubertbanas » Fri Mar 08, 2019 10:09 pm

wesclemens wrote:I personally run Linux and MacOS so cross platform is a must for me.
...
I hate to see the effort doubled up maybe there is a way we can combined our efforts.


+1

nakedarthur
Atariator
Atariator
Posts: 22
Joined: Sun Dec 09, 2018 7:48 pm

Re: Arcade ROM Builder & Injector GUI

Postby nakedarthur » Fri Mar 08, 2019 10:36 pm

wesclemens wrote:
hubertbanas wrote:Will you be making it cross platform Windows/MacOS/Linux?


I build a simple script with a GUI that I used to convert all the ROM files. It is is written in Python and should work on Linux, Windows and MacOS. I personally run Linux and MacOS so cross platform is a must for me.

Currently it downloads all the build_rom.ini and creates and combined ini file. I hate to see the effort doubled up maybe there is a way we can combined our efforts.

https://github.com/wesclemens/Rom_Builder_MiSTer


Hey nice, looks cool! I was going to do something like that using the ini files but I decided against it for a few reasons. The main one is for more flexibility with hacks and alternate versions. I'm also trying to tie it down to one romset for simplicity, which means making adjustments here and there to file names.

In other news, I also have external dependencies working now, so it will show you for instance in Donkey Kong if you're missing the extra required files for sound.

wesclemens
Retro freak
Retro freak
Posts: 11
Joined: Fri Feb 22, 2019 1:08 am

Re: Arcade ROM Builder & Injector GUI

Postby wesclemens » Sat Mar 09, 2019 2:44 am

nakedarthur wrote:
Hey nice, looks cool! I was going to do something like that using the ini files but I decided against it for a few reasons. The main one is for more flexibility with hacks and alternate versions. I'm also trying to tie it down to one romset for simplicity, which means making adjustments here and there to file names.



Thanks, yours looks good too. :cheers: It's nice to see people working on making MiSTer more accessible.

Your not using the ini for ROM definitions? Do you embed the ROM definitions in your app?

Hacks should work just find with the script I provided. As long as they have the same filename in the zip file. There will be a warning that is doesn't match the ROM the core was tested with but the ROM is still created. All filename are customization default entries are provided to match the build_rom.ini.

What do you mean trying to tie it down to one romset?

nakedarthur
Atariator
Atariator
Posts: 22
Joined: Sun Dec 09, 2018 7:48 pm

Re: Arcade ROM Builder & Injector GUI

Postby nakedarthur » Sat Mar 09, 2019 4:36 am

0.2 is now available at the link above. I added support for patching (no MD5 checking yet but I will add that), so just about everything should be working now in theory. I also added an entry for the Galaga Fast Shoot hack so you can see how those can be added to the app. I still need to verify the information against the ROM set, but I will try to get to that this weekend.

nakedarthur
Atariator
Atariator
Posts: 22
Joined: Sun Dec 09, 2018 7:48 pm

Re: Arcade ROM Builder & Injector GUI

Postby nakedarthur » Sat Mar 09, 2019 5:05 pm

Updated to 0.21, I found a problem I missed when you have directories with spaces in your path.

nakedarthur
Atariator
Atariator
Posts: 22
Joined: Sun Dec 09, 2018 7:48 pm

Re: Arcade ROM Builder & Injector GUI

Postby nakedarthur » Sat Mar 09, 2019 5:11 pm

wesclemens wrote:Thanks, yours looks good too. :cheers: It's nice to see people working on making MiSTer more accessible.

Your not using the ini for ROM definitions? Do you embed the ROM definitions in your app?

Hacks should work just find with the script I provided. As long as they have the same filename in the zip file. There will be a warning that is doesn't match the ROM the core was tested with but the ROM is still created. All filename are customization default entries are provided to match the build_rom.ini.

What do you mean trying to tie it down to one romset?


Hey sorry I missed your message for some reason. Yes and no haha, I created a master list that you can see here. I figured the community could improve it and add more variations as they figure them out. Check out the entry for the Galaga Fast Shoot for instance, it uses a different ROM name with alternate contents (one of the files is named differently), so all you have to do is find the right ROM, no hacking or renaming needed. I am verifying the ROMs info against a particular MAME set (0.158) to simplify the process of finding the right ROMs.
Last edited by nakedarthur on Sat Mar 09, 2019 9:40 pm, edited 3 times in total.

Locutus73
Captain Atari
Captain Atari
Posts: 493
Joined: Wed Feb 07, 2018 6:13 pm

Re: Arcade Injector GUI

Postby Locutus73 » Sat Mar 09, 2019 7:01 pm

brunosilva wrote:cons:
- if the core is updated, you need to inject the cores all over again

Just for reference for anyone not knowing this...
Let’s say you have an _Arcade directory with GnG_YYYYMMDD.rbf and a.gng.rom; you can create two subdirectories called _Arcade Hacks and _Arcade Revisions; now if you create a _GnG - Makaimura subdirectory of _Arcade Revisions and put both GnG_YYYYMMDD.rbf and the Makaimura revision of a.gng.rom there, when the updater script will find a new release of the core it will update the main rbf file in the _Arcade and all the hacks and revisions it will find in _Arcade Hacks and _Arcade Revisions. This obviously requires not injected cores.

Regards.

Locutus73

nakedarthur
Atariator
Atariator
Posts: 22
Joined: Sun Dec 09, 2018 7:48 pm

Re: Arcade ROM Builder & Injector GUI

Postby nakedarthur » Sun Mar 10, 2019 6:45 pm

0.22 is now available at the link above. This release has refactored code to start getting it presentable, MD5 verification (it will alert you if match fails but keep going for now), and a config file so that the master ROM database can be moved wherever (or have alternate versions hosted). I also added an option in the config you can enable if you'd like the ZIP contents verified versus whats expected. I've noticed some false positives with this though which is why its disabled by default for now. For instance, Galaga expects 54xx.bin which my ROMs are all missing, but it still works fine without it. I'm not sure what's going on with that yet..


Return to “MiSTer”

Who is online

Users browsing this forum: JUNKERSeed, phillymost, rittwage and 17 guests