Codetapper's Amiga Site

Agony

Agony is a stunning example of slick programming and beautiful graphics. At the heart of the game is the Amiga's dual playfield mode, consisting of 2 playfields of 3 bitplanes yielding 2 sets of just 8 colours. Looking at the screenshot below, it's hard to comprehend that it's effectively running in 16 colour mode + another 16 for sprites!

Agony

Programmer Yves Grolet has created the illusion of 3 layers of parallax scrolling by splitting the back playfield into 2 pieces. The back playfield is constructed from the even bitplanes 2, 4 and 6. Bitplane 2 forms the static background of the moon, clouds and a mountain range. It is only 2 colours, 1 of which is transparent! Wherever the transparent colour is set, the background copperlist shines through. This static layer never scrolls:

Agony static background

Bitplanes 4 and 6 create a second layer containing trees, rocks, and the brilliantly animated sea. Because this layer uses 2 bitplanes, it is 4 colours (1 of which is transparent). This layer scrolls at 25 frames per second.

Agony background

The water itself is a sequence of 12 frames that is redrawn every 4 frames in a loop. This creates an awesome looking moving sea:

Agony water animation

The front playfield is constructed from the odd bitplanes 1, 3 and 5. It is a standard 8 colour playfield, 1 of which is transparent:

Agony foreground

On top of all this sits a rain layer made from sprites. Sprites are given the highest priority, so they appear on top of everything. This makes it look like the rain is at the front of the screen. Wherever the sprites are transparent, the background layers will shine through, and if they are also transparent, the background colour 0 will be visible. Colour 0 is actually black, so the same trick as Shadow of the Beast and many other games is used - at the left side of the display, colour 0 is changed and at the right side of the display, it returns to black:

Agony sprites

Sprites are used in the following manner:

  • Sprites 0-1 (attached) form the left part of the owl, as well as the sword above the owl when activated. Since they are attached, they are 16 colour sprites.
  • Sprites 2-3 (attached) form the right part of the owl.
  • Sprites 4-5 form the owl's bullets.
  • Sprites 6-7 are used for the rain effect, by displaying the rain graphic twice on each line of the display. By moving the sprites to a different location each update, the rain looks very realistic!

The copperlist:

0005e962: 0120 0001 [000 004]       ;SPR0PTH := 0x0001   Left 16 pixels of the owl
0005e966: 0122 b420 [000 008]       ;SPR0PTL := 0xb420
0005e96a: 0124 0001 [000 00c]       ;SPR1PTH := 0x0001
0005e96e: 0126 b554 [000 010]       ;SPR1PTL := 0xb554
0005e972: 0128 0001 [000 014]       ;SPR2PTH := 0x0001   Right 16 pixels of the owl
0005e976: 012a b688 [000 018]       ;SPR2PTL := 0xb688
0005e97a: 012c 0001 [000 01c]       ;SPR3PTH := 0x0001
0005e97e: 012e b7bc [000 020]       ;SPR3PTL := 0xb7bc
0005e982: 0130 0001 [000 024]       ;SPR4PTH := 0x0001   Bullets
0005e986: 0132 efc8 [000 028]       ;SPR4PTL := 0xefc8
0005e98a: 0134 0001 [000 02c]       ;SPR5PTH := 0x0001
0005e98e: 0136 ffdc [000 030]       ;SPR5PTL := 0xffdc
0005e992: 0138 0005 [000 034]       ;SPR6PTH := 0x0005   Rain
0005e996: 013a 54f6 [000 038]       ;SPR6PTL := 0x54f6
0005e99a: 013c 0005 [000 03c]       ;SPR7PTH := 0x0005   More rain
0005e99e: 013e 57f6 [000 040]       ;SPR7PTL := 0x57f6
0005e9a2: 00ec 0007 [000 044]       ;BPL4PTH := 0x0007   Setup top display - 2 bitplanes for score
0005e9a6: 00ee 993a [000 048]       ;BPL4PTL := 0x993a
0005e9aa: 00f4 0007 [000 04c]       ;BPL6PTH := 0x0007
0005e9ae: 00f6 9e3a [000 050]       ;BPL6PTL := 0x9e3a

A clever trick is now implemented. Colours 10-15 are set to three pairs of duplicate colour palette entries. This is required because when there are graphics in the background layer, we want them to obscure the static moon layer graphics. By duplicating the colours, this ensures that whether or not the moon layer has a bit set, the correct background colour will be drawn.

  • Colour 8 is actually transparent, so colour 0 appears when there are no graphics at all.
  • Colour 9 appears when only the static moon bitplane contains graphics data.
  • Colours 10, 12 and 14 are drawn when only the background contains graphics data.
  • Colours 11, 13 and 15 are visible when both the static moon and the background contain graphics data. By setting these palette entries to the same as colours 10, 12 and 14, you effectively cover the static moon layer!
0005e9b2: 0194 0050 [000 056]       ;COLOR10 := 0x0050   Background layer colours
0005e9b6: 0196 0050 [000 05a]       ;COLOR11 := 0x0050
0005e9ba: 0198 0554 [000 05e]       ;COLOR12 := 0x0554
0005e9be: 019a 0554 [000 062]       ;COLOR13 := 0x0554
0005e9c2: 019c 0143 [000 066]       ;COLOR14 := 0x0143
0005e9c6: 019e 0143 [000 06a]       ;COLOR15 := 0x0143

Now the game sets up the score panel at the top of the screen, which features 16 pixel high text. By adjusting colour 3 on each line, a brown gradient is applied to the score panel.

0005e9ca: 0180 0000 [000 06e]       ;COLOR00 := 0x0000
0005e9ce: 008e 2d90 [000 070]       ;DIWSTRT := 0x2d90
0005e9d2: 0090 00a0 [000 074]       ;DIWSTOP := 0x00a0
0005e9d6: 0092 0038 [000 078]       ;DDFSTRT := 0x0038
0005e9da: 0094 00c8 [000 07c]       ;DDFSTOP := 0x00c8
0005e9de: 0108 0000 [000 080]       ;BPL1MOD := 0x0000
0005e9e2: 010a 0000 [000 084]       ;BPL2MOD := 0x0000
0005e9e6: 0100 a200 [000 08a]       ;BPLCON0 := 0xa200
0005e9ea: 0104 0000 [000 08c]       ;BPLCON2 := 0x0000
0005e9ee: 0102 0000 [000 090]       ;BPLCON1 := 0x0000
0005e9f2: 00e0 0005 [000 094]       ;BPL1PTH := 0x0005
0005e9f6: 00e2 b0d2 [000 098]       ;BPL1PTL := 0xb0d2
0005e9fa: 00e4 0005 [000 09c]       ;BPL2PTH := 0x0005
0005e9fe: 00e6 b676 [000 0a0]       ;BPL2PTL := 0xb676
0005ea02: 0182 0000 [000 0a6]       ;COLOR01 := 0x0000
0005ea06: 2d01 fffe [02d 000]       ;Wait for vpos >= 0x2d and hpos >= 0x00.
0005ea0a: 0186 0653 [02d 008]       ;COLOR03 := 0x0653
0005ea0e: 2e01 fffe [02e 000]       ;Wait for vpos >= 0x2e and hpos >= 0x00.
0005ea12: 0186 0653 [02e 008]       ;COLOR03 := 0x0653
0005ea16: 2f01 fffe [02f 000]       ;Wait for vpos >= 0x2f and hpos >= 0x00.
0005ea1a: 0186 0764 [02f 008]       ;COLOR03 := 0x0764
0005ea1e: 3001 fffe [030 000]       ;Wait for vpos >= 0x30 and hpos >= 0x00.
0005ea22: 0186 0764 [030 008]       ;COLOR03 := 0x0764
0005ea26: 3101 fffe [031 000]       ;Wait for vpos >= 0x31 and hpos >= 0x00.
0005ea2a: 0186 0875 [031 008]       ;COLOR03 := 0x0875
0005ea2e: 3201 fffe [032 000]       ;Wait for vpos >= 0x32 and hpos >= 0x00.
0005ea32: 0186 0875 [032 008]       ;COLOR03 := 0x0875
0005ea36: 3301 fffe [033 000]       ;Wait for vpos >= 0x33 and hpos >= 0x00.
0005ea3a: 0186 0986 [033 008]       ;COLOR03 := 0x0986
0005ea3e: 3401 fffe [034 000]       ;Wait for vpos >= 0x34 and hpos >= 0x00.
0005ea42: 0186 0986 [034 008]       ;COLOR03 := 0x0986
0005ea46: 3501 fffe [035 000]       ;Wait for vpos >= 0x35 and hpos >= 0x00.
0005ea4a: 0186 0a97 [035 008]       ;COLOR03 := 0x0a97
0005ea4e: 3601 fffe [036 000]       ;Wait for vpos >= 0x36 and hpos >= 0x00.
0005ea52: 0186 0a97 [036 008]       ;COLOR03 := 0x0a97
0005ea56: 3701 fffe [037 000]       ;Wait for vpos >= 0x37 and hpos >= 0x00.
0005ea5a: 0186 0ba8 [037 008]       ;COLOR03 := 0x0ba8
0005ea5e: 3801 fffe [038 000]       ;Wait for vpos >= 0x38 and hpos >= 0x00.
0005ea62: 0186 0ba8 [038 008]       ;COLOR03 := 0x0ba8
0005ea66: 3901 fffe [039 000]       ;Wait for vpos >= 0x39 and hpos >= 0x00.
0005ea6a: 0186 0cb9 [039 008]       ;COLOR03 := 0x0cb9
0005ea6e: 3a01 fffe [03a 000]       ;Wait for vpos >= 0x3a and hpos >= 0x00.
0005ea72: 0186 0cb9 [03a 008]       ;COLOR03 := 0x0cb9
0005ea76: 3b01 fffe [03b 000]       ;Wait for vpos >= 0x3b and hpos >= 0x00.
0005ea7a: 0186 0dca [03b 008]       ;COLOR03 := 0x0dca
0005ea7e: 3c01 fffe [03c 000]       ;Wait for vpos >= 0x3c and hpos >= 0x00.
0005ea82: 0186 0dca [03c 008]       ;COLOR03 := 0x0dca
0005ea86: 0090 00b0 [03c 00a]       ;DIWSTOP := 0x00b0

Now the game waits for 3 vertical lines and then sets up the actual game display.

0005ea8a: 3f01 fffe [03f 000]       ;Wait for vpos >= 0x3f and hpos >= 0x00.
0005ea8e: 0182 0aa6 [03f 008]       ;COLOR01 := 0x0aa6   Front playfield colour palette
0005ea92: 0184 0765 [03f 00c]       ;COLOR02 := 0x0765
0005ea96: 0186 0321 [03f 010]       ;COLOR03 := 0x0321
0005ea9a: 0188 0543 [03f 014]       ;COLOR04 := 0x0543
0005ea9e: 018a 0670 [03f 018]       ;COLOR05 := 0x0670
0005eaa2: 018c 0450 [03f 01c]       ;COLOR06 := 0x0450
0005eaa6: 018e 0987 [03f 020]       ;COLOR07 := 0x0987
0005eaaa: 3fd3 fffe [03f 0d0]       ;Wait for vpos >= 0x3f and hpos >= 0xd2.
0005eaae: 0100 6600 [03f 0d8]       ;BPLCON0 := 0x6600   Dual playfield mode
0005eab2: 0104 0024 [03f 0da]       ;BPLCON2 := 0x0024   Sprites have highest priority, so cover
0005eab6: 0108 0006 [03f 0e0]       ;BPL1MOD := 0x0006   all graphics
0005eaba: 00e0 0006 [040 002]       ;BPL1PTH := 0x0006
0005eabe: 00e2 0854 [040 006]       ;BPL1PTL := 0x0854
0005eac2: 00e8 0006 [040 00a]       ;BPL3PTH := 0x0006
0005eac6: 00ea 2954 [040 00e]       ;BPL3PTL := 0x2954
0005eaca: 00f0 0006 [040 012]       ;BPL5PTH := 0x0006
0005eace: 00f2 4a54 [040 016]       ;BPL5PTL := 0x4a54
0005ead2: 00e4 0007 [040 01a]       ;BPL2PTH := 0x0007
0005ead6: 00e6 d53a [040 01e]       ;BPL2PTL := 0xd53a
0005eada: 010a 0002 [040 022]       ;BPL2MOD := 0x0002
0005eade: 0102 00bf [040 026]       ;BPLCON1 := 0x00bf
0005eae2: 008a 0000 [040 02a]       ;COPJMP2 := 0x0000   COPJMP2 and 5f88a
0005eae6: 0192 0166                 ;COLOR09 := 0x0166

For every scanline in the main display, the game waits for horizontal position $42, changes the background colour from black to the sky gradient, and at the end of the scanline (horizontal position $d6) it changes the colour back to black. It does this in bands, so you can see the colour palette entry is duplicated on a number of lines.

(The game actually features a clever trick at this point, as it stores 2 copperlists of background colour changes which are slightly different. By switching the copperlists every frame, the background gradient appears to flicker slightly giving the appearance of even more colours!)

0005eae2: 01fe 0000 [040 02c]	;NO-OP(NULL) := 0x0000
0005eae6: 0192 0166 [040 030]	;COLOR09 := 0x0166
0005eaea: 4043 fffe [040 040]	;Wait for vpos >= 0x40 and hpos >= 0x42.
0005eaee: 0180 0059 [040 04c]	;COLOR00 := 0x0059
0005eaf2: 40d7 fffe [040 0d4]	;Wait for vpos >= 0x40 and hpos >= 0xd6.
0005eaf6: 0180 0000 [040 0dc]	;COLOR00 := 0x0000
0005eafa: 4143 fffe [041 040]	;Wait for vpos >= 0x41 and hpos >= 0x42.
0005eafe: 0180 0059 [041 04c]	;COLOR00 := 0x0059
0005eb02: 41d7 fffe [041 0d4]	;Wait for vpos >= 0x41 and hpos >= 0xd6.
0005eb06: 0180 0000 [041 0dc]	;COLOR00 := 0x0000
0005eb0a: 4243 fffe [042 040]	;Wait for vpos >= 0x42 and hpos >= 0x42.
0005eb0e: 0180 0059 [042 04c]	;COLOR00 := 0x0059
0005eb12: 42d7 fffe [042 0d4]	;Wait for vpos >= 0x42 and hpos >= 0xd6.
0005eb16: 0180 0000 [042 0dc]	;COLOR00 := 0x0000
0005eb1a: 4343 fffe [043 040]	;Wait for vpos >= 0x43 and hpos >= 0x42.
0005eb1e: 0180 0059 [043 04c]	;COLOR00 := 0x0059
0005eb22: 43d7 fffe [043 0d4]	;Wait for vpos >= 0x43 and hpos >= 0xd6.
0005eb26: 0180 0000 [043 0dc]	;COLOR00 := 0x0000
0005eb2a: 4443 fffe [044 040]	;Wait for vpos >= 0x44 and hpos >= 0x42.
0005eb2e: 0180 0059 [044 04c]	;COLOR00 := 0x0059
0005eb32: 44d7 fffe [044 0d4]	;Wait for vpos >= 0x44 and hpos >= 0xd6.
0005eb36: 0180 0000 [044 0dc]	;COLOR00 := 0x0000
0005eb3a: 4543 fffe [045 040]	;Wait for vpos >= 0x45 and hpos >= 0x42.
0005eb3e: 0180 0059 [045 04c]	;COLOR00 := 0x0059
0005eb42: 45d7 fffe [045 0d4]	;Wait for vpos >= 0x45 and hpos >= 0xd6.
0005eb46: 0180 0000 [045 0dc]	;COLOR00 := 0x0000
0005eb4a: 4643 fffe [046 040]	;Wait for vpos >= 0x46 and hpos >= 0x42.
0005eb4e: 0180 0059 [046 04c]	;COLOR00 := 0x0059
0005eb52: 46d7 fffe [046 0d4]	;Wait for vpos >= 0x46 and hpos >= 0xd6.
0005eb56: 0180 0000 [046 0dc]	;COLOR00 := 0x0000
0005eb5a: 4743 fffe [047 040]	;Wait for vpos >= 0x47 and hpos >= 0x42.
0005eb5e: 0180 0059 [047 04c]	;COLOR00 := 0x0059
0005eb62: 47d7 fffe [047 0d4]	;Wait for vpos >= 0x47 and hpos >= 0xd6.
0005eb66: 0180 0000 [047 0dc]	;COLOR00 := 0x0000
0005eb6a: 4843 fffe [048 040]	;Wait for vpos >= 0x48 and hpos >= 0x42.
0005eb6e: 0180 0059 [048 04c]	;COLOR00 := 0x0059
0005eb72: 48d7 fffe [048 0d4]	;Wait for vpos >= 0x48 and hpos >= 0xd6.
0005eb76: 0180 0000 [048 0dc]	;COLOR00 := 0x0000
0005eb7a: 4943 fffe [049 040]	;Wait for vpos >= 0x49 and hpos >= 0x42.
0005eb7e: 0180 0059 [049 04c]	;COLOR00 := 0x0059
0005eb82: 49d7 fffe [049 0d4]	;Wait for vpos >= 0x49 and hpos >= 0xd6.
0005eb86: 0180 0000 [049 0dc]	;COLOR00 := 0x0000

