Jump to content
Brad_from_the_80s

Flashback 9 Gold CFW to load roms and boxart from SD

Recommended Posts

I did some hacking yesterday and was able to package my own custom firmware in order to get SD card roms and box art fully integrated into the main menu screen. 

 

See anything interesting?

 

20190930_042038.thumb.jpg.4f55e51c25b50b3c7659127a36984272.jpg  20190930_042158.thumb.jpg.ebae5e194ffbe93030f5f3fe03a80568.jpg

 

20190930_042247.thumb.jpg.f4f5a6ac00b698d4122f09fb9cc74e84.jpg

 

20190930_115721.thumb.jpg.f1ed7598787f6286f5139c68adb54da9.jpg  20190930_115735.thumb.jpg.0f3f53b8a0335a472953c8ee5b6a7a4b.jpg

 

20190930_115921.thumb.jpg.f1f1657999b775a7fcfebb43700e1c61.jpg

 

I am also able to remove or suppress any of the built-in ROMs that I might not want.  I did a simple test of suppressing the non-original version of Frogger that ships with the console.

 

Now I can't take all of the credit.  I mean, I did do a lot of hacking, and I did use a bunch of arcane Linux tools and commands to unpack, customize and re-pack this firmware.  But I'm sure to nobody's surprise it turns out that the Atari Flashback 9 and the AtGames Sega Genesis Flashback 2018 are virtually the same hardware and system.  They just run different emulators and have different roms and creative content for menus.  So people have already been hacking that system and already found this same approach.  I had already unpacked and was poking around the official firmware image and thinking about my options when I stumbled across this thread:

 

https://gbatemp.net/threads/custom-firmware-for-sega-flashback-2018.523590/page-5

 

I followed the whole thread, and from reading it I "reverse engineered" what they were doing.  These guys came up with an ingenious approach, so I am simply following their lead for the Atari Flashback 9.

 

Basically it works like this:

 

1. There is a /rom NAND flash partition that contains all of the built-in .a26 roms, box art, a few sound files and the all-games.ini file which configures the menu items.

2. The new firmware I developed inserts a script that unmounts the /rom partition and re-mounts it to a /rom folder on the SD card.  This is driven by the presence of a control file on the SD card.  Delete the control file or remove the SD card and the unit will simply mount the internal /rom partition and as per normal.  So not permanent change.

3. The latest official firmware included the entire /rom partition contents.  it's possible to dump the NAND flash from the device, but it wasn't necessary as I was able to extract it from the official firmware.

4. I copied the extract /rom partition contents to the /rom folder on my SD card.

5. Now I can add custom .a26 rom files and corresponding box art and then add the necessary entries to the all-games.ini file, which will populate the menu item and descriptive info page.

 

So in short I am "hiding" the internal /rom partition and loading all roms, box art and rom config file from the SD card.

 

In that Sega thread somebody also started to build a nice GUI tool to manage the somewhat daunting task of editing the .ini file for all the new game rom entries.  It's something I will probably be looking to borrow/steal/copy for the Atari Flashback (I'm a software developer by trade).  It would also be cool if the community could somehow edit and contribute all these ini file entries and maybe box art to a common repository.

 

I was originally poking around looking at the menu and emulator binaries that are included in the official firmware, seeing if there was anything interesting I could learn or modify with a hex editor.  I also had in mind to do some reverse engineering.  In theory I could flash the device to run a fully custom UI and/or emulator, although there are some tight limitation in the NAND partition sizes.  Let's not get carried away or get ahead of ourselves yet.

 

I think I will get another FB9 to do some more hacking, so I don't accidentally bork my working unit.  Also the regular non-Gold FB 9 HD would need a slightly different firmware to retains its UI.  I'm going to look at making a leaner CFW that doesn't redistribute roms, but I could maybe post something in a few days if there is interest.

  • Like 9
  • Thanks 1

Share this post


Link to post
Share on other sites

That looks great! I certainly would be interested in a firmware update that would allow for customizable menus/roms/box art running from the SD card. Plz post a tutorial video when you finalize your programming.

Share this post


Link to post
Share on other sites

Thanks!

 

I did a little more tweaking on the firmware.  I removed the rom and data partitions from the firmware so they no longer get overwritten unnecessarily.  So I believe save states and few settings would be preserved during an update, plus the firmware file is much smaller.

 

I enhanced the custom firmware to automatically dump the built-in rom files to a /rom folder on your SD card the first time it runs if the control file is present.  So you start with the core set of roms, box art and config file all running from the SD card and then can customize it with your own additions and subtractions.

 

