map: Added flagging code to mark tiles as visible
authorLukas Krickl <lukas@krickl.dev>
Sun, 11 Jan 2026 15:39:58 +0000 (16:39 +0100)
committerLukas Krickl <lukas@krickl.dev>
Sun, 11 Jan 2026 15:39:58 +0000 (16:39 +0100)
assets
src/defs.s
src/map.s
src/player.s
src/tiles.s
src/wram.s
tiles/bank8000.inc
tiles/bank9000.inc

diff --git a/assets b/assets
index efe93c14d63cb5adabf47a848b19a25090584d1c..320c888e57af660897377bfce1c63b70f3b31876 160000 (submodule)
--- a/assets
+++ b/assets
@@ -1 +1 @@
-Subproject commit efe93c14d63cb5adabf47a848b19a25090584d1c
+Subproject commit 320c888e57af660897377bfce1c63b70f3b31876
index 775c954825e1a4b7249cdc3c800c9bbfd332b186..b65046e7452163d2e8a45526f6762e1c63df70a7 100644 (file)
 .se 1
        ; cannot be walked through
 .de TF0_WALL, 1
-       ; the tile can be seen (should be rendered)
-.de TF0_VSIBLE, 1
+       ; the tile has been uncovered before (should be rendered)
+.de TF0_UNCOVERED, 2
+       ; the tile can be seen 
+.de TF0_VISIBLE, 4
 
 
        ; tile struct
 .def int DIRLEFT = BTNLEFT
 .def int DIRRIGHT = BTNRIGHT
 
-       ; player direction
-.def int SOUTH = 0
-.def int NORTH = 1
-.def int WEST = 2
-.def int EAST = 3
-
        ; gameplay control flags
 .se 1
        
index b2eb76ec5b60629f04028cf911d37ac598fcb40c..8a8821d9464cd8d06b58e6c53caf3e70f9084114 100644 (file)
--- a/src/map.s
+++ b/src/map.s
@@ -258,9 +258,86 @@ map_full_draw_oam_clear:
        call OAMDMAFN
        ret
 
+       ; sets visible flags on a specific row
+       ; inputs:
+       ;               b/c: y/x positions
+map_set_visible_row:
+       ld a, [player_viewradius]
+       add a, a ; * 2 for complete view
+       ld d, a ; loop counter
+@x_loop:
+               push de
+               push bc
+               call map_get_tile
+               ld de, t_flags0
+               add hl, de ; hl = flags
+
+               pop bc
+               pop de
+               
+               ; hl = tile
+               ld a, [hl]
+               or a, TF0_VISIBLE
+               ld [hl], a
 
+               ; next tile
+               inc c ; x++
+
+               dec d
+               jr nz, @x_loop REL
+       ret
 
        
+       ; sets up the visibility range for tiles around the player
+       ; starts at player_y/x - viewport and runs marks every tile 
+       ; until player_y/x + viewport is reached
+map_set_visible_range:
+       ; first clear all VISIBLE flags on *all* tiles
+       ld hl, tiles+t_flags0 ; start at flags
+       ld bc, MAP_TILES
+       ld de, t_size
+@clear_loop:
+               ld a, [hl]
+               and a, ~TF0_VISIBLE & 0xFF
+               ld [hl], a
+
+               add hl, de ; next tile
+
+               dec bc
+               ld a, b
+               or a, c
+       jr nz, @clear_loop REL
+       
+       ; now mark new tiles as visible
+
+       ld a, [player_viewradius]
+       ld d, a ; d = viewradius value
+       ld a, [player+act_pos_y]
+       sub a, d
+       ld b, a ; = y start
+
+       ld a, [player+act_pos_x]
+       sub a, d
+       ld c, a ;  = x start
+       
+       ld a, d
+       add a, a
+       ld d, a ; d = view radius * 2
+@y_loop:
+               push de
+               push bc
+               call map_set_visible_row
+               pop bc
+
+               ; go to next row
+               inc b ; y++
+
+               pop de
+               dec d ;  count--
+               jr nz, @y_loop REL
+
+       ret
+       
        ; draws a full map copy into the current map view buffer
        ; draws the are around the players viewport
        ; inputs:
@@ -269,6 +346,13 @@ map_full_draw_oam_clear:
        ;               render_buffer: new map data to be drawn
        ; transferts to redraw state
 map_full_draw:
