More breakup of main.asm

This commit is contained in:
PikalaxALT 2015-11-30 11:04:14 -05:00
parent 0eb0c40ba7
commit 6b33a8d155
4 changed files with 1119 additions and 1110 deletions

119
engine/unowndex.asm Executable file
View File

@ -0,0 +1,119 @@
UpdateUnownDex: ; fba18
ld a, [UnownLetter]
ld c, a
ld b, 26
ld hl, UnownDex
.loop
ld a, [hli]
and a
jr z, .done
cp c
ret z
dec b
jr nz, .loop
ret
.done
dec hl
ld [hl], c
ret
; fba2e
PrintUnownWord: ; fba2e (3e:7a2e)
hlcoord 4, 15
ld bc, 12
ld a, " "
call ByteFill
ld a, [wc7dd]
ld e, a
ld d, 0
ld hl, UnownDex
add hl, de
ld a, [hl]
ld e, a
ld d, 0
ld hl, UnownWords
rept 2
add hl, de
endr
ld a, [hli]
ld e, a
ld d, [hl]
hlcoord 4, 15
.loop
ld a, [de]
cp -1
ret z
inc de
ld [hli], a
jr .loop
; fba5a (3e:7a5a)
UnownWords: ; fba5a
dw UnownWord1
dw UnownWord1
dw UnownWord2
dw UnownWord3
dw UnownWord4
dw UnownWord5
dw UnownWord6
dw UnownWord7
dw UnownWord8
dw UnownWord9
dw UnownWord10
dw UnownWord11
dw UnownWord12
dw UnownWord13
dw UnownWord14
dw UnownWord15
dw UnownWord16
dw UnownWord17
dw UnownWord18
dw UnownWord19
dw UnownWord20
dw UnownWord21
dw UnownWord22
dw UnownWord23
dw UnownWord24
dw UnownWord25
dw UnownWord26
; fba90
unownword: macro
x = 1
rept STRLEN(\1)
db STRSUB(\1, x, 1) - $40
x = x + 1
endr
db -1
endm
UnownWord1: unownword "ANGRY"
UnownWord2: unownword "BEAR"
UnownWord3: unownword "CHASE"
UnownWord4: unownword "DIRECT"
UnownWord5: unownword "ENGAGE"
UnownWord6: unownword "FIND"
UnownWord7: unownword "GIVE"
UnownWord8: unownword "HELP"
UnownWord9: unownword "INCREASE"
UnownWord10: unownword "JOIN"
UnownWord11: unownword "KEEP"
UnownWord12: unownword "LAUGH"
UnownWord13: unownword "MAKE"
UnownWord14: unownword "NUZZLE"
UnownWord15: unownword "OBSERVE"
UnownWord16: unownword "PERFORM"
UnownWord17: unownword "QUICKEN"
UnownWord18: unownword "REASSURE"
UnownWord19: unownword "SEARCH"
UnownWord20: unownword "TELL"
UnownWord21: unownword "UNDO"
UnownWord22: unownword "VANISH"
UnownWord23: unownword "WANT"
UnownWord24: unownword "XXXXX"
UnownWord25: unownword "YIELD"
UnownWord26: unownword "ZOOM"
; fbb32

1152
main.asm

File diff suppressed because it is too large Load Diff

602
misc/gfx_41.asm Executable file
View File