The firmware can also execute an arbitrary startup script from the SD card.  This is mainly just to help me with any additional hacking by dumping more system files and info to SD.

 

The Game folder on the SD card still works as expected.  It will still be useful to just test ROM compatibility or place to dump things you don't care enough to add to the main menu.

 

When the SNES Classic was first hacked it was soon learned that you can have too many items on the screen due to resource constraints, thus the need to break large ROM collections up into folders.  Here the concern is whether the game menu INI file and it's entries can get too large with hundreds of roms.  The menu UI already breaks the roms up into pages of 8 items.  Although too large a file could potentially slow the system down in extreme case, I kinda think it won't be an issue.  But time will tell.

 

Longer term I don't see any reason a completely custom menu/UI application couldn't be run directly from the SD card.  Through configuration one could easily revert back to the built-in menu app, so it wouldn't be a permanent change.

 

I think this firmware is just about ready for anyone interested to try it out.  I'll need to build a different one for the non-Gold console.  Within reason there's not much chance of bricking this device, and a bad flash could usually just be corrected with a known good firmware.  But I've had no issues with my hack, and it's pretty straightforward and simple to use and configure.  I may post here in a day or two when I can put the instructions together.

 

Then I may look into build a basic Flashback menu ini file editor, perhaps as a portable app that you can just leave on the SD and run from Windows.

  • Like 4

Share this post


Link to post
Share on other sites

The unit is just running Linux, so with my custom shell script hook I can do a lot now without any further firmware flashing really needed.  I can export and map the UI images, audio (background music) or even the entire emulator stack to the SD card.  I can run the emulator from the SD card, and would be able to run a fully custom ui or alternate emulator from the SD.  And none of it would even have to be permanent, just running SD card software instead of buillt-in.

 

I looked at exporting and mapping the UI images to SD just to do custom borders.  From the UI it looks like it should be scanning a folder of border files and you should be able to add more.  But in fact the UI seems to be hard-coded to just the 6 files that are included.  Not sure yet if I can easily alter that with a hack, but I guess it's very purpose-built.  But you can still overwrite one of the exported borders with one of your own.  I found this one that somebody made for the SNES unit online:

 

20191001_101004.thumb.jpg.1ae6585b2af6e255289b444867fd2ee0.jpg  20191001_101012.thumb.jpg.3fcadac1409048f52bdd1bb276642243.jpg

  • Like 4

Share this post


Link to post
Share on other sites

It's good to see some love for the Atari Flashback HD. And I'm happy to see someone who understood my logic with the original firmware for the Genesis and Legends Flashback and could port/expand it to the Atari Flashback.

Reading your post I can see that you had some nice insights, like the 'rom copy' and the moving the emulator to the SD Card. It's also a good use of the control files logic from the original custom firmware. 

 

I'm looking forward to see the final results!

  • Like 2
  • Thanks 2

Share this post


Link to post
Share on other sites

Thanks!  And thanks man for showing the way!

 

I think as soon as I can put together a non-Gold firmware for the regular HD model I'll post the current CFW here for people to try.  Maybe a day or two. 

 

Then I can focus on the game file editor, and/or then maybe building a more flexible custom experience for the device.

  • Like 3

Share this post


Link to post
Share on other sites

I took a break from hacking and decided to load a few more roms into the menu on my Flashback.  I had made a little spreadsheet of all the Flashback 8 Gold, Flashback 8 Gold Activision, and Flashback 9 Gold games, knowing there were a few differences.  I figured I'd at least get the full set of games from all three consoles loaded onto my FB9.

 

Then I discovered that there are 12 "hidden" roms on the Flashback 9 Gold:

 

Air Raiders
Armor Ambush
Astroblast
Dark Cavern
Frogs and Flies
International Soccer
Sea Battle
Space Attack
Star Strike
Super Challenge Baseball
Super Challenge Football
Sword Fight

 

They appear to all be the M Network games that were included on the FB 8 Gold but not the FB9.  The roms and box art are all there, these games simply don't have an entry in the menu .ini file.  There are a couple of other games that really were removed, like Oink! and Fishing Derby.  Maybe these were meant to be included at one point, maybe not.

  • Like 2

Share this post


Link to post
Share on other sites

OMFG!  Brad where have you been hiding the last few years!  I've literally been whining about the Atari FB not having this capability!  I didn't even know Genesis fans were hacking that one in this fashion.  Definitely would like to see a GUI to edit the INI and a box art repository. 

 

