<data encoding="csv">
1,1,1,1,1,1,6,6,5,5,5,5,6,6,1,1,1,1,1,1,
1,1,1,1,1,1,6,6,5,5,5,5,6,6,1,1,1,1,1,1,
-1,1,18,18,5,5,6,6,3,3,3,3,6,6,1,18,18,1,1,1,
-1,1,18,18,5,5,6,6,3,5,5,3,6,6,1,18,18,1,1,1,
-1,1,3,3,5,5,6,6,3,6,6,3,6,6,1,3,3,3,1,1,
-1,19,3,1,5,5,6,6,3,6,6,3,6,6,1,1,1,3,19,1,
-1,17,3,1,1,1,5,5,3,6,6,3,5,5,1,1,1,3,17,1,
-1,17,3,1,1,1,1,1,3,6,6,3,1,1,1,1,1,3,17,1,
+1,1,18,18,1,5,6,6,3,3,3,3,6,6,5,1,82,82,1,1,
+1,1,18,18,1,5,6,6,3,5,5,3,6,6,5,1,82,82,1,1,
+1,1,3,3,5,5,6,6,3,6,6,3,6,6,5,5,3,3,1,1,
+1,19,3,1,5,5,6,6,3,6,6,3,6,6,5,5,1,3,83,1,
+1,17,3,1,1,1,5,5,3,6,6,3,5,5,1,1,1,3,81,1,
+1,17,3,1,1,1,1,50,3,6,6,3,50,1,1,1,1,3,81,1,
1,1,3,3,3,3,3,3,3,6,6,3,3,3,3,3,3,3,1,1,
-1,1,1,1,1,1,1,1,5,6,6,5,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,5,6,6,5,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,5,6,6,5,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,5,6,6,5,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,5,6,6,5,1,1,1,1,1,1,1,1
+1,1,1,1,1,3,5,5,5,6,6,5,5,5,3,1,1,1,1,1,
+1,1,1,5,5,3,5,5,5,6,6,5,5,5,3,5,5,1,1,1,
+1,1,1,5,5,3,6,6,6,6,6,6,6,6,3,5,5,1,1,1,
+1,1,1,5,5,3,3,3,3,3,3,3,3,3,3,5,5,1,1,1,
+1,1,1,5,5,5,5,5,5,6,6,5,5,5,5,5,5,1,1,1
</data>
</layer>
</map>
version https://git-lfs.github.com/spec/v1
-oid sha256:29df075359f0c564c70247b755e556fefd22b62f26c8a98b56059bbde550ae06
-size 680
+oid sha256:016bfd5e67f83dba887b1a8c8345d81225d64b46110cdd72f2274b260994a4e3
+size 852
version https://git-lfs.github.com/spec/v1
-oid sha256:29df075359f0c564c70247b755e556fefd22b62f26c8a98b56059bbde550ae06
-size 680
+oid sha256:016bfd5e67f83dba887b1a8c8345d81225d64b46110cdd72f2274b260994a4e3
+size 852
.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x5, 0x4, 0x4, 0x4, 0x4, 0x5, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x5, 0x4, 0x4, 0x4, 0x4, 0x5, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
-.db 0x0, 0x0, 0x11, 0x11, 0x4, 0x4, 0x5, 0x5, 0x2, 0x2, 0x2, 0x2, 0x5, 0x5, 0x0, 0x11, 0x11, 0x0, 0x0, 0x0
-.db 0x0, 0x0, 0x11, 0x11, 0x4, 0x4, 0x5, 0x5, 0x2, 0x4, 0x4, 0x2, 0x5, 0x5, 0x0, 0x11, 0x11, 0x0, 0x0, 0x0
-.db 0x0, 0x0, 0x2, 0x2, 0x4, 0x4, 0x5, 0x5, 0x2, 0x5, 0x5, 0x2, 0x5, 0x5, 0x0, 0x2, 0x2, 0x2, 0x0, 0x0
-.db 0x0, 0x12, 0x2, 0x0, 0x4, 0x4, 0x5, 0x5, 0x2, 0x5, 0x5, 0x2, 0x5, 0x5, 0x0, 0x0, 0x0, 0x2, 0x12, 0x0
-.db 0x0, 0x10, 0x2, 0x0, 0x0, 0x0, 0x4, 0x4, 0x2, 0x5, 0x5, 0x2, 0x4, 0x4, 0x0, 0x0, 0x0, 0x2, 0x10, 0x0
-.db 0x0, 0x10, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x5, 0x5, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x10, 0x0
+.db 0x0, 0x0, 0x11, 0x11, 0x0, 0x4, 0x5, 0x5, 0x2, 0x2, 0x2, 0x2, 0x5, 0x5, 0x4, 0x0, 0x51, 0x51, 0x0, 0x0
+.db 0x0, 0x0, 0x11, 0x11, 0x0, 0x4, 0x5, 0x5, 0x2, 0x4, 0x4, 0x2, 0x5, 0x5, 0x4, 0x0, 0x51, 0x51, 0x0, 0x0
+.db 0x0, 0x0, 0x2, 0x2, 0x4, 0x4, 0x5, 0x5, 0x2, 0x5, 0x5, 0x2, 0x5, 0x5, 0x4, 0x4, 0x2, 0x2, 0x0, 0x0
+.db 0x0, 0x12, 0x2, 0x0, 0x4, 0x4, 0x5, 0x5, 0x2, 0x5, 0x5, 0x2, 0x5, 0x5, 0x4, 0x4, 0x0, 0x2, 0x52, 0x0
+.db 0x0, 0x10, 0x2, 0x0, 0x0, 0x0, 0x4, 0x4, 0x2, 0x5, 0x5, 0x2, 0x4, 0x4, 0x0, 0x0, 0x0, 0x2, 0x50, 0x0
+.db 0x0, 0x10, 0x2, 0x0, 0x0, 0x0, 0x0, 0x31, 0x2, 0x5, 0x5, 0x2, 0x31, 0x0, 0x0, 0x0, 0x0, 0x2, 0x50, 0x0
.db 0x0, 0x0, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x5, 0x5, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x0, 0x0
-.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x5, 0x5, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
-.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x5, 0x5, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
-.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x5, 0x5, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
-.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x5, 0x5, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
-.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x5, 0x5, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x4, 0x4, 0x4, 0x5, 0x5, 0x4, 0x4, 0x4, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x4, 0x4, 0x2, 0x4, 0x4, 0x4, 0x5, 0x5, 0x4, 0x4, 0x4, 0x2, 0x4, 0x4, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x4, 0x4, 0x2, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5, 0x2, 0x4, 0x4, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x4, 0x4, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x4, 0x4, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x5, 0x5, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x0, 0x0, 0x0
.chr 00330000
; tile 4
.chr 00000000
-.chr 03330000
-.chr 03330000
-.chr 03330333
-.chr 00100333
-.chr 00100333
-.chr 00000010
-.chr 00000010
+.chr 01110000
+.chr 01110000
+.chr 01110111
+.chr 00200111
+.chr 00200111
+.chr 00000020
+.chr 00000020
; tile 5
.chr 00003000
.chr 00033000
.chr 00000000
; tile 48
.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 00300000
+.chr 00300000
+.chr 03333330
+.chr 03000030
+.chr 03033030
+.chr 03333330
.chr 00000000
; tile 49
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 00000333
+.chr 00333323
+.chr 00302303
+.chr 33330323
+.chr 32032303
+.chr 30230323
+.chr 32032303
+.chr 30030303
; tile 50
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 00033000
+.chr 00033000
+.chr 00333300
+.chr 00300300
+.chr 03333330
+.chr 03000030
+.chr 03000030
+.chr 03333330
; tile 51
.chr 00000000
.chr 00000000
.chr 00000000
; tile 80
.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 00300000
+.chr 00300000
+.chr 03333330
+.chr 03222230
+.chr 03233230
+.chr 03333330
.chr 00000000
; tile 81
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 00000333
+.chr 00333313
+.chr 00321323
+.chr 33332313
+.chr 31231323
+.chr 32132313
+.chr 31231323
+.chr 32232323
; tile 82
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 00033000
+.chr 00033000
+.chr 00333300
+.chr 00322300
+.chr 03333330
+.chr 03222230
+.chr 03222230
+.chr 03333330
; tile 83
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
; tile 125
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 33333333
+.chr 11111111
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
; tile 126
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
; tile 127
.chr 33333333
.chr 32333333
.chr 00330000
; tile 4
.chr 00000000
-.chr 03330000
-.chr 03330000
-.chr 03330333
-.chr 00100333
-.chr 00100333
-.chr 00000010
-.chr 00000010
+.chr 01110000
+.chr 01110000
+.chr 01110111
+.chr 00200111
+.chr 00200111
+.chr 00000020
+.chr 00000020
; tile 5
.chr 00003000
.chr 00033000
.chr 00000000
; tile 48
.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 00300000
+.chr 00300000
+.chr 03333330
+.chr 03000030
+.chr 03033030
+.chr 03333330
.chr 00000000
; tile 49
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 00000333
+.chr 00333323
+.chr 00302303
+.chr 33330323
+.chr 32032303
+.chr 30230323
+.chr 32032303
+.chr 30030303
; tile 50
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 00033000
+.chr 00033000
+.chr 00333300
+.chr 00300300
+.chr 03333330
+.chr 03000030
+.chr 03000030
+.chr 03333330
; tile 51
.chr 00000000
.chr 00000000
.chr 00000000
; tile 80
.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 00300000
+.chr 00300000
+.chr 03333330
+.chr 03222230
+.chr 03233230
+.chr 03333330
.chr 00000000
; tile 81
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 00000333
+.chr 00333313
+.chr 00321323
+.chr 33332313
+.chr 31231323
+.chr 32132313
+.chr 31231323
+.chr 32232323
; tile 82
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 00033000
+.chr 00033000
+.chr 00333300
+.chr 00322300
+.chr 03333330
+.chr 03222230
+.chr 03222230
+.chr 03333330
; tile 83
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
; tile 125
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 33333333
+.chr 11111111
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
; tile 126
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
; tile 127
.chr 33333333
.chr 32333333
; lo -= b
ld a, [hl]
+ cp a, 0
+ ret z
+
sub a, b
ld [hl+], a
; lo += b
ld a, [hl]
+ cp a, TILE_SIZE * (MAP_H - 1)
+ ret z
+
add a, b
ld [hl+], a
; lo -= b
ld a, [hl]
+ cp a, 0
+ ret z
+
sub a, b
ld [hl+], a
; lo += b
ld a, [hl]
+ cp a, TILE_SIZE * (MAP_W - 1)
+ ret z
+
add a, b
ld [hl+], a
+#define TILE_SIZE 8
+
#define MAP_H 14
#define MAP_W 20
--- /dev/null
+#define UI_TILE_BG_TOP 0x7D
+#define UI_TILE_BG 0x7E
+
+ ; tile to start at
+#define UI_DRAW_START SCRN0+32*14
+
+#define UI_W 20
+#define UI_H 4
#include "d_actor.s"
#include "d_player.s"
#include "d_tiles.s"
+#include "d_ui.s"
.def int OAMDMAFN = 0xFF80
call map_init
call player_init
+ call ui_init
call lcd_on
call vblank_wait
#include "map.s"
#include "actor.s"
#include "player.s"
+#include "ui.s"
--- /dev/null
+ ; inits the UI
+ ; clears UI area with empty UI tiles
+ ; only call when rendering is disabled
+ui_init:
+ ld hl, UI_DRAW_START
+
+ ld a, UI_TILE_BG_TOP
+ call ui_draw_row
+
+ ld a, UI_TILE_BG
+ call ui_draw_row
+ call ui_draw_row
+ call ui_draw_row
+
+
+ ret
+
+ ; draws UI row
+ ; inputs:
+ ; hl: scrn
+ ; a: tile
+ ; returns:
+ ; hl: next scrn address of new row
+ui_draw_row:
+ ld b, UI_W
+@loop:
+ ld [hl+], a
+ dec b
+ jr nz, @loop REL
+
+ ld de, 12
+ add hl, de
+ ret