1.3 Boot Logo

The 1.3 boot logo is stored in the strap module and consists of three parts, the colours, the draw/fill and the bitmaps, you can change these, although none of the vectors or bitmaps use any kind of standard, so either you’ll need to laboriously work with some grid paper or write some software to do the hard work for you.

This example uses the A500 version of the kickstart 1.3 ROM – you can (probably) use any v1/1.1/1.2/1.2.1/1.3 ROM, but you’ll have to find the right positions to patch.

Colours

The four colours available are stored in 8 bytes (4×2 bytes) at 0x2872A

# Addresses below are for the A500 v1.3 ROM
0xFE872A 0FFF # White
0xFE872C 0000 # Black
0xFE872E 077C # Blue
0xFE8730 0BBB # Grey
# So, to patch (and just change the blue to red)
CapCLI> patch 0x2872A 0x0FFF00000F440BBB

Vector (Draw)

The first section consists of draw and fill commands, this starts at position 0x289D0

# A draw command starts with 0xFF, followed by the colour you want to use and the initial drawing position
FF02802 - start drawing with colour two from position x=28, y=2
# The next two bytes are the "draw to" position and repeats until the next 0xFF byte (either another command or the end)
9791 - draw to x=97, y=91, you can have as many as you like in the list

Note, the origin 0,0 position is actually screen position 80,48, with all coordinates offset from there (I guess as otherwise you would have an issue at X position 256, I'm guessing at 48 being the Y offset, I'm not sure if there's PAL/NTSC differences either);

Vector (Fill)

The fill commands are used in the same section as the draw commands and can appear anywhere before/after any draw commands, they are done in order so make sure you create the lines to fill first!

# A fill command starts with 0xFE, followed by the colour and then the position you want to start the fill
FE026A0C - fill with colour two at position x=6a, y=c
# If you want multiple fills, you need to repeat the 0xFE and colour
FE026A0CFE023F0D

The end of the Draw/Fill commands is marked with 0xFFFF – don’t forget this or it might make a mess!

# This patch will replace the "hand" logo with "Boing Ball" logo (note, it's all one line)
patch 0x289D0 0xFF02802979166D0A5B0244624F63555B5E4C65376821670F620453004A084118392C374238554462355B264E1F39FF0220267F3D76505E4C37421F3920252913331468218029803DFF024006590B73137825763A6D4E5F5C46582D50283D292732143F06FF02274E2D50365CFF027650675D56624B635F5D695CFF026A0873137815FF02291338054A01520041063906FE023F04FE025506FE026A0CFE023F0DFE026116FE02791DFE02291DFE024A25FE026C2CFE023034FE02563DFE027544FE022544FE02404EFE026152FE023557FE024B5CFE02605EFFFF

Bitmaps

The final section is the bitmaps (each one is a single colour, so a single bitplane really), as with the draw and fill above, the bitplane origin position is also offset by 80,48

# This example is the V 1.3 bitmap at position 0xFE8C58
# Each bitplane has a six byte header
FE8C58 00
       01 Colour (00/01/02/03)
       03 Horizontal size, in words, so 3x16 pixels = 48 pixels wide
       0A Vertical size, height= 10 pixels
       5C X position = 92
       64 Y position = 100
# Followed by the data
FE8C5E 0F 9F C1 C0 0F C0
       07 07 03 C0 1F E0
       07 0E 07 C0 3C F0 
       07 1C 01 C0 00 E0 
       07 38 01 C0 03 C0 
       07 70 01 C0 03 C0 
       07 E0 01 C0 00 E0 
       07 C0 01 C0 3C F0 
       07 80 07 F3 1F E0 
       07 00 07 F3 0F C0
# After all the bitplanes
       FF FF

Note, as these are bitplanes you will “or” the colour value at a particular position, if you overlap your bitplanes then the colours will change, putting a blue pixel (02) on top of a black pixel (01) will result in a grey pixel (03) – this is either rally useful, or really annoying!

# This patch replaces the Amiga/Work bench/V1.3 bitmaps with a simple "Amiga 1.3" bitmap (two bitplanes)
patch 0x28B6C 0x00020508266E00282021C16000A000000048104206920120000000880090212002200000010809640A0004202012020808A042080820000004080908122410200002080A084891112020008020000A0204418008019200010508266E00383E3FFF7F00E0000000781E7E1EF301E0000000F81EFC39E103E0000001B83FFC3BC006E0301E03386FB873CF8CE0301207F8CF3873E71FE010060C3B8E78F1F730E011923E7FEEFFFC7FF9F8399EFFFF

Again, the end of the bitplanes is marked with 0xFFFF – don’t forget this or it might try and draw the rest of memory!

In summary

Putting it all together, the three patches above result in this boot screen, hey! I’m a techie, not an artist, I’m sure I could do better, but it’s tedious to design!
This example uses less data than the original hand logo, so the patch is nice and safe (don’t forget to checksum the ROM after patching) – be warned that you might run out of space very quickly if you get too elaborate, also the two sections (draw/fill and bitplanes) are in a fixed place and have a fixed size – you could patch the pointer to the bitplanes section if you wanted to use the space more efficiently (e.g. allow more/less space for each section).

Scroll to Top