+       call map_set_visible_range
+       
+       ; render destination
+       ld hl, render_buffer
+
+       ; 
+
 @done:
        ; 4) go to render state
        call update_render
index 40757289c64cbe6f04459b71818709a5b7cb83ce..53b9686d2fa4468bbfbf2c299c8dbbfa554043bb 100644 (file)
@@ -1,26 +1,4 @@
 
-#define PLAYER_PLACEHOLDER_WEAPON_0 0x9E
-#define PLAYER_PLACEHOLDER_WEAPON_1 0xAD
-#define PLAYER_PLACEHOLDER_WEAPON_2 0xAE
-#define PLAYER_PLACEHOLDER_WEAPON_3 0xBE
-#define PLAYER_PLACEHOLDER_WEAPON_4 0xAF
-#define PLAYER_PLACEHOLDER_WEAPON_5 0xBF
-
-
-       ; table of direction to pick on right turn
-player_direction_turn_right:
-       .db WEST ; SOUTH
-       .db EAST ; NORTH
-       .db NORTH ; EAST
-       .db SOUTH ; WEST
-       
-       ; table of directions to pick on left turn
-player_direction_turn_left:
-       .db EAST ; SOUTH  
-       .db WEST ; NORTH
-       .db SOUTH ; EAST
-       .db NORTH ; WEST
-
 
        ; sets up the player actor
 player_init:
@@ -70,7 +48,7 @@ player_init:
 
        ; set default view
        ld a, 5
-       ld [player_viewport], a
+       ld [player_viewradius], a
        
        ret
        
index d98180e706aeee646d43a442bbf7140df6edff44..1a633f094ff64b4cb1f923a4dcd29b52ea8d5859 100644 (file)
@@ -20,4 +20,19 @@ tile_table:
        dw tile_floor
        dw tile_door
 
+       ; map of tile type to gfx
+       ; this is the base tile 
+       ; if the tile is not marked as visible it will never be drawn
+       ; if the tile is marked as visible, but not in view bit 7 will be set to get
+       ; a different tile id
+       ; the tile id is the top left corner of the tile
+tile_gfx_table:
+       ; null
+       .db 0x00
+       ; wall
+       .db 0x02
+       ; floor
+       .db 0x04
+       ; door
+       .db 0x06
 
index 82e08cba5ae02caec4bb7d954801a8cfc8be21aa..ea5b850f79772e335bbd58c52b047a424f1d54b8 100644 (file)
@@ -76,7 +76,9 @@ srand: .adv 2
 player_attr: .adv attr_size
 player_exp: .adv 2
 player_level: .adv 1
-player_viewport: .adv 1
+
+       ; player view distance radius
+player_viewradius: .adv 1
 
 actors:
 player: .adv act_size
index 568af5dc9fad20653742fd82b3e99c6d1b7a16c8..b35c792155190a7fea7132e28a12c6cbc189470a 100644 (file)
@@ -9,15 +9,6 @@
 .chr 00000000
 .chr 00000000
 ; tile 1
-.chr 11111111
-.chr 11111111
-.chr 11111111
-.chr 11111111
-.chr 11111111
-.chr 11111111
-.chr 11111111
-.chr 11111111
-; tile 2
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
+; tile 2
+.chr 03333333
+.chr 33000000
+.chr 30002222
+.chr 30022222
+.chr 30222222
+.chr 30222222
+.chr 30222222
+.chr 30222222
 ; tile 3
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 33333330
+.chr 00000033
+.chr 22220013
+.chr 22222013
+.chr 22222213
+.chr 22222213
+.chr 22222213
+.chr 22222213
 ; tile 4
 .chr 00000000
 .chr 00000000
 ; tile 6
 .chr 00000000
 .chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 00033333
+.chr 00322223
+.chr 03222223
+.chr 32222223
+.chr 32222223
+.chr 32222223
 ; tile 7
 .chr 00000000
 .chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 33333000