Up until this point, each transparent line of the display has been set to $059, creating a light blue block. Now the game creates a new band by changing the background to a slightly different colour $058, and changing the static moon palette colour aswell. Previously it was $166, now it changes to $165.

0005eb8a: 0192 0165       ;COLOR09 := 0x0165
0005eb8e: 4a43 fffe       ;Wait for vpos >= 0x4a and hpos >= 0x42.
0005eb92: 0180 0058       ;COLOR00 := 0x0058
0005eb96: 4ad7 fffe       ;Wait for vpos >= 0x4a and hpos >= 0xd6.
0005eb9a: 0180 0000       ;COLOR00 := 0x0000
0005eb9e: 4b43 fffe       ;Wait for vpos >= 0x4b and hpos >= 0x42.
0005eba2: 0180 0058       ;COLOR00 := 0x0058
0005eba6: 4bd7 fffe       ;Wait for vpos >= 0x4b and hpos >= 0xd6.
0005ebaa: 0180 0000       ;COLOR00 := 0x0000
0005ebae: 4c43 fffe       ;Wait for vpos >= 0x4c and hpos >= 0x42.
0005ebb2: 0180 0058       ;COLOR00 := 0x0058
0005ebb6: 4cd7 fffe       ;Wait for vpos >= 0x4c and hpos >= 0xd6.
0005ebba: 0180 0000       ;COLOR00 := 0x0000
0005ebbe: 4d43 fffe       ;Wait for vpos >= 0x4d and hpos >= 0x42.
0005ebc2: 0180 0058       ;COLOR00 := 0x0058
0005ebc6: 4dd7 fffe       ;Wait for vpos >= 0x4d and hpos >= 0xd6.
0005ebca: 0180 0000       ;COLOR00 := 0x0000
0005ebce: 4e43 fffe       ;Wait for vpos >= 0x4e and hpos >= 0x42.
0005ebd2: 0180 0058       ;COLOR00 := 0x0058
0005ebd6: 4ed7 fffe       ;Wait for vpos >= 0x4e and hpos >= 0xd6.
0005ebda: 0180 0000       ;COLOR00 := 0x0000
0005ebde: 4f43 fffe       ;Wait for vpos >= 0x4f and hpos >= 0x42.
0005ebe2: 0180 0058       ;COLOR00 := 0x0058
0005ebe6: 4fd7 fffe       ;Wait for vpos >= 0x4f and hpos >= 0xd6.
0005ebea: 0180 0000       ;COLOR00 := 0x0000
0005ebee: 5043 fffe       ;Wait for vpos >= 0x50 and hpos >= 0x42.
0005ebf2: 0180 0058       ;COLOR00 := 0x0058
0005ebf6: 50d7 fffe       ;Wait for vpos >= 0x50 and hpos >= 0xd6.
0005ebfa: 0180 0000       ;COLOR00 := 0x0000
0005ebfe: 5143 fffe       ;Wait for vpos >= 0x51 and hpos >= 0x42.
0005ec02: 0180 0058       ;COLOR00 := 0x0058
0005ec06: 51d7 fffe       ;Wait for vpos >= 0x51 and hpos >= 0xd6.
0005ec0a: 0180 0000       ;COLOR00 := 0x0000
0005ec0e: 5243 fffe       ;Wait for vpos >= 0x52 and hpos >= 0x42.
0005ec12: 0180 0058       ;COLOR00 := 0x0058
0005ec16: 52d7 fffe       ;Wait for vpos >= 0x52 and hpos >= 0xd6.
0005ec1a: 0180 0000       ;COLOR00 := 0x0000
0005ec1e: 5343 fffe       ;Wait for vpos >= 0x53 and hpos >= 0x42.
0005ec22: 0180 0058       ;COLOR00 := 0x0058
0005ec26: 53d7 fffe       ;Wait for vpos >= 0x53 and hpos >= 0xd6.
0005ec2a: 0180 0000       ;COLOR00 := 0x0000

At vertical position $53, the game changes the palette entry for the background (colour 0) and the static moon layer (colour 9) again, creating another band of colour. The game repeats this process many times:

