At it’s core Capitoline (Cap) is an Amiga kickstart editor, but like any software project, it’s grown arms and legs, added features which may or may not be useful to everybody.
I started out using Remus/ROMSplit on my A500 with A590 and only had very limited success (which I’m sure was my fault), I was given a set of A1200 custom 3.9 ROMs (which didn’t boot), so I broke out the trusty TL866 and tried to find out why, this leads me on to (one of my) character flaws, I needed to know why they didn’t work, and so I went down the rabbit hole of “how do kickstarts work”. Not much of a character flaw I hear you say… well, come closer gentle reader and listen to a story of technical stubbornness.
I started out with some simple C code just breaking down and displaying what a ROM consisted of, checksums, libraries and headers, then what those bits consisted of (ROMTAGs) and so on until I didn’t understand something, so I wrote more code to understand more and more, then I had an epiphany, why not extract libraries into files, oh if I have libraries, why not make it so it can build ROMs, oh, now I can build ROMs, why not try and add as many ROM tools in one place, saving in EPROM burnable formats etc. this led on to integrating a disassembler, working out how FFS floppy images (ADFs) store their files, Zip files are more!
One core idea for me when writing it was that everything should be in one download, no dependencies on external code, works out of the box, Remus is excellent and the definitive Kickstart editor but it only runs on an Amiga and has some dependencies, there’s also other tools such as amitools/romtool but compiling it up can be a bit daunting if you’ve not done it before, so I wanted a “download and go” tool.
- You can load ROMs in various different formats, decrypt, extract from ADF etc.
- Once loaded you can take a ROM apart, “ROMSplit” into modules
- Then you can put a new ROM together “add” from these modules or other ROMs and ADFs
- You can patch ROMs to change text or behaviour
- You can save ROMs for burning to EPROMs (byteswap, interleave, split)
- You can create skick files for softloading Kickstarts or use within WHDLoad
- You can read ADFs, extract individual files, add them to ROMs or save as a Zip file
- Using a combination commands you can create 1Mb kickstarts suitable for burning
- Example “recipes” are included to help you create your own ROMs with one click or command
- You can disassemble components into machine code
- You can analyse your ROMs and see what’s in them
Credits and links
All code is 100% written by me, from scratch, all the ROM extraction, creation, RTB generation, ADF reading, disassembler, cross platform code, windows GUI etc. not a single line of code has been reused from anyone else’s code, this was actually deliberate, not only does that mean I didn’t have a mixture of confusing and tortuous licence agreements to try and understand, I also wanted to challenge myself, which of course means that that it’s buggy and works differently to everything else, the only exception is the CRC32 algorithm, which I obviously didn’t invent or reverse engineer, I used a public (unrestricted use) algorithm and lookup table published by MIT.
However, although I reverse engineered a whole bunch of stuff (like the skick RTB format), I did refer to quite a few resources, the first one was the exec 1.2 disassembly by Markus Wandel, it had critical information about ROM and library headers, I also used the Commodore reference manuals, WinUAE and an online disasembler (which is currently broken, which is a shame).
I had a modest ROM collection (e.g. TOSEC), comparing these allowed me to see differences and why, but the summary of kickstarts documented by Cloanto really helped, and they very graciously gave me access to a collection of kickstart ROMs to test and examine, also Greg Donner had a wealth of information and resources, and helped me fill in a few gaps.
As always, the Amiga community have been a great support, lots of input, suggestions, testing, pointers and extra info from lots of individuals, in no particular order; Robert Miranda, Chris Millard, Simon Wilkie, Angello Campitelli, Brek Martin, Stefan Egger, Craig Walker, Christian Lyng (I’m sure I’ve missed others too, so apologies to you!)
I don’t publish an email address, so if you want to have a chat, report a bug, ask for an enhancement etc. you can find me via the Capitoline Facebook group, and I’m on English Amiga Board and Amiga.org forums as Mikeywikey
No ROMs are included here to download, this is only an editor for the ROMs you own or create from scratch.
Any references to trademarks such as (but not restricted to) Commodore, Amiga, Cloanto, Haage & Partner, Hyperion, AmigaOS and technologies such as WinUAE, Kickstart, Workbench etc. belong to their respective owners and licensees.