+.chr 32222300
+.chr 32222230
+.chr 32222223
+.chr 32222223
+.chr 32222223
 ; tile 8
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 ; tile 18
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 30222222
+.chr 30222222
+.chr 30222222
+.chr 30222222
+.chr 30022222
+.chr 30002222
+.chr 33111111
+.chr 03333333
 ; tile 19
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 22222213
+.chr 22222213
+.chr 22222213
+.chr 22222213
+.chr 22222113
+.chr 22221113
+.chr 11111133
+.chr 33333330
 ; tile 20
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 ; tile 22
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 32222223
+.chr 32222223
+.chr 32222323
+.chr 32222323
+.chr 32222323
+.chr 32222223
+.chr 32222223
+.chr 33333333
 ; tile 23
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 32222223
+.chr 32222223
+.chr 32322223
+.chr 32322223
+.chr 32322223
+.chr 32222223
+.chr 32222223
+.chr 33333333
 ; tile 24
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 ; tile 64
-.chr 03333333
-.chr 33000000
-.chr 30002222
-.chr 30022222
-.chr 30222222
-.chr 30222222
-.chr 30222222
-.chr 30222222
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 65
-.chr 33333330
-.chr 00000033
-.chr 22220013
-.chr 22222013
-.chr 22222213
-.chr 22222213
-.chr 22222213
-.chr 22222213
-; tile 66
 .chr 00000000
-.chr 00033333
-.chr 00322222
-.chr 03322222
-.chr 33222222
-.chr 32333223
-.chr 32333223
-.chr 32333223
-; tile 67
 .chr 00000000
-.chr 33300000
-.chr 11330000
-.chr 21133000
-.chr 22113300
-.chr 33211300
-.chr 33211300
-.chr 33211300
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+; tile 66
+.chr 03333333
+.chr 33111111
+.chr 31111111
+.chr 31111111
+.chr 31111111
+.chr 31111111
+.chr 31111111
+.chr 31111111
+; tile 67
+.chr 33333330
+.chr 11111133
+.chr 11111113
+.chr 11111113
+.chr 11111113
+.chr 11111113
+.chr 11111113
+.chr 11111113
 ; tile 68
 .chr 22222222
-.chr 22332211
-.chr 22303111
-.chr 22232222
-.chr 22212322
-.chr 22212322
-.chr 22212221
-.chr 22211233
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
 ; tile 69
 .chr 22222222
-.chr 11223322
-.chr 11130322
-.chr 22223222
-.chr 22321222
-.chr 22321222
-.chr 12221222
-.chr 33211222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
 ; tile 70
 .chr 00000000
 .chr 00000000
+.chr 00033333
+.chr 00311113
+.chr 03111113
+.chr 31111113
+.chr 31111113
+.chr 31111113
+; tile 71
 .chr 00000000
 .chr 00000000
+.chr 33333000
+.chr 31111300
+.chr 31111130
+.chr 31111113
+.chr 31111113
+.chr 31111113
+; tile 72
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-; tile 71
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
+; tile 73
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-; tile 72
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
+; tile 74
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-; tile 73
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
+; tile 75
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-; tile 74
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
+; tile 76
+.chr 00000000
+.chr 00033333
+.chr 00322222
+.chr 03322222
+.chr 33222222
+.chr 32333223
+.chr 32333223
+.chr 32333223
+; tile 77
+.chr 00000000
+.chr 33300000
+.chr 11330000
+.chr 21133000
+.chr 22113300
+.chr 33211300
+.chr 33211300
+.chr 33211300
+; tile 78
+.chr 22222222
+.chr 22332211
+.chr 22303111
+.chr 22232222
+.chr 22212322
+.chr 22212322
+.chr 22212221
+.chr 22211233
+; tile 79
+.chr 22222222
+.chr 11223322
+.chr 11130322
+.chr 22223222
+.chr 22321222
+.chr 22321222
+.chr 12221222
+.chr 33211222
+; tile 80
+.chr 00000000
+.chr 00000000
+.chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-; tile 75
 .chr 00000000
+; tile 81
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-; tile 76
 .chr 00000000
+; tile 82
+.chr 31111111
+.chr 31111111
+.chr 31111111
+.chr 31111111
+.chr 31111111
+.chr 31111111
+.chr 33111111
+.chr 03333333
+; tile 83
+.chr 11111113
+.chr 11111113
+.chr 11111113
+.chr 11111113
+.chr 11111113
+.chr 11111113
+.chr 11111133
+.chr 33333330
+; tile 84
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+; tile 85
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+; tile 86
+.chr 31111113
+.chr 31111113
+.chr 31111313
+.chr 31111313
+.chr 31111313
+.chr 31111113
+.chr 31111113
+.chr 33333333
+; tile 87
+.chr 31111113
+.chr 31111113
+.chr 31311113
+.chr 31311113
+.chr 31311113
+.chr 31111113
+.chr 31111113
+.chr 33333333
+; tile 88
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-; tile 77
 .chr 00000000
