summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contents.asm130
-rw-r--r--data/pokemon/egg_moves.asm1
-rw-r--r--data/pokemon/evos_attacks.asm1
-rw-r--r--home.asm8
-rw-r--r--home/delay.asm23
-rw-r--r--home/fade.asm53
-rw-r--r--home/vblank.asm40
-rw-r--r--main.asm1
-rw-r--r--pokegold.link4
-rw-r--r--pokesilver.link4
-rw-r--r--wram.asm1
11 files changed, 77 insertions, 189 deletions
diff --git a/contents.asm b/contents.asm
deleted file mode 100644
index 5d65c938..00000000
--- a/contents.asm
+++ /dev/null
@@ -1,130 +0,0 @@
-; Doubles as bank constants.
-
-; main.o
-
-ROOFS EQU $7
-TILESETS_1 EQU $6
-TILESETS_2 EQU $7
-TILESETS_3 EQU $8
-TILESETS_4 EQU $C
-TILESETS_5 EQU $2D
-TILESETS_6 EQU $37
-TILESETS_7 EQU $77
-TILESETS_8 EQU $78
-
-
-; data/pokemon/egg_moves.o
-
-EGG_MOVES EQU $8
-
-
-; data/pokemon/evos_attacks.o
-
-EVOS_ATTACKS EQU $10
-
-
-; data/pokedex/entries.o
-
-POKEDEX_ENTRIES_1 EQU $60
-POKEDEX_ENTRIES_2 EQU $6E
-POKEDEX_ENTRIES_3 EQU $73
-POKEDEX_ENTRIES_4 EQU $74
-
-
-; engine/events.o
-; engine/scripting.o
-; engine/events_2.o
-EVENTS EQU $25
-
-
-; engine/credits.o
-
-CREDITS EQU $42
-
-
-; gfx/pics.o
-
-PIC_POINTERS EQU $48
-UNOWN_PIC_POINTERS EQU $49
-TRAINER_PIC_POINTERS EQU $4A
-
-PICS_FIX EQU $36
-
-PICS_1 EQU $48
-PICS_2 EQU $49
-PICS_3 EQU $4A
-PICS_4 EQU $4B
-PICS_5 EQU $4C
-PICS_6 EQU $4D
-PICS_7 EQU $4E
-PICS_8 EQU $4F
-PICS_9 EQU $50
-PICS_10 EQU $51
-PICS_11 EQU $52
-PICS_12 EQU $53
-PICS_13 EQU $54
-PICS_14 EQU $55
-PICS_15 EQU $56
-PICS_16 EQU $57
-PICS_17 EQU $58
-PICS_18 EQU $59
-PICS_19 EQU $5A
-
-
-; maps.o
-
-MAP_HEADERS EQU $25
-
-MAPS_1 EQU $2A
-MAPS_2 EQU $2B
-MAPS_3 EQU $2C
-
-MAP_SCRIPTS_1 EQU $15
-MAP_SCRIPTS_2 EQU $16
-MAP_SCRIPTS_3 EQU $17
-MAP_SCRIPTS_4 EQU $18
-MAP_SCRIPTS_5 EQU $1A
-MAP_SCRIPTS_6 EQU $1B
-MAP_SCRIPTS_7 EQU $1C
-MAP_SCRIPTS_8 EQU $1D
-MAP_SCRIPTS_9 EQU $1E
-MAP_SCRIPTS_10 EQU $1F
-MAP_SCRIPTS_11 EQU $26
-MAP_SCRIPTS_12 EQU $27
-MAP_SCRIPTS_13 EQU $60
-MAP_SCRIPTS_14 EQU $61
-MAP_SCRIPTS_15 EQU $62
-MAP_SCRIPTS_16 EQU $63
-MAP_SCRIPTS_17 EQU $64
-MAP_SCRIPTS_18 EQU $65
-MAP_SCRIPTS_19 EQU $66
-MAP_SCRIPTS_20 EQU $67
-MAP_SCRIPTS_21 EQU $68
-MAP_SCRIPTS_22 EQU $69
-MAP_SCRIPTS_23 EQU $6A
-MAP_SCRIPTS_24 EQU $6B
-MAP_SCRIPTS_25 EQU $6C
-
-
-; audio.o
-
-AUDIO EQU $3A
-
-SONGS_1 EQU $3A
-SONGS_2 EQU $3B
-SONGS_3 EQU $3C
-SONGS_4 EQU $3D
-SONGS_5 EQU $5E
-
-EXTRA_SONGS_1 EQU $7
-EXTRA_SONGS_2 EQU $33
-
-SOUND_EFFECTS EQU $3C
-CRYSTAL_SOUND_EFFECTS EQU $5E
-
-CRIES EQU $3C
-
-
-; misc.o
-
-MISC_CRYSTAL EQU $5E
diff --git a/data/pokemon/egg_moves.asm b/data/pokemon/egg_moves.asm
index 3e353ba4..a31a6d23 100644
--- a/data/pokemon/egg_moves.asm
+++ b/data/pokemon/egg_moves.asm
@@ -1,4 +1,3 @@
-INCLUDE "contents.asm"
INCLUDE "constants.asm"
SECTION "Egg Moves", ROMX, BANK[EGG_MOVES]
diff --git a/data/pokemon/evos_attacks.asm b/data/pokemon/evos_attacks.asm
index 8fc93897..dcacee0d 100644
--- a/data/pokemon/evos_attacks.asm
+++ b/data/pokemon/evos_attacks.asm
@@ -1,4 +1,3 @@
-INCLUDE "contents.asm"
INCLUDE "constants.asm"
SECTION "Evolutions and Attacks", ROMX, BANK[EVOS_ATTACKS]
diff --git a/home.asm b/home.asm
index 54187c1d..a779589e 100644
--- a/home.asm
+++ b/home.asm
@@ -1,16 +1,18 @@
-INCLUDE "contents.asm"
INCLUDE "constants.asm"
; rst vectors
INCLUDE "home/rst.asm"
INCLUDE "home/interrupts.asm"
-SECTION "start", ROM0
+SECTION "Header", ROM0
+
Start::
nop
jp _Start
-SECTION "bank0", ROM0
+
+SECTION "Home", ROM0
+
INCLUDE "home/vblank.asm"
INCLUDE "home/delay.asm"
INCLUDE "home/rtc.asm"
diff --git a/home/delay.asm b/home/delay.asm
index b9b7ac1f..4ad25ef2 100644
--- a/home/delay.asm
+++ b/home/delay.asm
@@ -1,16 +1,19 @@
-DelayFrame:: ; 32e
- ld a, $1
- ld [$ceea], a
-.asm_333
- halt
- ld a, [$ceea]
+DelayFrame::
+; Wait for one frame
+ ld a, 1
+ ld [wVBlankOccurred], a
+
+; Wait for the next VBlank, halting to conserve battery
+.halt
+ halt ; rgbasm adds a nop after this instruction by default
+ ld a, [wVBlankOccurred]
and a
- jr nz, .asm_333
+ jr nz, .halt
ret
-DelayFrames:: ; 33c
-.loop
+DelayFrames::
+; Wait c frames
call DelayFrame
dec c
- jr nz, .loop
+ jr nz, DelayFrames
ret
diff --git a/home/fade.asm b/home/fade.asm
index 3d0afdce..f5851099 100644
--- a/home/fade.asm
+++ b/home/fade.asm
@@ -1,5 +1,6 @@
-Function360:: ; 360 (0:0360)
-; XXX
+; Functions to fade the screen in and out.
+
+Unreferenced_Function48c::
; TimeOfDayFade
ld a, [wTimeOfDayPal]
ld b, a
@@ -9,6 +10,7 @@ Function360:: ; 360 (0:0360)
ld l, a
jr nc, .okay
dec h
+
.okay
ld a, [hli]
ldh [rBGP], a
@@ -42,8 +44,10 @@ RotateThreePalettesRight::
.dmg
ld hl, IncGradGBPalTable_13
ld b, 3
+
RotatePalettesRight::
-.loop
+; Rotate palettes to the right and fill with loaded colors from the left
+; If we're already at the leftmost color, fill with the leftmost color
push de
ld a, [hli]
call DmgToCgbBGPals
@@ -56,7 +60,7 @@ RotatePalettesRight::
call DelayFrames
pop de
dec b
- jr nz, .loop
+ jr nz, RotatePalettesRight
ret
RotateFourPalettesLeft::
@@ -79,11 +83,14 @@ RotateThreePalettesLeft::
ld hl, IncGradGBPalTable_07 - 1
ld b, 3
jr RotatePalettesLeft
+
.dmg
ld hl, IncGradGBPalTable_15 - 1
ld b, 3
+
RotatePalettesLeft::
-.loop
+; Rotate palettes to the left and fill with loaded colors from the right
+; If we're already at the rightmost color, fill with the rightmost color
push de
ld a, [hld]
ld d, a
@@ -96,27 +103,27 @@ RotatePalettesLeft::
call DelayFrames
pop de
dec b
- jr nz, .loop
+ jr nz, RotatePalettesLeft
ret
-IncGradGBPalTable_00:: db %11111111, %11111111, %11111111
-IncGradGBPalTable_01:: db %11111110, %11111110, %11111110
-IncGradGBPalTable_02:: db %11111001, %11111001, %11111001
-IncGradGBPalTable_03:: db %11100100, %11100100, %11100100
+IncGradGBPalTable_00:: dc 3,3,3,3, 3,3,3,3, 3,3,3,3
+IncGradGBPalTable_01:: dc 3,3,3,2, 3,3,3,2, 3,3,3,2
+IncGradGBPalTable_02:: dc 3,3,2,1, 3,3,2,1, 3,3,2,1
+IncGradGBPalTable_03:: dc 3,2,1,0, 3,2,1,0, 3,2,1,0
-IncGradGBPalTable_04:: db %11100100, %11100100, %11100100
-IncGradGBPalTable_05:: db %10010000, %10010000, %10010000
-IncGradGBPalTable_06:: db %01000000, %01000000, %01000000
+IncGradGBPalTable_04:: dc 3,2,1,0, 3,2,1,0, 3,2,1,0
+IncGradGBPalTable_05:: dc 2,1,0,0, 2,1,0,0, 2,1,0,0
+IncGradGBPalTable_06:: dc 1,0,0,0, 1,0,0,0, 1,0,0,0
-IncGradGBPalTable_07:: db %00000000, %00000000, %00000000
-; bgp obp1 obp2
-IncGradGBPalTable_08:: db %11111111, %11111111, %11111111
-IncGradGBPalTable_09:: db %11111110, %11111110, %11111000
-IncGradGBPalTable_10:: db %11111001, %11100100, %11100100
-IncGradGBPalTable_11:: db %11100100, %11010000, %11100000
+IncGradGBPalTable_07:: dc 0,0,0,0, 0,0,0,0, 0,0,0,0
+; bgp obp1 obp2
+IncGradGBPalTable_08:: dc 3,3,3,3, 3,3,3,3, 3,3,3,3
+IncGradGBPalTable_09:: dc 3,3,3,2, 3,3,3,2, 3,3,2,0
+IncGradGBPalTable_10:: dc 3,3,2,1, 3,2,1,0, 3,2,1,0
+IncGradGBPalTable_11:: dc 3,2,1,0, 3,1,0,0, 3,2,0,0
-IncGradGBPalTable_12:: db %11100100, %11010000, %11100000
-IncGradGBPalTable_13:: db %10010000, %10000000, %10010000
-IncGradGBPalTable_14:: db %01000000, %01000000, %01000000
+IncGradGBPalTable_12:: dc 3,2,1,0, 3,1,0,0, 3,2,0,0
+IncGradGBPalTable_13:: dc 2,1,0,0, 2,0,0,0, 2,1,0,0
+IncGradGBPalTable_14:: dc 1,0,0,0, 1,0,0,0, 1,0,0,0
-IncGradGBPalTable_15:: db %00000000, %00000000, %00000000
+IncGradGBPalTable_15:: dc 0,0,0,0, 0,0,0,0, 0,0,0,0 \ No newline at end of file
diff --git a/home/vblank.asm b/home/vblank.asm
index 9c360586..04726475 100644
--- a/home/vblank.asm
+++ b/home/vblank.asm
@@ -1,30 +1,37 @@
+; VBlank is the interrupt responsible for updating VRAM.
+
VBlank::
push af
push bc
push de
push hl
+
ldh a, [hVBlank]
- and $7
+ and 7
+
ld e, a
- ld d, $0
- ld hl, .blanks
+ ld d, 0
+ ld hl, .VBlanks
add hl, de
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
+
ld de, .return
push de
jp hl
-.return
+
+.return:
call GameTimer
+
pop hl
pop de
pop bc
pop af
reti
-.blanks
+.VBlanks:
dw VBlank0
dw VBlank1
dw VBlank2
@@ -33,9 +40,9 @@ VBlank::
dw VBlank5
dw VBlank0
dw VBlank0 ; just in case
-;180
-VBlank0:: ; 180
+
+VBlank0::
; normal operation
; rng
@@ -102,10 +109,8 @@ VBlank0:: ; 180
call hTransferVirtualOAM
.done_oam
-
; vblank-sensitive operations are done
-
xor a
ld [wVBlankOccurred], a
@@ -124,16 +129,19 @@ VBlank0:: ; 180
.ok2
call Joypad
+
ld a, BANK(_UpdateSound)
rst Bankswitch
call _UpdateSound
ld a, [wROMBankBackup]
rst Bankswitch
+
ldh a, [hSeconds]
ldh [hSecondsBackup], a
+
ret
-VBlank1:: ; 1f4
+VBlank1::
; scx, scy
; palettes
; bg map
@@ -191,8 +199,9 @@ VBlank1:: ; 1f4
ldh [rIE], a
ret
-UpdatePals:: ; 23e
+UpdatePals::
; update pals for either dmg or cgb
+
ldh a, [hCGB]
and a
jp nz, UpdateCGBPals
@@ -204,10 +213,11 @@ UpdatePals:: ; 23e
ldh [rOBP0], a
ld a, [wOPB1]
ldh [rOBP1], a
+
and a
ret
-VBlank4:: ; 255
+VBlank4::
; bg map
; tiles
; oam
@@ -238,7 +248,7 @@ VBlank4:: ; 255
rst Bankswitch
ret
-VBlank5:: ; 278
+VBlank5::
; scx
; palettes
; bg map
@@ -285,7 +295,7 @@ VBlank5:: ; 278
ldh [rIE], a
ret
-VBlank2:: ; 2b0
+VBlank2::
; sound only
ldh a, [hROMBank]
@@ -302,7 +312,7 @@ VBlank2:: ; 2b0
ld [wVBlankOccurred], a
ret
-VBlank3:: ; 2c4
+VBlank3::
; scx, scy
; palettes
; bg map
diff --git a/main.asm b/main.asm
index 2bdf0be8..629115f5 100644
--- a/main.asm
+++ b/main.asm
@@ -1,4 +1,3 @@
-INCLUDE "contents.asm"
INCLUDE "constants.asm"
diff --git a/pokegold.link b/pokegold.link
index 0ce9ca26..cb686478 100644
--- a/pokegold.link
+++ b/pokegold.link
@@ -24,9 +24,9 @@ ROM0
org $0060
"joypad"
org $0100
- "start"
+ "Header"
org $0150
- "bank0"
+ "Home"
ROMX $01
org $4000
"bank1"
diff --git a/pokesilver.link b/pokesilver.link
index 0ce9ca26..cb686478 100644
--- a/pokesilver.link
+++ b/pokesilver.link
@@ -24,9 +24,9 @@ ROM0
org $0060
"joypad"
org $0100
- "start"
+ "Header"
org $0150
- "bank0"
+ "Home"
ROMX $01
org $4000
"bank1"
diff --git a/wram.asm b/wram.asm
index 685331ee..20e3f729 100644
--- a/wram.asm
+++ b/wram.asm
@@ -1,4 +1,3 @@
-INCLUDE "contents.asm"
INCLUDE "constants.asm"
INCLUDE "macros/wram.asm"