summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--home/talk_to_npc.asm158
-rw-r--r--hram.asm12
-rw-r--r--shim.sym3
-rw-r--r--wram.asm9
4 files changed, 180 insertions, 2 deletions
diff --git a/home/talk_to_npc.asm b/home/talk_to_npc.asm
new file mode 100644
index 0000000..924c723
--- /dev/null
+++ b/home/talk_to_npc.asm
@@ -0,0 +1,158 @@
+include "constants.asm"
+
+if DEBUG
+SECTION "Unknown 3025", ROM0 [$3025]
+else
+SECTION "Unknown 3025", ROM0 [$2fe9]
+endc
+
+Function3025::
+ ld hl, .Text
+ call Function3111
+ ret
+
+.Text: ; 00:302c
+ text "ゲームフりーク!"
+ done
+
+Function3036:: ; 3036
+ ld hl, .Text
+ ret
+
+.Text: ; 00:303a
+ db "@"
+
+Function303b::
+ ld a, [wcdb0]
+ bit 0, a
+ jr z, asm_3062
+ call Function3055
+ ret z
+ ld hl, hUnknownFFF3
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, .Return
+ push de
+ jp hl
+
+.Return: ; 00:3051
+ call Function307a
+ ret
+
+Function3055:: ; 00:3055
+ ldh a, [hFFEA]
+ ld b, a
+.asm_3058: ; 00:3058
+ ld a, [hli]
+ cp $ff
+ ret z
+ cp b
+ jp z, Function3240
+ jr .asm_3058
+
+asm_3062: ; 00:3062
+ ld a, [wcdb0]
+ bit 1, a
+ ret z
+ ld h, d
+ ld l, e
+ ldh a, [hFFEE]
+ dec a
+ ld d, $0
+ ld e, a
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, Function307a
+ push de
+ jp hl
+
+Function307a:: ; 00:307a
+ ld hl, wcdb0
+ res 0, [hl]
+ res 1, [hl]
+ call Function3240
+ ret
+
+Function3085:: ; 00:3085
+ push hl
+ push de
+ push bc
+ ld de, $99
+ ld a, [wcdb0]
+ bit 0, a
+ jr z, .asm_3097
+ ld de, hFFEA
+ jr .asm_309e
+
+.asm_3097: ; 00:3097
+ bit 1, a
+ jr z, .asm_309e
+ ld de, hFFEE
+.asm_309e: ; 00:309e
+ hlcoord 4, 12
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+ call PrintNumber
+ ld de, wMapScriptNumber
+ hlcoord 1, 12
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+ call PrintNumber
+ pop bc
+ pop de
+ pop hl
+ ret
+
+Function30b7::
+ ldh a, [hJoyState]
+ bit A_BUTTON_F, a
+ jp z, Function323e
+ call Function3103
+ jp nc, Function30e8
+ ld d, $0
+ ld e, a
+ ld a, [wce63]
+ bit 1, a
+ call nz, Function3085
+ ld hl, wd668
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ add hl, de
+ ld de, hUnknownFFF3
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ ld hl, wcdb0
+ set 0, [hl]
+ call Function3240
+ ret
+
+Function30e8:: ; 00:30e8
+ call Function2f1d
+ jp nc, Function323e
+ ld a, e
+ ldh [hFFEB], a
+ ld a, d
+ ldh [hFFEC], a
+ ld a, b
+ ldh [hFFED], a
+ ld a, [hl]
+ ldh [hFFEE], a
+ ld hl, wcdb0
+ set 1, [hl]
+ call Function3240
+ ret
+
+Function3103:: ; 00:3103
+ callba Function776e
+ ret nc
+ call Function319b
+ scf
+ ret
+
diff --git a/hram.asm b/hram.asm
index 0e26198..da17237 100644
--- a/hram.asm
+++ b/hram.asm
@@ -217,7 +217,15 @@ hMapAnims:: ; ffe8
hTileAnimFrame:: ; ffe9
db
- ds 5 ; TODO
+hFFEA:: ; ffea
+ db
+
+hFFEB:: db
+hFFEC:: db
+hFFED:: db
+
+hFFEE:: ; ffee
+ db
hRandomAdd:: db ; ffef
hRandomSub:: db ; fff0
@@ -225,4 +233,6 @@ hRTCRandom:: db ; fff1
hBattleTurn:: db ; fff2
+hUnknownFFF3:: dw ; fff3
+
; TODO
diff --git a/shim.sym b/shim.sym
index 453fe55..ef3e447 100644
--- a/shim.sym
+++ b/shim.sym
@@ -2,8 +2,10 @@
00:1A7C Function1a7c
00:202C Function202c
00:2C05 StartMenuCheck
+00:2F1D Function2f1d
00:3111 Function3111
00:3171 Function3171
+00:319B Function319b
00:3233 Function3233
00:323E Function323e
00:3240 Function3240
@@ -39,6 +41,7 @@
01:6445 Function6445
01:66B1 Function66b1
01:6713 Function6713
+01:776E Function776e
02:4000 Function8000
02:4098 _InitializeVisibleSprites
diff --git a/wram.asm b/wram.asm
index 3c5681f..44aa1f2 100644
--- a/wram.asm
+++ b/wram.asm
@@ -75,6 +75,8 @@ wVirtualOAM:: ; c200
ds SPRITEOAMSTRUCT_LENGTH * NUM_SPRITE_OAM_STRUCTS
wVirtualOAMEnd::
+SECTION "Tile map", WRAM0 [$C2A0]
+
wTileMap:: ; c2a0
ds SCREEN_HEIGHT * SCREEN_WIDTH
@@ -417,6 +419,10 @@ SECTION "CD7D", WRAM0[$CD7D]
wItemQuantity:: db ; cd7d
wItemQuantityBuffer:: db ; cd7e
+
+SECTION "CDB0", WRAM0 [$CDB0]
+wcdb0:: ; bit 0 = has engaged NPC in dialogue (?)
+ db
SECTION "CDBA", WRAM0[$CDBA]
@@ -734,7 +740,8 @@ wMapWidth:: ; d665
db
wMapBlocksPointer:: ; d666
dw
- ds 2 ; TODO
+wd668::
+ dw
wMapScriptPtr:: ; d66a
dw
wMapObjectsPtr:: ; d66c