+; tile 89
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-; tile 78
+.chr 00000000
+; tile 90
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-; tile 79
+; tile 91
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-; tile 80
-.chr 30222222
-.chr 30222222
-.chr 30222222
-.chr 30222222
-.chr 30022222
-.chr 30002222
-.chr 33111111
-.chr 03333333
-; tile 81
-.chr 22222213
-.chr 22222213
-.chr 22222213
-.chr 22222213
-.chr 22222113
-.chr 22221113
-.chr 11111133
-.chr 33333330
-; tile 82
+; tile 92
 .chr 32222331
 .chr 32222332
 .chr 32222222
 .chr 00323232
 .chr 00333333
 .chr 00000000
-; tile 83
+; tile 93
 .chr 11211300
 .chr 22211300
 .chr 22113300
 .chr 31333000
 .chr 33330000
 .chr 00000000
-; tile 84
+; tile 94
 .chr 22221203
 .chr 22221100
 .chr 22222110
 .chr 22222222
 .chr 22222222
 .chr 22222222
-; tile 85
+; tile 95
 .chr 30112222
 .chr 00112222
 .chr 01122222
 .chr 22222222
 .chr 22222222
 .chr 22222222
-; tile 86
+; tile 96
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-; tile 87
+; tile 97
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-; tile 88
+; tile 98
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-; tile 89
+; tile 99
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-; tile 90
+; tile 100
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-; tile 91
+; tile 101
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-; tile 92
+; tile 102
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-; tile 93
+; tile 103
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-; tile 94
+; tile 104
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-; tile 95
+; tile 105
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-; tile 96
+; tile 106
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-; tile 97
+; tile 107
 .chr 00000000
-.chr 03333330
-.chr 03333330
-.chr 03333330
-.chr 03333330
-.chr 03333330
-.chr 03333330
-.chr 00033000
-; tile 98
-.chr 00033000
-.chr 03333330
-.chr 03333330
-.chr 03333330
-.chr 03333330
-.chr 03333330
-.chr 03333330
 .chr 00000000
-; tile 99
-.chr 00033000
-.chr 03333330
-.chr 03333330
-.chr 03333330
-.chr 03333330
-.chr 03333330
-.chr 03333330
-.chr 00033000
-; tile 100
 .chr 00000000
-.chr 03333330
-.chr 03333330
-.chr 33333330
-.chr 33333330
-.chr 03333330
-.chr 03333330
 .chr 00000000
-; tile 101
 .chr 00000000
-.chr 03333330
-.chr 03333330
-.chr 33333330
-.chr 33333330
-.chr 03333330
-.chr 03333330
-.chr 00033000
-; tile 102
-.chr 00033000
-.chr 03333330
-.chr 03333330
-.chr 33333330
-.chr 33333330
-.chr 03333330
-.chr 03333330
 .chr 00000000
-; tile 103
-.chr 00033000
-.chr 03333330
-.chr 03333330
-.chr 33333330
-.chr 33333330
-.chr 03333330
-.chr 03333330
-.chr 00033000
-; tile 104
 .chr 00000000
-.chr 03333330
-.chr 03333330
-.chr 03333333
-.chr 03333333
-.chr 03333330
-.chr 03333330
 .chr 00000000
-; tile 105
+; tile 108
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 .chr 00000000
-.chr 03333330
-.chr 03333330
-.chr 03333333
-.chr 03333333
-.chr 03333330
-.chr 03333330
-.chr 00033000
-; tile 106
-.chr 00033000
-.chr 03333330
-.chr 03333330
-.chr 03333333
-.chr 03333333
-.chr 03333330
-.chr 03333330
 .chr 00000000
-; tile 107
-.chr 00033000
-.chr 03333330
-.chr 03333330
-.chr 03333333
-.chr 03333333
-.chr 03333330
-.chr 03333330
-.chr 00033000
-; tile 108
 .chr 00000000
-.chr 03333330
-.chr 03333330
-.chr 33333333
-.chr 33333333
-.chr 03333330
-.chr 03333330
 .chr 00000000
 ; tile 109
 .chr 00000000
