diff options
| author | entrpntr <12521136+entrpntr@users.noreply.github.com> | 2020-05-27 18:42:13 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-05-27 18:42:13 -0400 |
| commit | 2321448d133ac3651f08787b1cf2c2fcbdac82c9 (patch) | |
| tree | 47f648c0fd273463376c981055cdc9cc5b6a93dc /engine/printer | |
| parent | 418ac97a9c2142aae82051e6bdb149c9103b7282 (diff) | |
| parent | 9dac1d992d343f542acae9974eff3099fbd9b39f (diff) | |
Merge pull request #36 from entrpntr/misc-dump
Disassemble banks $70 and $3f, add tileset data
Diffstat (limited to 'engine/printer')
| -rw-r--r-- | engine/printer/print_party.asm | 360 |
1 files changed, 360 insertions, 0 deletions
diff --git a/engine/printer/print_party.asm b/engine/printer/print_party.asm new file mode 100644 index 00000000..7b98a337 --- /dev/null +++ b/engine/printer/print_party.asm @@ -0,0 +1,360 @@ +PRINTPARTY_HP EQU "◀" ; $71 + +PrintPage1: + hlcoord 0, 0 + decoord 0, 0, wPrinterTilemapBuffer + ld bc, 17 * SCREEN_WIDTH + call CopyBytes + hlcoord 17, 1, wPrinterTilemapBuffer + ld a, $62 + ld [hli], a + inc a + ld [hl], a + hlcoord 17, 2, wPrinterTilemapBuffer + ld a, $64 + ld [hli], a + inc a + ld [hl], a + hlcoord 1, 9, wPrinterTilemapBuffer + ld a, " " + ld [hli], a + ld [hl], a + hlcoord 1, 10, wPrinterTilemapBuffer + ld a, $61 + ld [hli], a + ld [hl], a + hlcoord 2, 11, wPrinterTilemapBuffer + lb bc, 5, 18 + call ClearBox + ld a, [wTempSpecies] + dec a + call CheckCaughtMon + push af + ld a, [wTempSpecies] + ld b, a + ld c, 1 ; get page 1 + farcall GetDexEntryPagePointer + pop af + ld a, b + hlcoord 1, 11, wPrinterTilemapBuffer + call nz, FarString + hlcoord 19, 0, wPrinterTilemapBuffer + 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 + +PrintPage2: + hlcoord 0, 0, wPrinterTilemapBuffer + ld bc, 8 * SCREEN_WIDTH + ld a, " " + call ByteFill + hlcoord 0, 0, wPrinterTilemapBuffer + ld a, $36 + ld b, 6 + call .FillColumn + hlcoord 19, 0, wPrinterTilemapBuffer + ld a, $37 + ld b, 6 + call .FillColumn + hlcoord 0, 6, wPrinterTilemapBuffer + ld [hl], $38 + inc hl + ld a, $39 + ld bc, SCREEN_HEIGHT + call ByteFill + ld [hl], $3a + hlcoord 0, 7, wPrinterTilemapBuffer + ld bc, SCREEN_WIDTH + ld a, $32 + call ByteFill + ld a, [wTempSpecies] + dec a + call CheckCaughtMon + push af + ld a, [wTempSpecies] + ld b, a + ld c, 2 ; get page 2 + farcall GetDexEntryPagePointer + pop af + hlcoord 1, 1, wPrinterTilemapBuffer + ld a, b + call nz, FarString + ret + +.FillColumn: + push de + ld de, SCREEN_WIDTH +.column_loop + ld [hl], a + add hl, de + dec b + jr nz, .column_loop + pop de + ret + +GBPrinterStrings: ; used only for BANK(GBPrinterStrings) +GBPrinterString_Null: db "@" +GBPrinterString_CheckingLink: next " CHECKING LINK...@" +GBPrinterString_Transmitting: next " TRANSMITTING...@" +GBPrinterString_Printing: next " PRINTING...@" +GBPrinterString_PrinterError1: + db " Printer Error 1" + next "" + next "Check the Game Boy" + next "Printer Manual." + db "@" +GBPrinterString_PrinterError2: + db " Printer Error 2" + next "" + next "Check the Game Boy" + next "Printer Manual." + db "@" +GBPrinterString_PrinterError3: + db " Printer Error 3" + next "" + next "Check the Game Boy" + next "Printer Manual." + db "@" +GBPrinterString_PrinterError4: + db " Printer Error 4" + next "" + next "Check the Game Boy" + next "Printer Manual." + db "@" + +PrintPartyMonPage1: + call ClearBGPalettes + call ClearTilemap + call ClearSprites + xor a + ldh [hBGMapMode], a + call LoadFontsBattleExtra + + ld de, GBPrinterHPIcon + ld hl, vTiles2 tile PRINTPARTY_HP + lb bc, BANK(GBPrinterHPIcon), 1 + call Request1bpp + + ld de, GBPrinterLvIcon + ld hl, vTiles2 tile "<LV>" + lb bc, BANK(GBPrinterLvIcon), 1 + call Request1bpp + + ld de, StatsScreenPageTilesGFX + 14 tiles ; shiny icon + ld hl, vTiles2 tile "⁂" + lb bc, BANK(StatsScreenPageTilesGFX), 1 + call Get2bpp + + xor a + ld [wMonType], a + farcall CopyMonToTempMon + hlcoord 0, 7 + ld b, 9 + ld c, 18 + call Textbox + hlcoord 8, 2 + ld a, [wTempMonLevel] + call PrintLevel_Force3Digits + hlcoord 12, 2 + ld [hl], PRINTPARTY_HP + inc hl + ld de, wTempMonMaxHP + lb bc, 2, 3 + call PrintNum + ld a, [wCurPartySpecies] + ld [wNamedObjectIndexBuffer], a + ld [wCurSpecies], a + ld hl, wPartyMonNicknames + call Function1c0375 + 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, wNamedObjectIndexBuffer + lb bc, PRINTNUM_LEADINGZEROS | 1, 3 + call PrintNum + hlcoord 1, 9 + ld de, String1c03b7 + call PlaceString + ld hl, wPartyMonOT + call Function1c0375 + hlcoord 4, 9 + call PlaceString + hlcoord 1, 11 + ld de, String1c03c0 + call PlaceString + hlcoord 4, 11 + ld de, wTempMonID + lb bc, PRINTNUM_LEADINGZEROS | 2, 5 + call PrintNum + hlcoord 1, 14 + ld de, String1c03bb + call PlaceString + hlcoord 7, 14 + ld a, [wTempMonMoves + 0] + call Function1c0381 + call Function1c0393 + ld hl, wTempMonDVs + predef GetUnownLetter + hlcoord 0, 0 + call PrepMonFrontpic + call WaitBGMap + ld b, SCGB_STATS_SCREEN_HP_PALS + call GetSGBLayout + call SetPalettes + ret + +PrintPartyMonPage2: + call ClearBGPalettes + call ClearTilemap + call ClearSprites + xor a + ldh [hBGMapMode], a + call LoadFontsBattleExtra + + ld de, GBPrinterHPIcon + ld hl, vTiles2 tile PRINTPARTY_HP + lb bc, BANK(GBPrinterHPIcon), 1 + call Request1bpp + + ld de, GBPrinterLvIcon + ld hl, vTiles2 tile "<LV>" + lb bc, BANK(GBPrinterLvIcon), 1 + call Request1bpp + + ld de, StatsScreenPageTilesGFX + 14 tiles ; shiny icon + ld hl, vTiles2 tile "⁂" + lb bc, BANK(StatsScreenPageTilesGFX), 1 + call Get2bpp + + xor a + ld [wMonType], a + farcall CopyMonToTempMon + 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, [wTempMonMoves + 1] + call Function1c0381 + hlcoord 7, 2 + ld a, [wTempMonMoves + 2] + call Function1c0381 + hlcoord 7, 4 + ld a, [wTempMonMoves + 3] + call Function1c0381 + hlcoord 7, 7 + ld de, String1c03c3 + call PlaceString + hlcoord 16, 7 + ld de, wTempMonAttack + call .PrintTempMonStats + hlcoord 16, 9 + ld de, wTempMonDefense + call .PrintTempMonStats + hlcoord 16, 11 + ld de, wTempMonSpclAtk + call .PrintTempMonStats + hlcoord 16, 13 + ld de, wTempMonSpclDef + call .PrintTempMonStats + hlcoord 16, 15 + ld de, wTempMonSpeed + call .PrintTempMonStats + call WaitBGMap + ld b, SCGB_STATS_SCREEN_HP_PALS + call GetSGBLayout + call SetPalettes + ret + +.PrintTempMonStats: + lb bc, 2, 3 + call PrintNum + ret + +Function1c0375: + ld bc, NAME_LENGTH + ld a, [wCurPartyMon] + call AddNTimes + ld e, l + ld d, h + ret + +Function1c0381: + and a + jr z, .no_move + + ld [wNamedObjectIndexBuffer], a + call GetMoveName + jr .got_string + +.no_move + ld de, String1c03ea + +.got_string + call PlaceString + ret + +Function1c0393: + farcall 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, wTempMonDVs + farcall CheckShininess + ret nc + hlcoord 18, 2 + ld [hl], "⁂" + ret + +String1c03b7: + db "OT/@" + +String1c03bb: + db "MOVE@" + +String1c03c0: + db "<ID>№@" + +String1c03c3: + db "ATTACK" + next "DEFENSE" + next "SPCL.ATK" + next "SPCL.DEF" + next "SPEED" + db "@" + +String1c03ea: + db "------------@" + +GBPrinterHPIcon: +INCBIN "gfx/printer/hp.1bpp" + +GBPrinterLvIcon: +INCBIN "gfx/printer/lv.1bpp" |
