diff options
author | Zumi <13794376+ZoomTen@users.noreply.github.com> | 2021-05-09 00:15:39 +0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-08 13:15:39 -0400 |
commit | f17cbee7a98c2f81d14ed26707157bddbcfce755 (patch) | |
tree | 8bbd0cb9ae08087548f92a74238cc724f8da9de9 /engine | |
parent | 2709ce5259a26719c1ef3c4288f2fa2dd5d3af85 (diff) |
Dump banks $09 and $0B (#93)
Diffstat (limited to 'engine')
-rw-r--r-- | engine/dumps/bank09.asm | 2003 | ||||
-rw-r--r-- | engine/dumps/bank0b.asm | 476 |
2 files changed, 2479 insertions, 0 deletions
diff --git a/engine/dumps/bank09.asm b/engine/dumps/bank09.asm new file mode 100644 index 0000000..39d902e --- /dev/null +++ b/engine/dumps/bank09.asm @@ -0,0 +1,2003 @@ +INCLUDE "constants.asm" + +SECTION "engine/dumps/bank09.asm@Function24000", ROMX + +Function24000: + xor a + call OpenSRAM + ld hl, wWindowStackPointer + ld e, [hl] + inc hl + ld d, [hl] + push de + ld b, $10 + ld hl, wMenuDataHeader +.asm_24010 + ld a, [hli] + ld [de], a + dec de + dec b + jr nz, .asm_24010 + ld a, [wMenuDataHeader] + bit 6, a + jr nz, .asm_24028 + bit 7, a + jr z, .asm_2404e + push de + call asm_240b3 + pop de + jr nc, .asm_2404e +.asm_24028 + ld hl, wWindowStackPointer + ld a, [hli] + ld h, [hl] + ld l, a + set 0, [hl] + call MenuBoxCoord2Tile + call GetMenuBoxDims + inc b + inc c + call Function2406d + +.asm_2403b + push bc + push hl +.asm_2403d + ld a, [hli] + ld [de], a + dec de + dec c + jr nz, .asm_2403d + pop hl + ld bc, SCREEN_WIDTH + add hl, bc + pop bc + dec b + jr nz, .asm_2403b + jr .asm_24055 + +.asm_2404e + pop hl + push hl + ld a, [hld] + ld l, [hl] + ld h, a + res 0, [hl] + +.asm_24055 + pop hl + call Function2406d + ld a, h + ld [de], a + dec de + ld a, l + ld [de], a + dec de + ld hl, wWindowStackPointer + ld [hl], e + inc hl + ld [hl], d + call CloseSRAM + ld hl, wWindowStackSize + inc [hl] + ret + +Function2406d: + push bc + push de + push hl + xor a + ld l, c + ld h, $00 + ld c, b + ld b, $00 + ld a, $14 + call AddNTimes + ld a, h + cpl + ld h, a + ld a, l + cpl + ld l, a + inc hl + add hl, de + ld a, e + sub $00 + ld a, d + sbc $b8 + jr c, Function24090 + pop hl + pop de + pop bc + ret + +Function24090: + ld hl, .text_2409c + call PrintText + call WaitBGMap +.asm_24099 + nop + jr .asm_24099 + +.text_2409c: + text "ウィンドウセーブエりアが" + next "オーバーしました" + done + +asm_240b3: + ld hl, wWindowStackPointer + ld a, [hli] + ld h, [hl] + ld l, a +asm_240b9: + inc hl + ld a, [hli] + ld h, [hl] + ld l, a + or h + jr z, asm_240d0 + push hl + dec hl + ld b, [hl] + dec hl + ld c, [hl] + dec hl + ld d, [hl] + dec hl + ld e, [hl] + call asm_240f2 + pop hl + ret c + jr asm_240b9 +asm_240d0: + ld hl, wMenuBorderTopCoord + ld b, [hl] + inc hl + ld c, [hl] + inc hl + ld d, [hl] + inc hl + ld e, [hl] + inc hl + ld hl, wWindowStackPointer + ld a, [hli] + ld h, [hl] + ld l, a +asm_240e1: + inc hl + ld a, [hli] + ld h, [hl] + ld l, a + or h + ret z + push hl + ld a, [hld] + ld l, [hl] + ld h, a + call asm_24116 + pop hl + ret c + jr asm_240e1 +asm_240f2: + ld a, [wMenuBorderTopCoord] + ld h, a + ld a, [wMenuBorderLeftCoord] + ld l, a + call asm_24116 + ret c + ld a, [wMenuBorderBottomCoord] + ld h, a + call asm_24116 + ret c + ld a, [wMenuBorderRightCoord] + ld l, a + call asm_24116 + ret c + ld a, [wMenuBorderTopCoord] + ld h, a + call asm_24116 + ret + +asm_24116: + ld a, h + cp b + jr c, asm_2412a + cp d + jr c, asm_2411f + jr nz, asm_2412a +asm_2411f: + ld a, l + cp c + jr c, asm_2412a + cp e + jr c, asm_24128 + jr nz, asm_2412a +asm_24128: + scf + ret + +asm_2412a: + and a + ret + +_ExitMenu:: + xor a + ldh [hBGMapMode], a + xor a + call OpenSRAM + call GetWindowStackTop + ld a, l + or h + jp z, Function24164 + ld a, l + ld [wWindowStackPointer], a + ld a, h + ld [wWindowStackPointer + 1], a + call PopWindow + ld a, [wMenuDataHeader] + bit 0, a + jr z, asm_24152 + ld d, h + ld e, l + call RestoreTileBackup +asm_24152: + call GetWindowStackTop + ld a, h + or l + jr z, asm_2415c + call PopWindow +asm_2415c: + call CloseSRAM + ld hl, wWindowStackSize + dec [hl] + ret + +Function24164: + ld hl, .text_2416f + call PrintText + call WaitBGMap +.loop + jr .loop + +.text_2416f: + text "ポップできる ウィンドウが" + next "ありません!" + done + +Function24185:: + xor a + call OpenSRAM + call GetWindowStackTop + ld a, l + or h + jr z, asm_24195 + call _ExitMenu + jr Function24185 +asm_24195: + call CloseSRAM + ret + +_InitVerticalMenuCursor:: + ld a, [wMenuDataHeaderEnd] + ld b, a + ld hl, wMenuData3 + ld a, [wMenuBorderTopCoord] + inc a + bit 6, b + jr nz, asm_241a9 + inc a +asm_241a9: + ld [hli], a + ld a, [wMenuBorderLeftCoord] + inc a + ld [hli], a + ld a, [wMenuDataItems] + ld [hli], a + ld a, $01 + ld [hli], a + ld [hl], $00 + bit 5, b + jr z, asm_241be + set 5, [hl] +asm_241be: + ld a, [wMenuDataHeader] + bit 4, a + jr z, asm_241c7 + set 6, [hl] +asm_241c7: + inc hl + xor a + ld [hli], a + ld a, $20 + ld [hli], a + ld a, $01 + bit 0, b + jr nz, asm_241d5 + add $02 +asm_241d5: + ld [hli], a + ld a, [wMenuCursorBuffer] + and a + jr z, asm_241e3 + ld c, a + ld a, [wMenuDataItems] + cp c + jr nc, asm_241e5 +asm_241e3: + ld c, $01 +asm_241e5: + ld [hl], c + inc hl + ld a, $01 + ld [hli], a + xor a + ld [hli], a + ld [hli], a + ld [hli], a + ret + +UpdateItemDescription:: + ld a, [wMenuSelection] + ld [wSelectedItem], a + hlcoord 0, 12 + ld b, $04 + ld c, $12 + call DrawTextBox + decoord 1, 14 + callab ShowItemDescription + ret + +Function2420b: + ld a, $01 + ldh [hBGMapMode], a + ld hl, .MenuHeader24262 + call LoadMenuHeader + call MenuBox + call UpdateSprites + ld b, SGB_POKEPIC + call GetSGBLayout + xor a + ldh [hBGMapMode], a + ld a, [wMonDexIndex] + ld [wCurSpecies], a + call GetMonHeader + ld de, vFont + call LoadMonFrontSprite + ld a, [wMenuBorderTopCoord] + inc a + ld b, a + ld a, [wMenuBorderLeftCoord] + inc a + ld c, a + call Coord2Tile + ld a, $80 + ldh [hGraphicStartTile], a + ld bc, $0707 + predef PlaceGraphic + ld a, $01 + ldh [hBGMapMode], a + call TextboxWaitPressAorB_BlinkCursor + call ClearMenuBoxInterior + call WaitBGMap + call GetMemSGBLayout + call CloseWindow + call LoadFont + ret + +.MenuHeader24262: + db MENU_BACKUP_TILES + menu_coords 6, 4, $e, $d + dw 0 + db 1 + +_InitScrollingMenu:: + xor a + ld [wMenuJoypad], a + ldh [hBGMapMode], a + inc a + ldh [hJoyDebounceSrc], a + ld hl, wce5f + set 4, [hl] + call asm_243c3 + call asm_243fc + ld c, $0a + call DelayFrames + call Function242a3 + ret + +_ScrollingMenu:: + call Function242b6 + jp c, .asm_24296 + ld a, $00 + ldh [hJoypadSum], a + call z, Function242a3 + jr _ScrollingMenu +.asm_24296 + ld [wMenuJoypad], a + ld a, $00 + ldh [hJoyDebounceSrc], a + ld hl, wce5f + res 4, [hl] + ret + +Function242a3: + xor a + ldh [hBGMapMode], a + call Function24475 + call Function244ff + call Function2452c + xor a + ldh [hJoypadSum], a + call WaitBGMap + ret + +Function242b6: + call Get2DMenuJoypad_NoPlaceCursor + ldh a, [hJoySum] + and $f0 + ld b, a + ldh a, [hJoypadSum] + and $0f + or b + bit 0, a + jp nz, Function242f1 + bit 1, a + jp nz, asm_2431c + bit 2, a + jp nz, Function24320 + bit 3, a + jp nz, Function24342 + bit 4, a + jp nz, asm_24362 + bit 5, a + jp nz, asm_2434e + bit 6, a + jp nz, asm_24376 + bit 7, a + jp nz, asm_2438a + jr Function242b6 + ld a, $ff + and a + ret + +Function242f1: + call PlaceHollowCursor + ld a, [w2DMenuDataEnd] + dec a + call asm_24555 + ld a, [wMenuSelection] + ld [wCurItem], a + ld a, [wMenuSelectionQuantity] + ld [wItemQuantityBuffer], a + call asm_243a5 + dec a + ld [wScrollingMenuCursorPosition], a + ld [wItemIndex], a + ld a, [wMenuSelection] + cp $ff + jr z, asm_2431c + ld a, $01 + scf + ret + +asm_2431c: + ld a, $02 + scf + ret + +Function24320: + ld a, [wMenuDataHeaderEnd] + bit 7, a + jp z, SetFFInAccumulator + ld a, [w2DMenuDataEnd] + dec a + call asm_24555 + ld a, [wMenuSelection] + cp $ff + jp z, SetFFInAccumulator + call asm_243a5 + dec a + ld [wScrollingMenuCursorPosition], a + ld a, $04 + scf + ret + +Function24342: + ld a, [wMenuDataHeaderEnd] + bit 6, a + jp z, SetFFInAccumulator + ld a, $08 + scf + ret + +asm_2434e: + ld hl, w2DMenuFlags + 1 + bit 7, [hl] + jp z, SetFFInAccumulator + ld a, [wMenuDataHeaderEnd] + bit 3, a + jp z, SetFFInAccumulator + ld a, $20 + scf + ret + +asm_24362: + ld hl, w2DMenuFlags + 1 + bit 7, [hl] + jp z, SetFFInAccumulator + ld a, [wMenuDataHeaderEnd] + bit 2, a + jp z, SetFFInAccumulator + ld a, $10 + scf + ret + +asm_24376: + ld hl, w2DMenuFlags + 1 + bit 7, [hl] + jp z, ClearAccumulator + ld hl, wMenuScrollPosition + ld a, [hl] + and a + jp z, ClearAccumulator + dec [hl] + jp ClearAccumulator + +asm_2438a: + ld hl, w2DMenuFlags + 1 + bit 7, [hl] + jp z, ClearAccumulator + ld hl, wMenuScrollPosition + ld a, [wMenuDataItems] + add [hl] + ld b, a + ld a, [wcdbc] + cp b + jp c, ClearAccumulator + inc [hl] + jp ClearAccumulator + +asm_243a5: + ld a, [wMenuScrollPosition] + ld c, a + ld a, [w2DMenuDataEnd] + add c + ld c, a + ret + +ScrollingMenu_ClearLeftColumn:: + call MenuBoxCoord2Tile + ld de, $14 + add hl, de + ld de, $28 + ld a, [wMenuDataItems] +asm_243bc: + ld [hl], $7f + add hl, de + dec a + jr nz, asm_243bc + ret + +asm_243c3: + ld hl, wMenuDataDisplayFunctionPointer + 1 + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wMenuDataDisplayFunctionPointer] + call GetFarByte + ld [wcdbc], a + ld a, [wMenuScrollPosition] + ld c, a + ld a, [wMenuCursorBuffer] + add c + ld b, a + ld a, [wcdbc] + inc a + cp b + jr c, .asm_243f2 + ld a, [wMenuScrollPosition] + ld c, a + ld a, [wMenuDataItems] + add c + ld b, a + ld a, [wcdbc] + inc a + cp b + jr nc, .asm_243fb +.asm_243f2 + xor a + ld [wMenuScrollPosition], a + ld a, $01 + ld [wMenuCursorBuffer], a +.asm_243fb + ret + +asm_243fc: + ld a, [wMenuDataHeaderEnd] + ld c, a + ld a, [wcdbc] + ld b, a + ld a, [wMenuBorderTopCoord] + add $01 + ld [wMenuData3], a + ld a, [wMenuBorderLeftCoord] + add $00 + ld [w2DMenuCursorInitX], a + ld a, [wMenuDataItems] + cp b + jr c, asm_2441e + jr z, asm_2441e + ld a, b + inc a +asm_2441e: + ld [w2DMenuNumRows], a + ld a, $01 + ld [w2DMenuNumCols], a + ld a, $8c + bit 2, c + jr z, asm_2442e + set 0, a +asm_2442e: + bit 3, c + jr z, asm_24434 + set 1, a +asm_24434: + ld [w2DMenuFlags], a + xor a + ld [w2DMenuFlags + 1], a + ld a, $20 + ld [w2DMenuCursorOffsets], a + ld a, $c3 + bit 7, c + jr z, asm_24448 + add $04 +asm_24448: + bit 6, c + jr z, asm_2444e + add $08 +asm_2444e: + ld [wMenuJoypadFilter], a + ld a, [w2DMenuNumRows] + ld b, a + ld a, [wMenuCursorBuffer] + and a + jr z, asm_24460 + cp b + jr z, asm_24462 + jr c, asm_24462 +asm_24460: + ld a, $01 +asm_24462: + ld [w2DMenuDataEnd], a + ld a, $01 + ld [wMenuCursorX], a + xor a + ld [wCursorCurrentTile], a + ld [wCursorCurrentTile + 1], a + ld [wCursorOffCharacter], a + ret + +Function24475: + call ClearWholeMenuBox + ld a, [wMenuScrollPosition] + and a + jr z, asm_2448b + ld a, [wMenuBorderTopCoord] + ld b, a + ld a, [wMenuBorderRightCoord] + ld c, a + call Coord2Tile + ld [hl], $61 +asm_2448b: + call MenuBoxCoord2Tile + ld bc, $0015 + add hl, bc + ld a, [wMenuDataItems] + ld b, a + ld c, $00 +asm_24498: + ld a, [wMenuScrollPosition] + add c + ld [wScrollingMenuCursorPosition], a + ld a, c + call asm_24555 + ld a, [wMenuSelection] + cp $ff + jr z, asm_244c8 + push bc + push hl + call asm_244e2 + pop hl + ld bc, $0028 + add hl, bc + pop bc + inc c + ld a, c + cp b + jr nz, asm_24498 + ld a, [wMenuBorderBottomCoord] + ld b, a + ld a, [wMenuBorderRightCoord] + ld c, a + call Coord2Tile + ld [hl], $ee + ret + +asm_244c8: + ld a, [wMenuDataHeaderEnd] + bit 0, a + jr nz, asm_244da + ld de, .text_244d6 + call PlaceString + ret + +.text_244d6: + db "やめる@" + +asm_244da: + ld d, h + ld e, l + ld hl, wMenuDataPointerTableAddr + 1 + jp CallFar_atHL + +asm_244e2: + push hl + ld d, h + ld e, l + ld hl, wMenuDataPointerTableAddr + 1 + call CallFar_atHL + pop hl + ld a, [wMenuDataIndicesPointer] + and a + jr z, asm_244fe + ld e, a + ld d, $00 + add hl, de + ld d, h + ld e, l + ld hl, wcc1c + call CallFar_atHL +asm_244fe: + ret + +Function244ff: + ld a, [wSelectedSwapPosition] + and a + jr z, asm_2452b + ld b, a + ld a, [wMenuScrollPosition] + cp b + jr nc, asm_2452b + ld c, a + ld a, [wMenuDataItems] + add c + cp b + jr c, asm_2452b + ld a, b + sub c + dec a + add a + add $01 + ld c, a + ld a, [wMenuBorderTopCoord] + add c + ld b, a + ld a, [wMenuBorderLeftCoord] + add $00 + ld c, a + call Coord2Tile + ld [hl], $ec +asm_2452b: + ret + +Function2452c: + ld a, [wMenuDataHeaderEnd] + bit 5, a + ret z + hlcoord 0, 12 + ld b, $04 + ld c, $12 + call DrawTextBox + ld a, [w2DMenuDataEnd] + dec a + call asm_24555 + ld a, [wMenuSelection] + cp $ff + jr z, .done + decoord 1, 14 + ld hl, wcc1f + call CallFar_atHL + ret + +.done + ret + +asm_24555: + push de + push hl + ld e, a + ld a, [wMenuScrollPosition] + add e + ld e, a + ld d, $00 + ld hl, wMenuDataDisplayFunctionPointer + 1 + ld a, [hli] + ld h, [hl] + ld l, a + inc hl + ld a, [wMenuDataIndicesPointer + 1] + cp $01 + jr z, asm_24576 + cp $02 + jr z, asm_24575 + cp $80 + jr z, asm_24590 +asm_24575: + add hl, de +asm_24576: + add hl, de + ld a, [wMenuDataDisplayFunctionPointer] + call GetFarByte + ld [wMenuSelection], a + ld [wCurItem], a + inc hl + ld a, [wMenuDataDisplayFunctionPointer] + call GetFarByte + ld [wMenuSelectionQuantity], a + pop hl + pop de + ret + +asm_24590: + ld a, [wcdbc] + ld d, a + ld a, e + cp d + jr nc, asm_245b5 + inc e + ld d, $00 +asm_2459b: + inc d + ld a, [hli] + and a + jr z, asm_2459b + dec e + jr nz, asm_2459b + dec hl + dec d + push bc + push hl + ld c, d + callab GetBallByIndex + ld d, c + pop hl + pop bc + jr asm_245b7 +asm_245b5: + ld d, $ff +asm_245b7: + ld a, d + ld [wMenuSelection], a + ld [wCurItem], a + ld a, [hl] + ld [wMenuSelectionQuantity], a + pop hl + pop de + ret + +SwitchItemsInBag:: + ld a, [wSelectedSwapPosition] + and a + jr z, asm_24602 + ld b, a + ld a, [wScrollingMenuCursorPosition] + inc a + cp b + jr z, asm_2460a + ld a, [wScrollingMenuCursorPosition] + call asm_246f7 + ld a, [hl] + cp $ff + ret z + ld a, [wSelectedSwapPosition] + dec a + ld [wSelectedSwapPosition], a + ld a, [wSelectedSwapPosition] + call asm_246f7 + push hl + ld a, [wScrollingMenuCursorPosition] + call asm_246f7 + ld a, [hl] + pop hl + cp [hl] + jr z, asm_2466c + ld a, [wScrollingMenuCursorPosition] + ld c, a + ld a, [wSelectedSwapPosition] + cp c + jr c, asm_2463f + jr asm_2460f +asm_24602: + ld a, [wScrollingMenuCursorPosition] + inc a + ld [wSelectedSwapPosition], a + ret + +asm_2460a: + xor a + ld [wSelectedSwapPosition], a + ret + +asm_2460f: + ld a, [wSelectedSwapPosition] + call asm_246db + ld a, [wScrollingMenuCursorPosition] + ld d, a + ld a, [wSelectedSwapPosition] + ld e, a + call asm_24707 + push bc + ld a, [wSelectedSwapPosition] + call asm_246f7 + dec hl + push hl + call asm_2471b + add hl, bc + ld d, h + ld e, l + pop hl + pop bc + call asm_24732 + ld a, [wScrollingMenuCursorPosition] + call asm_246e8 + xor a + ld [wSelectedSwapPosition], a + ret + +asm_2463f: + ld a, [wSelectedSwapPosition] + call asm_246db + ld a, [wScrollingMenuCursorPosition] + ld d, a + ld a, [wSelectedSwapPosition] + ld e, a + call asm_24707 + push bc + ld a, [wSelectedSwapPosition] + call asm_246f7 + ld d, h + ld e, l + call asm_2471b + add hl, bc + pop bc + call CopyBytes + ld a, [wScrollingMenuCursorPosition] + call asm_246e8 + xor a + ld [wSelectedSwapPosition], a + ret + +asm_2466c: + ld a, [wSelectedSwapPosition] + call asm_246f7 + inc hl + push hl + ld a, [wScrollingMenuCursorPosition] + call asm_246f7 + inc hl + ld a, [hl] + pop hl + add [hl] + cp $64 + jr c, asm_2469c + sub $63 + push af + ld a, [wScrollingMenuCursorPosition] + call asm_246f7 + inc hl + ld [hl], $63 + ld a, [wSelectedSwapPosition] + call asm_246f7 + inc hl + pop af + ld [hl], a + xor a + ld [wSelectedSwapPosition], a + ret + +asm_2469c: + push af + ld a, [wScrollingMenuCursorPosition] + call asm_246f7 + inc hl + pop af + ld [hl], a + ld hl, wMenuDataDisplayFunctionPointer + 1 + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wSelectedSwapPosition] + cp [hl] + jr nz, asm_246c0 + dec [hl] + ld a, [wSelectedSwapPosition] + call asm_246f7 + ld [hl], $ff + xor a + ld [wSelectedSwapPosition], a + ret + +asm_246c0: + dec [hl] + call asm_2471b + push bc + ld a, [wSelectedSwapPosition] + call asm_246f7 + pop bc + push hl + add hl, bc + pop de +asm_246cf: + ld a, [hli] + ld [de], a + inc de + cp $ff + jr nz, asm_246cf + xor a + ld [wSelectedSwapPosition], a + ret + +asm_246db: + call asm_246f7 + ld de, wMovementBufferCount + call asm_2471b + call CopyBytes + ret + +asm_246e8: + call asm_246f7 + ld d, h + ld e, l + ld hl, wMovementBufferCount + call asm_2471b + call CopyBytes + ret + +asm_246f7: + push af + call asm_2471b + ld hl, wMenuDataDisplayFunctionPointer + 1 + ld a, [hli] + ld h, [hl] + ld l, a + inc hl + pop af + call AddNTimes + ret + +asm_24707: + push hl + call asm_2471b + ld a, d + sub e + jr nc, asm_24711 + dec a + cpl +asm_24711: + ld hl, 0 + call AddNTimes + ld b, h + ld c, l + pop hl + ret + +asm_2471b: + push hl + ld a, [wMenuDataIndicesPointer + 1] + ld c, a + ld b, $00 + ld hl, .data_2472c + add hl, bc + add hl, bc + ld c, [hl] + inc hl + ld b, [hl] + pop hl + ret + +.data_2472c: + dw 0 + dw 1 + dw 2 + +asm_24732: + ld a, [hld] + ld [de], a + dec de + dec bc + ld a, b + or c + jr nz, asm_24732 + ret + +Function2473b:: + ld a, [wMenuSelection] + cp $ff + jr z, .asm_24762 + push de + callab CheckItemMenu + ld a, [wItemAttributeParamBuffer] + ld e, a + ld d, $00 + ld hl, .data_2475b + add hl, de + ld a, [hl] + pop de + ld [de], a + inc de + jr PlaceMenuItemName + +.data_2475b: + db $7f, $62, $64, $63, $7f, $7f, $7f + +.asm_24762 + ld h, d + ld l, e + ld de, .text_2476b + call PlaceString + ret + +.text_2476b: + db " ーーやめるーー@" + +PlaceMenuItemName:: + push de + ld a, [wMenuSelection] + ld [wNamedObjectIndexBuffer], a + call GetItemName + pop hl + call PlaceString + ret + +PlaceMenuItemQuantity:: + push de + ld a, [wMenuSelection] + ld [wCurItem], a + callab _CheckTossableItem + ld a, [wItemAttributeParamBuffer] + pop hl + and a + jr nz, .done + ld [hl], $f1 + inc hl + ld de, wMenuSelectionQuantity + ld bc, $0102 + call PrintNumber +.done + ret + +asm_247a6: + ld hl, wPartyMonOTEnd + jr .asm_247ae + ld hl, wdf17 +.asm_247ae + push de + ld a, [wScrollingMenuCursorPosition] + call GetNick + pop hl + call PlaceString + ret + +asm_247ba: + ld a, $00 + ld [wMonType], a + jr .asm_247c6 + ld a, $02 + ld [wMonType], a +.asm_247c6 + push de + ld a, [wScrollingMenuCursorPosition] + ld [wWhichPokemon], a + predef Function50000 + pop hl + call PrintLevel + ret + +ret_247d7: + ret + +asm_247d8: + push de + ld a, [wScrollingMenuCursorPosition] + ld c, a + ld b, $00 + ld hl, wBoxList + add hl, bc + ld a, [hl] + ld [wNamedObjectIndexBuffer], a + call GetPokemonName + pop hl + call PlaceString + ld de, 6 + add hl, de + push hl + ld a, [wScrollingMenuCursorPosition] + ld hl, wdf17 + call GetNick + pop hl + call PlaceString + ld de, 6 + add hl, de + push hl + ld a, [wScrollingMenuCursorPosition] + ld [wWhichPokemon], a + ld a, $02 + ld [wMonType], a + ld a, $31 + call Predef + pop hl + push hl + call PrintLevel + pop hl + ld de, 3 + add hl, de + push hl + callab Function5069e + ld a, $ef + jr c, .asm_2482e + ld a, $f5 +.asm_2482e + pop hl + ld [hl], a + ret + +asm_4831: + ld hl, .MenuHeader2484e + call CopyMenuHeader + call MenuBox + call PlaceVerticalMenuItems + call MenuBoxCoord2Tile + ld de, $0015 + add hl, de + ld de, wd15d + ld bc, $4306 + call PrintNumber + ret + +.MenuHeader2484e: + db 0 + menu_coords 11, 0, $13, 2 + dw .data_24856 + db 1 + +.data_24856: + db $40, $01 + db " 円@" + +asm_24860: + ld hl, MenuHeader24888 + call CopyMenuHeader + jr asm_24872 + +asm_24868: + ld hl, MenuHeader24888 + ld d, $0b + ld e, $00 + call OffsetMenuHeader + +asm_24872: + call MenuBox + call MenuBoxCoord2Tile + ld de, $0015 + add hl, de + ld de, wd15d + ld bc, $4306 + call PrintNumber + ld [hl], $f0 + ret + +MenuHeader24888: + db MENU_BACKUP_TILES + menu_coords 11, 0, $13, 2 + dw 0 + db 1 + +asm_24890: + ld hl, .MenuHeader2489a + call LoadMenuHeader + call VerticalMenu + ret + +.MenuHeader2489a: + db MENU_BACKUP_TILES + menu_coords 0, 0, 6, 10 + dw .text_248a2 + db 1 + +.text_248a2: + db "たエ゛うる@" + db "かう@" + db "やめる@" + db "くさかり@" + db "とんでけ@" + db "どんぶらこ@" + db "フルパワー@" + db "ひかりゴケ@" + db "うずしお@" + db "とびはねる@" + db "あなをほる@" + db "テレポート@" + db "タマゴうみ@" + +Text248e7: + db "つよさをみる@" + db "ならびかえ@" + db "そうび@" + db "キャンセル@" + db "もちわざ@" + db "メール@" + db "エラー!@" + +Data2490c: + db $f5, $01 + db $f6, $02 + db $f7, $03 + db $f8, $04 + db $f9, $05 + db $fa, $06 + db $fb, $07 + db $5b, $08 + db $64, $09 + db $87, $0a + db $ff + +Data24921: + db $01, $01, $f5 + db $01, $02, $f6 + db $01, $03, $f7 + db $01, $04, $f8 + db $01, $05, $f9 + db $01, $06, $fa + db $01, $07, $fb + db $01, $08, $5b + db $01, $09, $64 + db $01, $0a, $87 + db $00, $0b, $01 + db $00, $0c, $02 + db $00, $0d, $03 + db $00, $0e, $04 + db $00, $0f, $05 + db $00, $10, $06 + db $00, $11, $07 + db $ff + +Function24955:: + xor a + ldh [hBGMapMode], a + call asm_24a0c + callab Function_8f1cb + ld hl, .MenuHeader2497d + call LoadMenuHeader + call asm_24985 + call asm_249c9 + ld a, 1 + ldh [hBGMapMode], a + call asm_24997 + ld [wMenuSelection], a + call CloseWindow + ret + +.MenuHeader2497d: + db $40 + menu_coords 11, 0, $13, $11 + dw 0 + db 1 + +asm_24985: + ld a, [wFieldMoveScriptID] + inc a + add a + ld b, a + ld a, [wMenuBorderBottomCoord] + sub b + inc a + ld [wMenuBorderTopCoord], a + call MenuBox + ret + +asm_24997: + ld a, $a0 + ld [wMenuDataHeaderEnd], a + ld a, [wFieldMoveScriptID] + ld [wMenuDataItems], a + call InitVerticalMenuCursor + ld hl, w2DMenuFlags + set 6, [hl] + call Get2DMenuJoypad + ldh a, [hJoyDown] + bit 0, a + jr nz, asm_249bc + bit 1, a + jr nz, asm_249b9 + jr asm_24997 +asm_249b9: + ld a, $0e + ret + +asm_249bc: + ld a, [w2DMenuDataEnd] + dec a + ld c, a + ld b, $00 + ld hl, wMapBlocksAddress + add hl, bc + ld a, [hl] + ret + +asm_249c9: + call MenuBoxCoord2Tile + ld bc, $002a + add hl, bc + ld de, wMapBlocksAddress +asm_249d3: + ld a, [de] + inc de + cp $ff + ret z + push de + push hl + call asm_249e8 + pop hl + call PlaceString + ld bc, $0028 + add hl, bc + pop de + jr asm_249d3 +asm_249e8: + dec a + ld b, a + add a + add b + ld c, a + ld b, $00 + ld hl, Data24921 + add hl, bc + ld a, [hli] + and a + jr z, asm_24a00 + inc hl + ld a, [hl] + ld [wNamedObjectIndexBuffer], a + call Unreferenced_GetMoveName + ret + +asm_24a00: + inc hl + ld a, [hl] + dec a + ld hl, Text248e7 + call GetNthString + ld d, h + ld e, l + ret + +asm_24a0c: + call asm_24a78 + ld a, $02 + call GetPartyParamLocation + ld d, h + ld e, l + ld hl, wMapBlocksAddress + ld c, $04 +asm_24a1b: + push bc + push de + ld a, [de] + and a + jr z, asm_24a2b + push hl + call asm_24a63 + pop hl + jr nc, asm_24a2b + call asm_24a93 +asm_24a2b: + pop de + inc de + pop bc + dec c + jr nz, asm_24a1b + ld a, $0b + call asm_24a93 + ld a, $0c + call asm_24a93 + ld a, $0f + call asm_24a93 + push hl + ld a, $01 + call GetPartyParamLocation + ld a, [hl] + pop hl + cp $9e + ld a, $0d + jr nz, asm_24a50 + ld a, $10 +asm_24a50: + call asm_24a93 + ld a, [wFieldMoveScriptID] + cp $08 + jr z, asm_24a5f + ld a, $0e + call asm_24a93 +asm_24a5f: + call asm_24a86 + ret + +asm_24a63: + ld b, a + ld hl, Data24921 +asm_24a67: + ld a, [hli] + cp $ff + jr z, asm_24a77 + and a + jr z, asm_24a77 + ld d, [hl] + inc hl + ld a, [hli] + cp b + jr nz, asm_24a67 + ld a, d + scf +asm_24a77: + ret + +asm_24a78: + xor a + ld [wFieldMoveScriptID], a + ld hl, wMapBlocksAddress + ld bc, $9 + call ByteFill + ret + +asm_24a86: + ld a, [wFieldMoveScriptID] + ld e, a + ld d, $00 + ld hl, wMapBlocksAddress + add hl, de + ld [hl], $ff + ret + +asm_24a93: + push hl + push de + push af + ld a, [wFieldMoveScriptID] + ld e, a + inc a + ld [wFieldMoveScriptID], a + ld d, $00 + ld hl, wMapBlocksAddress + add hl, de + pop af + ld [hl], a + pop de + pop hl + ret + +asm_24aa9: + ld hl, .MenuHeader24ae9 + call CopyMenuHeader + xor a + ldh [hBGMapMode], a + call MenuBox + call UpdateSprites + call PlaceVerticalMenuItems + call WaitBGMap + ld hl, wMenuDataPointer + ld a, [hli] + ld h, [hl] + ld l, a + ld de, wMenuDataHeaderEnd + ld bc, $8 + call CopyBytes + ld a, [wMenuDataHeaderEnd] + bit 7, a + jr z, .asm_24ae4 + call InitVerticalMenuCursor + ld hl, w2DMenuFlags + set 6, [hl] + call Get2DMenuJoypad + bit 1, a + jr z, .asm_24ae6 + ret z +.asm_24ae4: + scf + ret + +.asm_24ae6: + and a + ret + + ret + +.MenuHeader24ae9: + db 0 + menu_coords 11, 11, $13, $11 + dw .text_24af1 + db 1 + +.text_24af1: + db "たエ゛とりかえる@" + db "つよさをみる@" + db "キャンセル@" + +asm_24b06: + ld hl, MenuHeader24b24 + jr asm_24b0e + +asm_24b0b: + ld hl, MenuHeader24b3e +asm_24b0e: + call LoadMenuHeader + ld a, [wStartmenuCursor] + ld [wMenuCursorBuffer], a + call asm_24b67 + ld a, [wMenuCursorBuffer] + ld [wStartmenuCursor], a + call ExitMenu + ret + +MenuHeader24b24: + db MENU_BACKUP_TILES + menu_coords 9, 12, $13, $11 + dw .text_24b2c + db 1 + +.text_24b2c: + db "ア<TA!>ガたたかう@" + db "どうぐ@" + db "#@" + db "にげる@" + +MenuHeader24b3e: + db MENU_BACKUP_TILES + menu_coords 0, 12, $13, $11 + dw .text_24b46 + db 1 + +.text_24b46: + db "ア<TA!>ジサファりボール× @" + db "エサをなげる@" + db "いしをなげる@" + db "にげる@" + +asm_24b67: + call CopyMenuData + call MenuBox + ld a, [wMenuDataItems] + ld b, a + and $0f + ld [wMovementBufferCount], a + ld a, b + and $f0 + swap a + ld [wMovementBufferObject], a + call asm_24bb8 + call asm_24bee + call Get2DMenuJoypad + ldh a, [hJoySum] + bit 2, a + jr nz, asm_24ba2 + ld a, [w2DMenuNumRows] + ld c, a + ld a, [w2DMenuDataEnd] + dec a + call asm_24ba4 + ld c, a + ld a, [wMenuCursorX] + add c + ld [wMenuCursorBuffer], a + and a + ret + +asm_24ba2: + scf + ret + +asm_24ba4: + and a + ret z + push bc + ld b, a + xor a +asm_24ba9: + add c + dec b + jr nz, asm_24ba9 + pop bc + ret + +asm_24baf: + ld b, $00 +asm_24bb1: + inc b + sub c + jr nc, asm_24bb1 + dec b + add c + ret + +asm_24bb8: + ld hl, wMenuDataPointer + ld a, [hli] + ld h, [hl] + ld l, a + ld de, $0003 + add hl, de + ld d, h + ld e, l + call GetMenuTextStartCoord + call Coord2Tile + ld a, [wMovementBufferCount] + ld b, a +asm_24bce: + push bc + push hl + ld a, [wMovementBufferObject] + ld c, a +asm_24bd4: + push bc + call PlaceString + inc de + ld a, [wMenuDataIndicesPointer] + ld c, a + ld b, $00 + add hl, bc + pop bc + dec c + jr nz, asm_24bd4 + pop hl + ld bc, $0028 + add hl, bc + pop bc + dec b + jr nz, asm_24bce + ret + +asm_24bee: + call GetMenuTextStartCoord + ld a, b + ld [wMenuData3], a + dec c + ld a, c + ld [w2DMenuCursorInitX], a + ld a, [wMovementBufferCount] + ld [w2DMenuNumRows], a + ld a, [wMovementBufferObject] + ld [w2DMenuNumCols], a + ld a, [wMenuDataHeaderEnd] + ld d, a + bit 5, d + ld a, $00 + jr z, asm_24c12 + ld a, $30 +asm_24c12: + ld [w2DMenuFlags], a + ld a, [wMenuDataIndicesPointer] + or $20 + ld [w2DMenuCursorOffsets], a + ld a, $05 + ld [wMenuJoypadFilter], a + ld a, [w2DMenuNumCols] + ld e, a + ld a, [wMenuCursorBuffer] + ld b, a + xor a + ld d, $00 +asm_24c2d: + inc d + add e + cp b + jr c, asm_24c2d + sub e + ld c, a + ld a, b + sub c + and a + jr z, asm_24c3e + cp e + jr z, asm_24c40 + jr c, asm_24c40 +asm_24c3e: + ld a, $01 +asm_24c40: + ld [wMenuCursorX], a + ld a, [w2DMenuNumRows] + ld e, a + ld a, d + and a + jr z, asm_24c50 + cp e + jr z, asm_24c52 + jr c, asm_24c52 +asm_24c50: + ld a, $01 +asm_24c52: + ld [w2DMenuDataEnd], a + xor a + ld [wCursorOffCharacter], a + ld [wCursorCurrentTile], a + ld [wCursorCurrentTile + 1], a + ret + +SelectQuantityToToss:: + ld hl, MenuHeader24d64 + call LoadMenuHeader + call asm_24c84 + ret + +asm_24c64: + callab GetItemPrice + ld a, d + ld [wFieldMoveScriptID], a + ld a, e + ld [wMapBlocksAddress], a + ld hl, MenuHeader24d6c + call LoadMenuHeader + call asm_24c84 + ret + +asm_24c84: + ld a, 1 + ld [wItemQuantity], a +asm_24c89: + call GetJoypad + ldh a, [hJoyState] + bit 0, a + jr nz, asm_24c89 +asm_24c92: + call asm_24d15 + call asm_24ca2 + jr nc, asm_24c92 + cp $ff + jr nz, asm_24ca0 + scf + ret + +asm_24ca0: + and a + ret + +asm_24ca2: + call DelayFrame + ldh a, [hJoyDebounceSrc] + push af + ld a, $01 + ldh [hJoyDebounceSrc], a + call GetJoypadDebounced + pop af + ldh [hJoyDebounceSrc], a + ldh a, [hJoyDown] + bit 1, a + jr nz, asm_24cd0 + bit 0, a + jr nz, asm_24cd4 + ldh a, [hJoySum] + bit 7, a + jr nz, asm_24cd6 + bit 6, a + jr nz, asm_24ce2 + bit 5, a + jr nz, asm_24cf0 + bit 4, a + jr nz, asm_24d02 + jr asm_24ca2 +asm_24cd0: + ld a, $ff + scf + ret + +asm_24cd4: + scf + ret + +asm_24cd6: + ld hl, wItemQuantity + dec [hl] + jr nz, asm_24ce0 + ld a, [wItemQuantityBuffer] + ld [hl], a +asm_24ce0: + and a + ret + +asm_24ce2: + ld hl, wItemQuantity + inc [hl] + ld a, [wItemQuantityBuffer] + cp [hl] + jr nc, asm_24cee + ld [hl], 1 +asm_24cee: + and a + ret + +asm_24cf0: + ld a, [wItemQuantity] + sub 10 + jr c, asm_24cfb + jr z, asm_24cfb + jr asm_24cfd +asm_24cfb: + ld a, 1 +asm_24cfd: + ld [wItemQuantity], a + and a + ret + +asm_24d02: + ld a, [wItemQuantity] + add 10 + ld b, a + ld a, [wItemQuantityBuffer] + cp b + jr nc, asm_24d0f + ld b, a +asm_24d0f: + ld a, b + ld [wItemQuantity], a + and a + ret + +asm_24d15: + call MenuBox + call MenuBoxCoord2Tile + ld de, $15 + add hl, de + ld [hl], $f1 + inc hl + ld de, wItemQuantity + ld bc, $8102 + call PrintNumber + ld a, [wMenuDataPointer] + cp $ff + ret nz + xor a + ldh [hMultiplicand], a + ld a, [wFieldMoveScriptID] + ldh [hMultiplicand + 1], a + ld a, [wMapBlocksAddress] + ldh [hMultiplicand + 2], a + ld a, [wItemQuantity] + ldh [hMultiplier], a + push hl + call Multiply + ld hl, hFFCD + ldh a, [hMultiplicand] + ld [hli], a + ldh a, [hMultiplicand + 1] + ld [hli], a + ldh a, [hMultiplicand + 2] + ld [hl], a + pop hl + inc hl + ld de, hFFCD + ld bc, $0406 + call PrintNumber + ld [hl], $f0 + call WaitBGMap + ret + +MenuHeader24d64: + db MENU_BACKUP_TILES + menu_coords 15, 9, $13, 11 + dw 0 + db 0 + +MenuHeader24d6c: + db MENU_BACKUP_TILES + menu_coords 7, 15, $13, $11 + dw $ff + db $ff + diff --git a/engine/dumps/bank0b.asm b/engine/dumps/bank0b.asm new file mode 100644 index 0000000..f1b484a --- /dev/null +++ b/engine/dumps/bank0b.asm @@ -0,0 +1,476 @@ +INCLUDE "constants.asm" + +SECTION "engine/dumps/bank0b.asm", ROMX + +ShowItemDescription:: + push de + ld hl, ItemDescriptions + ld a, [wSelectedItem] + dec a + ld c, a + ld b, 0 + add hl, bc + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + pop hl + jp PlaceString + +INCLUDE "data/items/descriptions.inc" + +Function2d2fc: + ld a, $1 + ldh [hJoyDebounceSrc], a + call sub_2d436 + ld a, $0 + ldh [hJoyDebounceSrc], a + ret nc + call PlaceHollowCursor + call WaitBGMap + ld a, $1 + ldh [hBGMapMode], a + ld a, [wCurItem] + cp $3a + ret nc + ld [wce37], a + ld a, $1b + call Predef + ld a, [wce37] + ld [wce32], a + call Unreferenced_GetMoveName + call CopyStringToStringBuffer2 + ld hl, text_2d3bf + call PrintText + ld hl, text_2d3d9 + call PrintText + call YesNoBox + jp c, asm_2d3a8 + +asm_2d33e: + ld hl, wStringBuffer2 + ld de, wcd1d + ld bc, $8 + call CopyBytes + ld hl, wVramState + res 0, [hl] + ld a, $3 + ld [wcdb9], a + ld a, $36 + call Predef + push af + ld hl, wcd1d + ld de, wStringBuffer2 + ld bc, $8 + call CopyBytes + pop af + jr nc, asm_2d36c + jp asm_2d3ad + +asm_2d36c: + ld a, $1a + call Predef + push bc + ld a, [wWhichPokemon] + ld hl, wPartyMonNicknames + call GetNick + pop bc + ld a, c + and a + jr nz, asm_2d390 + push de + ld de, $14 + call PlaySFX + pop de + ld hl, text_2d404 + call PrintText + jr asm_2d33e + +asm_2d390: + callab Functionfdab + jr c, asm_2d33e + ld a, $0 + call Predef + ld a, b + and a + jr z, asm_2d3a8 + call sub_2d64e + jr asm_2d3ad + +asm_2d3a8: + ld a, $2 + ld [wFieldMoveSucceeded], a + +asm_2d3ad: + call ClearBGPalettes + call ClearSprites + ld hl, wVramState + set 0, [hl] + call Function360b + call GetMemSGBLayout + ret + +text_2d3bf: + text "<TM>を きどうした!" + prompt + text "ひでんマシンを きどうした!" + +text_2d3d9: + text "なかには @" + text_from_ram wStringBuffer2 + text "が" + line "きろくされていた!" + para "@" + text_from_ram wStringBuffer2 + text "を" + line "#に おぼえさせますか?" + done + +text_2d404: + text_from_ram wStringBuffer1 + text "と @" + text_from_ram wStringBuffer2 + text "は" + line "あいしょうが わるかった!" + para "@" + text_from_ram wStringBuffer2 + text "は おぼえられない!" + prompt + db $02, $04, $00, $01 + db $0c, $20 + db $c3 + +sub_2d436: + xor a + ldh [hBGMapMode], a + call sub_2d577 + ld a, $2 + ld [w2DMenuCursorInitY], a + ld a, $4 + ld [w2DMenuCursorInitY + 1], a + ld a, $1 + ld [w2DMenuNumCols], a + ld a, $4 + sub d + inc a + cp $5 + jr nz, asm_2d454 + dec a + +asm_2d454: + ld [w2DMenuNumRows], a + ld a, $c + ld [w2DMenuFlags], a + xor a + ld [w2DMenuFlags + 1], a + ld a, $20 + ld [w2DMenuCursorOffsets], a + ld a, $c3 + ld [w2DMenuCursorOffsets + 1], a + ld a, [wcd42] + inc a + ld [wMenuCursorY], a + ld a, $1 + ld [wMenuCursorX], a + jr asm_2d4a3 + +asm_2d478: + call sub_2d577 + +asm_2d47b: + call WaitBGMap + ld a, $1 + ldh [hBGMapMode], a + call Get2DMenuJoypad + ld b, a + ld a, [wMenuCursorY] + dec a + ld [wcd42], a + xor a + ldh [hBGMapMode], a + ld a, [w2DMenuFlags + 1] + bit 7, a + jp nz, asm_2d537 + ld a, b + bit 0, a + jp nz, sub_2d51a + bit 1, a + jp nz, asm_2d535 + +asm_2d4a3: + call sub_2d51a + ld hl, $c368 + ld b, $6 + ld c, $12 + call DrawTextBox + call UpdateSprites + ld a, [wCurItem] + cp $3a + jr nc, asm_2d47b + ld [wce37], a + ld hl, $c391 + ld de, string_2d572 + call PlaceString + ld a, $1b + call Predef + ld a, [wce37] + ld [wCurSpecies], a + ld b, a + ld hl, $c395 + ld a, $3f + call Predef + ld hl, $c3b9 + call Function2d663 + ld hl, $c39b + ld de, string_2d568 + call PlaceString + ld a, [wCurSpecies] + dec a + ld hl, Data4a8b8 + ld bc, $7 + call AddNTimes + ld a, BANK(Data4a8b8) + call GetFarByte + ld hl, $c3a0 + cp $2 + jr c, asm_2d511 + ld [wce37], a + ld de, wce37 + ld bc, $103 + call PrintNumber + jp asm_2d478 + +asm_2d511: + ld de, string_2d56e + call PlaceString + jp asm_2d478 + +sub_2d51a: + call sub_2d5f8 + ld a, [wMenuCursorY] + ld b, a + +asm_2d521: + inc c + ld a, c + cp $3a + jr nc, asm_2d52f + ld a, [hli] + and a + jr z, asm_2d521 + dec b + jr nz, asm_2d521 + ld a, c + +asm_2d52f: + ld [wCurItem], a + cp $ff + ret + +asm_2d535: + and a + ret + +asm_2d537: + ld a, b + bit 7, a + jr nz, asm_2d54b + ld hl, wcd47 + ld a, [hl] + and a + jp z, asm_2d478 + dec [hl] + call sub_2d577 + jp asm_2d4a3 + +asm_2d54b: + call sub_2d5f8 + ld b, $5 + +asm_2d550: + inc c + ld a, c + cp $3a + jp nc, asm_2d478 + ld a, [hli] + and a + jr z, asm_2d550 + dec b + jr nz, asm_2d550 + ld hl, wcd47 + inc [hl] + call sub_2d577 + jp asm_2d4a3 + +string_2d568: + db "いりょく/@" + +string_2d56e: + db "ーーー@" + +string_2d572: + db "タイプ/@" + +sub_2d577: + ld hl, $c2a3 + ld b, $8 + ld c, $f + call DrawTextBox + call sub_2d5f8 + ld d, $4 + +asm_2d586: + inc c + ld a, c + cp $3a + jr nc, asm_2d5dd + ld a, [hli] + and a + jr z, asm_2d586 + ld b, a + ld a, c + ld [wce37], a + push hl + push de + push bc + call sub_2d5e9 + push hl + ld de, wce37 + ld bc, $8102 + call PrintNumber + ld a, $1b + call Predef + ld a, [wce37] + ld [wce32], a + call Unreferenced_GetMoveName + pop hl + ld bc, $3 + add hl, bc + push hl + call PlaceString + pop hl + ld bc, $8 + add hl, bc + ld [hl], $f1 + inc hl + ld a, $f6 + pop bc + push bc + ld a, b + ld [wce37], a + ld de, wce37 + ld bc, $102 + call PrintNumber + pop bc + pop de + pop hl + dec d + jr nz, asm_2d586 + jr asm_2d5e8 + +asm_2d5dd: + call sub_2d5e9 + ld a, $d4 + ld [hli], a + ld a, $d2 + ld [hli], a + ld [hl], $d9 + +asm_2d5e8: + ret + +sub_2d5e9: + ld hl, $c2a5 + ld bc, $28 + ld a, $5 + sub d + ld d, a + +asm_2d5f3: + add hl, bc + dec d + jr nz, asm_2d5f3 + ret + +sub_2d5f8: + ld hl, wTMsHMs + ld a, [wcd47] + ld b, a + inc b + ld c, $0 + +asm_2d602: + inc c + ld a, [hli] + and a + jr z, asm_2d602 + dec b + jr nz, asm_2d602 + dec hl + dec c + ret + call sub_2d63c + ld hl, text_2d61b + jr nc, asm_2d618 + ld hl, text_2d62f + +asm_2d618: + jp PrintText + +text_2d61b: + text_from_ram wStringBuffer1 + text "は これいじょう" + line "もてません!" + prompt + +text_2d62f: + text_from_ram wStringBuffer1 + text "を てにいれた!" + prompt + +sub_2d63c: + ld a, [wCurItem] + dec a + ld hl, wTMsHMs + ld b, $0 + ld c, a + add hl, bc + ld a, [hl] + inc a + cp $a + ret nc + ld [hl], a + ret + +sub_2d64e: + ld a, [wCurItem] + dec a + ld hl, wTMsHMs + ld b, $0 + ld c, a + add hl, bc + ld a, [hl] + and a + ret z + dec a + ld [hl], a + ret nz + ld [wcd47], a + ret + +Function2d663: + push hl + ld hl, MoveDescriptions + ld a, [wCurSpecies] + dec a + ld c, a + ld b, $0 + add hl, bc + add hl, bc + ld a, [hli] + ld e, a + ld d, [hl] + pop hl + jp PlaceString + +INCLUDE "data/moves/descriptions.inc" |