-.chr 03333330
-.chr 03333330
-.chr 33333333
-.chr 33333333
-.chr 03333330
-.chr 03333330
-.chr 00033000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 110
-.chr 00033000
-.chr 03333330
-.chr 03333330
-.chr 33333333
-.chr 33333333
-.chr 03333330
-.chr 03333330
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 .chr 00000000
 ; tile 111
-.chr 00033000
-.chr 03333330
-.chr 03333330
-.chr 33333333
-.chr 33333333
-.chr 03333330
-.chr 03333330
-.chr 00033000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 ; tile 112
 .chr 00000000
 .chr 00000000
index 7f3b239710d5b5e2accda7b132a1accb4e6831f9..d432b4e06eee353336c5eb9006df8a338af985c5 100644 (file)
@@ -9,24 +9,6 @@
 .chr 00000000
 .chr 00000000
 ; tile 1
-.chr 11111111
-.chr 11111111
-.chr 11111111
-.chr 11111111
-.chr 11111111
-.chr 11111111
-.chr 11111111
-.chr 11111111
-; tile 2
-.chr 22222222
-.chr 22222222
-.chr 22222222
-.chr 22222222
-.chr 22222222
-.chr 22222222
-.chr 22222222
-.chr 22222222
-; tile 3
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
+; tile 2
+.chr 03333333
+.chr 33000000
+.chr 30002222
+.chr 30022222
+.chr 30222222
+.chr 30222222
+.chr 30222222
+.chr 30222222
+; tile 3
+.chr 33333330
+.chr 00000033
+.chr 22220013
+.chr 22222013
+.chr 22222213
+.chr 22222213
+.chr 22222213
+.chr 22222213
 ; tile 4
 .chr 00000000
 .chr 00000000
 ; tile 6
 .chr 00000000
 .chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 00033333
+.chr 00322223
+.chr 03222223
+.chr 32222223
+.chr 32222223
+.chr 32222223
 ; tile 7
 .chr 00000000
 .chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 33333000
+.chr 32222300
+.chr 32222230
+.chr 32222223
+.chr 32222223
+.chr 32222223
 ; tile 8
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 ; tile 18
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 30222222
+.chr 30222222
+.chr 30222222
+.chr 30222222
+.chr 30022222
+.chr 30002222
+.chr 33111111
+.chr 03333333
 ; tile 19
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 22222213
+.chr 22222213
+.chr 22222213
+.chr 22222213
+.chr 22222113
+.chr 22221113
+.chr 11111133
+.chr 33333330
 ; tile 20
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 ; tile 22
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 32222223
+.chr 32222223
+.chr 32222323
+.chr 32222323
+.chr 32222323
+.chr 32222223
+.chr 32222223
+.chr 33333333
 ; tile 23
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 32222223
+.chr 32222223
+.chr 32322223
+.chr 32322223
+.chr 32322223
+.chr 32222223
+.chr 32222223
+.chr 33333333
 ; tile 24
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 ; tile 64
-.chr 03333333
-.chr 33000000
-.chr 30002222
-.chr 30022222
-.chr 30222222
-.chr 30222222
-.chr 30222222
-.chr 30222222
-; tile 65
-.chr 33333330
-.chr 00000033
-.chr 22220013
-.chr 22222013
-.chr 22222213
-.chr 22222213
-.chr 22222213
-.chr 22222213
-; tile 66
 .chr 00000000
-.chr 00033333
-.chr 00322222
-.chr 03322222
-.chr 33222222
-.chr 32333223
-.chr 32333223
-.chr 32333223
-; tile 67
 .chr 00000000
-.chr 33300000
-.chr 11330000
-.chr 21133000
-.chr 22113300
-.chr 33211300
-.chr 33211300
-.chr 33211300
-; tile 68
-.chr 22222222
-.chr 22332211
-.chr 22303111
-.chr 22232222
-.chr 22212322
-.chr 22212322
-.chr 22212221
-.chr 22211233
-; tile 69
-.chr 22222222
-.chr 11223322
-.chr 11130322
-.chr 22223222
-.chr 22321222
-.chr 22321222
-.chr 12221222
-.chr 33211222
-; tile 70
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
+; tile 65
+.chr 00000000
+.chr 00000000
 .chr 00000000
 .chr 00000000