Rather than a replacement menu, is it possible to just hack the current one to make a few folder structure?  I have to imagine that adding hundreds of 2600 roms would make navigating the current box art menu quite slow.  It's got a separate "Activision Games" folder so I don't see why that can't be done. 

 

Have they messed with the emulation at all on the Genesis Flashback?  I ask because it would be a Godsend to be able to adjust the paddle timing so that vintage stock would work.  To my knowledge, there are no unmodded paddles that work on the FB9.

 

Lastly, would be great if your work could be applied to the upcoming Flashback X, for which (supposedly) emulation and paddle support will be improved.  No SD card slot, but supposedly there'll be a micro USB that could be accessed.  AtGames I kinda doubt will change the OS and/or hardware all that much.

  • Like 4

Share this post


Link to post
Share on other sites
1 hour ago, Greg2600 said:

OMFG!  Brad where have you been hiding the last few years!  I've literally been whining about the Atari FB not having this capability!  I didn't even know Genesis fans were hacking that one in this fashion.  Definitely would like to see a GUI to edit the INI and a box art repository. 

 

Rather than a replacement menu, is it possible to just hack the current one to make a few folder structure?  I have to imagine that adding hundreds of 2600 roms would make navigating the current box art menu quite slow.  It's got a separate "Activision Games" folder so I don't see why that can't be done. 

 

Have they messed with the emulation at all on the Genesis Flashback?  I ask because it would be a Godsend to be able to adjust the paddle timing so that vintage stock would work.  To my knowledge, there are no unmodded paddles that work on the FB9.

 

Lastly, would be great if your work could be applied to the upcoming Flashback X, for which (supposedly) emulation and paddle support will be improved.  No SD card slot, but supposedly there'll be a micro USB that could be accessed.  AtGames I kinda doubt will change the OS and/or hardware all that much.

 

The Genesis was hacked with a couple different CFW a few months ago, one to load PicoDrive instead of GenesisPlus GX.  I think maybe they were stuck thinking that they had to flash the emulator partition, which is really small on these things, 10MB or less.  However I have shown that is not the case.  Because the system is calling a launch shell script on the emulator partition you can modify that to call a secondary shell script on the SD, which then can be used to run any kind of custom script, ui, emulator, whatever that they can come up from the SD card itself, where space is effectively unlimited.  So maybe they will revisit. 

 

As to the current left-hand menu system on the Atari Flashback 9, it's not really configuration driven and I'm not aware yet of how I can create any more categories of "folders".  There seems to be some degree of hard-coding in this thing.  I don't know if it's just lazy sloppy coding (because it met the requirement for the user experience) or if it's a common approach for embedded system.  The "Activision" menu section on the Gold model however does seem to be driven by the "Genre" value in the all-games.ini file.

 

Anyway the menu is a binary  executable that seems to be using SDL2.  Will take more time reverse engineering to see if there's much I can hack with a hex editor.  I did load it up in radare and look around a bit, but have not done extensive disassembly or decompiling yet.  I don't know how much mileage I will get out of that approach, which is why I had in mind maybe doing something custom and more flexible.

 

It will definitely be interesting to see what can be done with FB X, but I don't know if any hacks of it will be "user friendly". 

 

  • Like 2

Share this post


Link to post
Share on other sites

Alright folks, here it is!

 

Attached are 2 custom firmwares, one for the Atari Flashback 9 Gold model 3650, and the other for the regular Atari Flashback 9 HD model 3050.  Choose the one that matches your FB9 model.  What happens if you choose the wrong one?  I don't know.  Probably nothing, except your menu now looks like the wrong model.  Or it could mess something up, I'm not really sure.  Remember one of these supports BT wireless controllers and the other doesn't.  But I think if you go wrong you could probably just apply the correct firmware and you should be good.  Hopefully.

 

This firmware assumes that you have already applied one of the earlier firmware updates to enable the SD card option in your FB9 menu.  I have not tested on an unflashed unit.  I think it would still work, but i don't know.  The SD Card menu option is basically driven by a simple INI file in the data partition, and the unit ship with the INI file set to disable.  The earlier firmware updates were wiping out this INI file in order to effectively "enable" or display the SD card option.

 

Anyway, basic steps:

 