0005ec2e: 0192 0164       ;COLOR09 := 0x0164
0005ec32: 5443 fffe       ;Wait for vpos >= 0x54 and hpos >= 0x42.
0005ec36: 0180 0057       ;COLOR00 := 0x0057
0005ec3a: 54d7 fffe       ;Wait for vpos >= 0x54 and hpos >= 0xd6.
0005ec3e: 0180 0000       ;COLOR00 := 0x0000
0005ec42: 5543 fffe       ;Wait for vpos >= 0x55 and hpos >= 0x42.
0005ec46: 0180 0057       ;COLOR00 := 0x0057
0005ec4a: 55d7 fffe       ;Wait for vpos >= 0x55 and hpos >= 0xd6.
0005ec4e: 0180 0000       ;COLOR00 := 0x0000
0005ec52: 5643 fffe       ;Wait for vpos >= 0x56 and hpos >= 0x42.
0005ec56: 0180 0057       ;COLOR00 := 0x0057
0005ec5a: 56d7 fffe       ;Wait for vpos >= 0x56 and hpos >= 0xd6.
0005ec5e: 0180 0000       ;COLOR00 := 0x0000
0005ec62: 5743 fffe       ;Wait for vpos >= 0x57 and hpos >= 0x42.
0005ec66: 0180 0057       ;COLOR00 := 0x0057
0005ec6a: 57d7 fffe       ;Wait for vpos >= 0x57 and hpos >= 0xd6.
0005ec6e: 0180 0000       ;COLOR00 := 0x0000
0005ec72: 5843 fffe       ;Wait for vpos >= 0x58 and hpos >= 0x42.
0005ec76: 0180 0057       ;COLOR00 := 0x0057
0005ec7a: 58d7 fffe       ;Wait for vpos >= 0x58 and hpos >= 0xd6.
0005ec7e: 0180 0000       ;COLOR00 := 0x0000
0005ec82: 5943 fffe       ;Wait for vpos >= 0x59 and hpos >= 0x42.
0005ec86: 0180 0057       ;COLOR00 := 0x0057
0005ec8a: 59d7 fffe       ;Wait for vpos >= 0x59 and hpos >= 0xd6.
0005ec8e: 0180 0000       ;COLOR00 := 0x0000
0005ec92: 5a43 fffe       ;Wait for vpos >= 0x5a and hpos >= 0x42.
0005ec96: 0180 0057       ;COLOR00 := 0x0057
0005ec9a: 5ad7 fffe       ;Wait for vpos >= 0x5a and hpos >= 0xd6.
0005ec9e: 0180 0000       ;COLOR00 := 0x0000
0005eca2: 5b43 fffe       ;Wait for vpos >= 0x5b and hpos >= 0x42.
0005eca6: 0180 0057       ;COLOR00 := 0x0057
0005ecaa: 5bd7 fffe       ;Wait for vpos >= 0x5b and hpos >= 0xd6.
0005ecae: 0180 0000       ;COLOR00 := 0x0000
0005ecb2: 5c43 fffe       ;Wait for vpos >= 0x5c and hpos >= 0x42.
0005ecb6: 0180 0057       ;COLOR00 := 0x0057
0005ecba: 5cd7 fffe       ;Wait for vpos >= 0x5c and hpos >= 0xd6.
0005ecbe: 0180 0000       ;COLOR00 := 0x0000
0005ecc2: 5d43 fffe       ;Wait for vpos >= 0x5d and hpos >= 0x42.
0005ecc6: 0180 0057       ;COLOR00 := 0x0057
0005ecca: 5dd7 fffe       ;Wait for vpos >= 0x5d and hpos >= 0xd6.
0005ecce: 0180 0000       ;COLOR00 := 0x0000
0005ecd2: 0192 0264       ;COLOR09 := 0x0264
0005ecd6: 5e43 fffe       ;Wait for vpos >= 0x5e and hpos >= 0x42.
0005ecda: 0180 0056       ;COLOR00 := 0x0056
0005ecde: 5ed7 fffe       ;Wait for vpos >= 0x5e and hpos >= 0xd6.
0005ece2: 0180 0000       ;COLOR00 := 0x0000
0005ece6: 5f43 fffe       ;Wait for vpos >= 0x5f and hpos >= 0x42.
0005ecea: 0180 0056       ;COLOR00 := 0x0056
0005ecee: 010a 0502       ;BPL2MOD := 0x0502
0005ecf2: 5fd7 fffe       ;Wait for vpos >= 0x5f and hpos >= 0xd6.
0005ecf6: 0180 0000       ;COLOR00 := 0x0000
0005ecfa: 0194 0050       ;COLOR10 := 0x0050
0005ecfe: 0196 0050       ;COLOR11 := 0x0050
0005ed02: 0198 0554       ;COLOR12 := 0x0554
0005ed06: 019a 0554       ;COLOR13 := 0x0554
0005ed0a: 019c 0143       ;COLOR14 := 0x0143
0005ed0e: 019e 0143       ;COLOR15 := 0x0143
0005ed12: 0182 0aa6       ;COLOR01 := 0x0aa6
0005ed16: 0184 0765       ;COLOR02 := 0x0765
0005ed1a: 0186 0321       ;COLOR03 := 0x0321
0005ed1e: 0188 0543       ;COLOR04 := 0x0543
0005ed22: 018a 0670       ;COLOR05 := 0x0670
0005ed26: 018c 0450       ;COLOR06 := 0x0450
0005ed2a: 010a 0002       ;BPL2MOD := 0x0002
0005ed2e: 00e4 0007       ;BPL2PTH := 0x0007
0005ed32: 00e6 da3a       ;BPL2PTL := 0xda3a
0005ed36: 6043 fffe       ;Wait for vpos >= 0x60 and hpos >= 0x42.
0005ed3a: 0180 0056       ;COLOR00 := 0x0056
0005ed3e: 018e 0987       ;COLOR07 := 0x0987
0005ed42: 60d7 fffe       ;Wait for vpos >= 0x60 and hpos >= 0xd6.
0005ed46: 0180 0000       ;COLOR00 := 0x0000
0005ed4a: 6143 fffe       ;Wait for vpos >= 0x61 and hpos >= 0x42.
0005ed4e: 0180 0056       ;COLOR00 := 0x0056
0005ed52: 61d7 fffe       ;Wait for vpos >= 0x61 and hpos >= 0xd6.
0005ed56: 0180 0000       ;COLOR00 := 0x0000
0005ed5a: 6243 fffe       ;Wait for vpos >= 0x62 and hpos >= 0x42.
0005ed5e: 0180 0056       ;COLOR00 := 0x0056
0005ed62: 62d7 fffe       ;Wait for vpos >= 0x62 and hpos >= 0xd6.
0005ed66: 0180 0000       ;COLOR00 := 0x0000
0005ed6a: 6343 fffe       ;Wait for vpos >= 0x63 and hpos >= 0x42.
0005ed6e: 0180 0056       ;COLOR00 := 0x0056
0005ed72: 63d7 fffe       ;Wait for vpos >= 0x63 and hpos >= 0xd6.
0005ed76: 0180 0000       ;COLOR00 := 0x0000
0005ed7a: 6443 fffe       ;Wait for vpos >= 0x64 and hpos >= 0x42.
0005ed7e: 0180 0056       ;COLOR00 := 0x0056
0005ed82: 64d7 fffe       ;Wait for vpos >= 0x64 and hpos >= 0xd6.
0005ed86: 0180 0000       ;COLOR00 := 0x0000
0005ed8a: 6543 fffe       ;Wait for vpos >= 0x65 and hpos >= 0x42.
0005ed8e: 0180 0056       ;COLOR00 := 0x0056
0005ed92: 65d7 fffe       ;Wait for vpos >= 0x65 and hpos >= 0xd6.
0005ed96: 0180 0000       ;COLOR00 := 0x0000
0005ed9a: 6643 fffe       ;Wait for vpos >= 0x66 and hpos >= 0x42.
0005ed9e: 0180 0056       ;COLOR00 := 0x0056
0005eda2: 66d7 fffe       ;Wait for vpos >= 0x66 and hpos >= 0xd6.
0005eda6: 0180 0000       ;COLOR00 := 0x0000
0005edaa: 6743 fffe       ;Wait for vpos >= 0x67 and hpos >= 0x42.
0005edae: 0180 0056       ;COLOR00 := 0x0056
0005edb2: 67d7 fffe       ;Wait for vpos >= 0x67 and hpos >= 0xd6.
0005edb6: 0180 0000       ;COLOR00 := 0x0000
0005edba: 0192 0364       ;COLOR09 := 0x0364
0005edbe: 6843 fffe       ;Wait for vpos >= 0x68 and hpos >= 0x42.
0005edc2: 0180 0055       ;COLOR00 := 0x0055
0005edc6: 68d7 fffe       ;Wait for vpos >= 0x68 and hpos >= 0xd6.
0005edca: 0180 0000       ;COLOR00 := 0x0000
0005edce: 6943 fffe       ;Wait for vpos >= 0x69 and hpos >= 0x42.
0005edd2: 0180 0055       ;COLOR00 := 0x0055
0005edd6: 69d7 fffe       ;Wait for vpos >= 0x69 and hpos >= 0xd6.
0005edda: 0180 0000       ;COLOR00 := 0x0000
0005edde: 6a43 fffe       ;Wait for vpos >= 0x6a and hpos >= 0x42.
0005ede2: 0180 0055       ;COLOR00 := 0x0055
0005ede6: 6ad7 fffe       ;Wait for vpos >= 0x6a and hpos >= 0xd6.
0005edea: 0180 0000       ;COLOR00 := 0x0000
0005edee: 6b43 fffe       ;Wait for vpos >= 0x6b and hpos >= 0x42.
0005edf2: 0180 0055       ;COLOR00 := 0x0055
0005edf6: 6bd7 fffe       ;Wait for vpos >= 0x6b and hpos >= 0xd6.
0005edfa: 0180 0000       ;COLOR00 := 0x0000
0005edfe: 6c43 fffe       ;Wait for vpos >= 0x6c and hpos >= 0x42.
0005ee02: 0180 0055       ;COLOR00 := 0x0055
0005ee06: 6cd7 fffe       ;Wait for vpos >= 0x6c and hpos >= 0xd6.
0005ee0a: 0180 0000       ;COLOR00 := 0x0000
0005ee0e: 6d43 fffe       ;Wait for vpos >= 0x6d and hpos >= 0x42.
0005ee12: 0180 0055       ;COLOR00 := 0x0055
0005ee16: 6dd7 fffe       ;Wait for vpos >= 0x6d and hpos >= 0xd6.
0005ee1a: 0180 0000       ;COLOR00 := 0x0000
0005ee1e: 6e43 fffe       ;Wait for vpos >= 0x6e and hpos >= 0x42.
0005ee22: 0180 0055       ;COLOR00 := 0x0055
0005ee26: 6ed7 fffe       ;Wait for vpos >= 0x6e and hpos >= 0xd6.
0005ee2a: 0180 0000       ;COLOR00 := 0x0000
0005ee2e: 6f43 fffe       ;Wait for vpos >= 0x6f and hpos >= 0x42.
0005ee32: 0180 0055       ;COLOR00 := 0x0055
0005ee36: 6fd7 fffe       ;Wait for vpos >= 0x6f and hpos >= 0xd6.
0005ee3a: 0180 0000       ;COLOR00 := 0x0000
0005ee3e: 7043 fffe       ;Wait for vpos >= 0x70 and hpos >= 0x42.
0005ee42: 0180 0055       ;COLOR00 := 0x0055
0005ee46: 70d7 fffe       ;Wait for vpos >= 0x70 and hpos >= 0xd6.
0005ee4a: 0180 0000       ;COLOR00 := 0x0000
0005ee4e: 7143 fffe       ;Wait for vpos >= 0x71 and hpos >= 0x42.
0005ee52: 0180 0055       ;COLOR00 := 0x0055
0005ee56: 71d7 fffe       ;Wait for vpos >= 0x71 and hpos >= 0xd6.
0005ee5a: 0180 0000       ;COLOR00 := 0x0000
0005ee5e: 0192 0464       ;COLOR09 := 0x0464
0005ee62: 7243 fffe       ;Wait for vpos >= 0x72 and hpos >= 0x42.
0005ee66: 0180 0054       ;COLOR00 := 0x0054
0005ee6a: 72d7 fffe       ;Wait for vpos >= 0x72 and hpos >= 0xd6.
0005ee6e: 0180 0000       ;COLOR00 := 0x0000
0005ee72: 7343 fffe       ;Wait for vpos >= 0x73 and hpos >= 0x42.
0005ee76: 0180 0054       ;COLOR00 := 0x0054
0005ee7a: 73d7 fffe       ;Wait for vpos >= 0x73 and hpos >= 0xd6.
0005ee7e: 0180 0000       ;COLOR00 := 0x0000
0005ee82: 7443 fffe       ;Wait for vpos >= 0x74 and hpos >= 0x42.
0005ee86: 0180 0054       ;COLOR00 := 0x0054
0005ee8a: 74d7 fffe       ;Wait for vpos >= 0x74 and hpos >= 0xd6.
0005ee8e: 0180 0000       ;COLOR00 := 0x0000
0005ee92: 7543 fffe       ;Wait for vpos >= 0x75 and hpos >= 0x42.
0005ee96: 0180 0054       ;COLOR00 := 0x0054
0005ee9a: 75d7 fffe       ;Wait for vpos >= 0x75 and hpos >= 0xd6.
0005ee9e: 0180 0000       ;COLOR00 := 0x0000
0005eea2: 7643 fffe       ;Wait for vpos >= 0x76 and hpos >= 0x42.
0005eea6: 0180 0054       ;COLOR00 := 0x0054
0005eeaa: 76d7 fffe       ;Wait for vpos >= 0x76 and hpos >= 0xd6.
0005eeae: 0180 0000       ;COLOR00 := 0x0000
0005eeb2: 7743 fffe       ;Wait for vpos >= 0x77 and hpos >= 0x42.
0005eeb6: 0180 0054       ;COLOR00 := 0x0054
0005eeba: 77d7 fffe       ;Wait for vpos >= 0x77 and hpos >= 0xd6.
0005eebe: 0180 0000       ;COLOR00 := 0x0000
0005eec2: 7843 fffe       ;Wait for vpos >= 0x78 and hpos >= 0x42.
0005eec6: 0180 0054       ;COLOR00 := 0x0054
0005eeca: 78d7 fffe       ;Wait for vpos >= 0x78 and hpos >= 0xd6.
0005eece: 0180 0000       ;COLOR00 := 0x0000
0005eed2: 7943 fffe       ;Wait for vpos >= 0x79 and hpos >= 0x42.
0005eed6: 0180 0054       ;COLOR00 := 0x0054
0005eeda: 79d7 fffe       ;Wait for vpos >= 0x79 and hpos >= 0xd6.
0005eede: 0180 0000       ;COLOR00 := 0x0000
0005eee2: 7a43 fffe       ;Wait for vpos >= 0x7a and hpos >= 0x42.
0005eee6: 0180 0054       ;COLOR00 := 0x0054
0005eeea: 7ad7 fffe       ;Wait for vpos >= 0x7a and hpos >= 0xd6.
0005eeee: 0180 0000       ;COLOR00 := 0x0000
0005eef2: 7b43 fffe       ;Wait for vpos >= 0x7b and hpos >= 0x42.
0005eef6: 0180 0054       ;COLOR00 := 0x0054
0005eefa: 7bd7 fffe       ;Wait for vpos >= 0x7b and hpos >= 0xd6.
0005eefe: 0180 0000       ;COLOR00 := 0x0000
0005ef02: 0192 0564       ;COLOR09 := 0x0564
0005ef06: 7c43 fffe       ;Wait for vpos >= 0x7c and hpos >= 0x42.
0005ef0a: 0180 0053       ;COLOR00 := 0x0053
0005ef0e: 7cd7 fffe       ;Wait for vpos >= 0x7c and hpos >= 0xd6.
0005ef12: 0180 0000       ;COLOR00 := 0x0000
0005ef16: 7d43 fffe       ;Wait for vpos >= 0x7d and hpos >= 0x42.
0005ef1a: 0180 0053       ;COLOR00 := 0x0053
0005ef1e: 7dd7 fffe       ;Wait for vpos >= 0x7d and hpos >= 0xd6.
0005ef22: 0180 0000       ;COLOR00 := 0x0000
0005ef26: 7e43 fffe       ;Wait for vpos >= 0x7e and hpos >= 0x42.
0005ef2a: 0180 0053       ;COLOR00 := 0x0053
0005ef2e: 7ed7 fffe       ;Wait for vpos >= 0x7e and hpos >= 0xd6.
0005ef32: 0180 0000       ;COLOR00 := 0x0000
0005ef36: 7f43 fffe       ;Wait for vpos >= 0x7f and hpos >= 0x42.
0005ef3a: 0180 0053       ;COLOR00 := 0x0053
0005ef3e: 010a 0502       ;BPL2MOD := 0x0502
0005ef42: 7fd7 fffe       ;Wait for vpos >= 0x7f and hpos >= 0xd6.
0005ef46: 0180 0000       ;COLOR00 := 0x0000
0005ef4a: 0194 0764       ;COLOR10 := 0x0764
0005ef4e: 0196 0764       ;COLOR11 := 0x0764
0005ef52: 0198 0554       ;COLOR12 := 0x0554
0005ef56: 019a 0554       ;COLOR13 := 0x0554
0005ef5a: 019c 0143       ;COLOR14 := 0x0143
0005ef5e: 019e 0143       ;COLOR15 := 0x0143
0005ef62: 0182 0aa6       ;COLOR01 := 0x0aa6
0005ef66: 0184 0765       ;COLOR02 := 0x0765
0005ef6a: 0186 0321       ;COLOR03 := 0x0321
0005ef6e: 0188 0543       ;COLOR04 := 0x0543
0005ef72: 018a 0670       ;COLOR05 := 0x0670
0005ef76: 018c 0450       ;COLOR06 := 0x0450
0005ef7a: 010a 0002       ;BPL2MOD := 0x0002
0005ef7e: 00e4 0007       ;BPL2PTH := 0x0007
0005ef82: 00e6 df3a       ;BPL2PTL := 0xdf3a
0005ef86: 8043 fffe       ;Wait for vpos >= 0x80 and hpos >= 0x42.
0005ef8a: 0180 0053       ;COLOR00 := 0x0053
0005ef8e: 018e 0987       ;COLOR07 := 0x0987
0005ef92: 80d7 fffe       ;Wait for vpos >= 0x80 and hpos >= 0xd6.
0005ef96: 0180 0000       ;COLOR00 := 0x0000
0005ef9a: 8143 fffe       ;Wait for vpos >= 0x81 and hpos >= 0x42.
0005ef9e: 0180 0053       ;COLOR00 := 0x0053
0005efa2: 81d7 fffe       ;Wait for vpos >= 0x81 and hpos >= 0xd6.
0005efa6: 0180 0000       ;COLOR00 := 0x0000
0005efaa: 8243 fffe       ;Wait for vpos >= 0x82 and hpos >= 0x42.
0005efae: 0180 0053       ;COLOR00 := 0x0053
0005efb2: 82d7 fffe       ;Wait for vpos >= 0x82 and hpos >= 0xd6.
0005efb6: 0180 0000       ;COLOR00 := 0x0000
0005efba: 8343 fffe       ;Wait for vpos >= 0x83 and hpos >= 0x42.
0005efbe: 0180 0053       ;COLOR00 := 0x0053
0005efc2: 83d7 fffe       ;Wait for vpos >= 0x83 and hpos >= 0xd6.
0005efc6: 0180 0000       ;COLOR00 := 0x0000
0005efca: 8443 fffe       ;Wait for vpos >= 0x84 and hpos >= 0x42.
0005efce: 0180 0053       ;COLOR00 := 0x0053
0005efd2: 84d7 fffe       ;Wait for vpos >= 0x84 and hpos >= 0xd6.
0005efd6: 0180 0000       ;COLOR00 := 0x0000
0005efda: 8543 fffe       ;Wait for vpos >= 0x85 and hpos >= 0x42.
0005efde: 0180 0053       ;COLOR00 := 0x0053
0005efe2: 85d7 fffe       ;Wait for vpos >= 0x85 and hpos >= 0xd6.
0005efe6: 0180 0000       ;COLOR00 := 0x0000
0005efea: 0192 0664       ;COLOR09 := 0x0664
0005efee: 8643 fffe       ;Wait for vpos >= 0x86 and hpos >= 0x42.
0005eff2: 0180 0153       ;COLOR00 := 0x0153
0005eff6: 86d7 fffe       ;Wait for vpos >= 0x86 and hpos >= 0xd6.
0005effa: 0180 0000       ;COLOR00 := 0x0000
0005effe: 8743 fffe       ;Wait for vpos >= 0x87 and hpos >= 0x42.
0005f002: 0180 0153       ;COLOR00 := 0x0153
0005f006: 87d7 fffe       ;Wait for vpos >= 0x87 and hpos >= 0xd6.
0005f00a: 0180 0000       ;COLOR00 := 0x0000
0005f00e: 8843 fffe       ;Wait for vpos >= 0x88 and hpos >= 0x42.
0005f012: 0180 0153       ;COLOR00 := 0x0153
0005f016: 88d7 fffe       ;Wait for vpos >= 0x88 and hpos >= 0xd6.
0005f01a: 0180 0000       ;COLOR00 := 0x0000
0005f01e: 8943 fffe       ;Wait for vpos >= 0x89 and hpos >= 0x42.
0005f022: 0180 0153       ;COLOR00 := 0x0153
0005f026: 89d7 fffe       ;Wait for vpos >= 0x89 and hpos >= 0xd6.
0005f02a: 0180 0000       ;COLOR00 := 0x0000
0005f02e: 8a43 fffe       ;Wait for vpos >= 0x8a and hpos >= 0x42.
0005f032: 0180 0153       ;COLOR00 := 0x0153
0005f036: 8ad7 fffe       ;Wait for vpos >= 0x8a and hpos >= 0xd6.
0005f03a: 0180 0000       ;COLOR00 := 0x0000
0005f03e: 8b43 fffe       ;Wait for vpos >= 0x8b and hpos >= 0x42.
0005f042: 0180 0153       ;COLOR00 := 0x0153
0005f046: 8bd7 fffe       ;Wait for vpos >= 0x8b and hpos >= 0xd6.
0005f04a: 0180 0000       ;COLOR00 := 0x0000
0005f04e: 8c43 fffe       ;Wait for vpos >= 0x8c and hpos >= 0x42.
0005f052: 0180 0153       ;COLOR00 := 0x0153
0005f056: 8cd7 fffe       ;Wait for vpos >= 0x8c and hpos >= 0xd6.
0005f05a: 0180 0000       ;COLOR00 := 0x0000
0005f05e: 8d43 fffe       ;Wait for vpos >= 0x8d and hpos >= 0x42.
0005f062: 0180 0153       ;COLOR00 := 0x0153
0005f066: 8dd7 fffe       ;Wait for vpos >= 0x8d and hpos >= 0xd6.
0005f06a: 0180 0000       ;COLOR00 := 0x0000
0005f06e: 8e43 fffe       ;Wait for vpos >= 0x8e and hpos >= 0x42.
0005f072: 0180 0153       ;COLOR00 := 0x0153
0005f076: 8ed7 fffe       ;Wait for vpos >= 0x8e and hpos >= 0xd6.
0005f07a: 0180 0000       ;COLOR00 := 0x0000
0005f07e: 8f43 fffe       ;Wait for vpos >= 0x8f and hpos >= 0x42.
0005f082: 0180 0153       ;COLOR00 := 0x0153
0005f086: 8fd7 fffe       ;Wait for vpos >= 0x8f and hpos >= 0xd6.
0005f08a: 0180 0000       ;COLOR00 := 0x0000
0005f08e: 0192 0764       ;COLOR09 := 0x0764
0005f092: 9043 fffe       ;Wait for vpos >= 0x90 and hpos >= 0x42.
0005f096: 0180 0253       ;COLOR00 := 0x0253
0005f09a: 90d7 fffe       ;Wait for vpos >= 0x90 and hpos >= 0xd6.
0005f09e: 0180 0000       ;COLOR00 := 0x0000
0005f0a2: 9143 fffe       ;Wait for vpos >= 0x91 and hpos >= 0x42.
0005f0a6: 0180 0253       ;COLOR00 := 0x0253
0005f0aa: 91d7 fffe       ;Wait for vpos >= 0x91 and hpos >= 0xd6.
0005f0ae: 0180 0000       ;COLOR00 := 0x0000
0005f0b2: 9243 fffe       ;Wait for vpos >= 0x92 and hpos >= 0x42.
0005f0b6: 0180 0253       ;COLOR00 := 0x0253
0005f0ba: 92d7 fffe       ;Wait for vpos >= 0x92 and hpos >= 0xd6.
0005f0be: 0180 0000       ;COLOR00 := 0x0000
0005f0c2: 9343 fffe       ;Wait for vpos >= 0x93 and hpos >= 0x42.
0005f0c6: 0180 0253       ;COLOR00 := 0x0253
0005f0ca: 93d7 fffe       ;Wait for vpos >= 0x93 and hpos >= 0xd6.
0005f0ce: 0180 0000       ;COLOR00 := 0x0000
0005f0d2: 9443 fffe       ;Wait for vpos >= 0x94 and hpos >= 0x42.
0005f0d6: 0180 0253       ;COLOR00 := 0x0253
0005f0da: 94d7 fffe       ;Wait for vpos >= 0x94 and hpos >= 0xd6.
0005f0de: 0180 0000       ;COLOR00 := 0x0000
0005f0e2: 9543 fffe       ;Wait for vpos >= 0x95 and hpos >= 0x42.
0005f0e6: 0180 0253       ;COLOR00 := 0x0253
0005f0ea: 95d7 fffe       ;Wait for vpos >= 0x95 and hpos >= 0xd6.
0005f0ee: 0180 0000       ;COLOR00 := 0x0000
0005f0f2: 9643 fffe       ;Wait for vpos >= 0x96 and hpos >= 0x42.
0005f0f6: 0180 0253       ;COLOR00 := 0x0253
0005f0fa: 96d7 fffe       ;Wait for vpos >= 0x96 and hpos >= 0xd6.
0005f0fe: 0180 0000       ;COLOR00 := 0x0000
0005f102: 9743 fffe       ;Wait for vpos >= 0x97 and hpos >= 0x42.
0005f106: 0180 0253       ;COLOR00 := 0x0253
0005f10a: 97d7 fffe       ;Wait for vpos >= 0x97 and hpos >= 0xd6.
0005f10e: 0180 0000       ;COLOR00 := 0x0000
0005f112: 9843 fffe       ;Wait for vpos >= 0x98 and hpos >= 0x42.
0005f116: 0180 0253       ;COLOR00 := 0x0253
0005f11a: 98d7 fffe       ;Wait for vpos >= 0x98 and hpos >= 0xd6.
0005f11e: 0180 0000       ;COLOR00 := 0x0000
0005f122: 9943 fffe       ;Wait for vpos >= 0x99 and hpos >= 0x42.
0005f126: 0180 0253       ;COLOR00 := 0x0253
0005f12a: 99d7 fffe       ;Wait for vpos >= 0x99 and hpos >= 0xd6.
0005f12e: 0180 0000       ;COLOR00 := 0x0000
0005f132: 0192 0864       ;COLOR09 := 0x0864
0005f136: 9a43 fffe       ;Wait for vpos >= 0x9a and hpos >= 0x42.
0005f13a: 0180 0353       ;COLOR00 := 0x0353
0005f13e: 9ad7 fffe       ;Wait for vpos >= 0x9a and hpos >= 0xd6.
0005f142: 0180 0000       ;COLOR00 := 0x0000
0005f146: 9b43 fffe       ;Wait for vpos >= 0x9b and hpos >= 0x42.
0005f14a: 0180 0353       ;COLOR00 := 0x0353
0005f14e: 9bd7 fffe       ;Wait for vpos >= 0x9b and hpos >= 0xd6.
0005f152: 0180 0000       ;COLOR00 := 0x0000
0005f156: 9c43 fffe       ;Wait for vpos >= 0x9c and hpos >= 0x42.
0005f15a: 0180 0353       ;COLOR00 := 0x0353
0005f15e: 9cd7 fffe       ;Wait for vpos >= 0x9c and hpos >= 0xd6.
0005f162: 0180 0000       ;COLOR00 := 0x0000
0005f166: 9d43 fffe       ;Wait for vpos >= 0x9d and hpos >= 0x42.
0005f16a: 0180 0353       ;COLOR00 := 0x0353
0005f16e: 9dd7 fffe       ;Wait for vpos >= 0x9d and hpos >= 0xd6.
0005f172: 0180 0000       ;COLOR00 := 0x0000
0005f176: 9e43 fffe       ;Wait for vpos >= 0x9e and hpos >= 0x42.
0005f17a: 0180 0353       ;COLOR00 := 0x0353
0005f17e: 9ed7 fffe       ;Wait for vpos >= 0x9e and hpos >= 0xd6.
0005f182: 0180 0000       ;COLOR00 := 0x0000
0005f186: 9f43 fffe       ;Wait for vpos >= 0x9f and hpos >= 0x42.
0005f18a: 0180 0353       ;COLOR00 := 0x0353
0005f18e: 010a 0502       ;BPL2MOD := 0x0502
0005f192: 9fd7 fffe       ;Wait for vpos >= 0x9f and hpos >= 0xd6.
0005f196: 0180 0000       ;COLOR00 := 0x0000
0005f19a: 0194 0764       ;COLOR10 := 0x0764
0005f19e: 0196 0764       ;COLOR11 := 0x0764
0005f1a2: 0198 0554       ;COLOR12 := 0x0554
0005f1a6: 019a 0554       ;COLOR13 := 0x0554
0005f1aa: 019c 0143       ;COLOR14 := 0x0143
0005f1ae: 019e 0143       ;COLOR15 := 0x0143
0005f1b2: 0182 0aa6       ;COLOR01 := 0x0aa6
0005f1b6: 0184 0765       ;COLOR02 := 0x0765
0005f1ba: 0186 0321       ;COLOR03 := 0x0321
0005f1be: 0188 0543       ;COLOR04 := 0x0543
0005f1c2: 018a 0554       ;COLOR05 := 0x0554
0005f1c6: 018c 0733       ;COLOR06 := 0x0733
0005f1ca: 010a 0002       ;BPL2MOD := 0x0002
0005f1ce: 00e4 0007       ;BPL2PTH := 0x0007
0005f1d2: 00e6 e43a       ;BPL2PTL := 0xe43a
0005f1d6: a043 fffe       ;Wait for vpos >= 0xa0 and hpos >= 0x42.
0005f1da: 0180 0353       ;COLOR00 := 0x0353
0005f1de: 018e 0986       ;COLOR07 := 0x0986
0005f1e2: a0d7 fffe       ;Wait for vpos >= 0xa0 and hpos >= 0xd6.
0005f1e6: 0180 0000       ;COLOR00 := 0x0000
0005f1ea: a143 fffe       ;Wait for vpos >= 0xa1 and hpos >= 0x42.
0005f1ee: 0180 0353       ;COLOR00 := 0x0353
0005f1f2: a1d7 fffe       ;Wait for vpos >= 0xa1 and hpos >= 0xd6.
0005f1f6: 0180 0000       ;COLOR00 := 0x0000
0005f1fa: a243 fffe       ;Wait for vpos >= 0xa2 and hpos >= 0x42.
0005f1fe: 0180 0353       ;COLOR00 := 0x0353
0005f202: a2d7 fffe       ;Wait for vpos >= 0xa2 and hpos >= 0xd6.
0005f206: 0180 0000       ;COLOR00 := 0x0000
0005f20a: a343 fffe       ;Wait for vpos >= 0xa3 and hpos >= 0x42.
0005f20e: 0180 0353       ;COLOR00 := 0x0353
0005f212: a3d7 fffe       ;Wait for vpos >= 0xa3 and hpos >= 0xd6.
0005f216: 0180 0000       ;COLOR00 := 0x0000
0005f21a: 0192 0964       ;COLOR09 := 0x0964
0005f21e: a443 fffe       ;Wait for vpos >= 0xa4 and hpos >= 0x42.
0005f222: 0180 0453       ;COLOR00 := 0x0453
0005f226: a4d7 fffe       ;Wait for vpos >= 0xa4 and hpos >= 0xd6.
0005f22a: 0180 0000       ;COLOR00 := 0x0000
0005f22e: a543 fffe       ;Wait for vpos >= 0xa5 and hpos >= 0x42.
0005f232: 0180 0453       ;COLOR00 := 0x0453
0005f236: a5d7 fffe       ;Wait for vpos >= 0xa5 and hpos >= 0xd6.
0005f23a: 0180 0000       ;COLOR00 := 0x0000
0005f23e: a643 fffe       ;Wait for vpos >= 0xa6 and hpos >= 0x42.
0005f242: 0180 0453       ;COLOR00 := 0x0453
0005f246: a6d7 fffe       ;Wait for vpos >= 0xa6 and hpos >= 0xd6.
0005f24a: 0180 0000       ;COLOR00 := 0x0000
0005f24e: a743 fffe       ;Wait for vpos >= 0xa7 and hpos >= 0x42.
0005f252: 0180 0453       ;COLOR00 := 0x0453
0005f256: a7d7 fffe       ;Wait for vpos >= 0xa7 and hpos >= 0xd6.
0005f25a: 0180 0000       ;COLOR00 := 0x0000
0005f25e: a843 fffe       ;Wait for vpos >= 0xa8 and hpos >= 0x42.
0005f262: 0180 0453       ;COLOR00 := 0x0453
0005f266: a8d7 fffe       ;Wait for vpos >= 0xa8 and hpos >= 0xd6.
0005f26a: 0180 0000       ;COLOR00 := 0x0000
0005f26e: a943 fffe       ;Wait for vpos >= 0xa9 and hpos >= 0x42.
0005f272: 0180 0453       ;COLOR00 := 0x0453
0005f276: a9d7 fffe       ;Wait for vpos >= 0xa9 and hpos >= 0xd6.
0005f27a: 0180 0000       ;COLOR00 := 0x0000
0005f27e: aa43 fffe       ;Wait for vpos >= 0xaa and hpos >= 0x42.
0005f282: 0180 0453       ;COLOR00 := 0x0453
0005f286: aad7 fffe       ;Wait for vpos >= 0xaa and hpos >= 0xd6.
0005f28a: 0180 0000       ;COLOR00 := 0x0000
0005f28e: ab43 fffe       ;Wait for vpos >= 0xab and hpos >= 0x42.
0005f292: 0180 0453       ;COLOR00 := 0x0453
0005f296: abd7 fffe       ;Wait for vpos >= 0xab and hpos >= 0xd6.
0005f29a: 0180 0000       ;COLOR00 := 0x0000
0005f29e: ac43 fffe       ;Wait for vpos >= 0xac and hpos >= 0x42.
0005f2a2: 0180 0453       ;COLOR00 := 0x0453
0005f2a6: acd7 fffe       ;Wait for vpos >= 0xac and hpos >= 0xd6.
0005f2aa: 0180 0000       ;COLOR00 := 0x0000
0005f2ae: ad43 fffe       ;Wait for vpos >= 0xad and hpos >= 0x42.
0005f2b2: 0180 0453       ;COLOR00 := 0x0453
0005f2b6: add7 fffe       ;Wait for vpos >= 0xad and hpos >= 0xd6.
0005f2ba: 0180 0000       ;COLOR00 := 0x0000
0005f2be: 0192 0a64       ;COLOR09 := 0x0a64
0005f2c2: ae43 fffe       ;Wait for vpos >= 0xae and hpos >= 0x42.
0005f2c6: 0180 0553       ;COLOR00 := 0x0553
0005f2ca: aed7 fffe       ;Wait for vpos >= 0xae and hpos >= 0xd6.
0005f2ce: 0180 0000       ;COLOR00 := 0x0000
0005f2d2: af43 fffe       ;Wait for vpos >= 0xaf and hpos >= 0x42.
0005f2d6: 0180 0553       ;COLOR00 := 0x0553
0005f2da: afd7 fffe       ;Wait for vpos >= 0xaf and hpos >= 0xd6.
0005f2de: 0180 0000       ;COLOR00 := 0x0000
0005f2e2: b043 fffe       ;Wait for vpos >= 0xb0 and hpos >= 0x42.
0005f2e6: 0180 0553       ;COLOR00 := 0x0553
0005f2ea: b0d7 fffe       ;Wait for vpos >= 0xb0 and hpos >= 0xd6.
0005f2ee: 0180 0000       ;COLOR00 := 0x0000
0005f2f2: b143 fffe       ;Wait for vpos >= 0xb1 and hpos >= 0x42.
0005f2f6: 0180 0553       ;COLOR00 := 0x0553
0005f2fa: b1d7 fffe       ;Wait for vpos >= 0xb1 and hpos >= 0xd6.
0005f2fe: 0180 0000       ;COLOR00 := 0x0000
0005f302: b243 fffe       ;Wait for vpos >= 0xb2 and hpos >= 0x42.
0005f306: 0180 0553       ;COLOR00 := 0x0553
0005f30a: b2d7 fffe       ;Wait for vpos >= 0xb2 and hpos >= 0xd6.
0005f30e: 0180 0000       ;COLOR00 := 0x0000
0005f312: b343 fffe       ;Wait for vpos >= 0xb3 and hpos >= 0x42.
0005f316: 0180 0553       ;COLOR00 := 0x0553
0005f31a: b3d7 fffe       ;Wait for vpos >= 0xb3 and hpos >= 0xd6.
0005f31e: 0180 0000       ;COLOR00 := 0x0000
0005f322: b443 fffe       ;Wait for vpos >= 0xb4 and hpos >= 0x42.
0005f326: 0180 0553       ;COLOR00 := 0x0553
0005f32a: b4d7 fffe       ;Wait for vpos >= 0xb4 and hpos >= 0xd6.
0005f32e: 0180 0000       ;COLOR00 := 0x0000
0005f332: b543 fffe       ;Wait for vpos >= 0xb5 and hpos >= 0x42.
0005f336: 0180 0553       ;COLOR00 := 0x0553
0005f33a: b5d7 fffe       ;Wait for vpos >= 0xb5 and hpos >= 0xd6.
0005f33e: 0180 0000       ;COLOR00 := 0x0000
0005f342: b643 fffe       ;Wait for vpos >= 0xb6 and hpos >= 0x42.
0005f346: 0180 0553       ;COLOR00 := 0x0553
0005f34a: b6d7 fffe       ;Wait for vpos >= 0xb6 and hpos >= 0xd6.
0005f34e: 0180 0000       ;COLOR00 := 0x0000
0005f352: b743 fffe       ;Wait for vpos >= 0xb7 and hpos >= 0x42.
0005f356: 0180 0553       ;COLOR00 := 0x0553
0005f35a: b7d7 fffe       ;Wait for vpos >= 0xb7 and hpos >= 0xd6.
0005f35e: 0180 0000       ;COLOR00 := 0x0000
0005f362: 0192 0744       ;COLOR09 := 0x0744
0005f366: b843 fffe       ;Wait for vpos >= 0xb8 and hpos >= 0x42.
0005f36a: 0180 0653       ;COLOR00 := 0x0653
0005f36e: b8d7 fffe       ;Wait for vpos >= 0xb8 and hpos >= 0xd6.
0005f372: 0180 0000       ;COLOR00 := 0x0000
0005f376: b943 fffe       ;Wait for vpos >= 0xb9 and hpos >= 0x42.
0005f37a: 0180 0653       ;COLOR00 := 0x0653
0005f37e: b9d7 fffe       ;Wait for vpos >= 0xb9 and hpos >= 0xd6.
0005f382: 0180 0000       ;COLOR00 := 0x0000
0005f386: ba43 fffe       ;Wait for vpos >= 0xba and hpos >= 0x42.
0005f38a: 0180 0653       ;COLOR00 := 0x0653
0005f38e: bad7 fffe       ;Wait for vpos >= 0xba and hpos >= 0xd6.
0005f392: 0180 0000       ;COLOR00 := 0x0000
0005f396: bb43 fffe       ;Wait for vpos >= 0xbb and hpos >= 0x42.
0005f39a: 0180 0653       ;COLOR00 := 0x0653
0005f39e: bbd7 fffe       ;Wait for vpos >= 0xbb and hpos >= 0xd6.
0005f3a2: 0180 0000       ;COLOR00 := 0x0000
0005f3a6: bc43 fffe       ;Wait for vpos >= 0xbc and hpos >= 0x42.
0005f3aa: 0180 0653       ;COLOR00 := 0x0653
0005f3ae: bcd7 fffe       ;Wait for vpos >= 0xbc and hpos >= 0xd6.
0005f3b2: 0180 0000       ;COLOR00 := 0x0000
0005f3b6: bd43 fffe       ;Wait for vpos >= 0xbd and hpos >= 0x42.
0005f3ba: 0180 0653       ;COLOR00 := 0x0653
0005f3be: bdd7 fffe       ;Wait for vpos >= 0xbd and hpos >= 0xd6.
0005f3c2: 0180 0000       ;COLOR00 := 0x0000
0005f3c6: be43 fffe       ;Wait for vpos >= 0xbe and hpos >= 0x42.
0005f3ca: 0180 0653       ;COLOR00 := 0x0653
0005f3ce: bed7 fffe       ;Wait for vpos >= 0xbe and hpos >= 0xd6.
0005f3d2: 0180 0000       ;COLOR00 := 0x0000
0005f3d6: bf43 fffe       ;Wait for vpos >= 0xbf and hpos >= 0x42.
0005f3da: 0180 0653       ;COLOR00 := 0x0653
0005f3de: 010a 0502       ;BPL2MOD := 0x0502
0005f3e2: bfd7 fffe       ;Wait for vpos >= 0xbf and hpos >= 0xd6.
0005f3e6: 0180 0000       ;COLOR00 := 0x0000
0005f3ea: 0194 0775       ;COLOR10 := 0x0775
0005f3ee: 0196 0775       ;COLOR11 := 0x0775
0005f3f2: 0198 0454       ;COLOR12 := 0x0454
0005f3f6: 019a 0454       ;COLOR13 := 0x0454
0005f3fa: 019c 0143       ;COLOR14 := 0x0143
0005f3fe: 019e 0143       ;COLOR15 := 0x0143
0005f402: 0182 0aa6       ;COLOR01 := 0x0aa6
0005f406: 0184 0765       ;COLOR02 := 0x0765
0005f40a: 0186 0321       ;COLOR03 := 0x0321
0005f40e: 0188 0543       ;COLOR04 := 0x0543
0005f412: 018a 0554       ;COLOR05 := 0x0554
0005f416: 018c 0733       ;COLOR06 := 0x0733
0005f41a: 010a 0002       ;BPL2MOD := 0x0002
0005f41e: 00e4 0007       ;BPL2PTH := 0x0007
0005f422: 00e6 e93a       ;BPL2PTL := 0xe93a
0005f426: c043 fffe       ;Wait for vpos >= 0xc0 and hpos >= 0x42.
0005f42a: 0180 0653       ;COLOR00 := 0x0653
0005f42e: 018e 0986       ;COLOR07 := 0x0986
0005f432: c0d7 fffe       ;Wait for vpos >= 0xc0 and hpos >= 0xd6.
0005f436: 0180 0000       ;COLOR00 := 0x0000
0005f43a: c143 fffe       ;Wait for vpos >= 0xc1 and hpos >= 0x42.
0005f43e: 0180 0653       ;COLOR00 := 0x0653
0005f442: c1d7 fffe       ;Wait for vpos >= 0xc1 and hpos >= 0xd6.
0005f446: 0180 0000       ;COLOR00 := 0x0000
0005f44a: 0192 0644       ;COLOR09 := 0x0644
0005f44e: c243 fffe       ;Wait for vpos >= 0xc2 and hpos >= 0x42.
0005f452: 0180 0753       ;COLOR00 := 0x0753
0005f456: c2d7 fffe       ;Wait for vpos >= 0xc2 and hpos >= 0xd6.
0005f45a: 0180 0000       ;COLOR00 := 0x0000
0005f45e: c343 fffe       ;Wait for vpos >= 0xc3 and hpos >= 0x42.
0005f462: 0180 0753       ;COLOR00 := 0x0753
0005f466: c3d7 fffe       ;Wait for vpos >= 0xc3 and hpos >= 0xd6.
0005f46a: 0180 0000       ;COLOR00 := 0x0000
0005f46e: c443 fffe       ;Wait for vpos >= 0xc4 and hpos >= 0x42.
0005f472: 0180 0753       ;COLOR00 := 0x0753
0005f476: c4d7 fffe       ;Wait for vpos >= 0xc4 and hpos >= 0xd6.
0005f47a: 0180 0000       ;COLOR00 := 0x0000
0005f47e: c543 fffe       ;Wait for vpos >= 0xc5 and hpos >= 0x42.
0005f482: 0180 0753       ;COLOR00 := 0x0753
0005f486: c5d7 fffe       ;Wait for vpos >= 0xc5 and hpos >= 0xd6.
0005f48a: 0180 0000       ;COLOR00 := 0x0000
0005f48e: c643 fffe       ;Wait for vpos >= 0xc6 and hpos >= 0x42.
0005f492: 0180 0753       ;COLOR00 := 0x0753
0005f496: c6d7 fffe       ;Wait for vpos >= 0xc6 and hpos >= 0xd6.
0005f49a: 0180 0000       ;COLOR00 := 0x0000
0005f49e: c743 fffe       ;Wait for vpos >= 0xc7 and hpos >= 0x42.
0005f4a2: 0180 0753       ;COLOR00 := 0x0753
0005f4a6: c7d7 fffe       ;Wait for vpos >= 0xc7 and hpos >= 0xd6.
0005f4aa: 0180 0000       ;COLOR00 := 0x0000
0005f4ae: c843 fffe       ;Wait for vpos >= 0xc8 and hpos >= 0x42.
0005f4b2: 0180 0753       ;COLOR00 := 0x0753
0005f4b6: c8d7 fffe       ;Wait for vpos >= 0xc8 and hpos >= 0xd6.
0005f4ba: 0180 0000       ;COLOR00 := 0x0000
0005f4be: c943 fffe       ;Wait for vpos >= 0xc9 and hpos >= 0x42.
0005f4c2: 0180 0753       ;COLOR00 := 0x0753
0005f4c6: c9d7 fffe       ;Wait for vpos >= 0xc9 and hpos >= 0xd6.
0005f4ca: 0180 0000       ;COLOR00 := 0x0000
0005f4ce: ca43 fffe       ;Wait for vpos >= 0xca and hpos >= 0x42.
0005f4d2: 0180 0753       ;COLOR00 := 0x0753
0005f4d6: cad7 fffe       ;Wait for vpos >= 0xca and hpos >= 0xd6.
0005f4da: 0180 0000       ;COLOR00 := 0x0000
0005f4de: cb43 fffe       ;Wait for vpos >= 0xcb and hpos >= 0x42.
0005f4e2: 0180 0753       ;COLOR00 := 0x0753
0005f4e6: cbd7 fffe       ;Wait for vpos >= 0xcb and hpos >= 0xd6.
0005f4ea: 0180 0000       ;COLOR00 := 0x0000
0005f4ee: 0192 0544       ;COLOR09 := 0x0544
0005f4f2: cc43 fffe       ;Wait for vpos >= 0xcc and hpos >= 0x42.
0005f4f6: 0180 0853       ;COLOR00 := 0x0853
0005f4fa: ccd7 fffe       ;Wait for vpos >= 0xcc and hpos >= 0xd6.
0005f4fe: 0180 0000       ;COLOR00 := 0x0000
0005f502: cd43 fffe       ;Wait for vpos >= 0xcd and hpos >= 0x42.
0005f506: 0180 0853       ;COLOR00 := 0x0853
0005f50a: cdd7 fffe       ;Wait for vpos >= 0xcd and hpos >= 0xd6.
0005f50e: 0180 0000       ;COLOR00 := 0x0000
0005f512: ce43 fffe       ;Wait for vpos >= 0xce and hpos >= 0x42.
0005f516: 0180 0853       ;COLOR00 := 0x0853
0005f51a: ced7 fffe       ;Wait for vpos >= 0xce and hpos >= 0xd6.
0005f51e: 0180 0000       ;COLOR00 := 0x0000
0005f522: cf43 fffe       ;Wait for vpos >= 0xcf and hpos >= 0x42.
0005f526: 0180 0853       ;COLOR00 := 0x0853
0005f52a: cfd7 fffe       ;Wait for vpos >= 0xcf and hpos >= 0xd6.
0005f52e: 0180 0000       ;COLOR00 := 0x0000
0005f532: d043 fffe       ;Wait for vpos >= 0xd0 and hpos >= 0x42.
0005f536: 0180 0853       ;COLOR00 := 0x0853
0005f53a: d0d7 fffe       ;Wait for vpos >= 0xd0 and hpos >= 0xd6.
0005f53e: 0180 0000       ;COLOR00 := 0x0000
0005f542: d143 fffe       ;Wait for vpos >= 0xd1 and hpos >= 0x42.
0005f546: 0180 0853       ;COLOR00 := 0x0853
0005f54a: d1d7 fffe       ;Wait for vpos >= 0xd1 and hpos >= 0xd6.
0005f54e: 0180 0000       ;COLOR00 := 0x0000
0005f552: d243 fffe       ;Wait for vpos >= 0xd2 and hpos >= 0x42.
0005f556: 0180 0853       ;COLOR00 := 0x0853
0005f55a: d2d7 fffe       ;Wait for vpos >= 0xd2 and hpos >= 0xd6.
0005f55e: 0180 0000       ;COLOR00 := 0x0000
0005f562: d343 fffe       ;Wait for vpos >= 0xd3 and hpos >= 0x42.
0005f566: 0180 0853       ;COLOR00 := 0x0853
0005f56a: d3d7 fffe       ;Wait for vpos >= 0xd3 and hpos >= 0xd6.
0005f56e: 0180 0000       ;COLOR00 := 0x0000
0005f572: d443 fffe       ;Wait for vpos >= 0xd4 and hpos >= 0x42.
0005f576: 0180 0853       ;COLOR00 := 0x0853
0005f57a: d4d7 fffe       ;Wait for vpos >= 0xd4 and hpos >= 0xd6.
0005f57e: 0180 0000       ;COLOR00 := 0x0000
0005f582: d543 fffe       ;Wait for vpos >= 0xd5 and hpos >= 0x42.
0005f586: 0180 0853       ;COLOR00 := 0x0853
0005f58a: d5d7 fffe       ;Wait for vpos >= 0xd5 and hpos >= 0xd6.
0005f58e: 0180 0000       ;COLOR00 := 0x0000
0005f592: 0192 0444       ;COLOR09 := 0x0444
0005f596: d643 fffe       ;Wait for vpos >= 0xd6 and hpos >= 0x42.
0005f59a: 0180 0953       ;COLOR00 := 0x0953
0005f59e: d6d7 fffe       ;Wait for vpos >= 0xd6 and hpos >= 0xd6.
0005f5a2: 0180 0000       ;COLOR00 := 0x0000
0005f5a6: d743 fffe       ;Wait for vpos >= 0xd7 and hpos >= 0x42.
0005f5aa: 0180 0953       ;COLOR00 := 0x0953
0005f5ae: d7d7 fffe       ;Wait for vpos >= 0xd7 and hpos >= 0xd6.
0005f5b2: 0180 0000       ;COLOR00 := 0x0000
0005f5b6: d843 fffe       ;Wait for vpos >= 0xd8 and hpos >= 0x42.
0005f5ba: 0180 0953       ;COLOR00 := 0x0953
0005f5be: d8d7 fffe       ;Wait for vpos >= 0xd8 and hpos >= 0xd6.
0005f5c2: 0180 0000       ;COLOR00 := 0x0000
0005f5c6: d943 fffe       ;Wait for vpos >= 0xd9 and hpos >= 0x42.
0005f5ca: 0180 0953       ;COLOR00 := 0x0953
0005f5ce: d9d7 fffe       ;Wait for vpos >= 0xd9 and hpos >= 0xd6.
0005f5d2: 0180 0000       ;COLOR00 := 0x0000
0005f5d6: da43 fffe       ;Wait for vpos >= 0xda and hpos >= 0x42.
0005f5da: 0180 0953       ;COLOR00 := 0x0953
0005f5de: dad7 fffe       ;Wait for vpos >= 0xda and hpos >= 0xd6.
0005f5e2: 0180 0000       ;COLOR00 := 0x0000
0005f5e6: db43 fffe       ;Wait for vpos >= 0xdb and hpos >= 0x42.
0005f5ea: 0180 0953       ;COLOR00 := 0x0953
0005f5ee: dbd7 fffe       ;Wait for vpos >= 0xdb and hpos >= 0xd6.
0005f5f2: 0180 0000       ;COLOR00 := 0x0000
0005f5f6: dc43 fffe       ;Wait for vpos >= 0xdc and hpos >= 0x42.
0005f5fa: 0180 0953       ;COLOR00 := 0x0953
0005f5fe: dcd7 fffe       ;Wait for vpos >= 0xdc and hpos >= 0xd6.
0005f602: 0180 0000       ;COLOR00 := 0x0000
0005f606: dd43 fffe       ;Wait for vpos >= 0xdd and hpos >= 0x42.
0005f60a: 0180 0953       ;COLOR00 := 0x0953
0005f60e: ddd7 fffe       ;Wait for vpos >= 0xdd and hpos >= 0xd6.
0005f612: 0180 0000       ;COLOR00 := 0x0000
0005f616: de43 fffe       ;Wait for vpos >= 0xde and hpos >= 0x42.
0005f61a: 0180 0953       ;COLOR00 := 0x0953
0005f61e: ded7 fffe       ;Wait for vpos >= 0xde and hpos >= 0xd6.
0005f622: 0180 0000       ;COLOR00 := 0x0000
0005f626: df43 fffe       ;Wait for vpos >= 0xdf and hpos >= 0x42.
0005f62a: 0180 0444       ;COLOR00 := 0x0444
0005f62e: 010a 0502       ;BPL2MOD := 0x0502
0005f632: dfd7 fffe       ;Wait for vpos >= 0xdf and hpos >= 0xd6.
0005f636: 0180 0000       ;COLOR00 := 0x0000
0005f63a: 0194 0686       ;COLOR10 := 0x0686
0005f63e: 0196 0686       ;COLOR11 := 0x0686
0005f642: 0198 0265       ;COLOR12 := 0x0265
0005f646: 019a 0265       ;COLOR13 := 0x0265
0005f64a: 019c 0143       ;COLOR14 := 0x0143
0005f64e: 019e 0143       ;COLOR15 := 0x0143
0005f652: 0182 0aa6       ;COLOR01 := 0x0aa6
0005f656: 0184 0765       ;COLOR02 := 0x0765
0005f65a: 0186 0321       ;COLOR03 := 0x0321
0005f65e: 0188 0964       ;COLOR04 := 0x0964
0005f662: 018a 0554       ;COLOR05 := 0x0554
0005f666: 018c 0733       ;COLOR06 := 0x0733
0005f66a: 010a 0002       ;BPL2MOD := 0x0002
0005f66e: 00e4 0007       ;BPL2PTH := 0x0007
0005f672: 00e6 ee3a       ;BPL2PTL := 0xee3a
0005f676: e043 fffe       ;Wait for vpos >= 0xe0 and hpos >= 0x42. - Water starts here!
0005f67a: 0180 0344       ;COLOR00 := 0x0344
0005f67e: 018e 0986       ;COLOR07 := 0x0986
0005f682: e0d7 fffe       ;Wait for vpos >= 0xe0 and hpos >= 0xd6.
0005f686: 0180 0000       ;COLOR00 := 0x0000
0005f68a: e143 fffe       ;Wait for vpos >= 0xe1 and hpos >= 0x42.
0005f68e: 0180 0344       ;COLOR00 := 0x0344
0005f692: e1d7 fffe       ;Wait for vpos >= 0xe1 and hpos >= 0xd6.
0005f696: 0180 0000       ;COLOR00 := 0x0000
0005f69a: e243 fffe       ;Wait for vpos >= 0xe2 and hpos >= 0x42.
0005f69e: 0180 0344       ;COLOR00 := 0x0344
0005f6a2: e2d7 fffe       ;Wait for vpos >= 0xe2 and hpos >= 0xd6.
0005f6a6: 0180 0000       ;COLOR00 := 0x0000
0005f6aa: e343 fffe       ;Wait for vpos >= 0xe3 and hpos >= 0x42.
0005f6ae: 0180 0344       ;COLOR00 := 0x0344
0005f6b2: e3d7 fffe       ;Wait for vpos >= 0xe3 and hpos >= 0xd6.
0005f6b6: 0180 0000       ;COLOR00 := 0x0000
0005f6ba: e443 fffe       ;Wait for vpos >= 0xe4 and hpos >= 0x42.
0005f6be: 0180 0344       ;COLOR00 := 0x0344
0005f6c2: e4d7 fffe       ;Wait for vpos >= 0xe4 and hpos >= 0xd6.
0005f6c6: 0180 0000       ;COLOR00 := 0x0000
0005f6ca: e543 fffe       ;Wait for vpos >= 0xe5 and hpos >= 0x42.
0005f6ce: 0180 0344       ;COLOR00 := 0x0344
0005f6d2: e5d7 fffe       ;Wait for vpos >= 0xe5 and hpos >= 0xd6.
0005f6d6: 0180 0000       ;COLOR00 := 0x0000
0005f6da: e643 fffe       ;Wait for vpos >= 0xe6 and hpos >= 0x42.
0005f6de: 0180 0344       ;COLOR00 := 0x0344
0005f6e2: e6d7 fffe       ;Wait for vpos >= 0xe6 and hpos >= 0xd6.
0005f6e6: 0180 0000       ;COLOR00 := 0x0000
0005f6ea: e743 fffe       ;Wait for vpos >= 0xe7 and hpos >= 0x42.
0005f6ee: 0180 0344       ;COLOR00 := 0x0344
0005f6f2: e7d7 fffe       ;Wait for vpos >= 0xe7 and hpos >= 0xd6.
0005f6f6: 0180 0000       ;COLOR00 := 0x0000
0005f6fa: e843 fffe       ;Wait for vpos >= 0xe8 and hpos >= 0x42.
0005f6fe: 0180 0344       ;COLOR00 := 0x0344
0005f702: e8d7 fffe       ;Wait for vpos >= 0xe8 and hpos >= 0xd6.
0005f706: 0180 0000       ;COLOR00 := 0x0000
0005f70a: e943 fffe       ;Wait for vpos >= 0xe9 and hpos >= 0x42.
0005f70e: 0180 0344       ;COLOR00 := 0x0344
0005f712: e9d7 fffe       ;Wait for vpos >= 0xe9 and hpos >= 0xd6.
0005f716: 0180 0000       ;COLOR00 := 0x0000
0005f71a: ea43 fffe       ;Wait for vpos >= 0xea and hpos >= 0x42.
0005f71e: 0180 0244       ;COLOR00 := 0x0244
0005f722: ead7 fffe       ;Wait for vpos >= 0xea and hpos >= 0xd6.
0005f726: 0180 0000       ;COLOR00 := 0x0000
0005f72a: eb43 fffe       ;Wait for vpos >= 0xeb and hpos >= 0x42.
0005f72e: 0180 0244       ;COLOR00 := 0x0244
0005f732: ebd7 fffe       ;Wait for vpos >= 0xeb and hpos >= 0xd6.
0005f736: 0180 0000       ;COLOR00 := 0x0000
0005f73a: ec43 fffe       ;Wait for vpos >= 0xec and hpos >= 0x42.
0005f73e: 0180 0244       ;COLOR00 := 0x0244
0005f742: ecd7 fffe       ;Wait for vpos >= 0xec and hpos >= 0xd6.
0005f746: 0180 0000       ;COLOR00 := 0x0000
0005f74a: ed43 fffe       ;Wait for vpos >= 0xed and hpos >= 0x42.
0005f74e: 0180 0244       ;COLOR00 := 0x0244
0005f752: edd7 fffe       ;Wait for vpos >= 0xed and hpos >= 0xd6.
0005f756: 0180 0000       ;COLOR00 := 0x0000
0005f75a: ee43 fffe       ;Wait for vpos >= 0xee and hpos >= 0x42.
0005f75e: 0180 0244       ;COLOR00 := 0x0244
0005f762: eed7 fffe       ;Wait for vpos >= 0xee and hpos >= 0xd6.
0005f766: 0180 0000       ;COLOR00 := 0x0000
0005f76a: ef43 fffe       ;Wait for vpos >= 0xef and hpos >= 0x42.
0005f76e: 0180 0244       ;COLOR00 := 0x0244
0005f772: efd7 fffe       ;Wait for vpos >= 0xef and hpos >= 0xd6.
0005f776: 0180 0000       ;COLOR00 := 0x0000
0005f77a: f043 fffe       ;Wait for vpos >= 0xf0 and hpos >= 0x42.
0005f77e: 0180 0244       ;COLOR00 := 0x0244
0005f782: f0d7 fffe       ;Wait for vpos >= 0xf0 and hpos >= 0xd6.
0005f786: 0180 0000       ;COLOR00 := 0x0000
0005f78a: f143 fffe       ;Wait for vpos >= 0xf1 and hpos >= 0x42.
0005f78e: 0180 0244       ;COLOR00 := 0x0244
0005f792: f1d7 fffe       ;Wait for vpos >= 0xf1 and hpos >= 0xd6.
0005f796: 0180 0000       ;COLOR00 := 0x0000
0005f79a: f243 fffe       ;Wait for vpos >= 0xf2 and hpos >= 0x42.
0005f79e: 0180 0244       ;COLOR00 := 0x0244
0005f7a2: f2d7 fffe       ;Wait for vpos >= 0xf2 and hpos >= 0xd6.
0005f7a6: 0180 0000       ;COLOR00 := 0x0000
0005f7aa: f343 fffe       ;Wait for vpos >= 0xf3 and hpos >= 0x42.
0005f7ae: 0180 0244       ;COLOR00 := 0x0244
0005f7b2: f3d7 fffe       ;Wait for vpos >= 0xf3 and hpos >= 0xd6.
0005f7b6: 0180 0000       ;COLOR00 := 0x0000
0005f7ba: f443 fffe       ;Wait for vpos >= 0xf4 and hpos >= 0x42.
0005f7be: 0180 0144       ;COLOR00 := 0x0144
0005f7c2: f4d7 fffe       ;Wait for vpos >= 0xf4 and hpos >= 0xd6.
0005f7c6: 0180 0000       ;COLOR00 := 0x0000
0005f7ca: f543 fffe       ;Wait for vpos >= 0xf5 and hpos >= 0x42.
0005f7ce: 0180 0144       ;COLOR00 := 0x0144
0005f7d2: f5d7 fffe       ;Wait for vpos >= 0xf5 and hpos >= 0xd6.
0005f7d6: 0180 0000       ;COLOR00 := 0x0000
0005f7da: f643 fffe       ;Wait for vpos >= 0xf6 and hpos >= 0x42.
0005f7de: 0180 0144       ;COLOR00 := 0x0144
0005f7e2: f6d7 fffe       ;Wait for vpos >= 0xf6 and hpos >= 0xd6.
0005f7e6: 0180 0000       ;COLOR00 := 0x0000
0005f7ea: f743 fffe       ;Wait for vpos >= 0xf7 and hpos >= 0x42.
0005f7ee: 0180 0144       ;COLOR00 := 0x0144
0005f7f2: f7d7 fffe       ;Wait for vpos >= 0xf7 and hpos >= 0xd6.
0005f7f6: 0180 0000       ;COLOR00 := 0x0000
0005f7fa: f843 fffe       ;Wait for vpos >= 0xf8 and hpos >= 0x42.
0005f7fe: 0180 0144       ;COLOR00 := 0x0144
0005f802: f8d7 fffe       ;Wait for vpos >= 0xf8 and hpos >= 0xd6.
0005f806: 0180 0000       ;COLOR00 := 0x0000
0005f80a: f943 fffe       ;Wait for vpos >= 0xf9 and hpos >= 0x42.
0005f80e: 0180 0144       ;COLOR00 := 0x0144
0005f812: f9d7 fffe       ;Wait for vpos >= 0xf9 and hpos >= 0xd6.
0005f816: 0180 0000       ;COLOR00 := 0x0000
0005f81a: fa43 fffe       ;Wait for vpos >= 0xfa and hpos >= 0x42.
0005f81e: 0180 0144       ;COLOR00 := 0x0144
0005f822: fad7 fffe       ;Wait for vpos >= 0xfa and hpos >= 0xd6.
0005f826: 0180 0000       ;COLOR00 := 0x0000
0005f82a: fb43 fffe       ;Wait for vpos >= 0xfb and hpos >= 0x42.
0005f82e: 0180 0144       ;COLOR00 := 0x0144
0005f832: fbd7 fffe       ;Wait for vpos >= 0xfb and hpos >= 0xd6.
0005f836: 0180 0000       ;COLOR00 := 0x0000
0005f83a: fc43 fffe       ;Wait for vpos >= 0xfc and hpos >= 0x42.
0005f83e: 0180 0144       ;COLOR00 := 0x0144
0005f842: fcd7 fffe       ;Wait for vpos >= 0xfc and hpos >= 0xd6.
0005f846: 0180 0000       ;COLOR00 := 0x0000
0005f84a: fd43 fffe       ;Wait for vpos >= 0xfd and hpos >= 0x42.
0005f84e: 0180 0144       ;COLOR00 := 0x0144
0005f852: fdd7 fffe       ;Wait for vpos >= 0xfd and hpos >= 0xd6.
0005f856: 0180 0000       ;COLOR00 := 0x0000
0005f85a: fe43 fffe       ;Wait for vpos >= 0xfe and hpos >= 0x42.
0005f85e: 0180 0144       ;COLOR00 := 0x0144
0005f862: fed7 fffe       ;Wait for vpos >= 0xfe and hpos >= 0xd6.
0005f866: 0180 0000       ;COLOR00 := 0x0000
0005f86a: ff43 fffe       ;Wait for vpos >= 0xff and hpos >= 0x42.
0005f86e: 0180 0144       ;COLOR00 := 0x0144
0005f872: ffd7 fffe       ;Wait for vpos >= 0xff and hpos >= 0xd6.
0005f876: 0180 0000       ;COLOR00 := 0x0000
0005f87a: 0084 0005       ;COP2LCH := 0x0005
0005f87e: 0086 f88a       ;COP2LCL := 0xf88a
0005f882: 009c 8010       ;INTREQ := 0x8010
0005f886: ffff fffe       ;Wait for vpos >= 0xff and hpos >= 0xfe.
                                             ;End of Copperlist
