1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
.INCLUDE "definitions.gbasm"
.INCLUDE "init.gbasm"
Entrypoint:
CALL =Initialize_RNG
New_Dungeon:
LD SP, $fffe
CALL =Dungeon_Generation
CALL =Initialize_Entities
CALL =Initialize_Objects
CALL =Load_Tile
CALL =Load_Map
CALL =Load_Objects
; LCDC
LD A, $87
LD $reg_lcd_controller, A
EI
Wait_for_VRAM.loop:
HALT
JP =Wait_for_VRAM.loop
Text_Astatin:
.DB 0x8a, 0x9c, 0x9d, 0x8a, 0x9d, 0x92, 0x97, 0xff
VBLANK_Entrypoint:
; Window enable
LD A, $reg_lcd_controller
OR $60
AND $fd
LD $reg_lcd_controller, A
LD A, $00
LD $reg_viewport_y, A
LD $reg_viewport_x, A
LD HL, $9c01
LD A, $mem_bunny_health
CALL =Print_8bit
LD A, $68
LD (HL+), A
INC HL
LD BC, =Text_Astatin
CALL =Print_str
CALL =Display_Prepared_Block
CALL =Display_Object
CALL $OAM_DMA_Transfer_routine
LD A, $mem_prepared_viewport_x
LD B, A
LD A, $mem_prepared_viewport_y
LD C, A
LD A, $reg_lcd_controller
AND $9f
OR $02
EI
HALT
RETI
STAT_Entrypoint:
LD $reg_lcd_controller, A
LD A, B
LD $reg_viewport_x, A
LD A, C
LD $reg_viewport_y, A
CALL =Object_Interactions_Check
CALL =Pad_Button_Check
CALL =Entities_Actions
CALL =Update_Animation_Steps
CALL =Prepare_Scrolling_Map
CALL =Display_Entities
RET
.INCLUDE "tiles.gbasm"
.INCLUDE "rng.gbasm"
.INCLUDE "utils.gbasm"
.INCLUDE "buttons.gbasm"
.INCLUDE "map/loading.gbasm"
.INCLUDE "map/generation.gbasm"
.INCLUDE "map/objects.gbasm"
.INCLUDE "entity/utils.gbasm"
.INCLUDE "entity/init.gbasm"
.INCLUDE "entity/bunny.gbasm"
.INCLUDE "entity/actions.gbasm"
.INCLUDE "entity/collisions.gbasm"
.INCLUDE "entity/display.gbasm"
.INCLUDE "tileset.gbasm"
|