1. Extract the file atari_update.img to a working blank/empty SD card.  Insert card into FB9 and turn on.  A firmware update prompt appears and you push joystick controller 1 stick to the left to go through the flashing process.  Console reboots, sees the firmware update file and prompts you to flash again.  This second time you push the joystick to the right to bypass.  Power off the console and remove the SD card after confirming that the unit started up successfully.

    You might also reference this thread for the procedure, as the process is the same:

    https://atariage.com/forums/topic/284357-atari-flashback-9-firmware-for-adding-games-to-sd-card/#comments

 

2.  Delete the atari_update.img file from your SD card.  Extract the mount_sd.ini control file from the ControlFile zip attached here.  Or just create a blank control file called mount_sd.ini in the root of your SD card.

3.  Insert SD card again and turn on your Atari Flashback 9.  There will be a slight pause as the firmware dumps all the system roms to your SD card the first time it see the control file and then begins using the SD card for roms and box art.  If you boot the Flashback without the SD card inserted it will simply use the built-in roms from NAND.  You will now find a /rom folder on the SD card.  In the roms folder there is a file call all-games.ini.  This is the file you will need to edit to add games to the menu. 

4.  When adding new roms to the /rom folder the file naming conventions are the same as for the existing SD card firmware: file names can't have spaces and extension must be .a26

5.  Putting a /GAME folder on your SD card and dropping .a26 rom files there to load from the "SD Card" menu item still works as before.

 

A typical all-games.ini entry looks like this:

 

[Air Raiders]
File=/rom/AirRaiders.a26
Platform=M Network
Sort=Air Raiders
Year=1982
Genre=Action
Description=Air Raiders is an action game released for the Atari 2600 by Mattel in 1982. It received mixed reviews from critics. \
 \
   The player has the view of an airstrip as seen from the cockpit of a jet fighter. In order to start the launch, it is required that the player presses the fire button. When the player pulls back on the joystick, the jet fighter becomes airborne. A feature of the game includes a horizontal tilt that happens when the jet fighter turns to the left or the right for realistic simulation. The goal is to fire at enemy aircraft. The player also has to worry about not making a quick dive after an enemy craft that would lead to a crash landing. There is also a bar that is located on the width of the screen that allows the player to keep track of the horizontal position. It is important to stay out of heavy gunfire zones because it can lead to a nosedive crash. It is possible to pull out of a nosedive, but it would be a better idea for the player to avoid flak.
Note= \
Player Mode: Single-player game \
 \
1. SELECT button. \
SELECT button info. \
 \
2. Use joystick controller. \
Joystick controller info. \
 \
3. Difficulty switches. \
Difficulty switches info. \
 \
4. Instructions. \
Instructions go here.

The backslashes (\) are basically to create newlines within the large Description block, if you want to go into a lot of detail there.  The "Sort" field is basically used alphabetically I think, but gives you the opportunity to order the games however you want.  Remove or hide roms by removing or commenting (;) out their entries in the INI file, although I think I still had to remove the square brackets ([]) from the section headings when doing so.

 

As to box art, you need to add two files for each custom rom using a simple naming convention.  For example, if you added a rom call "AirRaiders.a26" then you would need a large box art file called "AirRaiders.a26.png" with a resolution of 211x290 and a smaller thumbnail version called "AirRaiders.a26.s.png" with a resolution of 122x168.  You'll see this convention used everywhere in the /rom folder, and I have not tested ignoring it or using different image sizes.  Both files are 24-bit color (8-bit RGB) PNG files, easy to export from GIMP or something. 

 

If you have a regular (non-Gold) FB9 HD, you will find that it actually has the exact same 132 rom and box art files as the Gold version, including the 10 additional Gold roms and the 12 hidden M Network roms that I discovered.  They're just missing from the menu because they have no INI file entries.  Maybe soon I can post an all-games.ini file that just includes all the roms present in the system. 

 

Lastly, the disclaimer.  Use at your own risk.  No warranty or guarantees, lol.  I have tested both of these firmware with real devices and they work fine for me, but if things go wrong I or somebody else may or may not be able to help you. 

 

Soon I will post how to run a custom script or export and run the emulator from the SD card.  Then you can customize UI graphics and music if you want to.

 

Good luck, and have fun!

Atari_FB9HD_Gold_3650_CFW_Hack.zip Atari_FB9HD_3050_CFW_Hack.zip Atari_FB9_CFW_ControlFile.zip

  • Like 4
  • Thanks 3

Share this post


Link to post
Share on other sites
10 hours ago, Brad_from_the_80s said:

