The400 Mini
I've managed to extract most of the games from The400 mini, the Atari 8-bit mini console that was released last year.
First step: You'll need a USB A-A cable. I picked up one on Amazon.
Follow the instructions here the were written for the C64 (full size). They are basically the same inside. You will have to take the bottom of the console to access the FEL button.
https://thec64community.online/thread/708/the64-maxi-mode-rescue-boot
Some people seem to have trouble supplying enough power to make this work. Some people suggest using the separate microUSB power cable. My older desktop computer has no problem supplying enough power through the USB A cable plugged into the back of the mini console.
I used a linux box with the linux script supplied. The main filesystem appears as a USB drive. If you are running windows you may to install a driver to read the ext4 filesystem.
Atari system roms are under /usr/share/colleen/roms/
The games themselves are all compressed inside /usr/share/manhattan/resources.bod
To get the games, copy resources.bod to a folder on your computer.
Binwalk (linux utility) will extract a bunch of files from resources.bod
The games are inside files with the extension snn and snp. I think snn has the ntsc versions and snp has the pal versions.
I have written linux shell scripts that will extract the games from the snn files. They come as rom (cartridge), atr (floppy) and cas (tape) images.
The rom images load with the a800 core in retroarch. I haven't gotten the atr or cas images to work with retroarch yet, but they do work with the standalone atari800 emulator. The standalone atari800 emulator crashes when loading encounter.rom
There are no snn or snp files for Bristles, Capture the Flag, or Wavy Navy. Hover Bovver only has an snp file, but I haven't gotten it to load in either emulator yet.
I haven't figured out how they stored Seven Cities of Gold yet. I think that there are 2 floppy images in there, but the layout is different from the other snn files.
The atr and cas images may be longer than necessary. It is hard to test. All I know for sure is that they load.
Anyway, the scripts are here:
https://github.com/stuckinstyx/The400mini
Put them in the same folder as your resources.bod. Extract with binwalk, then run the scripts.
Use at your own risk, etc.
Anyway,
I've added a script for Wavy Navy, which was inside resume.snp
I found a disk image inside the Seven Cities of Gold archive, but it looks like the map disk. I haven't found the main program yet.
I've gotten Hover Bovver and all of the atr and cas files to work in Retroarch. Just a settings issue.
It turns out that there are several copies of resume.snp inside the archive. Have to use binwalk -e -V to get them put in different folders. Now have scripts for Bristles and Capture the Flag, as well as an updated Wavy Navy
Nice work. I always thought you would have to use a UART to USB adapter for the Retro Games consoles. That what I had to do with THEC64 Mini at least.
Any information on the Amiga and Spectrum one? I'm guessing they have similar hardware and software setup.
I don't own the Amiga or Spectrum minis, but I suspect that they are similar. I'm hoping to pick up the Amiga one, but they are very pricey now. I should have bought it at release.
You don't need a UART for the C64 mini. I just posted about it in the appropriate thread.
I do have the Amiga mini, so hopefully I can test it out soon.
@stuckinstyx - thanks so much for this. I had started messing with dumping my 400 a while ago, but was stymied by the resourced.bod without any obvious way to find an extract the resources. I wasn't familiar with binwalk, but that obviously seems to do a great job here.
I wanted to replicate your results, and also try to identify the version of each ROM included. They seem to come from all over, unfortunately. Detailed notes of my findings below, along with what I believe are corrected size/offsets for extracting the ROM data for several games (designated with an asterisk).
General note: I use the Atari 8-bite Software Preservation [A8SP] versions as my gold standard, so all of the dumps below are compared to that as a starting point. However, they use the more accurate ATX floppy disk format, whereas THE400 (and most other emulators) use ATR images, so I can't directly compare any of the floppy images with A8SP.
These games exactly match the A8SP version (using CAR extension for these because they included a cartridge header for emulators):
- Airball.car
- BattleZone.car
- Caverns of Mars.car
- Crystal Castles.car
The ROM data for these match the A8SP version, but are missing the cartridge header (adding the appropriate header results in an exact match):
- Bristles.rom
- Flip and Flop.rom
- Millipede.rom
- Missile Command.rom
- Star Raiders II.rom
These games vary from the A8SP version, but match ROMs available from Atari Mania:
- Asteroids.rom
- Basketball.rom
- Bruce Lee.cas
- *Capture the Flag.atr
- ElektraGlide.atr
- *Hover Bovver (E).cas - assuming PAL
- Miner 2049er.rom
- *O'Riley's Mine.atr
- Super Breakout.rom
- *Yoomp! (v1.1).xex - NTSC
- *Wavy Navy.atr
I can't find a definitive source for these games, but they match ROMs in the Ghostware Atari 800 ROM collection:
- Boulder Dash.atr
- *Centipede.atr
- *M.U.L.E..atr
The rest of the games require some commentary:
- *Berzerk.rom - seems to be an unreleased prototype with multiple versions, and I can't find a specific match. Extracting with the corrected offset I list below results in a file that differs from the A8SP version by only 3 bytes (plus header).
- Castle Crisis.rom - this appears to be a newer / digital version of the ROM compared to the A8SP cart dump. The A8SP version includes the comment "Final Beta Posted to AA 12/03/03". The 400mini version lacks that comment, but instead included "Antstream/Code10Digital Edition.(XEGS compliant)Can you believe it's been 20 years?". I guess this is a newer build for the Anstream service?
- Encounter!.atr - this is a disk rather than cartridge ROM. I can't find a definitive source for this, but comparing against the version in the Ghostware collection it's missing data both at the beginning and end. However, that early data seems to be missing/truncated in the version packed in the 400mini - if I start the extract earlier, I get obviously non-ROM data included. Since I can't get a match on that early data I'm not going to bother with the trailing data either since your version works as-is and there's no way to get an exact match.
- *Henry's House (E).cas - I can't find an exact match, but with the corrected size I get a file that differs by only 13 bytes from the Atari Mania version (it's a UK release, so assuming PAL)
The games marked with an asterisk required some modification to your extraction process. Here are the updated commands I ran to get matching results:
Berzerk: dd bs=1024 if=_resources.bod.extracted/berzerk.snn of=temp/berzerk.rom skip=410 count=16 iflag=skip_bytes
Capture the Flag: dd bs=92176 if=_resources.bod-0.extracted/0x450F3C/resume.snp of=temp/capture_the_flag.atr skip=72 count=1 iflag=skip_bytes
Centipede: dd bs=8720 if=_resources.bod.extracted/centipede.snn of=temp/centipede.atr skip=68 count=1 iflag=skip_bytes
Henry's House: dd bs=42716 if=_resources.bod.extracted/henryshouse.snn of=temp/henryshouse.cas skip=68 count=1 iflag=skip_bytes
Hover Bovver: dd bs=17516 if=_resources.bod.extracted/hover_bovver.snp of=temp/hoverbovver_pal.cas skip=68 count=1 iflag=skip_bytes
M.U.L.E.: dd bs=92176 if=_resources.bod.extracted/mule.snn of=temp/mule.atr skip=72 count=1 iflag=skip_bytes
O'Riley's Mine: dd bs=11891 if=_resources.bod.extracted/orileys_mine.snn of=temp/orileysmine.cas skip=72 count=1 iflag=skip_bytes
Wavy Navy: dd bs=92176 if=_resources.bod-0.extracted/0x5EAED4/resume.snp of=temp/wavynavy.atr skip=72 count=1 iflag=skip_bytes
Yoomp! dd bs=26436 if=_resources.bod.extracted/yoomp.snn of=temp/yoomp.rom skip=72 count=1 iflag=skip_bytes
I do have the Amiga mini, so hopefully I can test it out soon.
I tried messing with the Amiga mini as well, but ended up being an almost complete waste of time. All of the games are stored on there as emulator save states instead of original ROMs. When you load a game, it fires up the save state to take you to immediately to the game menu instead of going through the load process for the games. Which I guess is convenient, but sucks when you want to know what versions you're working with.
There's some discussion about this and some rough C# code to extract the files here if you're interested: https://thec64community.online/thread/1220/thea500-mini-hacking-development
I just tried running binwalk against it, and man was that easier. I really wish I knew about that sooner; getting that C# code working on Linux was a major hassle. But still... all we seem to have are the USS save states rather than any actual ROMs, which sucks.
Also... if anyone wants to mess with this themselves, you can save yourself the trouble of dumping your own firmware by downloading the appropriate PCUAE file setup file and extracting from there. It includes options to cross-flash different versions of firmware to all similar devices, and as such includes the resources.bod files for each version. Note that newer firmware releases may include and updated resources.bod, for example if new or updated versions of games are included, so you'll see several versions of this file mentioned.
For THEA500, download pcuae-v5.2.0-main-cbm-machine-edition-setup.exe and look under Modes/PCUAE_Mode/manhattan/.
For THE400, download pcuae-v5.1.1-atari-machine-edition-standalone-setup-2.exe and look under Modes/PCUAE_Mode/manhattan_the400/.