@ -0,0 +1,602 @@
Function104000:: ; 104000
ld hl, Function104006
jp Function104177
; 104006
Function104006: ; 104006
decoord 0, 0, AttrMap
ld hl, wBackupAttrMap
call Function104263
decoord 0, 0
ld hl, wBackupTilemap
call Function10425f
ld a, $0
ld [rVBK], a
ld hl, wBackupTilemap
call Function10419d
ld a, $1
ld [rVBK], a
ld hl, wBackupAttrMap
call Function10419d
ret
; 10402d
Function10402d:: ; 10402d
ld hl, Function104033
jp Function104177
; 104033
Function104033: ; 104033
decoord 0, 0
ld hl, wBackupTilemap
call Function10425f
ld a, $0
ld [rVBK], a
ld hl, wBackupTilemap
call Function10419d
ret
; 104047
Function104047: ; 104047
ld hl, Function10404d
jp Function104177
; 10404d
Function10404d: ; 10404d
decoord 0, 0, AttrMap
ld hl, wBackupAttrMap
call Function104263
ld a, $1
ld [rVBK], a
ld hl, wBackupAttrMap
call Function10419d
ret
; 104061
ReloadMapPart:: ; 104061
ld hl, Function104067
jp Function104177
; 104067
Function104067: ; 104067
decoord 0, 0, AttrMap
ld hl, wBackupAttrMap
call Function104263
decoord 0, 0
ld hl, wBackupTilemap
call Function10425f
call DelayFrame
di
ld a, [rVBK]
push af
ld a, $1
ld [rVBK], a
ld hl, wBackupAttrMap
call Function1041ad
ld a, $0
ld [rVBK], a
ld hl, wBackupTilemap
call Function1041ad
pop af
ld [rVBK], a
ei
ret
Function104099: ; 104099
ld hl, ReloadMapPart ; useless
ld hl, Function1040a2
jp Function104177
; 1040a2
Function1040a2: ; 1040a2
decoord 0, 0, AttrMap
ld hl, wBackupAttrMap
call Function104263
decoord 0, 0
ld hl, wBackupTilemap
call Function10425f
call DelayFrame
di
ld a, [rVBK]
push af
ld a, $1
ld [rVBK], a
ld hl, wBackupAttrMap
call Function1041c1
ld a, $0
ld [rVBK], a
ld hl, wBackupTilemap
call Function1041c1
pop af
ld [rVBK], a
ei
ret
; 1040d4
Function1040d4: ; 1040d4
ld hl, Function1040da
jp Function104177
; 1040da
Function1040da: ; 1040da
ld a, $1
ld [rVBK], a
ld a, $3
ld [rSVBK], a
ld de, w3_d800
ld a, [hBGMapAddress + 1]
ld [rHDMA1], a
ld a, [hBGMapAddress]
ld [rHDMA2], a
ld a, d
ld [rHDMA3], a
ld a, e
ld [rHDMA4], a
ld a, $23
ld [hDMATransfer], a
call Function1041a4
ret
; 1040fb
Function1040fb: ; 1040fb
ld hl, Function104101
jp Function104177
; 104101
Function104101: ; 104101
ld a, $1
ld [rVBK], a
ld a, $3
ld [rSVBK], a
ld hl, w3_d800
call Function10419d
ret
; 104110
Function104110:: ; 104110
ld hl, Function104116
jp Function104177
; 104116
Function104116: ; 104116
decoord 0, 0, AttrMap
ld hl, wBackupAttrMap
call Function104263
decoord 0, 0
ld hl, wBackupTilemap
call Function10425f
call DelayFrame
di
ld a, [rVBK]
push af
ld a, $1
ld [rVBK], a
ld hl, wBackupAttrMap
call Function1041b7
ld a, $0
ld [rVBK], a
ld hl, wBackupTilemap
call Function1041b7
pop af
ld [rVBK], a
ei
ret
; 104148
Function104148: ; 104148 (41:4148)
ld hl, Function10414e
jp Function104177
; 10414e (41:414e)
Function10414e: ; 10414e
decoord 0, 0, AttrMap
ld hl, wBackupAttrMap
call Function104263
ld c, $ff
decoord 0, 0
ld hl, wBackupTilemap
call Function104265
ld a, $1
ld [rVBK], a
ld hl, wBackupAttrMap
call Function1041ad
ld a, $0
ld [rVBK], a
ld hl, wBackupTilemap
call Function1041ad
ret
; 104177
Function104177: ; 104177
ld a, [hBGMapMode]
push af
ld a, [hMapAnims]
push af
xor a
ld [hBGMapMode], a
ld [hMapAnims], a
ld a, [rSVBK]
push af
ld a, 6
ld [rSVBK], a
ld a, [rVBK]
push af
call ._hl_
pop af
ld [rVBK], a
pop af
ld [rSVBK], a
pop af
ld [hMapAnims], a
pop af
ld [hBGMapMode], a
ret
; 10419c
._hl_: ; 10419c
jp [hl]
; 10419d
Function10419d: ; 10419d (41:419d)
call Function10424e
ld a, $23
ld [hDMATransfer], a
Function1041a4: ; 104a14
.asm_1041a4
call DelayFrame
ld a, [hDMATransfer]
and a
jr nz, .asm_1041a4
ret
Function1041ad: ; 1041ad (41:41ad)
ld a, [hBGMapAddress + 1]
ld d, a
ld a, [hBGMapAddress]
ld e, a
ld c, $24
jr Function104209
Function1041b7: ; 1041b7 (41:41b7)
ld a, [hBGMapAddress + 1]
ld d, a
ld a, [hBGMapAddress]
ld e, a
ld c, $24
jr asm_104205
; 1041c1 (41:41c1)
Function1041c1: ; 1041c1
ld a, [hBGMapAddress + 1]
ld d, a
ld a, [hBGMapAddress]
ld e, a
ld c, $24
ld a, h
ld [rHDMA1], a
ld a, l
and $f0
ld [rHDMA2], a
ld a, d
and $1f
ld [rHDMA3], a
ld a, e
and $f0
ld [rHDMA4], a
ld a, c
dec c
or $80
ld b, a
ld a, $7f
sub c
ld d, a
.loop1
ld a, [rLY]
cp d
jr nc, .loop1
.loop2
ld a, [rSTAT]
and $3
jr z, .loop2
ld a, b
ld [rHDMA5], a
ld a, [rLY]
inc c
ld hl, rLY
.loop3
cp [hl]
jr z, .loop3
ld a, [hl]
dec c
jr nz, .loop3
ld hl, rHDMA5
res 7, [hl]
ret
; 104205
asm_104205:
ld b, $7b
jr asm_10420b
Function104209:
; LY magic
ld b, $7f
asm_10420b:
ld a, h
ld [rHDMA1], a
ld a, l
and $f0 ; high nybble
ld [rHDMA2], a
ld a, d
and $1f ; lower 5 bits
ld [rHDMA3], a
ld a, e
and $f0 ; high nybble
ld [rHDMA4], a
ld a, c
dec c
or $80 ; set 7, a
ld e, a
ld a, b
sub c
ld d, a
.ly_loop
ld a, [rLY]
cp d
jr nc, .ly_loop
di
.rstat_loop_1
ld a, [rSTAT]
and $3
jr nz, .rstat_loop_1
.rstat_loop_2
ld a, [rSTAT]
and $3
jr z, .rstat_loop_2
ld a, e
ld [rHDMA5], a
ld a, [rLY]
inc c
ld hl, rLY
.final_ly_loop
cp [hl]
jr z, .final_ly_loop
ld a, [hl]
dec c
jr nz, .final_ly_loop
ld hl, rHDMA5
res 7, [hl]
ei
ret
; 10424e
Function10424e: ; 10424e (41:424e)
ld a, h
ld [rHDMA1], a
ld a, l
ld [rHDMA2], a
ld a, [hBGMapAddress + 1]
and $1f
ld [rHDMA3], a
ld a, [hBGMapAddress]
ld [rHDMA4], a
ret
Function10425f: ; 10425f (41:425f)
ld c, " "
jr Function104265
Function104263: ; 104263 (41:4263)
ld c, $0
Function104265: ; 104265 (41:4265)
; back up the value of c to hMapObjectIndexBuffer
ld a, [hMapObjectIndexBuffer]
push af
ld a, c
ld [hMapObjectIndexBuffer], a
; for each row on the screen
ld c, SCREEN_HEIGHT
.loop1
; for each tile in the row
ld b, SCREEN_WIDTH
.loop2
; copy from de to hl
ld a, [de]
inc de
ld [hli], a
dec b
jr nz, .loop2
; load the original value of c into hl 12 times
ld a, [hMapObjectIndexBuffer]
ld b, 12
.loop3
ld [hli], a
dec b
jr nz, .loop3
dec c
jr nz, .loop1
; restore the original value of hMapObjectIndexBuffer
pop af
ld [hMapObjectIndexBuffer], a
ret
_Get2bpp:: ; 104284
; 2bpp when [rLCDC] & $80
; switch to WRAM bank 6
ld a, [rSVBK]
push af
ld a, $6
ld [rSVBK], a
push bc
push hl
; Copy c tiles of the 2bpp from b:de to wBackupTilemap
ld a, b ; bank
ld l, c ; number of tiles
ld h, $0
rept 4
add hl, hl ; multiply by 16 (16 bytes of a 2bpp = 8 x 8 tile)
endr
ld b, h
ld c, l
ld h, d ; address
ld l, e
ld de, wBackupTilemap
call FarCopyBytes
pop hl
pop bc
push bc
call DelayFrame
pop bc
ld d, h
ld e, l
ld hl, wBackupTilemap
call Function104209
; restore the previous bank
pop af
ld [rSVBK], a
ret
; 1042b2
_Get1bpp:: ; 1042b2
; 1bpp when [rLCDC] & $80
.loop
ld a, c
cp $10
jp c, .bankswitch
jp z, .bankswitch
push bc
push hl
push de
ld c, $10
call .bankswitch
pop de
ld hl, $80
add hl, de
ld d, h
ld e, l
pop hl
lb bc, 1, 0
add hl, bc
pop bc
ld a, c
sub $10
ld c, a
jr .loop
; 1042d6
.bankswitch: ; 1042d6
ld a, [rSVBK]
push af
ld a, $6
ld [rSVBK], a
push bc
push hl
ld a, b
ld l, c
ld h, $0
rept 3
add hl, hl ; multiply by 8
endr
ld c, l
ld b, h
ld h, d
ld l, e
ld de, wBackupTilemap
call FarCopyBytesDouble_DoubleBankSwitch
pop hl
pop bc
push bc
call DelayFrame
pop bc
ld d, h
ld e, l
ld hl, wBackupTilemap
call Function104209
pop af
ld [rSVBK], a
ret
; 104303
Function104303: ; 104303
ld hl, Function104309
jp Function104177
; 104309
Function104309:
ld hl, wBackupTilemap
decoord 0, 0
call Function10433a
ld hl, wBackupTilemap + $80
decoord 0, 0, AttrMap
call Function10433a
ld a, $1
ld [rVBK], a
ld c, $8
ld hl, wBackupTilemap + $80
debgcoord 0, 0, VBGMap1
call Function104209
ld a, $0
ld [rVBK], a
ld c, $8
ld hl, wBackupTilemap
debgcoord 0, 0, VBGMap1
call Function104209
ret
Function10433a: ; 10433a (41:433a)
ld b, 4
.outer_loop
ld c, SCREEN_WIDTH
.inner_loop
ld a, [de]
ld [hli], a
inc de
dec c
jr nz, .inner_loop
ld a, l
add $20 - SCREEN_WIDTH
ld l, a
ld a, h
adc $0
ld h, a
dec b
jr nz, .outer_loop
ret
; 104350
ShockEmote: INCBIN "gfx/emotes/shock.2bpp"
QuestionEmote: INCBIN "gfx/emotes/question.2bpp"
HappyEmote: INCBIN "gfx/emotes/happy.2bpp"
SadEmote: INCBIN "gfx/emotes/sad.2bpp"
HeartEmote: INCBIN "gfx/emotes/heart.2bpp"
BoltEmote: INCBIN "gfx/emotes/bolt.2bpp"
SleepEmote: INCBIN "gfx/emotes/sleep.2bpp"
FishEmote: INCBIN "gfx/emotes/fish.2bpp"
JumpShadowGFX: INCBIN "gfx/misc/shadow.2bpp"
FishingRodGFX2: INCBIN "gfx/misc/fishing2.2bpp"
BoulderDustGFX: INCBIN "gfx/misc/boulderdust.2bpp"
FishingRodGFX4: INCBIN "gfx/misc/fishing4.2bpp"