2.  Delete the atari_update.img file from your SD card.  Extract the mount_sd.ini control file from the ControlFile zip attached here.  Or just create a blank control file called mount_sd.ini in the root of your SD card.

3.  Insert SD card again and turn on your Atari Flashback 9.  There will be a slight pause as the firmware dumps all the system roms to your SD card the first time it see the control file and then begins using the SD card for roms and box art. 

Good news: It works great!

Not so good news: It took me about 5 tries. Installing the firmware went fine, but dumping the roms took some effort (though I suspect its because of the finicky nature of how the console reads my SD card or my impatience.)

 

After completing Steps 2 & 3 (when it completes the boot up and the menu displays), I take the SD card out and look at it on my computer. 1st reboot there were no roms files or folder at all on the SD card, 2nd reboot just the titles each at 0k in size, 3rd try only a few titles fully copied over, 4th try no all-games.ini (no games displayed on the console menu), etc. Was I not waiting long enough to copy? Does this process completely happen all during the AtGames bootup (which takes about 7 seconds) or does it take longer? Anyway, it eventually all copied over.

 

So far what I'm seeing, this is exactly what I have been waiting for! I quickly edited the ini file to include the "hidden" M Network files and their boxart displayed and the games played perfectly! Can't wait to see what other tricks you're working on!

Edited by radiohead

Share this post


Link to post
Share on other sites
31 minutes ago, radiohead said:

Good news: It works great!

Not so good news: It took me about 5 tries. Installing the firmware went fine, but dumping the roms took some effort (though I suspect its because of the finicky nature of how the console reads my SD card or my impatience.)

 

After completing Steps 2 & 3 (when it completes the boot up and the menu displays), I take the SD card out and look at it on my computer. 1st reboot there were no roms files or folder at all on the SD card, 2nd reboot just the titles each at 0k in size, 3rd try only a few titles fully copied over, 4th try no all-games.ini (no games displayed on the console menu), etc. Was I not waiting long enough to copy? Does this process completely happen all during the AtGames bootup (which takes about 7 seconds) or does it take longer? Anyway, it eventually all copied over.

 

So far what I'm seeing, this is exactly what I have been waiting for! I quickly edited the ini file to include the "hidden" M Network files and their boxart displayed and the games played perfectly! Can't wait to see what other tricks you're working on!

 

Interesting.  The rom dump went extremely fast for me, and the file copy is fully "completed" in a script before the UI launches, but there might be a couple things going on here.  One is the speed of your SD card.  For reference I am using SanDisk Ultra SDHC UHS-I 80 MB/s 533X cards.  Probably nobody needs 16GB but it was one of the smaller full-size SD cards on Amazon for only about $6 I think. 

 

The other issue which even I observed sometimes is there is a delay in fully flushing data writes to the SD card.  I booted the SD card a few times with some scripts to dump system data to SD, and the first few times I didn't get any output because I was too quick about turning the system off after booting.  Operating systems will usually buffer writes to external devices and may take time to finish committing them.  That's why you are supposed to properly "eject" a USB thumb drive for example.  And I'm not really sure how much of a proper shutdown this unit does when you power it off.


My advice, leave the unit running for a couple minutes when doing the initial rom extract.  Maybe even launch a game, as that seem to potentially involve a write to SD /data. 

 

Would you like to share your ini file entries?  I was thinking about maybe hosting entries and also maybe box art in a Google Drive folder or something.

Edited by Brad_from_the_80s

Share this post


Link to post
Share on other sites
21 minutes ago, Brad_from_the_80s said:

 

Interesting.  The rom dump went extremely fast for me, and the file copy is fully "completed" in a script before the UI launches, but there might be a couple things going on here.  One is the speed of your SD card.  For reference I am using SanDisk Ultra SDHC UHS-I 80 MB/s 533X cards.  Probably nobody needs 16GB but it was one of the smaller full-size SD cards on Amazon for only about $6 I think. 

 

The other issue which even I observed sometimes is there is a delay in fully flushing data writes to the SD card.  I booted the SD card a few times with some scripts to dump system data to SD, and the first few times I didn't get any output because I was too quick about turning the system off after booting.  Operating systems will usually buffer writes to external devices and may take time to finish committing them.  That's why you are supposed to properly "eject" a USB thumb drive for example.  And I'm not really sure how much of a proper shutdown this unit does when you power it off.


My advice, leave the unit running for a couple minutes when doing the initial rom extract.  Maybe even launch a game, as that seem to potentially involve a write to SD /data. 

 