0005f88a: 0192 0166       ;COLOR09 := 0x0166
0005f88e: 4043 fffe       ;Wait for vpos >= 0x40 and hpos >= 0x42.
0005f892: 0180 0059       ;COLOR00 := 0x0059
0005f896: 40d7 fffe       ;Wait for vpos >= 0x40 and hpos >= 0xd6.
0005f89a: 0180 0000       ;COLOR00 := 0x0000
0005f89e: 4143 fffe       ;Wait for vpos >= 0x41 and hpos >= 0x42.
0005f8a2: 0180 0059       ;COLOR00 := 0x0059
0005f8a6: 41d7 fffe       ;Wait for vpos >= 0x41 and hpos >= 0xd6.
0005f8aa: 0180 0000       ;COLOR00 := 0x0000
0005f8ae: 4243 fffe       ;Wait for vpos >= 0x42 and hpos >= 0x42.
0005f8b2: 0180 0059       ;COLOR00 := 0x0059
0005f8b6: 42d7 fffe       ;Wait for vpos >= 0x42 and hpos >= 0xd6.
0005f8ba: 0180 0000       ;COLOR00 := 0x0000
0005f8be: 4343 fffe       ;Wait for vpos >= 0x43 and hpos >= 0x42.
0005f8c2: 0180 0059       ;COLOR00 := 0x0059
0005f8c6: 43d7 fffe       ;Wait for vpos >= 0x43 and hpos >= 0xd6.
0005f8ca: 0180 0000       ;COLOR00 := 0x0000
0005f8ce: 4443 fffe       ;Wait for vpos >= 0x44 and hpos >= 0x42.
0005f8d2: 0180 0059       ;COLOR00 := 0x0059
0005f8d6: 44d7 fffe       ;Wait for vpos >= 0x44 and hpos >= 0xd6.
0005f8da: 0180 0000       ;COLOR00 := 0x0000
0005f8de: 4543 fffe       ;Wait for vpos >= 0x45 and hpos >= 0x42.
0005f8e2: 0180 0059       ;COLOR00 := 0x0059
0005f8e6: 45d7 fffe       ;Wait for vpos >= 0x45 and hpos >= 0xd6.
0005f8ea: 0180 0000       ;COLOR00 := 0x0000
0005f8ee: 4643 fffe       ;Wait for vpos >= 0x46 and hpos >= 0x42.
0005f8f2: 0180 0059       ;COLOR00 := 0x0059
0005f8f6: 46d7 fffe       ;Wait for vpos >= 0x46 and hpos >= 0xd6.
0005f8fa: 0180 0000       ;COLOR00 := 0x0000
0005f8fe: 4743 fffe       ;Wait for vpos >= 0x47 and hpos >= 0x42.
0005f902: 0180 0059       ;COLOR00 := 0x0059
0005f906: 47d7 fffe       ;Wait for vpos >= 0x47 and hpos >= 0xd6.
0005f90a: 0180 0000       ;COLOR00 := 0x0000
0005f90e: 4843 fffe       ;Wait for vpos >= 0x48 and hpos >= 0x42.
0005f912: 0180 0059       ;COLOR00 := 0x0059
0005f916: 48d7 fffe       ;Wait for vpos >= 0x48 and hpos >= 0xd6.
0005f91a: 0180 0000       ;COLOR00 := 0x0000
0005f91e: 4943 fffe       ;Wait for vpos >= 0x49 and hpos >= 0x42.
0005f922: 0180 0059       ;COLOR00 := 0x0059
0005f926: 49d7 fffe       ;Wait for vpos >= 0x49 and hpos >= 0xd6.
0005f92a: 0180 0000       ;COLOR00 := 0x0000
0005f92e: 4a43 fffe       ;Wait for vpos >= 0x4a and hpos >= 0x42.
0005f932: 0180 0059       ;COLOR00 := 0x0059
0005f936: 4ad7 fffe       ;Wait for vpos >= 0x4a and hpos >= 0xd6.
0005f93a: 0180 0000       ;COLOR00 := 0x0000
0005f93e: 4b43 fffe       ;Wait for vpos >= 0x4b and hpos >= 0x42.
0005f942: 0180 0059       ;COLOR00 := 0x0059
0005f946: 4bd7 fffe       ;Wait for vpos >= 0x4b and hpos >= 0xd6.
0005f94a: 0180 0000       ;COLOR00 := 0x0000
0005f94e: 4c43 fffe       ;Wait for vpos >= 0x4c and hpos >= 0x42.
0005f952: 0180 0059       ;COLOR00 := 0x0059
0005f956: 4cd7 fffe       ;Wait for vpos >= 0x4c and hpos >= 0xd6.
0005f95a: 0180 0000       ;COLOR00 := 0x0000
0005f95e: 4d43 fffe       ;Wait for vpos >= 0x4d and hpos >= 0x42.
0005f962: 0180 0059       ;COLOR00 := 0x0059
0005f966: 4dd7 fffe       ;Wait for vpos >= 0x4d and hpos >= 0xd6.
0005f96a: 0180 0000       ;COLOR00 := 0x0000
0005f96e: 4e43 fffe       ;Wait for vpos >= 0x4e and hpos >= 0x42.
0005f972: 0180 0059       ;COLOR00 := 0x0059
0005f976: 4ed7 fffe       ;Wait for vpos >= 0x4e and hpos >= 0xd6.
0005f97a: 0180 0000       ;COLOR00 := 0x0000
0005f97e: 0192 0165       ;COLOR09 := 0x0165
0005f982: 4f43 fffe       ;Wait for vpos >= 0x4f and hpos >= 0x42.
0005f986: 0180 0058       ;COLOR00 := 0x0058
0005f98a: 4fd7 fffe       ;Wait for vpos >= 0x4f and hpos >= 0xd6.
0005f98e: 0180 0000       ;COLOR00 := 0x0000
0005f992: 5043 fffe       ;Wait for vpos >= 0x50 and hpos >= 0x42.
0005f996: 0180 0058       ;COLOR00 := 0x0058
0005f99a: 50d7 fffe       ;Wait for vpos >= 0x50 and hpos >= 0xd6.
0005f99e: 0180 0000       ;COLOR00 := 0x0000
0005f9a2: 5143 fffe       ;Wait for vpos >= 0x51 and hpos >= 0x42.
0005f9a6: 0180 0058       ;COLOR00 := 0x0058
0005f9aa: 51d7 fffe       ;Wait for vpos >= 0x51 and hpos >= 0xd6.
0005f9ae: 0180 0000       ;COLOR00 := 0x0000
0005f9b2: 5243 fffe       ;Wait for vpos >= 0x52 and hpos >= 0x42.
0005f9b6: 0180 0058       ;COLOR00 := 0x0058
0005f9ba: 52d7 fffe       ;Wait for vpos >= 0x52 and hpos >= 0xd6.
0005f9be: 0180 0000       ;COLOR00 := 0x0000
0005f9c2: 5343 fffe       ;Wait for vpos >= 0x53 and hpos >= 0x42.
0005f9c6: 0180 0058       ;COLOR00 := 0x0058
0005f9ca: 53d7 fffe       ;Wait for vpos >= 0x53 and hpos >= 0xd6.
0005f9ce: 0180 0000       ;COLOR00 := 0x0000
0005f9d2: 5443 fffe       ;Wait for vpos >= 0x54 and hpos >= 0x42.
0005f9d6: 0180 0058       ;COLOR00 := 0x0058
0005f9da: 54d7 fffe       ;Wait for vpos >= 0x54 and hpos >= 0xd6.
0005f9de: 0180 0000       ;COLOR00 := 0x0000
0005f9e2: 5543 fffe       ;Wait for vpos >= 0x55 and hpos >= 0x42.
0005f9e6: 0180 0058       ;COLOR00 := 0x0058
0005f9ea: 55d7 fffe       ;Wait for vpos >= 0x55 and hpos >= 0xd6.
0005f9ee: 0180 0000       ;COLOR00 := 0x0000
0005f9f2: 5643 fffe       ;Wait for vpos >= 0x56 and hpos >= 0x42.
0005f9f6: 0180 0058       ;COLOR00 := 0x0058
0005f9fa: 56d7 fffe       ;Wait for vpos >= 0x56 and hpos >= 0xd6.
0005f9fe: 0180 0000       ;COLOR00 := 0x0000
0005fa02: 5743 fffe       ;Wait for vpos >= 0x57 and hpos >= 0x42.
0005fa06: 0180 0058       ;COLOR00 := 0x0058
0005fa0a: 57d7 fffe       ;Wait for vpos >= 0x57 and hpos >= 0xd6.
0005fa0e: 0180 0000       ;COLOR00 := 0x0000
0005fa12: 5843 fffe       ;Wait for vpos >= 0x58 and hpos >= 0x42.
0005fa16: 0180 0058       ;COLOR00 := 0x0058
0005fa1a: 58d7 fffe       ;Wait for vpos >= 0x58 and hpos >= 0xd6.
0005fa1e: 0180 0000       ;COLOR00 := 0x0000
0005fa22: 0192 0164       ;COLOR09 := 0x0164
0005fa26: 5943 fffe       ;Wait for vpos >= 0x59 and hpos >= 0x42.
0005fa2a: 0180 0057       ;COLOR00 := 0x0057
0005fa2e: 59d7 fffe       ;Wait for vpos >= 0x59 and hpos >= 0xd6.
0005fa32: 0180 0000       ;COLOR00 := 0x0000
0005fa36: 5a43 fffe       ;Wait for vpos >= 0x5a and hpos >= 0x42.
0005fa3a: 0180 0057       ;COLOR00 := 0x0057
0005fa3e: 5ad7 fffe       ;Wait for vpos >= 0x5a and hpos >= 0xd6.
0005fa42: 0180 0000       ;COLOR00 := 0x0000
0005fa46: 5b43 fffe       ;Wait for vpos >= 0x5b and hpos >= 0x42.
0005fa4a: 0180 0057       ;COLOR00 := 0x0057
0005fa4e: 5bd7 fffe       ;Wait for vpos >= 0x5b and hpos >= 0xd6.
0005fa52: 0180 0000       ;COLOR00 := 0x0000
0005fa56: 5c43 fffe       ;Wait for vpos >= 0x5c and hpos >= 0x42.
0005fa5a: 0180 0057       ;COLOR00 := 0x0057
0005fa5e: 5cd7 fffe       ;Wait for vpos >= 0x5c and hpos >= 0xd6.
0005fa62: 0180 0000       ;COLOR00 := 0x0000
0005fa66: 5d43 fffe       ;Wait for vpos >= 0x5d and hpos >= 0x42.
0005fa6a: 0180 0057       ;COLOR00 := 0x0057
0005fa6e: 5dd7 fffe       ;Wait for vpos >= 0x5d and hpos >= 0xd6.
0005fa72: 0180 0000       ;COLOR00 := 0x0000
0005fa76: 5e43 fffe       ;Wait for vpos >= 0x5e and hpos >= 0x42.
0005fa7a: 0180 0057       ;COLOR00 := 0x0057
0005fa7e: 5ed7 fffe       ;Wait for vpos >= 0x5e and hpos >= 0xd6.
0005fa82: 0180 0000       ;COLOR00 := 0x0000
0005fa86: 5f43 fffe       ;Wait for vpos >= 0x5f and hpos >= 0x42.
0005fa8a: 0180 0057       ;COLOR00 := 0x0057
0005fa8e: 010a 0502       ;BPL2MOD := 0x0502
0005fa92: 5fd7 fffe       ;Wait for vpos >= 0x5f and hpos >= 0xd6.
0005fa96: 0180 0000       ;COLOR00 := 0x0000
0005fa9a: 0194 0050       ;COLOR10 := 0x0050
0005fa9e: 0196 0050       ;COLOR11 := 0x0050
0005faa2: 0198 0554       ;COLOR12 := 0x0554
0005faa6: 019a 0554       ;COLOR13 := 0x0554
0005faaa: 019c 0143       ;COLOR14 := 0x0143
0005faae: 019e 0143       ;COLOR15 := 0x0143
0005fab2: 0182 0aa6       ;COLOR01 := 0x0aa6
0005fab6: 0184 0765       ;COLOR02 := 0x0765
0005faba: 0186 0321       ;COLOR03 := 0x0321
0005fabe: 0188 0543       ;COLOR04 := 0x0543
0005fac2: 018a 0670       ;COLOR05 := 0x0670
0005fac6: 018c 0450       ;COLOR06 := 0x0450
0005faca: 010a 0002       ;BPL2MOD := 0x0002
0005face: 00e4 0007       ;BPL2PTH := 0x0007
0005fad2: 00e6 da3a       ;BPL2PTL := 0xda3a
0005fad6: 6043 fffe       ;Wait for vpos >= 0x60 and hpos >= 0x42.
0005fada: 0180 0057       ;COLOR00 := 0x0057
0005fade: 018e 0987       ;COLOR07 := 0x0987
0005fae2: 60d7 fffe       ;Wait for vpos >= 0x60 and hpos >= 0xd6.
0005fae6: 0180 0000       ;COLOR00 := 0x0000
0005faea: 6143 fffe       ;Wait for vpos >= 0x61 and hpos >= 0x42.
0005faee: 0180 0057       ;COLOR00 := 0x0057
0005faf2: 61d7 fffe       ;Wait for vpos >= 0x61 and hpos >= 0xd6.
0005faf6: 0180 0000       ;COLOR00 := 0x0000
0005fafa: 6243 fffe       ;Wait for vpos >= 0x62 and hpos >= 0x42.
0005fafe: 0180 0057       ;COLOR00 := 0x0057
0005fb02: 62d7 fffe       ;Wait for vpos >= 0x62 and hpos >= 0xd6.
0005fb06: 0180 0000       ;COLOR00 := 0x0000
0005fb0a: 0192 0264       ;COLOR09 := 0x0264
0005fb0e: 6343 fffe       ;Wait for vpos >= 0x63 and hpos >= 0x42.
0005fb12: 0180 0056       ;COLOR00 := 0x0056
0005fb16: 63d7 fffe       ;Wait for vpos >= 0x63 and hpos >= 0xd6.
0005fb1a: 0180 0000       ;COLOR00 := 0x0000
0005fb1e: 6443 fffe       ;Wait for vpos >= 0x64 and hpos >= 0x42.
0005fb22: 0180 0056       ;COLOR00 := 0x0056
0005fb26: 64d7 fffe       ;Wait for vpos >= 0x64 and hpos >= 0xd6.
0005fb2a: 0180 0000       ;COLOR00 := 0x0000
0005fb2e: 6543 fffe       ;Wait for vpos >= 0x65 and hpos >= 0x42.
0005fb32: 0180 0056       ;COLOR00 := 0x0056
0005fb36: 65d7 fffe       ;Wait for vpos >= 0x65 and hpos >= 0xd6.
0005fb3a: 0180 0000       ;COLOR00 := 0x0000
0005fb3e: 6643 fffe       ;Wait for vpos >= 0x66 and hpos >= 0x42.
0005fb42: 0180 0056       ;COLOR00 := 0x0056
0005fb46: 66d7 fffe       ;Wait for vpos >= 0x66 and hpos >= 0xd6.
0005fb4a: 0180 0000       ;COLOR00 := 0x0000
0005fb4e: 6743 fffe       ;Wait for vpos >= 0x67 and hpos >= 0x42.
0005fb52: 0180 0056       ;COLOR00 := 0x0056
0005fb56: 67d7 fffe       ;Wait for vpos >= 0x67 and hpos >= 0xd6.
0005fb5a: 0180 0000       ;COLOR00 := 0x0000
0005fb5e: 6843 fffe       ;Wait for vpos >= 0x68 and hpos >= 0x42.
0005fb62: 0180 0056       ;COLOR00 := 0x0056
0005fb66: 68d7 fffe       ;Wait for vpos >= 0x68 and hpos >= 0xd6.
0005fb6a: 0180 0000       ;COLOR00 := 0x0000
0005fb6e: 6943 fffe       ;Wait for vpos >= 0x69 and hpos >= 0x42.
0005fb72: 0180 0056       ;COLOR00 := 0x0056
0005fb76: 69d7 fffe       ;Wait for vpos >= 0x69 and hpos >= 0xd6.
0005fb7a: 0180 0000       ;COLOR00 := 0x0000
0005fb7e: 6a43 fffe       ;Wait for vpos >= 0x6a and hpos >= 0x42.
0005fb82: 0180 0056       ;COLOR00 := 0x0056
0005fb86: 6ad7 fffe       ;Wait for vpos >= 0x6a and hpos >= 0xd6.
0005fb8a: 0180 0000       ;COLOR00 := 0x0000
0005fb8e: 6b43 fffe       ;Wait for vpos >= 0x6b and hpos >= 0x42.
0005fb92: 0180 0056       ;COLOR00 := 0x0056
0005fb96: 6bd7 fffe       ;Wait for vpos >= 0x6b and hpos >= 0xd6.
0005fb9a: 0180 0000       ;COLOR00 := 0x0000
0005fb9e: 6c43 fffe       ;Wait for vpos >= 0x6c and hpos >= 0x42.
0005fba2: 0180 0056       ;COLOR00 := 0x0056
0005fba6: 6cd7 fffe       ;Wait for vpos >= 0x6c and hpos >= 0xd6.
0005fbaa: 0180 0000       ;COLOR00 := 0x0000
0005fbae: 0192 0364       ;COLOR09 := 0x0364
0005fbb2: 6d43 fffe       ;Wait for vpos >= 0x6d and hpos >= 0x42.
0005fbb6: 0180 0055       ;COLOR00 := 0x0055
0005fbba: 6dd7 fffe       ;Wait for vpos >= 0x6d and hpos >= 0xd6.
0005fbbe: 0180 0000       ;COLOR00 := 0x0000
0005fbc2: 6e43 fffe       ;Wait for vpos >= 0x6e and hpos >= 0x42.
0005fbc6: 0180 0055       ;COLOR00 := 0x0055
0005fbca: 6ed7 fffe       ;Wait for vpos >= 0x6e and hpos >= 0xd6.
0005fbce: 0180 0000       ;COLOR00 := 0x0000
0005fbd2: 6f43 fffe       ;Wait for vpos >= 0x6f and hpos >= 0x42.
0005fbd6: 0180 0055       ;COLOR00 := 0x0055
0005fbda: 6fd7 fffe       ;Wait for vpos >= 0x6f and hpos >= 0xd6.
0005fbde: 0180 0000       ;COLOR00 := 0x0000
0005fbe2: 7043 fffe       ;Wait for vpos >= 0x70 and hpos >= 0x42.
0005fbe6: 0180 0055       ;COLOR00 := 0x0055
0005fbea: 70d7 fffe       ;Wait for vpos >= 0x70 and hpos >= 0xd6.
0005fbee: 0180 0000       ;COLOR00 := 0x0000
0005fbf2: 7143 fffe       ;Wait for vpos >= 0x71 and hpos >= 0x42.
0005fbf6: 0180 0055       ;COLOR00 := 0x0055
0005fbfa: 71d7 fffe       ;Wait for vpos >= 0x71 and hpos >= 0xd6.
0005fbfe: 0180 0000       ;COLOR00 := 0x0000
0005fc02: 7243 fffe       ;Wait for vpos >= 0x72 and hpos >= 0x42.
0005fc06: 0180 0055       ;COLOR00 := 0x0055
0005fc0a: 72d7 fffe       ;Wait for vpos >= 0x72 and hpos >= 0xd6.
0005fc0e: 0180 0000       ;COLOR00 := 0x0000
0005fc12: 7343 fffe       ;Wait for vpos >= 0x73 and hpos >= 0x42.
0005fc16: 0180 0055       ;COLOR00 := 0x0055
0005fc1a: 73d7 fffe       ;Wait for vpos >= 0x73 and hpos >= 0xd6.
0005fc1e: 0180 0000       ;COLOR00 := 0x0000
0005fc22: 7443 fffe       ;Wait for vpos >= 0x74 and hpos >= 0x42.
0005fc26: 0180 0055       ;COLOR00 := 0x0055
0005fc2a: 74d7 fffe       ;Wait for vpos >= 0x74 and hpos >= 0xd6.
0005fc2e: 0180 0000       ;COLOR00 := 0x0000
0005fc32: 7543 fffe       ;Wait for vpos >= 0x75 and hpos >= 0x42.
0005fc36: 0180 0055       ;COLOR00 := 0x0055
0005fc3a: 75d7 fffe       ;Wait for vpos >= 0x75 and hpos >= 0xd6.
0005fc3e: 0180 0000       ;COLOR00 := 0x0000
0005fc42: 7643 fffe       ;Wait for vpos >= 0x76 and hpos >= 0x42.
0005fc46: 0180 0055       ;COLOR00 := 0x0055
0005fc4a: 76d7 fffe       ;Wait for vpos >= 0x76 and hpos >= 0xd6.
0005fc4e: 0180 0000       ;COLOR00 := 0x0000
0005fc52: 0192 0464       ;COLOR09 := 0x0464
0005fc56: 7743 fffe       ;Wait for vpos >= 0x77 and hpos >= 0x42.
0005fc5a: 0180 0054       ;COLOR00 := 0x0054
0005fc5e: 77d7 fffe       ;Wait for vpos >= 0x77 and hpos >= 0xd6.
0005fc62: 0180 0000       ;COLOR00 := 0x0000
0005fc66: 7843 fffe       ;Wait for vpos >= 0x78 and hpos >= 0x42.
0005fc6a: 0180 0054       ;COLOR00 := 0x0054
0005fc6e: 78d7 fffe       ;Wait for vpos >= 0x78 and hpos >= 0xd6.
0005fc72: 0180 0000       ;COLOR00 := 0x0000
0005fc76: 7943 fffe       ;Wait for vpos >= 0x79 and hpos >= 0x42.
0005fc7a: 0180 0054       ;COLOR00 := 0x0054
0005fc7e: 79d7 fffe       ;Wait for vpos >= 0x79 and hpos >= 0xd6.
0005fc82: 0180 0000       ;COLOR00 := 0x0000
0005fc86: 7a43 fffe       ;Wait for vpos >= 0x7a and hpos >= 0x42.
0005fc8a: 0180 0054       ;COLOR00 := 0x0054
0005fc8e: 7ad7 fffe       ;Wait for vpos >= 0x7a and hpos >= 0xd6.
0005fc92: 0180 0000       ;COLOR00 := 0x0000
0005fc96: 7b43 fffe       ;Wait for vpos >= 0x7b and hpos >= 0x42.
0005fc9a: 0180 0054       ;COLOR00 := 0x0054
0005fc9e: 7bd7 fffe       ;Wait for vpos >= 0x7b and hpos >= 0xd6.
0005fca2: 0180 0000       ;COLOR00 := 0x0000
0005fca6: 7c43 fffe       ;Wait for vpos >= 0x7c and hpos >= 0x42.
0005fcaa: 0180 0054       ;COLOR00 := 0x0054
0005fcae: 7cd7 fffe       ;Wait for vpos >= 0x7c and hpos >= 0xd6.
0005fcb2: 0180 0000       ;COLOR00 := 0x0000
0005fcb6: 7d43 fffe       ;Wait for vpos >= 0x7d and hpos >= 0x42.
0005fcba: 0180 0054       ;COLOR00 := 0x0054
0005fcbe: 7dd7 fffe       ;Wait for vpos >= 0x7d and hpos >= 0xd6.
0005fcc2: 0180 0000       ;COLOR00 := 0x0000
0005fcc6: 7e43 fffe       ;Wait for vpos >= 0x7e and hpos >= 0x42.
0005fcca: 0180 0054       ;COLOR00 := 0x0054
0005fcce: 7ed7 fffe       ;Wait for vpos >= 0x7e and hpos >= 0xd6.
0005fcd2: 0180 0000       ;COLOR00 := 0x0000
0005fcd6: 7f43 fffe       ;Wait for vpos >= 0x7f and hpos >= 0x42.
0005fcda: 0180 0054       ;COLOR00 := 0x0054
0005fcde: 010a 0502       ;BPL2MOD := 0x0502
0005fce2: 7fd7 fffe       ;Wait for vpos >= 0x7f and hpos >= 0xd6.
0005fce6: 0180 0000       ;COLOR00 := 0x0000
0005fcea: 0194 0764       ;COLOR10 := 0x0764
0005fcee: 0196 0764       ;COLOR11 := 0x0764
0005fcf2: 0198 0554       ;COLOR12 := 0x0554
0005fcf6: 019a 0554       ;COLOR13 := 0x0554
0005fcfa: 019c 0143       ;COLOR14 := 0x0143
0005fcfe: 019e 0143       ;COLOR15 := 0x0143
0005fd02: 0182 0aa6       ;COLOR01 := 0x0aa6
0005fd06: 0184 0765       ;COLOR02 := 0x0765
0005fd0a: 0186 0321       ;COLOR03 := 0x0321
0005fd0e: 0188 0543       ;COLOR04 := 0x0543
0005fd12: 018a 0670       ;COLOR05 := 0x0670
0005fd16: 018c 0450       ;COLOR06 := 0x0450
0005fd1a: 010a 0002       ;BPL2MOD := 0x0002
0005fd1e: 00e4 0007       ;BPL2PTH := 0x0007
0005fd22: 00e6 df3a       ;BPL2PTL := 0xdf3a
0005fd26: 8043 fffe       ;Wait for vpos >= 0x80 and hpos >= 0x42.
0005fd2a: 0180 0054       ;COLOR00 := 0x0054
0005fd2e: 018e 0987       ;COLOR07 := 0x0987
0005fd32: 80d7 fffe       ;Wait for vpos >= 0x80 and hpos >= 0xd6.
0005fd36: 0180 0000       ;COLOR00 := 0x0000
0005fd3a: 0192 0564       ;COLOR09 := 0x0564
0005fd3e: 8143 fffe       ;Wait for vpos >= 0x81 and hpos >= 0x42.
0005fd42: 0180 0154       ;COLOR00 := 0x0154
0005fd46: 81d7 fffe       ;Wait for vpos >= 0x81 and hpos >= 0xd6.
0005fd4a: 0180 0000       ;COLOR00 := 0x0000
0005fd4e: 8243 fffe       ;Wait for vpos >= 0x82 and hpos >= 0x42.
0005fd52: 0180 0154       ;COLOR00 := 0x0154
0005fd56: 82d7 fffe       ;Wait for vpos >= 0x82 and hpos >= 0xd6.
0005fd5a: 0180 0000       ;COLOR00 := 0x0000
0005fd5e: 8343 fffe       ;Wait for vpos >= 0x83 and hpos >= 0x42.
0005fd62: 0180 0154       ;COLOR00 := 0x0154
0005fd66: 83d7 fffe       ;Wait for vpos >= 0x83 and hpos >= 0xd6.
0005fd6a: 0180 0000       ;COLOR00 := 0x0000
0005fd6e: 8443 fffe       ;Wait for vpos >= 0x84 and hpos >= 0x42.
0005fd72: 0180 0154       ;COLOR00 := 0x0154
0005fd76: 84d7 fffe       ;Wait for vpos >= 0x84 and hpos >= 0xd6.
0005fd7a: 0180 0000       ;COLOR00 := 0x0000
0005fd7e: 8543 fffe       ;Wait for vpos >= 0x85 and hpos >= 0x42.
0005fd82: 0180 0154       ;COLOR00 := 0x0154
0005fd86: 85d7 fffe       ;Wait for vpos >= 0x85 and hpos >= 0xd6.
0005fd8a: 0180 0000       ;COLOR00 := 0x0000
0005fd8e: 8643 fffe       ;Wait for vpos >= 0x86 and hpos >= 0x42.
0005fd92: 0180 0154       ;COLOR00 := 0x0154
0005fd96: 86d7 fffe       ;Wait for vpos >= 0x86 and hpos >= 0xd6.
0005fd9a: 0180 0000       ;COLOR00 := 0x0000
0005fd9e: 8743 fffe       ;Wait for vpos >= 0x87 and hpos >= 0x42.
0005fda2: 0180 0154       ;COLOR00 := 0x0154
0005fda6: 87d7 fffe       ;Wait for vpos >= 0x87 and hpos >= 0xd6.
0005fdaa: 0180 0000       ;COLOR00 := 0x0000
0005fdae: 8843 fffe       ;Wait for vpos >= 0x88 and hpos >= 0x42.
0005fdb2: 0180 0154       ;COLOR00 := 0x0154
0005fdb6: 88d7 fffe       ;Wait for vpos >= 0x88 and hpos >= 0xd6.
0005fdba: 0180 0000       ;COLOR00 := 0x0000
0005fdbe: 8943 fffe       ;Wait for vpos >= 0x89 and hpos >= 0x42.
0005fdc2: 0180 0154       ;COLOR00 := 0x0154
0005fdc6: 89d7 fffe       ;Wait for vpos >= 0x89 and hpos >= 0xd6.
0005fdca: 0180 0000       ;COLOR00 := 0x0000
0005fdce: 8a43 fffe       ;Wait for vpos >= 0x8a and hpos >= 0x42.
0005fdd2: 0180 0154       ;COLOR00 := 0x0154
0005fdd6: 8ad7 fffe       ;Wait for vpos >= 0x8a and hpos >= 0xd6.
0005fdda: 0180 0000       ;COLOR00 := 0x0000
0005fdde: 0192 0664       ;COLOR09 := 0x0664
0005fde2: 8b43 fffe       ;Wait for vpos >= 0x8b and hpos >= 0x42.
0005fde6: 0180 0254       ;COLOR00 := 0x0254
0005fdea: 8bd7 fffe       ;Wait for vpos >= 0x8b and hpos >= 0xd6.
0005fdee: 0180 0000       ;COLOR00 := 0x0000
0005fdf2: 8c43 fffe       ;Wait for vpos >= 0x8c and hpos >= 0x42.
0005fdf6: 0180 0254       ;COLOR00 := 0x0254
0005fdfa: 8cd7 fffe       ;Wait for vpos >= 0x8c and hpos >= 0xd6.
0005fdfe: 0180 0000       ;COLOR00 := 0x0000
0005fe02: 8d43 fffe       ;Wait for vpos >= 0x8d and hpos >= 0x42.
0005fe06: 0180 0254       ;COLOR00 := 0x0254
0005fe0a: 8dd7 fffe       ;Wait for vpos >= 0x8d and hpos >= 0xd6.
0005fe0e: 0180 0000       ;COLOR00 := 0x0000
0005fe12: 8e43 fffe       ;Wait for vpos >= 0x8e and hpos >= 0x42.
0005fe16: 0180 0254       ;COLOR00 := 0x0254
0005fe1a: 8ed7 fffe       ;Wait for vpos >= 0x8e and hpos >= 0xd6.
0005fe1e: 0180 0000       ;COLOR00 := 0x0000
0005fe22: 8f43 fffe       ;Wait for vpos >= 0x8f and hpos >= 0x42.
0005fe26: 0180 0254       ;COLOR00 := 0x0254
0005fe2a: 8fd7 fffe       ;Wait for vpos >= 0x8f and hpos >= 0xd6.
0005fe2e: 0180 0000       ;COLOR00 := 0x0000
0005fe32: 9043 fffe       ;Wait for vpos >= 0x90 and hpos >= 0x42.
0005fe36: 0180 0254       ;COLOR00 := 0x0254
0005fe3a: 90d7 fffe       ;Wait for vpos >= 0x90 and hpos >= 0xd6.
0005fe3e: 0180 0000       ;COLOR00 := 0x0000
0005fe42: 9143 fffe       ;Wait for vpos >= 0x91 and hpos >= 0x42.
0005fe46: 0180 0254       ;COLOR00 := 0x0254
0005fe4a: 91d7 fffe       ;Wait for vpos >= 0x91 and hpos >= 0xd6.
0005fe4e: 0180 0000       ;COLOR00 := 0x0000
0005fe52: 9243 fffe       ;Wait for vpos >= 0x92 and hpos >= 0x42.
0005fe56: 0180 0254       ;COLOR00 := 0x0254
0005fe5a: 92d7 fffe       ;Wait for vpos >= 0x92 and hpos >= 0xd6.
0005fe5e: 0180 0000       ;COLOR00 := 0x0000
0005fe62: 9343 fffe       ;Wait for vpos >= 0x93 and hpos >= 0x42.
0005fe66: 0180 0254       ;COLOR00 := 0x0254
0005fe6a: 93d7 fffe       ;Wait for vpos >= 0x93 and hpos >= 0xd6.
0005fe6e: 0180 0000       ;COLOR00 := 0x0000
0005fe72: 9443 fffe       ;Wait for vpos >= 0x94 and hpos >= 0x42.
0005fe76: 0180 0254       ;COLOR00 := 0x0254
0005fe7a: 94d7 fffe       ;Wait for vpos >= 0x94 and hpos >= 0xd6.
0005fe7e: 0180 0000       ;COLOR00 := 0x0000
0005fe82: 0192 0764       ;COLOR09 := 0x0764
0005fe86: 9543 fffe       ;Wait for vpos >= 0x95 and hpos >= 0x42.
0005fe8a: 0180 0354       ;COLOR00 := 0x0354
0005fe8e: 95d7 fffe       ;Wait for vpos >= 0x95 and hpos >= 0xd6.
0005fe92: 0180 0000       ;COLOR00 := 0x0000
0005fe96: 9643 fffe       ;Wait for vpos >= 0x96 and hpos >= 0x42.
0005fe9a: 0180 0354       ;COLOR00 := 0x0354
0005fe9e: 96d7 fffe       ;Wait for vpos >= 0x96 and hpos >= 0xd6.

