diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-06-10 15:57:42 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-06-10 15:57:42 -0400 |
commit | 0bdf3896b28213f139578c1927945d7184ca6a91 (patch) | |
tree | 0f6bce2ae89e05243c95615e2af3fc2f3772e955 | |
parent | b0e8bae78e0972b13370ff6e31c80f18b67348fc (diff) |
home/talk_to_npc.asm
-rw-r--r-- | home/talk_to_npc.asm | 158 | ||||
-rw-r--r-- | hram.asm | 12 | ||||
-rw-r--r-- | shim.sym | 3 | ||||
-rw-r--r-- | wram.asm | 9 |
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 + @@ -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 @@ -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 @@ -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 |