Would you like to share your ini file entries?  I was thinking about maybe hosting entries and also maybe box art in a Google Drive folder or something.

My SD card is only a SDHC 1Gb San Disk (an older card I've been using, but with plenty of room for FB9 roms.) I'm fairly certain it's a read/write speed issue, as the files contents were incrementally increasing every time I took it out and viewed them on my PC.

 

I would be happy to contribute to an .ini directory, but so far I just copied dummy entries (your Air Raiders example in post #10) and only changed the rom file title. I plan on creating about 50 or so entries (and resized boxart images) that I want on my system starting tomorrow. Sadly no more time for me today. Thumbs up so far on this!

Share this post


Link to post
Share on other sites

BTW you can in fact make the INI file entries too large.  I doubt anyone is OCD enough, but I did try pushing the limit.  If you are trying to dump the entire freakin' game manual into the Note section then it will fail to load the game info page and thus prevent launching the game.  I don't know what the exact limit is, but follow the examples already in the file and keep it to the basics.

  • Thanks 1

Share this post


Link to post
Share on other sites
On 10/1/2019 at 11:25 PM, Brad_from_the_80s said:

If you have a regular (non-Gold) FB9 HD, you will find that it actually has the exact same 132 rom and box art files as the Gold version, including the 10 additional Gold roms and the 12 hidden M Network roms that I discovered.  They're just missing from the menu because they have no INI file entries.  Maybe soon I can post an all-games.ini file that just includes all the roms present in the system. 

I took the liberty of updating the all-games.ini file downloaded from the FB9 to include the 12 missing M Network games' meta-data. All the hidden roms and boxart are already stored on the console, this .ini file just unlocks it. You should now have access to all 132 roms, boxart and instructions. After you follow the instructions from Post#10 above, unzip the attached file and replace the original all-games.ini with this file on your SD card.

 

Also, if you add "Genre=atvi" to future entries in the .ini file, the rom then appears in the Activision Games submenu, and "Genre=paddles" makes it appear in the Paddle Games submenu. (Astroblast now appears in the Paddle Games list.)

 

On 10/2/2019 at 10:23 AM, Brad_from_the_80s said:

Would you like to share your ini file entries?  I was thinking about maybe hosting entries and also maybe box art in a Google Drive folder or something.

I'm continuing to add more titles to my menu (mostly all the arcade ports and the entire Activision/Imagic catalog). So far, I have a total of 160 titles and boxart appearing on the menu with no issues. If there is such a place to share entries, I can contribute more. Much thanks to Brad_from_the 80's for all his help with this!

 

all-games(all_132_rom_data).zip

  • Like 2

Share this post


Link to post
Share on other sites
19 hours ago, radiohead said:

I'm continuing to add more titles to my menu (mostly all the arcade ports and the entire Activision/Imagic catalog). So far, I have a total of 160 titles and boxart appearing on the menu with no issues. If there is such a place to share entries, I can contribute more. Much thanks to Brad_from_the 80's for all his help with this!

 

all-games(all_132_rom_data).zip 73.12 kB · 2 downloads

Cool man, thanks!  I noticed for some reason the non-Gold FB9 has slightly better box art for Burger Time, or at least it looks more like box art.  And I do think the basic menu can handle a lot of games, only the info screen has some sort of limit, albeit still a somewhat large one based on some of the stuff already in the file.

 

For now I was thinking to share a Google Drive folder with ini files and already resized box art.  I'll probably include this file, but may individual .txt files for additional games that people might commonly want to add.  I'll put something together in a day or two.  Still thinking to build a tool for this file.

Share this post


Link to post
Share on other sites
21 hours ago, Brad_from_the_80s said:

For now I was thinking to share a Google Drive folder with ini files and already resized box art.  I'll probably include this file, but may individual .txt files for additional games that people might commonly want to add.  I'll put something together in a day or two.  Still thinking to build a tool for this file.

An .ini tool editor would be very cool. I've done nearly 30 rom entries so far (I'm kinda obsessed with this new firmware at the moment), and typing the .ini file is incredibly tedious - even when copying and pasting from the online HTML manuals and making them fit within the form of the .ini script. Using Photoshop to crop and resize box art is actually the easy part. But if the rom file is misspelled, the box art file isn't exact to the rom name, or a line break [\] isn't where it's supposed to be, then the entries/rom doesn't show up on the menu. But when it works, it looks nice! 

Share this post


Link to post
Share on other sites

Here is a sample of an SD card startup script.  This script will dump the /emulator partition to your SD card the first time it runs and then run the emulator from the SD card thereafter, if it sees the same mount_sd.ini control file is present.  Then you will find under the /emulator folder on your SD a /res folder containing subdirectories of images and sound files for the UI.  This gives you some limited opportunity to tweak and customize the UI.  For example there is an ogg file you can replace to provide alternate background music, although I have not tried this.  You can replace the stock border files.  You will find them labelled as bezelXX.png in the images folder.  Their names and numbers are hard-coded in the UI, so you have to rename/replace them to substitute your own borders.  On the regular hdmi (non-Gold) SB9 it has a different set of bezel files than Gold, and the "6th" one (bezel05.png) is actually unused.

 

Simply extract the script into the root of your SD card.  Insert and boot your Flashback 9.

 

Delete the script to run emulator from the internal partition with the stock image files.

startup-emu-dump.zip

  • Like 1

Share this post


Link to post
Share on other sites

This works great.  I love having my own music and bezels.  It doesn't see to care about the emulator in the SD folder though.  I tried replacing the default stella_libretro.so with the latest from the repo and stella2014_libretro.so (renamed to stella_libretro.so) and both seemed to work fine and make no difference.  So I replaced it with the Vectrex core to see what would happen and it still made no difference.  So it's reading the UI assets, but not the emulator core.


Can you modify the script to work with the Genesis Flashback?  I'd love to replace the music and bezels in that.

Share this post


Link to post
Share on other sites

I have been obsessed with this CFW for a few days now. Attached are a bunch of box art and game instruction files I made that can be included in the "all-games.ini". These are official and homebrew Arcade ports and some Activision titles.

 

The box art has been properly resized (there are 2 images per game - a small file for the thumbnail in the main menu, and a larger file for the instructions page.) All the box art and game instructions (formatted and edited for the ini template) come from Atariage with a few exceptions. I have not included the game roms, but its very likely you have all the roms anyway.

 

After installing Brad_from_the_80s' CFW, unzip the attached file "arcade_collection.zip" to your desktop.

  • The roms, image files and the "all-games.ini" files go in the /rom folder created by the CFW.
  • Copy the contents of each game's .txt file and paste it into your "all-games.ini" using Notepad or Notepad+ (it doesn't matter how you order the titles, the "Sort" tag will display them alphabetically on the main menu.)
  • Copy over both image files of each game.
  • Make sure the game rom file you supply (.a26) is titled EXACTLY as the image files and how it is referred to in the ini file (or else it won't play when you click on the image in the main menu.)
  • EX: To play Star Wars Arcade from the main menu, make sure you have: StarWarsArcade.a26, StarWarsArcade.a26.png, StarWarsArcade.a26.s.png, and the [Star Wars Arcade] metadata in the "all-games.ini".

Files included are for: Atlantis, Barnstorming, Battlezone, Berzerk, Boxing, Cosmic Ark, Star Wars Arcade, SW: Death Star Battle, SW: Empire Strikes Back, SW: Jedi Arena, Defender, Demon Attack, Dig Dug, Dolphin, Donkey Kong, Donkey Kong VCS, ET, Fast Food, Fishing Derby, Frogger (2600), Galaxian, Gorf, Grand Prix, Halo 2600, Joust, Juno First, Lady Bug, Laser Blast, Lunar Lander (FB2), Medieval Mayhem , Moon Patrol, Ms. Pac-Man, Oink!, Pac-Man, Pac-Man Arcade (8k), Phoenix, Plaque Attack, Pole Position,  Pong Arcade (FB2), Popeye, Q*bert, Rally-X, Scramble, Skiing, Space Invaders (2600), Spider Fighter, Star Castle Arcade, Tac-Scan, Tennis.

 

Additionally, I changed the box art for the FB9 versions of Frogger and Space Invaders. The FB9 uses the original 2600 box art, but I wanted to use them for the newly loaded 2600 roms. The attached "frogger-spaceinaders.zip" swaps out the FB9 art for new box art utilizing their original Arcade flyers, but have been named the way they were in the original ini file. The 2600 versions (in the "arcade_collection.zip") are titled "Frogger2600" and "SpaceInvaders2600". 

 

Enjoy!

frogger-spaceinvaders.zip arcade_collection.zip

Edited by radiohead
  • Like 4
  • Thanks 1

Share this post


Link to post
Share on other sites
5 hours ago, KevinMos3 said:

This works great.  I love having my own music and bezels.  It doesn't see to care about the emulator in the SD folder though.  I tried replacing the default stella_libretro.so with the latest from the repo and stella2014_libretro.so (renamed to stella_libretro.so) and both seemed to work fine and make no difference.  So I replaced it with the Vectrex core to see what would happen and it still made no difference.  So it's reading the UI assets, but not the emulator core.


Can you modify the script to work with the Genesis Flashback?  I'd love to replace the music and bezels in that.

 

It looks like the menu app is hardcoded to use absolute paths to /emulator/retroplayer and /emulator/stella_libretro.so, so the internal copy versions of the emulator only for now.  And I can't really remount the /emulator partition without altering the root partition.  Which I could do, but trying to avoid for now.  There might be something cute I could do with the data partition and symlinks to trick it out.  Of course I could do custom fw to try different cores, but it's iffy what would actually work or not right now.  But given time I can just hack or completely replace the menu app to have it do what I want anyway.

 

There is also a retroplayer.ini file on the /data partition which has a couple of settings related to Bezels.  I haven't messed with trying to figure out how or if they work, but should be possible to retrieve and overwrite this settings file with your own using simple scripts. 

 

The script hook is very simple (look for startup script on SD card, run it)  and could easily be added to the Genesis or Legends flashbacks custom firmware.  But as I don't have these units to test I'm not the best person to try doing it.  Our friend rmr_rd provided those fw I believe.

Share this post


Link to post
Share on other sites
2 hours ago, Brad_from_the_80s said:

...But as I don't have these units to test I'm not the best person to try doing it.  Our friend rmr_rd provided those fw I believe.

 

Yes, I've been using the custom firmware for the Genesis Flashback (and loving it), since it was first released.  🙂

 

But I'm not aware of a script to dump the emulator folder to SD and read from there.  I'd think it would just be a simple edit to point the script to the correct directory of the Genesis Flashback's folder.  Unfortunately, I've not opened my 2018 Genesis Flashback (yet), so I don't know where that folder is located.

Edited by KevinMos3

Share this post


Link to post
Share on other sites
1 hour ago, KevinMos3 said:

 

Yes, I've been using the custom firmware for the Genesis Flashback (and loving it), since it was first released.  🙂

 

But I'm not aware of a script to dump the emulator folder to SD and read from there.  I'd think it would just be a simple edit to point the script to the correct directory of the Genesis Flashback's folder.  Unfortunately, I've not opened my 2018 Genesis Flashback (yet), so I don't know where that folder is located.

 

Actually the current custom firmware for the Genesis FB would have to be modified a little bit more.  The feature to call a startup script (startup.sh) from the SD card was not built-in, I added it to my custom firmware for Atari FB 9.  The hook is really simple but needs to be added to the CFW for the Genesis.  Then basically the exact same script could be used to dump the emulator partition.

Share this post


Link to post
Share on other sites
4 hours ago, Brad_from_the_80s said:

 

It looks like the menu app is hardcoded to use absolute paths to /emulator/retroplayer and /emulator/stella_libretro.so, so the internal copy versions of the emulator only for now.  And I can't really remount the /emulator partition without altering the root partition.  Which I could do, but trying to avoid for now.  There might be something cute I could do with the data partition and symlinks to trick it out.  Of course I could do custom fw to try different cores, but it's iffy what would actually work or not right now.  But given time I can just hack or completely replace the menu app to have it do what I want anyway.

 

There is also a retroplayer.ini file on the /data partition which has a couple of settings related to Bezels.  I haven't messed with trying to figure out how or if they work, but should be possible to retrieve and overwrite this settings file with your own using simple scripts. 

 

The script hook is very simple (look for startup script on SD card, run it)  and could easily be added to the Genesis or Legends flashbacks custom firmware.  But as I don't have these units to test I'm not the best person to try doing it.  Our friend rmr_rd provided those fw I believe.

I can add the same logic to my Genesis FB HD custom fw.

 

You are correct, the retroplayer and the cores are hardcoded into retromenu so moving the /emulator partition to the SD Card will only change  the place where the menu is loaded - this is useful to load different bezels. 

 

Using startup.sh also give some flexibility to run different code instead of retromenu, or a custom retromenu. I changed startup.sh in my Legends Flashback to load a retromenu-mod with a new path for the cores (/rom instead of /emulator). This enabled to load different cores (I could load the latest MAME 2003 Plus, or switch between GenesisPlus GX and Picodrive by renaming the Genesis core) only when the SD Card is loaded - and /rom is mounted from the SD instead of internal memory.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...