Current version (March 2024 v1.007)
Memory usage/free tidied up, quicker loading, smarter ROM loading, AROS ROMs supported, bugfixes
CapitolineDLL (core)
- Loads of functions have better memory malloc/realloc/free as there were a load of memory leaks
- loadhashes() now also creates an index for fast lookup of hashes
- loadrom() will now automatically detect a byteswapped ROM and swap it back during the load
- addcomponent() was scanning the whole ROM for a new ROMTAG (not just the new chunk added), so data/code wasn’t being detected properly
- createextract() didn’t resize the extract buffer, so increasing a component size resulted in a stack corruption as it re-used a small buffer
- analyserom() failed to scan AROS ROMs (ENDSKIP/LIBEND is before ROMTAG for some reason in later ROMs included in Amiga Forever, caused a loopforever).
- New function; reset() clears ROMs, aliases, auditfile info and hashes from memory
- New function; loadsplitrom() loads two hi/lo files back into single ROMs
capcli
Reset command added to clear memory, not that useful as you probably want to just carry on working on your ROMs, but saves you quitting and restarting if you want to start again (it’s main purpose is in RatGui, which it calls reset() after each test so it’s cleaner and doesn’t chew up all the memory).
reset [ROMs|aliases|hashes|auditfiles]
loadrom allows hi/lo split ROMs to be merged back to a ROM (or for 1Mb ROMs merged into a single file and split in to two 512k ROMs), Cap will work out which is hi and which is lo and if it needs to be byteswapped
loadrom /path/to/ROM [slot]
loadrom /path/to/hilo /path/to/hilo [slot]
Bugfix, $$ alias parsed correctly so you can use a $ sign
RAT
RatGUI now calls reset() between tests so that it doesn’t leak (as much) memory, rat.bash and rat.bat start a new session for each test anyway.
CapGUI
- Minor documentation updates
- Using the new hash index makes initial loading quicker
Hash files
v1.3/v1.2.1 misc.resource fixed, dos.library added with BCPL relocs
RTB
v1.3/v1.2.1 now fully RTB aware (BCPL relocs catered for)
Website
- AROS ROMs catalogued properly
- Example patch to force PAL kickstart
Previous version (December 2023 v1.06)
Windows code recompiled with VS 2022, Windows GUI progress and profile help added, a few more tests and hashes added, couple of buffer overflows fixed.
CapitolineDLL (core)
- Warning message for components without relocs moved to level 2 (normally surpressed)
- Buffer overflow while scanning “FindWB” style components fixed
- Spurious “?” for an “unknown” end of the vector table on rom() command
- Kickstart floppy (A1000) now supported
- Creating a kickstart ADF A1000/Superkick now ignores byteswap and 512k split
- CD32 2Mb interleave buffer overflow fixed
CapGUI
- “Loaded ROMs” Tab
- Used % and usage bar display now shown on the page
- “Output profile” Tab (Target Amiga)
- Displays helpful motherboard diagrams and ROM location/orientation
- Fixed 0xFC0000 instead of 0xF80000 for 256k ROMs
- A1000 now creates an A1000 kickstart floppy
- Removed illogical byteswap and split 512k options for ADF/Superkick file creation
Hash Files
- Definitions added for Gateway v3.1 r40.71
- Definition added for v2.04 r36.314 (thanks Chris Collins)
RAT
- All tests now have better descriptions of how they work, what they do, files used etc. (as suggested by admiral on EAB)
- No spurious error message on “exit”
- CD32 2Mb Hyperion ROM, Dual and Single ROM Formats updated
Note: In testing, I’ve found a significant memory leak issue in the RatGUI, multiple runs chew up memory and will eventually die, rat.bash and rat.bat are unaffected, it’s something to do with how the DLL is closed down (i.e. it’s not closing the DLL properly after each test), old versions have the same issue, it’s just more noticeable now with more tests, if you have an issue, then close it and run rat.bat – this is fixed in v1.007
Website
A few new ROMs listed, otherwise pretty much the same
Legacy version (May 2023 v1.05)
A significant issue with how CapGUI checksums ROMs identified and fixed, various minor updates to the core library and GUI, various tests and hash files, website
Specific thanks to Brian King and Richard Gadd for identifying some issues.
CapitolineDLL (core)
Out of bounds (negative) checks prevent coredump in aliasromdata()
Searching aliases wasn’t case sensitive, so $FileSystem.resource finds filesystem first and matches the first bit
romprofile usage made more consistent
CapGUI
Renamed some tabs to be more logically named (Object Browser -> Files, ROMs -> Loaded ROMs)
GUI didn’t checksum properly (would only automatically checksum the first ROM in the profile list)
“Extract library to file” didn’t work, so I moved it to the “Loaded ROMs” tab
CLI -> [Load] now works
Couldn’t create 256k ROMs (I read the value of the “bytewap” checkbox instead, doh…)
Change default [X] Byteswap – unless you prefer your burner to byteswap, it’s a more sensible default
Hash Files
All Cloanto ROMs that have bad ENDSKIP now have (partial) hashes.
Patched Cloanto ROMs now have hashes
Early Hyperion 3.1 ROMs added
RAT
A test to patch the Cloanto ROMs to standard (extractable) ROMs will create the ROMs
A test for 2.x 1Mb ROM for A600 added
RatGUI hasn’t needed any updates and remains at v1.02
Website
More detail on how to create 1Mb ROMs
Early Hyperion 3.1 ROMs added
Documentation for romprofile usage wasn’t very clear and actually could be inconsistent
Legacy version (1st April 2023 v1.04)
Better support for Superkick, wildcard adding from another ROM, hashes tidied up a bit more, couple of tests added
CapGUI
Profiles – Better validation of the intended target Amiga, added SuperKick options
Hashes
Added some titles and descriptions
Added a missing 3.0 (39.106) definition
Fixed a couple of Walker component hashes
RAT
Added creation of a Hyperion 3.2.2 Superkick floppy for A3000/v1.4
Added creation of a 1Mb Hyperion ROM for the A1200 using the CD32 exec (no 1Mb patching needed)
Website
Known ROM list now contains ROMBase
Known ROM list now has a link to the modules in a ROM
Legacy version (9th March 2023 v1.03)
Quick fix to show allow unknown Components to be added to ROMs, couple of recipes fixed, unknown ADF detection fixed
CapCli
- Automatically selects current directory for faster start-up and so you can’t get it wrong.
- Allows you to select unknown components via CapGUI.
- Bug detecting some unknown ADFs fixed, not really identified, I just did it differently and it worked.
Recipes and tests (Rat)
Hyperion 1Mb ROMs for A3000, A4000, A4000T had a typo… or three… doh. fixed
Legacy version (8th March 2023 v1.02)
New tests, minor bugfix, new tool for Windows RatGUI a graphical interface to automated tests
RatGUI
The “Recipes and Tests” now have a Windows GUI, a little quicker and more visual for all you command prompt adverse people, the standard recipes now include more of what you want, without expending any effort.
Drop your ROMs into the ROMs dir, your ADFs into the ADFs dir and click “[Run all tests]” it will quickly create the standard ROMs (if you have the ingredients).
I’ll update the howto/Recipes pages at some point soon.
Tests
Added 1Mb versions of all the Hyperion 3.2.2 ROMs with Workbench/Icon
Added a 1Mb A600/A1200 Hyperion 3.2.2 ROM with Workbench/Icon/CompactFlash/Fat95
Legacy version (5th March 2023 v1.01)
Small fixes and hash file updates
Bugfixes
ADF
adfsavezip fixed, the file count stored in the zip didn’t include directories so gave an error with missing directory entries (still worked, but not a fully compliant zip).
Zip files now have (mostly) correct timestamps, they are based on the FFS timestamp, but because of different formats (the insanely bad MSDOS timestamps in in Zip files), limits (1978 start vs 1980), and TIMEZONE when converting the date (depending on DST) they could well be different from the original.
CapCLI
add from a library archive (such as Boing Bag) fixed, not sure when I broke it, but test building 3.9 ROMs ended up in a coredumpy mess, maybe this never worked.
Hash files
More ReloKick floppies added to known ROMs
Hyperion v3.2.2 ROMs and Modules added
Tests
Automated test for 1Mb Hyperion v3.2.2 ROM for A600 with icon/workbench/PCMCIA/fat95 added, you’ll need the 3.2.2 ROM, Modules ADF, compact flash and fat95 modules
Legacy version (Feb 2023 v1.00)
Major feature update, “analyserom” now uses component hash files to identify known components
Standard “Recipes and Tests” added, to check Cap works and to be used as template examples
Quite a few small (unmentioned) fixes and a couple of important ones like CD32 ROM writing fixed, broken in last release
Quite a lot of tidying hash files and adding ROM hashes, after fixing how unordered relocs are handled
Bugfixes
Patcher
Patching components that don’t have relocs no longer coredumps
findopcode was broken since previous missassembler updates (didn’t check!), also tweaked to do more exhaustive searches (every two bytes)
Saving CD32 ROMs
Saving a CD32 formatted ROM works again now, I had inadvertently reordered the interleaving process which made them unusable, this is now documented here!
CapCLI “add”
Adding components without relocs no longer risks null pointer access (tried to access a null list)
Adding components with unordered relocs could lead to inconsistent hashes (auto sorts them now)
Adding unallocated space works properly now (adds as a component)
Hash Files
Previously missed 1.x 2.x 3.x components added
Definition fixed for 0xbc0ec13f.Kickstart v1.4 beta 3 r36.16 (1990-03)(Commodore)(A3000)[!] (and the two bad hashes removed, thanks to Greg Donner)
Defintion added for 0x17d949e3.0x17d949e3.Kickstart 1.4 r36.15 Beta 4
Definitions for early KS2 v36/v37 added
Amiga Forever definitions added
Hyperion ROMs and component hashes fixed when components has unordered relocs
Superkick hashes (floppy and file) now properly analysed
Enhancements
CapCLI
analyserom – Significant update, now uses hash files (not just loaded components) for more complete component identification, you no longer have to have extracted files or known ROMs to identify known components, and you don’t have to load them
Added * to roms command output to show current rom
adfsavezip – lets you save a loaded ADF file as a zip file
rombase – The rombase command now patches already added libraries to the new address, you can relocate an entire ROM to a new ROMBASE this way.
It doesn’t currently update kickity-split, extended ROMHEADER or SKSize, and you need to checksum the ROM before use.
Missassembler
Default debug level reduced when adding comments/labels to cut down on noise
Added misshints.ini (see Features->Missassembler for more info)
CapGUI
Lots of icon and colour tidy ups (and a nasty green replaced with a nice purple)
“Save ADF to Zip” added to the ADF: options once an ADF is loaded
Website
All new website created, all the old content copied, plus a few new pages added, HowTo, ROM list (big update), Kickstart formats, features