-; tile 71
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
+; tile 66
+.chr 03333333
+.chr 33111111
+.chr 31111111
+.chr 31111111
+.chr 31111111
+.chr 31111111
+.chr 31111111
+.chr 31111111
+; tile 67
+.chr 33333330
+.chr 11111133
+.chr 11111113
+.chr 11111113
+.chr 11111113
+.chr 11111113
+.chr 11111113
+.chr 11111113
+; tile 68
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+; tile 69
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+; tile 70
 .chr 00000000
 .chr 00000000
+.chr 00033333
+.chr 00311113
+.chr 03111113
+.chr 31111113
+.chr 31111113
+.chr 31111113
+; tile 71
 .chr 00000000
 .chr 00000000
+.chr 33333000
+.chr 31111300
+.chr 31111130
+.chr 31111113
+.chr 31111113
+.chr 31111113
 ; tile 72
 .chr 00000000
 .chr 00000000
 .chr 00000000
 ; tile 76
 .chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 00033333
+.chr 00322222
+.chr 03322222
+.chr 33222222
+.chr 32333223
+.chr 32333223
+.chr 32333223
 ; tile 77
 .chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 33300000
+.chr 11330000
+.chr 21133000
+.chr 22113300
+.chr 33211300
+.chr 33211300
+.chr 33211300
 ; tile 78
+.chr 22222222
+.chr 22332211
+.chr 22303111
+.chr 22232222
+.chr 22212322
+.chr 22212322
+.chr 22212221
+.chr 22211233
+; tile 79
+.chr 22222222
+.chr 11223322
+.chr 11130322
+.chr 22223222
+.chr 22321222
+.chr 22321222
+.chr 12221222
+.chr 33211222
+; tile 80
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-; tile 79
+; tile 81
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-; tile 80
-.chr 30222222
-.chr 30222222
-.chr 30222222
-.chr 30222222
-.chr 30022222
-.chr 30002222
+; tile 82
+.chr 31111111
+.chr 31111111
+.chr 31111111
+.chr 31111111
+.chr 31111111
+.chr 31111111
 .chr 33111111
 .chr 03333333
-; tile 81
-.chr 22222213
-.chr 22222213
-.chr 22222213
-.chr 22222213
-.chr 22222113
-.chr 22221113
+; tile 83
+.chr 11111113
+.chr 11111113
+.chr 11111113
+.chr 11111113
+.chr 11111113
+.chr 11111113
 .chr 11111133
 .chr 33333330
-; tile 82
-.chr 32222331
-.chr 32222332
-.chr 32222222
-.chr 33322222
-.chr 00323232
-.chr 00323232
-.chr 00333333
-.chr 00000000
-; tile 83
-.chr 11211300
-.chr 22211300
-.chr 22113300
-.chr 21133000
-.chr 31333000
-.chr 31333000
-.chr 33330000
-.chr 00000000
 ; tile 84
-.chr 22221203
-.chr 22221100
-.chr 22222110
-.chr 22222211
-.chr 22222221
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
 .chr 22222222
 .chr 22222222
 .chr 22222222
 ; tile 85
-.chr 30112222
-.chr 00112222
-.chr 01122222
-.chr 11222222
-.chr 12222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
 .chr 22222222
 .chr 22222222
 .chr 22222222
 ; tile 86
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 31111113
+.chr 31111113
+.chr 31111313
+.chr 31111313
+.chr 31111313
+.chr 31111113
+.chr 31111113
+.chr 33333333
 ; tile 87
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 31111113
+.chr 31111113
+.chr 31311113
+.chr 31311113
+.chr 31311113
+.chr 31111113
+.chr 31111113
+.chr 33333333
 ; tile 88
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 ; tile 92
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 32222331
+.chr 32222332
+.chr 32222222
+.chr 33322222
+.chr 00323232
+.chr 00323232
+.chr 00333333
 .chr 00000000
 ; tile 93
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 11211300
+.chr 22211300
+.chr 22113300
+.chr 21133000
+.chr 31333000
+.chr 31333000
+.chr 33330000
 .chr 00000000
 ; tile 94
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 22221203
+.chr 22221100
+.chr 22222110
+.chr 22222211
+.chr 22222221
+.chr 22222222
+.chr 22222222
+.chr 22222222
 ; tile 95
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 30112222
+.chr 00112222
+.chr 01122222
+.chr 11222222
+.chr 12222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
 ; tile 96
 .chr 00000000
 .chr 00000000