356
misc/printer_77.asm Executable file
View File

@ -0,0 +1,356 @@
PrintPage1: ; 1dc1b0
hlcoord 0, 0
ld de, wca90
ld bc, 17 * SCREEN_WIDTH
call CopyBytes
ld hl, wcab5
ld a, $62
ld [hli], a
inc a
ld [hl], a
ld hl, wcac9
ld a, $64
ld [hli], a
inc a
ld [hl], a
ld hl, wcb45
ld a, " "
ld [hli], a
ld [hl], a
ld hl, wcb59
ld a, $61
ld [hli], a
ld [hl], a
ld hl, wcb6e
lb bc, 5, 18
call ClearBox
ld a, [wd265]
dec a
call CheckCaughtMon
push af
ld a, [wd265]
ld b, a
ld c, 1 ; get page 1
callba GetDexEntryPagePointer
pop af
ld a, b
ld hl, wcb6d
call nz, FarString
ld hl, wcaa3
ld [hl], $35
ld de, SCREEN_WIDTH
add hl, de
ld b, $f
.column_loop
ld [hl], $37
add hl, de
dec b
jr nz, .column_loop
ld [hl], $3a
ret
; 1dc213
PrintPage2: ; 1dc213
ld hl, wca90
ld bc, $a0
ld a, " "
call ByteFill
ld hl, wca90
ld a, $36
ld b, $6
call .FillColumn
ld hl, wcaa3
ld a, $37
ld b, $6
call .FillColumn
ld hl, wcb08
ld [hl], $38
inc hl
ld a, $39
ld bc, SCREEN_HEIGHT
call ByteFill
ld [hl], $3a
ld hl, wcb1c
ld bc, SCREEN_WIDTH
ld a, $32
call ByteFill
ld a, [wd265]
dec a
call CheckCaughtMon
push af
ld a, [wd265]
ld b, a
ld c, 2 ; get page 2
callba GetDexEntryPagePointer
pop af
ld hl, wcaa5
ld a, b
call nz, FarString
ret
; 1dc26a
.FillColumn: ; 1dc26a
push de
ld de, SCREEN_WIDTH
.column_loop
ld [hl], a
add hl, de
dec b
jr nz, .column_loop
pop de
ret
; 1dc275
GBPrinterStrings:
String_1dc275: db "@"
String_1dc276: next " CHECKING LINK...@"
String_1dc289: next " TRANSMITTING...@"
String_1dc29c: next " PRINTING...@"
String_1dc2ad:
db " Printer Error 1"
next ""
next "Check the Game Boy"
next "Printer Manual."
db "@"
String_1dc2e2:
db " Printer Error 2"
next ""
next "Check the Game Boy"
next "Printer Manual."
db "@"
String_1dc317:
db " Printer Error 3"
next ""
next "Check the Game Boy"
next "Printer Manual."
db "@"
String_1dc34c:
db " Printer Error 4"
next ""
next "Check the Game Boy"
next "Printer Manual."
db "@"
; 1dc381
Function1dc381: ; 1dc381
call ClearBGPalettes
call ClearTileMap
call ClearSprites
xor a
ld [hBGMapMode], a
call LoadFontsBattleExtra
ld de, MobileHPIcon
ld hl, VTiles2 tile $71
lb bc, BANK(MobileHPIcon), 1
call Request1bpp
ld de, MobileLvIcon
ld hl, VTiles2 tile $6e
lb bc, BANK(MobileLvIcon), 1
call Request1bpp
ld de, ShinyIcon
ld hl, VTiles2 tile $3f
lb bc, BANK(ShinyIcon), 1
call Get2bpp
xor a
ld [MonType], a
callba CopyPkmnToTempMon
hlcoord 0, 7
ld b, 9
ld c, 18
call TextBox
hlcoord 8, 2
ld a, [TempMonLevel]
call Function383d
hlcoord 12, 2
ld [hl], "◀" ; Filled left triangle
inc hl
ld de, TempMonMaxHP
lb bc, 2, 3
call PrintNum
ld a, [CurPartySpecies]
ld [wd265], a
ld [CurSpecies], a
ld hl, PartyMonNicknames
call Function1dc50e
hlcoord 8, 4
call PlaceString
hlcoord 9, 6
ld [hl], "/"
call GetPokemonName
hlcoord 10, 6
call PlaceString
hlcoord 8, 0
ld [hl], "№"
inc hl
ld [hl], "."
inc hl
ld de, wd265
lb bc, PRINTNUM_LEADINGZEROS | 1, 3
call PrintNum
hlcoord 1, 9
ld de, String1dc550
call PlaceString
ld hl, PartyMonOT
call Function1dc50e
hlcoord 4, 9
call PlaceString
hlcoord 1, 11
ld de, String1dc559
call PlaceString
hlcoord 4, 11
ld de, TempMonID
lb bc, PRINTNUM_LEADINGZEROS | 2, 5
call PrintNum
hlcoord 1, 14
ld de, String1dc554
call PlaceString
hlcoord 7, 14
ld a, [TempMonMoves + 0]
call Function1dc51a
call Function1dc52c
ld hl, TempMonDVs
predef GetUnownLetter
ld hl, wc2c6
xor a
ld [hl], a
ld a, [CurPartySpecies]
cp UNOWN
jr z, .asm_1dc469
inc [hl]
.asm_1dc469
hlcoord 0, 0
call _PrepMonFrontpic
call WaitBGMap
ld b, SCGB_03
call GetSGBLayout
call SetPalettes
ret
; 1dc47b
Function1dc47b: ; 1dc47b
call ClearBGPalettes
call ClearTileMap
call ClearSprites
xor a
ld [hBGMapMode], a
call LoadFontsBattleExtra
xor a
ld [MonType], a
callba CopyPkmnToTempMon
hlcoord 0, 0
ld b, 15
ld c, 18
call TextBox
ld bc, SCREEN_WIDTH
decoord 0, 0
hlcoord 0, 1
call CopyBytes
hlcoord 7, 0
ld a, [TempMonMoves + 1]
call Function1dc51a
hlcoord 7, 2
ld a, [TempMonMoves + 2]
call Function1dc51a
hlcoord 7, 4
ld a, [TempMonMoves + 3]
call Function1dc51a
hlcoord 7, 7
ld de, String1dc55d
call PlaceString
hlcoord 16, 7
ld de, TempMonAttack
call .PrintTempMonStats
hlcoord 16, 9
ld de, TempMonDefense
call .PrintTempMonStats
hlcoord 16, 11
ld de, TempMonSpclAtk
call .PrintTempMonStats
hlcoord 16, 13
ld de, TempMonSpclDef
call .PrintTempMonStats
hlcoord 16, 15
ld de, TempMonSpeed
call .PrintTempMonStats
call WaitBGMap
ld b, SCGB_03
call GetSGBLayout
call SetPalettes
ret
; 1dc507
.PrintTempMonStats: ; 1dc507
lb bc, 2, 3
call PrintNum
ret
; 1dc50e
Function1dc50e: ; 1dc50e
ld bc, NAME_LENGTH
ld a, [CurPartyMon]
call AddNTimes
ld e, l
ld d, h
ret
; 1dc51a
Function1dc51a: ; 1dc51a
and a
jr z, .no_move
ld [wd265], a
call GetMoveName
jr .got_string
.no_move
ld de, String1dc584
.got_string
call PlaceString
ret
; 1dc52c
Function1dc52c: ; 1dc52c
callba GetGender
ld a, " "
jr c, .got_gender
ld a, "♂"
jr nz, .got_gender
ld a, "♀"
.got_gender
hlcoord 17, 2
ld [hl], a
ld bc, TempMonDVs
callba CheckShininess
ret nc
hlcoord 18, 2
ld [hl], "<SHINY>"
ret
; 1dc550
String1dc550: ; 1dc550
db "OT/@"
String1dc554: ; 1dc554
db "MOVE@"
String1dc559: ; 1dc559
db "<ID>№.@"
String1dc55d: ; 1dc55d
db "ATTACK"
next "DEFENSE"
next "SPCL.ATK"
next "SPCL.DEF"
next "SPEED"
db "@"
String1dc584: ; 1dc584
db "------------@"
; 1dc591