From baa0dc5a963a79843b37888bcfe1d2dfe833ade9 Mon Sep 17 00:00:00 2001 From: mid-kid Date: Tue, 13 Mar 2018 13:07:16 +0100 Subject: Organize the engine/ directory This is an informed attempt at reorganizing the engine/ directory by creating categorized subdirectories, in order to make it easier to navigate and find things. The directories created are as follows: * engine/game: Contains all "minigames", things like the unown puzzle and slot machine. * engine/gfx: Contains all handling of graphics. From loading palettes to playing animations. * engine/link: Contains all multiplayer functionality. * engine/menu: Contains all generic/misc. menus and menu code. Other, more specialized menus are in their own subdirectories (pokedex, pokegear, party menu, etc). * engine/overworld: Contains all handling of the overworld. From loading and connecting maps to wild encounters and the scripting engine. * engine/pokegear: In the same vein as engine/pokedex, except it could use some more splitting up. * engine/pokemon: Contains everything related to manipulating pokemon data. From the pokemon storage system to evolution and mail. * engine/printer: Contains everything related to printing things as well as the printer communication. * engine/title: Contains intro sequences, title screens and credits. --- engine/printer.asm | 949 ----------------------------------------------------- 1 file changed, 949 deletions(-) delete mode 100755 engine/printer.asm (limited to 'engine/printer.asm') diff --git a/engine/printer.asm b/engine/printer.asm deleted file mode 100755 index b9e55ef2a..000000000 --- a/engine/printer.asm +++ /dev/null @@ -1,949 +0,0 @@ -INCLUDE "engine/printer_serial.asm" - -SendScreenToPrinter: ; 843f0 -.loop - call JoyTextDelay - call CheckCancelPrint - jr c, .cancel - ld a, [wJumptableIndex] - bit 7, a - jr nz, .finished - call PrinterJumptableIteration - call CheckPrinterStatus - call PlacePrinterStatusString - call DelayFrame - jr .loop - -.finished - and a - ret - -.cancel - scf - ret -; 84411 - -Printer_CleanUpAfterSend: ; 84411 - xor a - ld [wPrinterConnectionOpen], a - ld [wPrinterOpcode], a - ret -; 84419 - -Printer_PrepareTileMapForPrint: ; 84419 - push af - call Printer_StartTransmission - pop af - ld [wcbfa], a - call Printer_CopyTileMapToBuffer - ret -; 84425 - -Printer_ExitPrinter: ; 84425 - call ReturnToMapFromSubmenu - call Printer_RestartMapMusic - ret -; 8442c - -PrintDexEntry: ; 8442c - ld a, [wPrinterQueueLength] - push af - - ld hl, vTiles1 - ld de, FontInversed - lb bc, BANK(FontInversed), $80 - call Request1bpp - - xor a - ld [hPrinter], a - call Printer_PlayMusic - - ld a, [rIE] - push af - xor a - ld [rIF], a - ld a, $9 - ld [rIE], a - - call Printer_StartTransmission - ld a, $10 - ld [wcbfa], a - farcall PrintPage1 - call ClearTileMap - ld a, %11100100 - call DmgToCgbBGPals - call DelayFrame - - ld hl, hVBlank - ld a, [hl] - push af - ld [hl], $4 - - ld a, 8 ; 16 rows - ld [wPrinterQueueLength], a - call Printer_ResetJoypadRegisters - call SendScreenToPrinter - jr c, .skip_second_page ; canceled or got an error - - call Printer_CleanUpAfterSend - ld c, 12 - call DelayFrames - xor a - ld [hBGMapMode], a - - call Printer_StartTransmission - ld a, $3 - ld [wcbfa], a - farcall PrintPage2 - call Printer_ResetJoypadRegisters - ld a, 4 - ld [wPrinterQueueLength], a - call SendScreenToPrinter - -.skip_second_page - pop af - ld [hVBlank], a - call Printer_CleanUpAfterSend - - xor a - ld [rIF], a - pop af - ld [rIE], a - - call Printer_ExitPrinter - ld c, 8 -.low_volume_delay_frames - call LowVolume - call DelayFrame - dec c - jr nz, .low_volume_delay_frames - - pop af - ld [wPrinterQueueLength], a - ret -; 844bc - -PrintPCBox: ; 844bc (21:44bc) - ld a, [wPrinterQueueLength] - push af - ld a, 18 / 2 - ld [wPrinterQueueLength], a - - ld a, e - ld [wAddrOfBoxToPrint], a - ld a, d - ld [wAddrOfBoxToPrint + 1], a - ld a, b - ld [wBankOfBoxToPrint], a - ld a, c - ld [wWhichBoxToPrint], a - - xor a - ld [hPrinter], a - ld [wFinishedPrintingBox], a - call Printer_PlayMusic - - ld a, [rIE] - push af - xor a - ld [rIF], a - ld a, %1001 - ld [rIE], a - - ld hl, hVBlank - ld a, [hl] - push af - ld [hl], %0100 - - xor a - ld [hBGMapMode], a - call PrintPCBox_Page1 - ld a, $10 ; to be loaded to wcbfa - call Printer_PrepareTileMapForPrint - call Printer_ResetRegistersAndStartDataSend - jr c, .cancel - - call Printer_CleanUpAfterSend - ld c, 12 - call DelayFrames - xor a - ld [hBGMapMode], a - call PrintPCBox_Page2 - ld a, $0 ; to be loaded to wcbfa - call Printer_PrepareTileMapForPrint - call Printer_ResetRegistersAndStartDataSend - jr c, .cancel - - call Printer_CleanUpAfterSend - ld c, 12 - call DelayFrames - - xor a - ld [hBGMapMode], a - call PrintPCBox_Page3 - ld a, $0 ; to be loaded to wcbfa - call Printer_PrepareTileMapForPrint - call Printer_ResetRegistersAndStartDataSend - jr c, .cancel - - call Printer_CleanUpAfterSend - ld c, 12 - call DelayFrames - - xor a - ld [hBGMapMode], a - call PrintPCBox_Page4 - ld a, $3 ; to be loaded to wcbfa - call Printer_PrepareTileMapForPrint - call Printer_ResetRegistersAndStartDataSend -.cancel - pop af - ld [hVBlank], a - call Printer_CleanUpAfterSend - - xor a - ld [rIF], a - pop af - ld [rIE], a - call Printer_ExitPrinter - - pop af - ld [wPrinterQueueLength], a - ret - -Printer_ResetRegistersAndStartDataSend: ; 84559 (21:4559) - call Printer_ResetJoypadRegisters - call SendScreenToPrinter - ret - -PrintUnownStamp: ; 84560 - ld a, [wPrinterQueueLength] - push af - xor a - ld [hPrinter], a - call Printer_PlayMusic - ld a, [rIE] - push af - xor a - ld [rIF], a - ld a, $9 - ld [rIE], a - ld hl, hVBlank - ld a, [hl] - push af - ld [hl], $4 - xor a - ld [hBGMapMode], a - call LoadTileMapToTempTileMap - farcall PlaceUnownPrinterFrontpic - ld a, $0 ; to be loaded to wcbfa - call Printer_PrepareTileMapForPrint - call Call_LoadTempTileMapToTileMap - call Printer_ResetJoypadRegisters - ld a, 18 / 2 - ld [wPrinterQueueLength], a -.loop - call JoyTextDelay - call CheckCancelPrint - jr c, .done - ld a, [wJumptableIndex] - bit 7, a - jr nz, .done - call PrinterJumptableIteration - ld a, [wJumptableIndex] - cp $2 - jr nc, .check_status - ld a, 6 / 2 - ld [wPrinterRowIndex], a - -.check_status - call CheckPrinterStatus - call PlacePrinterStatusString - call DelayFrame - jr .loop - -.done - pop af - ld [hVBlank], a - call Printer_CleanUpAfterSend - call Call_LoadTempTileMapToTileMap - xor a - ld [rIF], a - pop af - ld [rIE], a - pop af - ld [wPrinterQueueLength], a - ret -; 845d4 - -PrintMail: ; 845d4 - call PrintMail_ - call Printer_ExitPrinter - ret -; 845db - -PrintMail_: ; 845db - ld a, [wPrinterQueueLength] - push af - xor a - ld [hPrinter], a - call Printer_PlayMusic - - ld a, [rIE] - push af - xor a - ld [rIF], a - ld a, %1001 - ld [rIE], a - - xor a - ld [hBGMapMode], a - - ld a, $13 ; to be loaded to wcbfa - call Printer_PrepareTileMapForPrint - ld hl, hVBlank - ld a, [hl] - push af - ld [hl], %0100 - - ld a, 18 / 2 - ld [wPrinterQueueLength], a - call SendScreenToPrinter - - pop af - ld [hVBlank], a - call Printer_CleanUpAfterSend - call Printer_CopyBufferToTileMap - - xor a - ld [rIF], a - pop af - ld [rIE], a - - pop af - ld [wPrinterQueueLength], a - ret -; 8461a - -PrintPartymon: ; 8461a - ld a, [wPrinterQueueLength] - push af - xor a - ld [hPrinter], a - call Printer_PlayMusic - - ld a, [rIE] - push af - xor a - ld [rIF], a - ld a, %1001 - ld [rIE], a - - xor a - ld [hBGMapMode], a - farcall PrintPartyMonPage1 - ld a, $10 ; to be loaded to wcbfa - call Printer_PrepareTileMapForPrint - - ld hl, hVBlank - ld a, [hl] - push af - ld [hl], %0100 - - ld a, 16 / 2 - ld [wPrinterQueueLength], a - call Printer_ResetJoypadRegisters - call SendScreenToPrinter - jr c, .cancel - - call Printer_CleanUpAfterSend - ld c, 12 - call DelayFrames - - xor a - ld [hBGMapMode], a - farcall PrintPartyMonPage2 - ld a, $3 ; to be loaded to wcbfa - call Printer_PrepareTileMapForPrint - - ld a, 18 / 2 - ld [wPrinterQueueLength], a - call Printer_ResetJoypadRegisters - call SendScreenToPrinter -.cancel - pop af - ld [hVBlank], a - call Printer_CleanUpAfterSend - - call Printer_CopyBufferToTileMap - xor a - ld [rIF], a - pop af - ld [rIE], a - call Printer_ExitPrinter - - pop af - ld [wPrinterQueueLength], a - ret -; 84688 - -_PrintDiploma: ; 84688 - ld a, [wPrinterQueueLength] - push af - - farcall PlaceDiplomaOnScreen - - xor a - ld [hPrinter], a - call Printer_PlayMusic - - ld a, [rIE] - push af - xor a - ld [rIF], a - ld a, %1001 - ld [rIE], a - - ld hl, hVBlank - ld a, [hl] - push af - ld [hl], %0100 - - ld a, $10 ; to be loaded to wcbfa - call Printer_PrepareTileMapForPrint - call Printer_ResetJoypadRegisters - - ld a, 18 / 2 - ld [wPrinterQueueLength], a - call SendScreenToPrinter - jr c, .cancel - call Printer_CleanUpAfterSend - ld c, 12 - call DelayFrames - - call LoadTileMapToTempTileMap - xor a - ld [hBGMapMode], a - - farcall PrintDiplomaPage2 - - ld a, $3 ; to be loaded to wcbfa - call Printer_PrepareTileMapForPrint - call Call_LoadTempTileMapToTileMap - call Printer_ResetJoypadRegisters - - ld a, 18 / 2 - ld [wPrinterQueueLength], a - call SendScreenToPrinter -.cancel - pop af - ld [hVBlank], a - call Printer_CleanUpAfterSend - - xor a - ld [rIF], a - pop af - ld [rIE], a - call Printer_ExitPrinter - - pop af - ld [wPrinterQueueLength], a - ret -; 846f6 - -CheckCancelPrint: ; 846f6 - ld a, [hJoyDown] - and B_BUTTON - jr nz, .pressed_b - and a - ret - -.pressed_b - ld a, [wca80] - cp $c - jr nz, .cancel -.loop - ld a, [wPrinterOpcode] - and a - jr nz, .loop - ld a, $16 ; cancel - ld [wPrinterOpcode], a - ld a, $88 - ld [rSB], a - ld a, $1 - ld [rSC], a - ld a, $81 - ld [rSC], a -.loop2 - ld a, [wPrinterOpcode] - and a - jr nz, .loop2 - -.cancel - ld a, $1 - ld [hPrinter], a - scf - ret -; 84728 - -Printer_CopyTileMapToBuffer: ; 84728 - hlcoord 0, 0 - ld de, wPrinterTileMapBuffer - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - call CopyBytes - ret -; 84735 - -Printer_CopyBufferToTileMap: ; 84735 - ld hl, wPrinterTileMapBuffer - decoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - call CopyBytes - ret -; 84742 - -Printer_ResetJoypadRegisters: ; 84742 - xor a - ld [hJoyReleased], a - ld [hJoyPressed], a - ld [hJoyDown], a - ld [hJoyLast], a - ret -; 8474c - -Printer_PlayMusic: ; 8474c - ld de, MUSIC_PRINTER - call PlayMusic2 - ret -; 84753 - -Printer_RestartMapMusic: ; 84753 - call RestartMapMusic - ret -; 84757 - -CheckPrinterStatus: ; 84757 -; Check for printer errors -; If [ca88] == -1, we're disconnected - ld a, [wPrinterHandshake] - cp -1 - jr nz, .printer_connected - ld a, [wPrinterStatusFlags] - cp -1 - jr z, .error_2 -.printer_connected -; ca89 contains printer status flags - ld a, [wPrinterStatusFlags] - and %11100000 - ret z ; no error - - bit 7, a - jr nz, .error_1 - bit 6, a - jr nz, .error_4 - ; paper error - ld a, PRINTER_ERROR_3 - jr .load_text_index - -.error_4 - ; temperature error - ld a, PRINTER_ERROR_4 - jr .load_text_index - -.error_1 - ; printer battery low - ld a, PRINTER_ERROR_1 - jr .load_text_index - -.error_2 - ; connection error - ld a, PRINTER_ERROR_2 -.load_text_index - ld [wPrinterStatus], a - ret -; 84785 - -PlacePrinterStatusString: ; 84785 -; Print nonzero printer status - ld a, [wPrinterStatus] - and a - ret z - push af - xor a - ld [hBGMapMode], a - hlcoord 0, 5 - lb bc, 10, 18 - call TextBox - pop af - ld e, a - ld d, 0 - ld hl, PrinterStatusStringPointers - add hl, de - add hl, de - ld e, [hl] - inc hl - ld d, [hl] - hlcoord 1, 7 - ld a, BANK(GBPrinterStrings) - call FarString - hlcoord 2, 15 - ld de, String_PressBToCancel - call PlaceString - ld a, $1 - ld [hBGMapMode], a - xor a - ld [wPrinterStatus], a - ret -; 847bd - -Unreferenced_Function847bd: ; 847bd - ld a, [wPrinterStatus] - and a - ret z - push af - xor a - ld [hBGMapMode], a - hlcoord 2, 4 - lb bc, 13, 16 - call ClearBox - pop af - ld e, a - ld d, 0 - ld hl, PrinterStatusStringPointers - add hl, de - add hl, de - ld e, [hl] - inc hl - ld d, [hl] - hlcoord 4, 7 - ld a, BANK(GBPrinterStrings) - call FarString - hlcoord 4, 15 - ld de, String_PressBToCancel - call PlaceString - ld a, $1 - ld [hBGMapMode], a - xor a - ld [wPrinterStatus], a - ret -; 847f5 - -String_PressBToCancel: - db "Press B to Cancel@" -; 84807 - -PrinterStatusStringPointers: ; 84807 - dw GBPrinterString_Null ; @ - dw GBPrinterString_CheckingLink ; CHECKING LINK - dw GBPrinterString_Transmitting ; TRANSMITTING - dw GBPrinterString_Printing ; PRINTING - dw GBPrinterString_PrinterError1 ; error 1 - dw GBPrinterString_PrinterError2 ; error 2 - dw GBPrinterString_PrinterError3 ; error 3 - dw GBPrinterString_PrinterError4 ; error 4 -; 84817 - -PrintPCBox_Page1: ; 84817 (21:4817) - xor a - ld [wWhichBoxMonToPrint], a - hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - ld a, " " - call ByteFill - call Printer_PlaceEmptyBoxSlotString - - hlcoord 0, 0 - ld bc, 9 * SCREEN_WIDTH - ld a, " " - call ByteFill - - call Printer_PlaceSideBorders - call Printer_PlaceTopBorder - - hlcoord 4, 3 - ld de, .String_PokemonList - call PlaceString - - ld a, [wWhichBoxToPrint] - ld bc, BOX_NAME_LENGTH - ld hl, wBoxNames - call AddNTimes - ld d, h - ld e, l - hlcoord 6, 5 - call PlaceString - ld a, 1 - call Printer_GetBoxMonSpecies - hlcoord 2, 9 - ld c, 3 - call Printer_PrintBoxListSegment - ret -; 84865 (21:4865) - -.String_PokemonList: - db "#MON LIST@" -; 8486f - -PrintPCBox_Page2: ; 8486f (21:486f) - hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - ld a, " " - call ByteFill - call Printer_PlaceEmptyBoxSlotString - call Printer_PlaceSideBorders - ld a, [wFinishedPrintingBox] - and a - ret nz - ld a, 4 - call Printer_GetBoxMonSpecies - hlcoord 2, 0 - ld c, 6 - call Printer_PrintBoxListSegment - ret - -PrintPCBox_Page3: ; 84893 (21:4893) - hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - ld a, " " - call ByteFill - call Printer_PlaceEmptyBoxSlotString - call Printer_PlaceSideBorders - ld a, [wFinishedPrintingBox] - and a - ret nz - ld a, 10 - call Printer_GetBoxMonSpecies - hlcoord 2, 0 - ld c, 6 - call Printer_PrintBoxListSegment - ret - -PrintPCBox_Page4: ; 848b7 (21:48b7) - hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - ld a, " " - call ByteFill - call Printer_PlaceEmptyBoxSlotString - hlcoord 1, 15 - lb bc, 2, 18 - call ClearBox - call Printer_PlaceSideBorders - call Printer_PlaceBottomBorders - ld a, [wFinishedPrintingBox] - and a - ret nz - ld a, 16 - call Printer_GetBoxMonSpecies - hlcoord 2, 0 - ld c, 5 - call Printer_PrintBoxListSegment - ret - -Printer_PrintBoxListSegment: ; 848e7 (21:48e7) - ld a, [wBankOfBoxToPrint] - call GetSRAMBank -.loop - ld a, c - and a - jp z, .max_length - dec c - ld a, [de] - cp $ff - jp z, .finish - ld [wd265], a - ld [wCurPartySpecies], a - - push bc - push hl - push de - - push hl - ld bc, 16 - ld a, " " - call ByteFill - pop hl - - push hl - call GetBasePokemonName - pop hl - - push hl - call PlaceString - ld a, [wCurPartySpecies] - cp EGG - pop hl - jr z, .ok2 - - ld bc, MON_NAME_LENGTH - add hl, bc - call Printer_GetMonGender - ld bc, SCREEN_WIDTH - MON_NAME_LENGTH - add hl, bc - ld a, "/" - ld [hli], a - - push hl - ld bc, 14 - ld a, " " - call ByteFill - pop hl - - push hl - ld a, [wAddrOfBoxToPrint] - ld l, a - ld a, [wAddrOfBoxToPrint + 1] - ld h, a - ld bc, sBoxMonNicknames - sBox - add hl, bc - ld bc, MON_NAME_LENGTH - ld a, [wWhichBoxMonToPrint] - call AddNTimes - ld e, l - ld d, h - pop hl - - push hl - call PlaceString - pop hl - - ld bc, MON_NAME_LENGTH - add hl, bc - push hl - ld a, [wAddrOfBoxToPrint] - ld l, a - ld a, [wAddrOfBoxToPrint + 1] - ld h, a - ld bc, 2 + MONS_PER_BOX + MON_LEVEL - add hl, bc - ld bc, BOXMON_STRUCT_LENGTH - ld a, [wWhichBoxMonToPrint] - call AddNTimes - ld a, [hl] - pop hl - call PrintLevel_Force3Digits -.ok2 - ld hl, wWhichBoxMonToPrint - inc [hl] - pop de - pop hl - ld bc, 3 * SCREEN_WIDTH - add hl, bc - pop bc - inc de - jp .loop - -.finish - ld a, $1 - ld [wFinishedPrintingBox], a -.max_length - call CloseSRAM - ret - -Printer_GetMonGender: ; 8498a (21:498a) - push hl - ld a, [wAddrOfBoxToPrint] - ld l, a - ld a, [wAddrOfBoxToPrint + 1] - ld h, a - ld bc, $2b - add hl, bc - ld bc, BOXMON_STRUCT_LENGTH - ld a, [wWhichBoxMonToPrint] - call AddNTimes - ld de, wTempMonDVs - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - ld a, [wWhichBoxMonToPrint] - ld [wCurPartyMon], a - ld a, TEMPMON - ld [wMonType], a - farcall GetGender - ld a, " " - jr c, .got_gender - ld a, "♂" - jr nz, .got_gender - ld a, "♀" -.got_gender - pop hl - ld [hli], a - ret - -Printer_GetBoxMonSpecies: ; 849c6 (21:49c6) - push hl - ld e, a - ld d, $0 - ld a, [wAddrOfBoxToPrint] - ld l, a - ld a, [wAddrOfBoxToPrint + 1] - ld h, a - add hl, de - ld e, l - ld d, h - pop hl - ret - -Printer_PlaceTopBorder: ; 849d7 (21:49d7) - hlcoord 0, 0 - ld a, "┌" - ld [hli], a - ld a, "─" - ld c, SCREEN_WIDTH - 2 -.loop - ld [hli], a - dec c - jr nz, .loop - ld a, "┐" - ld [hl], a - ret - -Printer_PlaceSideBorders: ; 849e9 (21:49e9) - hlcoord 0, 0 - ld de, SCREEN_WIDTH - 1 - ld c, SCREEN_HEIGHT -.loop - ld a, "│" - ld [hl], a - add hl, de - ld a, "│" - ld [hli], a - dec c - jr nz, .loop - ret - -Printer_PlaceBottomBorders: ; 849fc (21:49fc) - hlcoord 0, 17 - ld a, "└" - ld [hli], a - ld a, "─" - ld c, SCREEN_WIDTH - 2 -.loop - ld [hli], a - dec c - jr nz, .loop - ld a, "┘" - ld [hl], a - ret - -Printer_PlaceEmptyBoxSlotString: ; 84a0e (21:4a0e) - hlcoord 2, 0 - ld c, $6 -.loop - push bc - push hl - ld de, String84a25 - call PlaceString - pop hl - ld bc, 3 * SCREEN_WIDTH - add hl, bc - pop bc - dec c - jr nz, .loop - ret -; 84a25 (21:4a25) - -String84a25: ; 84a25 - db " ------@" -; 84a2e -- cgit v1.2.3