Simple/Bare
The most basic format of a Kickstart ROM and the easiest to deal with is a bare ROM, please have a look at the “Structure” page to see how these are put together.
You may find that a single file may contain multiple ROM banks concatenated together, these might be usable by emulators (e.g. CD32 ROM which has an 0xF80000 and an 0xE00000 bank simply concatenated in the same file).
Burnable formats
Occasionally, small ROMs (256k, pre KS2) might be doubled up to fill a 512k ROM, this is called “overburning” and is useful when you use a larger EPROM than needed, not filling an EPROM may give unexpected results, these files aren’t really particularly useful in themselves.
When you burn ROM files to EPROMs, they will typically need to be “byteswapped”, sometimes the EPROM burner software will do this for you, sometimes you’ll need to do it yourself, byteswapping is simply swapping alternate bytes.
If your target machine is a dual ROM system then the kickstart will need to be split into HI/LO pairs, this takes alternate words (two bytes) and places them into separate files, so these files can be split for dual ROMs, byteswapped for burning to EPROM and overburnt to fill the EPROMs.
SuperKickstart (HardDrive/File)
Designed for A3000/030/MMU computers with Kickstart 1.4 installed in physical ROM, Superkickstart files will contain a simple ROM, followed by some “Bonus” ROM modules which will include extra code for adding memory, IDE support etc.
Kickstart 1.4 will allow you to pick either a Kickstart 1.3 file or a Kickstart 2.0 file, they will have different bonus code, it’s also possible to use a Kickstart 3.0/3.1 file with the 2.0 bonus code added allowing a soft boot of the later kickstarts, I guess even 3.1.4/3.2.1 could use the same mechanism, note, this is designed for the A3000 (MMU required) with Kickstart 1.4 in ROM, it might be possible to use a similar booting mechanism for other machines but you may need to modify the ROM or bonus code used.
To use Superkickstart files (this is not a guide!), the boot hard drive must be called either “wb_1.3” or “wb_2.x” (depending on with kickstart you want to boot from), they must be formatted as FFS, the superkickstart files must be called Kickstart and stored in DEVS: i.e wb_1.3:devs/kickstart and wb_2.x/devs/kickstart (you’ll need to use wb_2.x for kickstart 2 and above, i.e. kickstart 3.1 will use wb_2.x).
KickIt
KickIt files just a have an eight byte header (four binary zeroes 0x00000000 followed by the ROM size as a four byte value, usually 0x00080000), KickIt ROMswill typically load a non-standard (RAM) addresses, such as 0x200000, 0xC00000 or 0xF00000, they don’t require an MMU to use these addresses as the ROM is fully relocated to this fixed address.
00000000 00 00 00 00 00 08 00 00 |........ |
ReKick/ReCode
The ReKick/ReCode format is a lightly encrypted format, also known as “DEADFEED”, a simple XOR mechanism is used to obfuscate the ROM;
#1 Skip the first 108 bytes
00000000 41 4d 49 47 41 20 52 4f 4d 20 4f 70 65 72 61 74 |AMIGA ROM Operat|
00000010 69 6e 67 20 53 79 73 74 65 6d 20 61 6e 64 20 4c |ing System and L|
00000020 69 62 72 61 72 69 65 73 3a 20 43 6f 70 79 72 69 |ibraries: Copyri|
00000030 67 68 74 20 a9 20 31 39 38 35 2d 31 39 39 32 20 |ght . 1985-1992 |
00000040 43 6f 6d 6d 6f 64 6f 72 65 2d 41 6d 69 67 61 2c |Commodore-Amiga,|
00000050 20 49 6e 63 2e 20 20 41 6c 6c 20 52 69 67 68 74 | Inc. All Right|
00000060 73 20 52 65 73 65 72 76 65 64 2e 00 |s Reserved.
#2 XOR the next four bytes with the four byte sequence 0xDEADFEED
#3 The Output from the XOR will act as the key for the next four bytes, and so on until you get to the end of the actual ROM
#4 Skip the last bit of the ROM
00080060 41 4d 49 47 | AMIG|
00080070 41 20 52 4f 4d 20 4f 70 65 72 61 74 69 6e 67 20 |A ROM Operating |
00080080 53 79 73 74 65 6d 20 61 6e 64 20 4c 69 62 72 61 |System and Libra|
00080090 72 69 65 73 3a 20 43 6f 70 79 72 69 67 68 74 20 |ries: Copyright |
000800a0 a9 20 31 39 38 35 2d 31 39 39 32 20 43 6f 6d 6d |. 1985-1992 Comm|
000800b0 6f 64 6f 72 65 2d 41 6d 69 67 61 2c 20 49 6e 63 |odore-Amiga, Inc|
000800c0 2e 20 20 41 6c 6c 20 52 69 67 68 74 73 20 52 65 |. All Rights Re|
000800d0 73 65 72 76 65 64 2e 00 00 42 65 74 61 20 52 65 |served...Beta Re|
000800e0 6c 65 61 73 65 21 20 20 44 6f 20 6e 6f 74 20 64 |lease! Do not d|
000800f0 69 73 74 72 69 62 75 74 65 21 00 00 |istribute!..|
Note, as most 512k ROMs will begin with 0x11144EF9 you could just skip the first 0xDEADFEED XOR and use 0x11144EF9 as the key for the second four bytes and so on, but it was never intended to be anything more than casual protection.
Cloanto Encrypted
Early Cloanto (Amiga Forever) ROMs are also lightly encrypted with a licence key “rom.key”, the contents of this is used as a simple XOR key, there’s at least two different versions of the key files.
#1 Skip the first 11 bytes
00000000 41 4d 49 52 4f 4d 54 59 50 45 31 |AMIROMTYPE1 |
#2 XOR the remainder with the contents of the rom.key file (repeating when you get to the end of rom.key file