Post your comment

Comments

  • Gravatar for guest

    @codetapper Many thanks for the clarification! I thought blitting 8k per frame (so taking roughly ~10-15% of available dma slots) would be quite excessive for a third scrolling layer, but if it's updated at 25 fps it looks more reasonable.

    guest 28/01/2018 5:03pm (7 years ago)

  • Gravatar for Codetapper

    @guest: The blitter is used to shift the bitplane around by a pixel each time it needs to, so there's no need to store more than one copy of the graphic in memory. Agony copies half of that single bitplane image each frame as it only needs to scroll that layer every 2 frames. It's only on the Atari ST where you need to buffer all 16 combinations to keep the speed up.

    Codetapper 22/01/2018 5:48am (7 years ago)

  • Gravatar for guest

    Just something I do not get: You have only 2 different scroll values, for even and odd bitplanes, how do they keep the static layer in place while changing the scroll registers? Having 16 copies of that layer in mem, each shifted by 1 pix to compensate for the scrolling?

    guest 21/01/2018 4:21pm (7 years ago)

  • Gravatar for Antonio

    great work! How about posting something AGA specific? Keep up the good work!

    Antonio 08/02/2015 12:58am (10 years ago)

  • Gravatar for zapposh

    I love your different posts on sprite tricks. So interesting! Many thanks for sharing this knowledge.

    zapposh 02/05/2013 12:48am (12 years ago)

  • Gravatar for Mark

    Other games on the A500 such as flimbos quest had a horozontally scrolling dual playfield in 32 colours - more colours than this....

    Mark 15/01/2013 11:17am (12 years ago)

  • Gravatar for Codetapper

    There's incredibly detailed information about how the [url=http://francksauer.com/index.php/games/15-games/published-games/10-agony]Agony graphics were made[/url] on Franck Sauer's awesome website![/url]

    Codetapper 14/01/2013 10:01pm (12 years ago)

RSS feed for comments on this page | RSS feed for all comments

Popular Sprite Tricks

Agony

Jim Power

2 sprites are displayed then repositioned horizontally right across the screen to create the colourful static background. The remaining sprites are used for the main character, the status bar and player bullets.

Agony

Risky Woods

The 16-colour background layer was created by using all 8 hardware sprites and repositioning them across the screen. The same 64 pixel wide graphics are repeated across the entire play area.

Agony

Shadow of the Beast

One of the first jaw-droppingly beautiful Amiga games that still looks great today. Sprites were heavily re-used on the screen, along with priority changes to make them appear between the playfields.

Agony

Stardust

The amazing tunnel sequence was created with a 6 frame animation sequence made with only 4 colours and mirrored vertically. The asteroid layer sits on top of this, with a status panel and player ship made of sprites sitting on top.