Last active
April 10, 2026 20:31
-
-
Save SelvinPL/cc1deb44c2f01b4508b07bc94445c9f3 to your computer and use it in GitHub Desktop.
tertis from https://github.com/alexsteb/tetris_disassembly
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ; Initializing | |
| DEF SP_INIT EQU $cfff ; Initial location of Stack Pointer | |
| ; Screen constants | |
| DEF SCREEN_HEIGHT EQU 144 ; Visible Pixels before VBlank ($90) | |
| DEF SCREEN_WIDTH EQU 160 ; Visible Pixels before HBlank ($A0) | |
| DEF LCDC_ON EQU $80 ; Turn LCDC on | |
| DEF LCDC_STANDARD EQU $d3 ; LCDC, BG, Sprites on, Window Tile Map starts at $9c00, | |
| ; BG & Window Tile Data starts at $8000, | |
| ; BG Tile Map Display starts at $9800, | |
| ; OBJ (Sprite) Size is set to 8x8 pixels | |
| ; Joypad constants (internal meaning: directional buttons in the upper nibble, numbers equal the bit set) | |
| DEF BTN_RIGHT EQU 4 ; Directional Right | |
| DEF BTN_LEFT EQU 5 ; Directional Left | |
| DEF BTN_UP EQU 6 ; Directional Up | |
| DEF BTN_DOWN EQU 7 ; Directional Down | |
| DEF BTN_A EQU 0 ; Button A | |
| DEF BTN_B EQU 1 ; Button B | |
| DEF BTN_SELECT EQU 2 ; Button Select | |
| DEF BTN_START EQU 3 ; Button Start | |
| ; Sound constants | |
| DEF SOUND_ON EQU $80 | |
| DEF USE_ALL_CHANNELS EQU $FF ; Set all audio channels to both output terminals (stereo) | |
| DEF MASTER_VOLUME_MAX EQU $77 ; Set both output terminals to highest volume | |
| DEF ENVELOPE_NO_SOUND EQU $08 ; Sets an envelope to no sound and direction to "increase" | |
| ; RAM constants | |
| ; c000-c09f is the OAM data source | |
| DEF rSCORE1 EQU $c0a0 ; score, smallest digits, highest value = 99 | |
| DEF rSCORE2 EQU $c0a1 ; score, middle digits, highest value = 99 (= 9900) | |
| DEF rSCORE3 EQU $c0a2 ; score, highest digits, highest value = 99 (= 990000) | |
| DEF rLINE_CLEAR_START EQU $c0a3 ; $ca after clearing 1-3 line(s), $c9 after clearing 4 lines | |
| DEF rUNKNOWN3 EQU $c0a4 ; .. | |
| DEF rHIDE_NEXT_BLOCK EQU $c0de ; 0 = normal, 1 = next block display hidden (toggled by select button. Keeps value even if hidden in pause menu.) | |
| DEF rBLOCK_VISIBILITY EQU $c200 ; 80 = invisible, 0 = visible | |
| DEF rBLOCK_Y EQU $c201 ; Y location of falling block | |
| DEF rBLOCK_X EQU $c202 ; X location of falling block | |
| DEF rBLOCK_TYPE EQU $c203 ; Block type of falling block (see list below) | |
| DEF rNEXT_BLOCK_VISIBILITY EQU $c210 ; 80 = invisible, 0 = visible | |
| DEF rNEXT_BLOCK_Y EQU $c211 ; Y location of next block (always $80) | |
| DEF rNEXT_BLOCK_X EQU $c212 ; X location of next block (always $8f) | |
| DEF rNEXT_BLOCK_TYPE EQU $c213 ; Block type of next block (see list below, always the first unrotated variant) | |
| ; Block types: (higher numbers mean counter-clockwise rotation. A-Button decreases number -> clockwise rotation) | |
| ; ### | |
| DEF rL_SHAPE_0 EQU $00 ; # | |
| DEF rL_SHAPE_1 EQU $01 | |
| DEF rL_SHAPE_2 EQU $02 | |
| DEF rL_SHAPE_3 EQU $03 | |
| ; ### | |
| DEF rREVERSE_L_SHAPE_0 EQU $04 ; # | |
| DEF rREVERSE_L_SHAPE_1 EQU $05 | |
| DEF rREVERSE_L_SHAPE_2 EQU $06 | |
| DEF rREVERSE_L_SHAPE_3 EQU $07 | |
| DEF rI_SHAPE_0 EQU $08 ; #### | |
| DEF rI_SHAPE_1 EQU $09 | |
| DEF rI_SHAPE_2 EQU $0a | |
| DEF rI_SHAPE_3 EQU $0b | |
| ; ## | |
| DEF rSQUARE_SHAPE_0 EQU $0c ; ## | |
| DEF rSQUARE_SHAPE_1 EQU $0d ; (Yes the square can be rotated!) | |
| DEF rSQUARE_SHAPE_2 EQU $0e | |
| DEF rSQUARE_SHAPE_3 EQU $0f | |
| ; ## | |
| DEF rZ_SHAPE_0 EQU $10 ; ## | |
| DEF rZ_SHAPE_1 EQU $11 | |
| DEF rZ_SHAPE_2 EQU $12 | |
| DEF rZ_SHAPE_3 EQU $13 | |
| ; ## | |
| DEF rS_SHAPE_0 EQU $14 ; ## | |
| DEF rS_SHAPE_1 EQU $15 | |
| DEF rS_SHAPE_2 EQU $16 | |
| DEF rS_SHAPE_3 EQU $17 | |
| ; ### | |
| DEF rT_SHAPE_0 EQU $18 ; # | |
| DEF rT_SHAPE_1 EQU $19 | |
| DEF rT_SHAPE_2 EQU $1a | |
| DEF rT_SHAPE_3 EQU $1b | |
| DEF rHIDE_NEXT_BLOCK_DISPLAY EQU $c210 ; 0 = normal, $80 = next block display hidden - DISPLAY (always $80 in pause menu) | |
| DEF rPAUSED EQU $df7f ; 00 = normal / paused, 01 = pause pressed, 02 = unpause pressed | |
| DEF rPAUSE_CHIME EQU $df7e ; 00 = normal, 11 = final value in pause menu after countdown, 30 = initial value when pause pressed | |
| DEF rSOUND1 EQU $dfe1 ; (Set whenever a new sound is about to be played) | |
| DEF rSOUND2 EQU $dfe9 ; ? | |
| DEF rSOUND3 EQU $dff1 ; ? | |
| DEF rSOUND4 EQU $dff9 ; ? | |
| DEF rSOUND5 EQU $df9f ; ? | |
| DEF rSOUND6 EQU $dfaf ; ? | |
| DEF rSOUND7 EQU $dfbf ; ? | |
| DEF rSOUND8 EQU $dfcf ; ? | |
| DEF rSOUND9 EQU $df78 ; ? | |
| ; Hardware registers | |
| DEF rMBC EQU $2000 ; MBC Controller - Select ROM bank 0 (not needed in Tetris) | |
| DEF rJOYP EQU $ff00 ; Joypad (R/W) | |
| DEF rSB EQU $ff01 ; Serial transfer data (R/W) | |
| DEF rSC EQU $ff02 ; Serial Transfer Control (R/W) | |
| DEF rSC_ON EQU 7 | |
| DEF rSC_CGB EQU 1 | |
| DEF rSC_CLOCK EQU 0 | |
| DEF rDIV EQU $ff04 ; Divider Register (R/W) | |
| DEF rTIMA EQU $ff05 ; Timer counter (R/W) | |
| DEF rTMA EQU $ff06 ; Timer Modulo (R/W) | |
| DEF rTAC EQU $ff07 ; Timer Control (R/W) | |
| DEF rTAC_ON EQU 2 | |
| DEF rTAC_4096_HZ EQU 0 | |
| DEF rTAC_262144_HZ EQU 1 | |
| DEF rTAC_65536_HZ EQU 2 | |
| DEF rTAC_16384_HZ EQU 3 | |
| DEF rIF EQU $ff0f ; Interrupt Flag (R/W) | |
| DEF rNR10 EQU $ff10 ; Channel 1 Sweep register (R/W) | |
| DEF rNR11 EQU $ff11 ; Channel 1 Sound length/Wave pattern duty (R/W) | |
| DEF rNR12 EQU $ff12 ; Channel 1 Volume Envelope (R/W) | |
| DEF rNR13 EQU $ff13 ; Channel 1 Frequency lo (Write Only) | |
| DEF rNR14 EQU $ff14 ; Channel 1 Frequency hi (R/W) | |
| DEF rNR21 EQU $ff16 ; Channel 2 Sound Length/Wave Pattern Duty (R/W) | |
| DEF rNR22 EQU $ff17 ; Channel 2 Volume Envelope (R/W) | |
| DEF rNR23 EQU $ff18 ; Channel 2 Frequency lo data (W) | |
| DEF rNR24 EQU $ff19 ; Channel 2 Frequency hi data (R/W) | |
| DEF rNR30 EQU $ff1a ; Channel 3 Sound on/off (R/W) | |
| DEF rNR31 EQU $ff1b ; Channel 3 Sound Length | |
| DEF rNR32 EQU $ff1c ; Channel 3 Select output level (R/W) | |
| DEF rNR33 EQU $ff1d ; Channel 3 Frequency's lower data (W) | |
| DEF rNR34 EQU $ff1e ; Channel 3 Frequency's higher data (R/W) | |
| DEF rNR41 EQU $ff20 ; Channel 4 Sound Length (R/W) | |
| DEF rNR42 EQU $ff21 ; Channel 4 Volume Envelope (R/W) | |
| DEF rNR43 EQU $ff22 ; Channel 4 Polynomial Counter (R/W) | |
| DEF rNR44 EQU $ff23 ; Channel 4 Counter/consecutive; Initial (R/W) | |
| DEF rNR50 EQU $ff24 ; Channel control / ON-OFF / Volume (R/W) | |
| DEF rNR51 EQU $ff25 ; Selection of Sound output terminal (R/W) | |
| DEF rNR52 EQU $ff26 ; Sound on/off | |
| DEF rLCDC EQU $ff40 ; LCD Control (R/W) | |
| DEF rLCDC_STAT EQU $ff41 ; LCDC Status (R/W) | |
| DEF rSCY EQU $ff42 ; Scroll Y (R/W) | |
| DEF rSCX EQU $ff43 ; Scroll X (R/W) | |
| DEF rLY EQU $ff44 ; LCDC Y-Coordinate (R) | |
| DEF rLYC EQU $ff45 ; LY Compare (R/W) | |
| DEF rDMA EQU $ff46 ; DMA Transfer and Start Address (W) | |
| DEF rBGP EQU $ff47 ; BG Palette Data (R/W) | |
| DEF rOBP0 EQU $ff48 ; Object Palette 0 Data (R/W) | |
| DEF rOBP1 EQU $ff49 ; Object Palette 1 Data (R/W) | |
| DEF rWY EQU $ff4a ; Window Y Position (R/W) | |
| DEF rWX EQU $ff4b ; Window X Position minus 7 (R/W) | |
| DEF rIE EQU $ffff ; Interrupt Enable (R/W) | |
| ; HRAM variables | |
| DEF rBUTTON_DOWN EQU $ff80 ; buttons currently pressed (lower nibble = buttons, higher nibble = directional keys) | |
| DEF rBUTTON_HIT EQU $ff81 ; buttons pressed for the first time | |
| DEF rVBLANK_DONE EQU $ff85 ; 1 = VBlank interrupt executed; 0 = Not executed yet | |
| DEF rOAM_TILE_NO EQU $ff89 ; temporary storage for OAM data of next transfer to $c000 - $c09f | |
| DEF rOAM_ATTRIBUTE_NO EQU $ff8a ; " | |
| DEF rUNKNOWN4 EQU $ff8b ; " | |
| DEF rUNKNOWN5 EQU $ff8c ; | |
| DEF rOAM_TILE_ADDRESS_1 EQU $ff8d ; higher byte of target OAM storage address (in $c000 - $c09f) for transfer from temporary storage in HRAM | |
| DEF rOAM_TILE_ADDRESS_2 EQU $ff8e ; lower byte " " | |
| DEF rAMOUNT_SPRITES_TO_DRAW EQU $ff8f ; draws X amount of sprites starting at $c200, incrementing by $10 | |
| DEF rOAM_X_POS EQU $ff92 ; temporary storage for OAM data of next transfer to $c000 - $c09f | |
| DEF rOAM_Y_POS EQU $ff93 ; " | |
| DEF rUNKNOWN6 EQU $ff94 ; " | |
| DEF rOAM_VISIBLE EQU $ff95 ; " - $80 = invisible, $00 = visible | |
| DEF rSPRITE_ORIGINAL_ADDRESS_1 EQU $ff96 ; higher byte of starting address of sprite info in $c200+ | |
| DEF rSPRITE_ORIGINAL_ADDRESS_2 EQU $ff97 ; lower byte of starting address of sprite info in $c200+ | |
| DEF rBLOCK_STATUS EQU $ff98 ; runs from 1 to 3 when block hits ground; back to 0 before chime and line clear handling | |
| DEF rGRAVITY EQU $ff99 ; loops from $0a to $00, block falls down by one when transitioning from $0a to $09 | |
| DEF rCLEAR_PROGRESS EQU $ff9c ; runs from 1 to 7 during line clear animation | |
| DEF rLINES_CLEARED1 EQU $ff9e ; smallest digits of cleared line number in decimal, so highest value = 99 - or lines left in game type B | |
| DEF rLINES_CLEARED2 EQU $ff9f ; highest digits, highest value also 99 (meaning 9900), making 9999 the highest line number possible. | |
| DEF rIE_TEMP EQU $ffa1 ; used for temporary storage of IE ($ffff) | |
| DEF rUNKNOWN1 EQU $ffa4 ; probably unused | |
| DEF rCOUNTDOWN EQU $ffa6 ; various uses - counts down one per VBlank (~59.7 times a second) | |
| DEF rCOUNTDOWN2 EQU $ffa7 ; various uses - counts down one per VBlank = 4 seconds per byte (256 values) | |
| DEF rPAUSE_MENU EQU $ffab ; 0 = normal, 1 = in pause menu | |
| DEF rDEMO_STATUS EQU $ffb0 ; $0 = normal, $03 - $0f = # of block in demo 1, $10 = back in main menu (between games) | |
| ; $11 - $1c = # of block in demo 2, $1d = back in main menu (after demo 2, before demo 1 again) | |
| ; $ffb6 - $ffb7 = DMA transfer routine | |
| DEF rGAME_TYPE EQU $ffc0 ; $37 = Type A, $77 = Type B | |
| DEF rMUSIC_TYPE EQU $ffc1 ; $1c = Music A, $1d = Music B, $1e = Music C, $1f = Music off | |
| DEF rLEVEL_A EQU $ffc2 ; current level (type A) | |
| DEF rLEVEL_B EQU $ffc3 ; current level (type B) | |
| DEF rINITIAL_HEIGHT EQU $ffc4 ; height of blocks (Type B) | |
| DEF rPLAYERS EQU $ffc5 ; 0 = 1 player, 1 = 2 players | |
| DEF rMUSIC_COUNTDOWN EQU $ffc6 ; countdown for title screen music - until demo game starts playing (reduces by one whenever rCOUNTDOWN reaches 0) | |
| DEF rUNKNOWN7 EQU $ffca ; related to hiscore entry | |
| DEF rUNKNOWN8 EQU $ffcb ; ?Must be $29 to consider sending data in VBlank.. | |
| DEF rREQUEST_SERIAL_TRANSFER EQU $ffce ; Request serial connection data transfer | |
| DEF rSB_DATA EQU $ffcf ; Holds the data to be sent via link cable | |
| DEF rGAME_STATUS EQU $ffe1 ; See table below: | |
| ; $00 = in-game (both game types) | |
| ; $01 = shortly before game over screen | |
| ; $02 = !rocket launch 4 | |
| ; $03 = !rocket launch 5 | |
| ; $04 = game over screen | |
| ; $05 = type B winning chime | |
| ; $06 = shortly before title screen | |
| ; $07 = title screen | |
| ; $08 = shortly before game type selection | |
| ; $09 = nothing | |
| ; $0a = shortly before in-game | |
| ; $0b = showing score (type B) | |
| ; $0c = !leads to 02 | |
| ; $0d = game lost animation (screen filling with bricks) | |
| ; $0e = game type selection (top screen) | |
| ; $0f = music selection (bottom screen) | |
| ; $10 = shortly before choose level (type A) | |
| ; $11 = choose level (type A) | |
| ; $12 = shortly before choose level (type B) | |
| ; $13 = choose level (type B) | |
| ; $14 = select "high" / initial random block height (type B) | |
| ; $15 = enter hiscore name (type A & B) | |
| ; $16 = !shortly before "Mario vs. Luigi" screen | |
| ; $17 = !"Mario vs. Luigi" screen | |
| ; $18 = !shortly before "Mario vs. Luigi" gameplay | |
| ; $19 = !"Mario vs. Luigi" gameplay | |
| ; $1A = !before 1B | |
| ; $1B = !before Luigi won | |
| ; $1C = !also before 1B | |
| ; $1D = !shortly before Luigi won screen | |
| ; $1E = !shortly before Luigi lost screen | |
| ; $1F = !before 16 | |
| ; $20 = !Luigi won screen | |
| ; $21 = !Luigi lost screen | |
| ; $22 = !Shortly before congratulations animation 1 | |
| ; $23 = !congratulations animation 1 | |
| ; $24 = initial value copyright screen (very short) | |
| ; $25 = copyright screen during first countdown | |
| ; $26 = !rocket launch init | |
| ; $27 = !rocket launch 1 | |
| ; $28 = !rocket launch 2 | |
| ; $29 = !rocket launch 3 | |
| ; $2A = !before 2B | |
| ; $2B = !before 16 | |
| ; $2C = !rocket launch 6 | |
| ; $2D = !rocket launch 7 | |
| ; $2E = !rocket launch b1 | |
| ; $2F = !rocket launch b2 | |
| ; $30 = !rocket launch b3 | |
| ; $31 = !rocket launch b4 | |
| ; $32 = !rocket launch b5 | |
| ; $33 = !rocket launch b6 | |
| ; $34 = !shortly before rocket launch b | |
| ; $35 = copyright screen during second countdown | |
| DEF rCOUNT_UP EQU $ffe2 ; Counts from $00 to $FF (once per frame) - various uses | |
| DEF rROW_UPDATE EQU $ffe3 ; current line to move down (after removing line(s)) | |
| DEF rDEMO_GAME EQU $ffe4 ; 0 = normal game, 2 = first demo game (type A), 1 = second demo game (type B) | |
| DEF rUNUSED EQU $ffe9 ; set only in unused function. but tested everywhere. What a waste. | |
| DEF rDEMO_ACTION_COUNTDOWN EQU $ffea ; counts down the frames a button press (or none) is required acc. to storyboard (gravity works anyway) | |
| DEF rDEMO_STORYBOARD_1 EQU $ffeb ; upper address of demo storyboard | |
| DEF rDEMO_STORYBOARD_2 EQU $ffec ; lower address of demo storyboard | |
| DEF rDEMO_BUTTON_HIT EQU $ffed ; simulated button presses (see joypad constants above) | |
| DEF rDEMO_ACTUAL_BUTTON EQU $ffee ; saves the actual button presses (after handling simulated ones), and then handles them (= Start btn to quit demo) | |
| DEF rHARD_MODE EQU $fff4 ; 0 = off, 88 = on | |
| ; Variable value constants: | |
| DEF GAME_TYPE_A EQU $37 | |
| DEF GAME_TYPE_B EQU $77 | |
| DEF MUSIC_TYPE_A EQU $1c | |
| DEF MUSIC_TYPE_B EQU $1d | |
| DEF MUSIC_TYPE_C EQU $1e | |
| DEF MUSIC_TYPE_OFF EQU $1f | |
| DEF MENU_IN_GAME EQU $00 | |
| DEF MENU_GAME_OVER_INIT EQU $01 | |
| DEF MENU_GAME_OVER EQU $04 | |
| DEF MENU_TYPE_B_WON EQU $05 | |
| DEF MENU_TITLE_INIT EQU $06 | |
| DEF MENU_TITLE EQU $07 | |
| DEF MENU_SELECT_TYPE_INIT EQU $08 | |
| DEF MENU_IN_GAME_INIT EQU $0a | |
| DEF MENU_SCORE_B EQU $0b | |
| DEF MENU_LOST_ANIM EQU $0d | |
| DEF MENU_SELECT_TYPE EQU $0e | |
| DEF MENU_SELECT_MUSIC EQU $0f | |
| DEF MENU_LEVEL_A_INIT EQU $10 | |
| DEF MENU_LEVEL_A EQU $11 | |
| DEF MENU_LEVEL_B_INIT EQU $12 | |
| DEF MENU_LEVEL_B EQU $13 | |
| DEF MENU_HIGH_B EQU $14 | |
| DEF MENU_HISCORE EQU $15 | |
| DEF MENU_COPYRIGHT_INIT EQU $24 | |
| DEF MENU_COPYRIGHT_1 EQU $25 | |
| DEF MENU_COPYRIGHT_2 EQU $35 | |
| DEF MENU_ROCKET_1_INIT EQU $26 | |
| DEF MENU_ROCKET_1A EQU $27 | |
| DEF MENU_ROCKET_1B EQU $28 | |
| DEF MENU_ROCKET_1C EQU $29 | |
| DEF MENU_ROCKET_1D EQU $02 | |
| DEF MENU_ROCKET_1E EQU $03 | |
| DEF MENU_ROCKET_1F EQU $2C | |
| DEF MENU_ROCKET_1G EQU $2D | |
| DEF MENU_ROCKET_2_INIT EQU $34 | |
| DEF MENU_ROCKET_2A EQU $2E | |
| DEF MENU_ROCKET_2B EQU $2F | |
| DEF MENU_ROCKET_2C EQU $30 | |
| DEF MENU_ROCKET_2D EQU $31 | |
| DEF MENU_ROCKET_2E EQU $32 | |
| DEF MENU_ROCKET_2F EQU $33 | |
| DEF MENU_CELEBRATE EQU $22 | |
| DEF MENU_VS_INIT EQU $16 | |
| DEF MENU_VS_MODE EQU $17 | |
| DEF MENU_VS_GAME_INIT EQU $18 | |
| DEF MENU_VS_GAME EQU $19 | |
| DEF MENU_LUIGI_WON_INIT EQU $1d | |
| DEF MENU_LUIGI_LOST_INIT EQU $1e | |
| DEF MENU_LUIGI_WON EQU $20 | |
| DEF MENU_LUIGI_LOST EQU $21 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| INCLUDE "constants.inc" | |
| INCLUDE "palettes.inc" | |
| ; rst vectors | |
| SECTION "rst 00", ROM0 [$00] | |
| jp Init | |
| SECTION "rst 08", ROM0 [$08] | |
| jp Init | |
| DS $5 | |
| SECTION "rst 10", ROM0 [$10] | |
| rst $38 | |
| DS $7 | |
| SECTION "rst 18", ROM0 [$18] | |
| rst $38 | |
| DS $7 | |
| SECTION "rst 20", ROM0 [$20] | |
| rst $38 | |
| DS $7 | |
| SECTION "rst 28", ROM0 [$28] | |
| ; Helper function: | |
| ; * doubles the current game status (register A) | |
| ; * finds an address in a list located after caller's address (depending on game status) | |
| ; * jumps to that address | |
| add a, a ; double GAME_STATUS | |
| pop hl | |
| ld e, a | |
| ld d, $00 | |
| add hl, de ; add 2 * GAME_STATUS to caller address | |
| ld e, [hl] ; get 2-byte-address from that location | |
| inc hl | |
| ld d, [hl] | |
| push de | |
| pop hl | |
| jp hl ; jump to that address | |
| DS $4 | |
| SECTION "rst 38", ROM0 [$38] | |
| rst $38 | |
| DS $7 | |
| ; Hardware interrupts | |
| SECTION "vblank", ROM0 [$40] | |
| jp VBlank | |
| DS $5 | |
| SECTION "hblank", ROM0 [$48] | |
| jp HBlank_Timer | |
| DS $5 | |
| SECTION "timer", ROM0 [$50] | |
| jp HBlank_Timer | |
| DS $5 | |
| SECTION "serial", ROM0 [$58] | |
| jp Serial | |
| Serial:: | |
| push af | |
| push hl | |
| push de | |
| push bc | |
| call func_006b | |
| ld a, $01 | |
| ldh [$ff00 + $cc], a | |
| pop bc | |
| pop de | |
| pop hl | |
| pop af | |
| reti | |
| ; Small switch statement: | |
| ; (rst 28 jumps to following address, depending on current $ff00 + $cd) | |
| func_006b: | |
| ldh a, [$ff00 + $cd] | |
| rst $28 | |
| db $78, $00 ; => 0078 | |
| db $9f, $00 ; => 009f | |
| db $a4, $00 ; => 00a4 | |
| db $ba, $00 ; => 00ba | |
| db $ea, $27 ; => 27ea | |
| l_0078: | |
| ldh a, [rGAME_STATUS] | |
| cp MENU_TITLE | |
| jr z, l_0086 | |
| cp MENU_TITLE_INIT | |
| ret z | |
| ld a, MENU_TITLE_INIT | |
| ldh [rGAME_STATUS], a | |
| ret | |
| l_0086: | |
| ldh a, [rSB] | |
| cp $55 | |
| jr nz, l_0094 | |
| ld a, $29 | |
| ldh [$ff00 + $cb], a | |
| ld a, $01 | |
| jr l_009c | |
| l_0094: | |
| cp $29 | |
| ret nz | |
| ld a, $55 | |
| ldh [$ff00 + $cb], a | |
| xor a | |
| l_009c: | |
| ldh [rSC], a | |
| ret | |
| func_009f: | |
| ldh a, [rSB] | |
| ldh [$ff00 + $d0], a | |
| ret | |
| func_00a4: | |
| ldh a, [rSB] | |
| ldh [$ff00 + $d0], a | |
| ldh a, [$ff00 + $cb] | |
| cp $29 | |
| ret z | |
| ldh a, [rSB_DATA] | |
| ldh [rSB], a | |
| ld a, $ff | |
| ldh [rSB_DATA], a | |
| ld a, $80 | |
| ldh [rSC], a | |
| ret | |
| func_00ba: | |
| ldh a, [rSB] | |
| ldh [$ff00 + $d0], a | |
| ldh a, [$ff00 + $cb] | |
| cp $29 | |
| ret z | |
| ldh a, [rSB_DATA] | |
| ldh [rSB], a | |
| ei | |
| call WASTE_TIME | |
| ld a, $80 | |
| ldh [rSC], a | |
| ret | |
| func_00d0: | |
| ldh a, [$ff00 + $cd] | |
| cp $02 | |
| ret nz | |
| xor a | |
| ldh [rIF], a ; Clear all interrupt flags | |
| ei | |
| ret | |
| DS $26 | |
| SECTION "Entry", ROM0 [$100] | |
| nop | |
| jp Start | |
| ;SECTION "Header", ROM0 [$104] | |
| ; db $ce, $ed, $66, $66, $cc, $0d, $00, $0b, $03, $73, $00, $83, $00, $0c, $00, $0d, | |
| ; db $00, $08, $11, $1f, $88, $89, $00, $0e, $dc, $cc, $6e, $e6, $dd, $dd, $d9, $99, | |
| ; db $bb, $bb, $67, $63, $6e, $0e, $ec, $cc, $dd, $dc, $99, $9f, $bb, $b9, $33, $3e, | |
| ; db "TETRIS", $00, $00, $00, $00, $00, $00, $00, $00, $00 | |
| ; db $00 ;dmg - classic gameboy | |
| ; db $00, $00 ;new license | |
| ; db $00 ;sgb flag: not sgb compatible | |
| ; db $00 ;cart type: rom | |
| ; db $00 ;rom size: 32 kb | |
| ; db $00 ;ram size: 0 b | |
| ; db $00 ;destination code: japanese | |
| ; db $01 ;old license: not sgb compatible | |
| ; db $01 ;mask rom version number | |
| ; db $0a ;header check [ok] | |
| ; db $16, $bf ;global check [ok] | |
| SECTION "Main", ROM0 [$150] | |
| Start: | |
| jp Init | |
| call func_29e3 | |
| l_0156: | |
| ldh a, [rLCDC_STAT] | |
| and $03 | |
| jr nz, l_0156 | |
| ld b, [hl] | |
| l_015d: | |
| ldh a, [$ff00 + $41] | |
| and $03 | |
| jr nz, l_015d | |
| ld a, [hl] | |
| and b | |
| ret | |
| func_0166: | |
| ld a, e | |
| add a, [hl] | |
| daa | |
| ldi [hl], a | |
| ld a, d | |
| adc a, [hl] | |
| daa | |
| ldi [hl], a | |
| ld a, $00 | |
| adc a, [hl] | |
| daa | |
| ld [hl], a | |
| ld a, $01 | |
| ldh [$ff00 + $e0], a | |
| ret nc | |
| ld a, $99 | |
| ldd [hl], a | |
| ldd [hl], a | |
| ld [hl], a | |
| ret | |
| ; The VBlank interrupt handler, must occur once somewhen during the game-loop | |
| VBlank:: | |
| push af ; Store registers | |
| push bc | |
| push de | |
| push hl | |
| ldh a, [rREQUEST_SERIAL_TRANSFER] ; Transfer data only if requested | |
| and a | |
| jr z, .skip_serial_connection | |
| ldh a, [$ff00 + $cb] ; ? | |
| cp $29 | |
| jr nz, .skip_serial_connection | |
| xor a | |
| ldh [rREQUEST_SERIAL_TRANSFER], a ; Clear request | |
| ldh a, [rSB_DATA] | |
| ldh [rSB], a ; Send data to link cable | |
| ld hl, rSC | |
| ld [hl], $81 ; Use internal clock (= this GB is the master) | |
| ; and request a data transfer (of rSB) to the other GB | |
| .skip_serial_connection: | |
| call clear_row_animation | |
| call func_23cc | |
| call func_23b7 | |
| call func_239e | |
| call func_238c | |
| call func_237d | |
| call func_236e | |
| call func_235f | |
| call func_2350 | |
| call func_2341 | |
| call func_2332 | |
| call func_2323 | |
| call func_22f8 | |
| call func_22e9 | |
| call func_22da | |
| call func_22cb | |
| call func_22bc | |
| call func_22ad | |
| call func_229e | |
| call func_1ed7 | |
| call $FFB6 ; OAM routine? | |
| call func_18ca | |
| ld a, [$c0ce] | |
| and a | |
| jr z, l_01fb | |
| ldh a, [rBLOCK_STATUS] | |
| cp $03 | |
| jr nz, l_01fb | |
| ld hl, $986d | |
| call func_243b | |
| ld a, $01 | |
| ldh [$ff00 + $e0], a | |
| ld hl, $9c6d | |
| call func_243b | |
| xor a | |
| ld [$c0ce], a | |
| l_01fb: | |
| ld hl, $ffe2 | |
| inc [hl] | |
| xor a | |
| ldh [$ff00 + $43], a | |
| ldh [$ff00 + $42], a | |
| inc a | |
| ldh [rVBLANK_DONE], a | |
| pop hl | |
| pop de | |
| pop bc | |
| pop af | |
| reti | |
| Init: | |
| ; Flush WRAM Bank 1 | |
| xor a | |
| ld hl, $dfff ; End of WRAM Bank 1 | |
| ld c, $10 ; $1000 = size of WRAM Bank 1 | |
| ld b, $00 ; " | |
| .loop_0: | |
| ldd [hl], a | |
| dec b | |
| jr nz, .loop_0 | |
| dec c | |
| jr nz, .loop_0 | |
| Screen_Setup: ; $21B | |
| DEF rINTERRUPT_DEFAULT EQU %00000001 | |
| ; * VBlank interrupt enabled | |
| ; * everything else disabled | |
| DEF rLCDC_START EQU %10000000 | |
| ; * LCD enabled | |
| ; * everything else disabled | |
| ld a, rINTERRUPT_DEFAULT | |
| di | |
| ldh [rIF], a | |
| ldh [rIE], a | |
| xor a | |
| ldh [rSCY], a | |
| ldh [rSCX], a | |
| ldh [rUNKNOWN1], a | |
| ldh [rLCDC_STAT], a | |
| ldh [rSB], a | |
| ldh [rSC], a | |
| ld a, rLCDC_START | |
| ldh [rLCDC], a | |
| .loop_1: | |
| ldh a, [rLY] | |
| cp SCREEN_HEIGHT + 4 | |
| jr nz, .loop_1 | |
| ld a, $03 | |
| ldh [rLCDC], a | |
| ld a, PALETTE_1 | |
| ldh [rBGP], a | |
| ldh [rOBP0], a | |
| ld a, PALETTE_2 | |
| ldh [rOBP1], a | |
| ld hl, rNR52 | |
| ld a, SOUND_ON | |
| ldd [hl], a ; rNR51 | |
| ld a, USE_ALL_CHANNELS | |
| ldd [hl], a ; rNR50 | |
| ld [hl], MASTER_VOLUME_MAX | |
| ld a, $01 | |
| ld [rMBC], a | |
| ld sp, SP_INIT | |
| ; Flush WRAM Bank 1 (last page only) | |
| xor a | |
| ld hl, $dfff ; End of WRAM Bank 1 | |
| ld b, $00 | |
| .loop_2: | |
| ldd [hl], a | |
| dec b | |
| jr nz, .loop_2 ; Flush 256 bytes from end of WRAM Bank 1 | |
| ; Flush WRAM Bank 0 | |
| ld hl, $cfff ; End of WRAM Bank 0 | |
| ld c, $10 ; $1000 = size of WRAM Bank 0 | |
| ld b, $00 ; " | |
| .loop_3: | |
| ldd [hl], a | |
| dec b | |
| jr nz, .loop_3 | |
| dec c | |
| jr nz, .loop_3 | |
| Flush_VRAM:: | |
| ld hl, $9fff ; End of Video RAM | |
| ld c, $20 ; $2000 = Size of Video RAM | |
| xor a | |
| ld b, $00 | |
| .loop_4: | |
| ldd [hl], a | |
| dec b | |
| jr nz, .loop_4 | |
| dec c | |
| jr nz, .loop_4 | |
| ; Flush Object Attribute Memory (OAM) | |
| ld hl, $feff ; End of unusable hardware RAM | |
| ld b, $00 | |
| .loop_5: | |
| ldd [hl], a | |
| dec b | |
| jr nz, .loop_5 ; Flush 256 bytes from end of hardware RAM, including OAM | |
| ; Flush High RAM | |
| ld hl, $fffe ; End of High RAM | |
| ld b, $80 | |
| .loop_6: | |
| ldd [hl], a | |
| dec b | |
| jr nz, .loop_6 ; Flush 128 bytes (Entire HRAM) | |
| ; Copy DMA Transfer routine into HRAM | |
| ld c, $b6 ; Target location in HRAM | |
| ld b, $0c ; Routine length | |
| ld hl, $2a7f ; Source location in ROM | |
| .loop_7: | |
| ldi a, [hl] | |
| ldh [c], a | |
| inc c | |
| dec b | |
| jr nz, .loop_7 | |
| call Flush_BG1 | |
| call Sound_Init | |
| DEF rINTERRUPT_SERIAL EQU %00001001 | |
| ; * VBlank interrupt enabled | |
| ; * Serial interrupt enabled | |
| ; * everything else disabled | |
| ld a, rINTERRUPT_SERIAL | |
| ldh [rIE], a ; enable VBlank & Serial Interrupt | |
| ; Set up a few game variables | |
| ld a, GAME_TYPE_A | |
| ldh [rGAME_TYPE], a | |
| ld a, MUSIC_TYPE_A | |
| ldh [rMUSIC_TYPE], a | |
| ld a, MENU_COPYRIGHT_INIT | |
| ldh [rGAME_STATUS], a | |
| ld a, LCDC_ON | |
| ldh [rLCDC], a | |
| ei ; enable interrupts (VBlank interrupt handler can occur now) | |
| xor a | |
| ldh [rIF], a ; clear all interrupt flags | |
| ldh [rWY], a ; Set Window X & Y Position to initial | |
| ldh [rWX], a | |
| ldh [rTMA], a ; Clear the timer modulo | |
| .Main_Loop: | |
| call Read_Joypad | |
| call State_Machine | |
| call func_7ff0 | |
| ldh a, [rBUTTON_DOWN] | |
| and $0f | |
| cp $0f | |
| jp z, Screen_Setup ; if all directional keys are pressed, reset game | |
| ; Countdown both $ffa6 and $ffa7 by 1, if >0 | |
| ld hl, rCOUNTDOWN | |
| ld b, $02 | |
| .loop_8: | |
| ld a, [hl] | |
| and a | |
| jr z, .skip_1 | |
| dec [hl] ; if countdown is > 0, count one down | |
| .skip_1: | |
| inc l | |
| dec b | |
| jr nz, .loop_8 | |
| ldh a, [rPLAYERS] | |
| and a | |
| jr z, .wait_for_vblank | |
| ld a, rINTERRUPT_SERIAL | |
| ldh [rIE], a ; If in 2-player mode, enable serial interrupt | |
| .wait_for_vblank: | |
| ldh a, [rVBLANK_DONE] | |
| and a | |
| jr z, .wait_for_vblank ; Loop until VBlank handler has finished executing | |
| xor a | |
| ldh [rVBLANK_DONE], a | |
| jp .Main_Loop | |
| State_Machine:: | |
| ldh a, [rGAME_STATUS] | |
| rst $28 | |
| ; Big switch statement: | |
| ; (rst $28 jumps to following address, depending on current GAME_STATUS) | |
| db $ce, $1b ; MENU_IN_GAME => 1bce | |
| db $e2, $1c ; MENU_GAME_OVER_INIT => 1ce2 | |
| db $44, $12 ; MENU_ROCKET_1D => 1244 | |
| db $7b, $12 ; MENU_ROCKET_1E => 127b | |
| db $06, $1d ; MENU_GAME_OVER => 1d06 | |
| db $26, $1d ; MENU_TYPE_B_WON => 1d26 | |
| db $ae, $03 ; MENU_TITLE_INIT => 03ae | |
| db $79, $04 ; MENU_TITLE => 0479 | |
| db $44, $14 ; MENU_SELECT_TYPE_INIT => 1444 | |
| db $8c, $14 ; (unused) | |
| db $07, $1a ; MENU_IN_GAME_INIT => 1a07 | |
| db $c0, $1d ; MENU_SCORE_B => 1dc0 | |
| db $16, $1f ; (unknown) => 1f16 | |
| db $1f, $1f ; MENU_LOST_ANIM => 1f1f | |
| db $25, $15 ; MENU_SELECT_TYPE => 1525 | |
| db $b0, $14 ; MENU_SELECT_MUSIC => 14b0 | |
| db $7b, $15 ; MENU_LEVEL_A_INIT => 157b | |
| db $bf, $15 ; MENU_LEVEL_A => 15bf | |
| db $29, $16 ; MENU_LEVEL_B_INIT => 1629 | |
| db $7a, $16 ; MENU_LEVEL_B => 167a | |
| db $eb, $16 ; MENU_HIGH_B => 16eb | |
| db $13, $19 ; MENU_HISCORE => 1913 | |
| db $77, $06 ; MENU_VS_INIT => 0677 | |
| db $2c, $07 ; MENU_VS_MODE => 072c | |
| db $25, $08 ; MENU_VS_GAME_INIT => 0825 | |
| db $e4, $08 ; MENU_VS_GAME => 08e4 | |
| db $31, $0b ; (unknown) => 0b31 | |
| db $eb, $0c ; (unknown) => 0ceb | |
| db $d2, $0a ; (unknown) => 0ad2 | |
| db $32, $0d ; MENU_LUIGI_WON_INIT => 0d32 | |
| db $23, $0e ; MENU_LUIGI_LOST_INIT => 0e23 | |
| db $12, $11 ; (unknown) => 1112 | |
| db $99, $0d ; MENU_LUIGI_WON => 0d99 | |
| db $8a, $0e ; MENU_LUIGI_LOST => 0e8a | |
| db $ce, $1d ; MENU_CELEBRATE => 1dce | |
| db $41, $1e ; (unknown) => 1e41 | |
| db $69, $03 ; MENU_COPYRIGHT_INIT => 0369 | |
| db $93, $03 ; MENU_COPYRIGHT_1 => 0393 | |
| db $67, $11 ; MENU_ROCKET_1_INIT => 1167 | |
| db $e6, $11 ; MENU_ROCKET_1A => 11e6 | |
| db $fc, $11 ; MENU_ROCKET_1B => 11fc | |
| db $1c, $12 ; MENU_ROCKET_1C => 121c | |
| db $c7, $05 ; (unknown) => 05c7 | |
| db $f7, $05 ; (unknown) => 05f7 | |
| db $b3, $12 ; MENU_ROCKET_1F => 12b3 | |
| db $05, $13 ; MENU_ROCKET_1G => 1305 | |
| db $24, $13 ; MENU_ROCKET_2A => 1324 | |
| db $51, $13 ; MENU_ROCKET_2B => 1351 | |
| db $67, $13 ; MENU_ROCKET_2C => 1367 | |
| db $7e, $13 ; MENU_ROCKET_2D => 137e | |
| db $b5, $13 ; MENU_ROCKET_2E => 13b5 | |
| db $e5, $13 ; MENU_ROCKET_2F => 13e5 | |
| db $1b, $13 ; MENU_ROCKET_2_INIT => 131b | |
| db $a0, $03 ; MENU_COPYRIGHT_2 => 03a0 | |
| db $ea, $27 ; (unknown) => 27ea | |
| lbl_MENU_COPYRIGHT_INIT:: | |
| call WAIT_FOR_VBLANK | |
| call COPY_TITLE_TILES | |
| ld de, $4a07 ; Starting address of copyright screen tile map in ROM | |
| call COPY_TILEMAP | |
| call CLEAR_OAM_DATA | |
| ld hl, $c300 ; Copy some values into $c300+. Seems to be serial related | |
| ld de, $6450 | |
| .loop_12: | |
| ld a, [de] | |
| ldi [hl], a | |
| inc de | |
| ld a, h | |
| cp $c4 | |
| jr nz, .loop_12 | |
| ld a, LCDC_STANDARD | |
| ldh [rLCDC], a | |
| ld a, $fa ; ~ 4 seconds | |
| ldh [rCOUNTDOWN], a | |
| ld a, MENU_COPYRIGHT_1 | |
| ldh [rGAME_STATUS], a | |
| ret | |
| ; Wait until previous countdown is done, set a new one and change the game status to MENU_COPYRIGHT_2 | |
| lbl_MENU_COPYRIGHT_1:: | |
| ldh a, [rCOUNTDOWN] | |
| and a | |
| ret nz | |
| ld a, $fa ; ~ 4 seconds | |
| ldh [rCOUNTDOWN], a | |
| ld a, MENU_COPYRIGHT_2 | |
| ldh [rGAME_STATUS], a | |
| ret | |
| ; Wait until either previous countdown (4 secs) is done, or anz button was hit, then change game status to MENU_TITLE_INIT | |
| lbl_MENU_COPYRIGHT_2:: | |
| ldh a, [rBUTTON_HIT] | |
| and a | |
| jr nz, .skip_2 | |
| ldh a, [rCOUNTDOWN] | |
| and a | |
| ret nz | |
| .skip_2: | |
| ld a, MENU_TITLE_INIT | |
| ldh [rGAME_STATUS], a | |
| ret | |
| lbl_MENU_TITLE_INIT:: | |
| call WAIT_FOR_VBLANK | |
| xor a | |
| ldh [rUNUSED], a | |
| ldh [rBLOCK_STATUS], a | |
| ldh [rCLEAR_PROGRESS], a | |
| ldh [$ff00 + $9b], a | |
| ldh [$ff00 + $fb], a | |
| ldh [rLINES_CLEARED2], a | |
| ldh [rROW_UPDATE], a | |
| ldh [$ff00 + $c7], a | |
| call func_2293 | |
| call func_2651 | |
| call COPY_TITLE_TILES | |
| ld hl, $c800 | |
| l_03ce: | |
| ld a, $2f | |
| ldi [hl], a | |
| ld a, h | |
| cp $cc | |
| jr nz, l_03ce | |
| ld hl, $c801 | |
| call func_26a9 | |
| ld hl, $c80c | |
| call func_26a9 | |
| ld hl, $ca41 | |
| ld b, $0c | |
| ld a, $8e | |
| l_03e9: | |
| ldi [hl], a | |
| dec b | |
| jr nz, l_03e9 | |
| ld de, $4b6f | |
| call COPY_TILEMAP | |
| call CLEAR_OAM_DATA | |
| ld hl, $c000 ; Address of OAM data | |
| ld [hl], $80 ; Little arrow Y location | |
| inc l | |
| ld [hl], $10 ; Little arrow X location | |
| inc l | |
| ld [hl], $58 ; Little arrow tile address | |
| ld a, $03 | |
| ld [$dfe8], a | |
| ld a, LCDC_STANDARD | |
| ldh [rLCDC], a | |
| ld a, MENU_TITLE | |
| ldh [rGAME_STATUS], a | |
| ld a, $7d ; ~ 2 seconds | |
| ldh [rCOUNTDOWN], a | |
| ld a, $04 | |
| ldh [rMUSIC_COUNTDOWN], a | |
| ldh a, [rDEMO_GAME] | |
| and a | |
| ret nz | |
| ld a, $13 | |
| ldh [rMUSIC_COUNTDOWN], a | |
| ret | |
| PLAY_DEMO_GAME: | |
| ld a, GAME_TYPE_A | |
| ldh [rGAME_TYPE], a | |
| ld a, $09 | |
| ldh [rLEVEL_A], a ; set to level 9 | |
| xor a | |
| ldh [rPLAYERS], a ; 1 player mode | |
| ldh [rDEMO_STATUS], a | |
| ldh [rDEMO_BUTTON_HIT], a | |
| ldh [rDEMO_ACTION_COUNTDOWN], a | |
| ld a, $62 ; $62b0 = start address of first demo storyboard | |
| ldh [rDEMO_STORYBOARD_1], a | |
| ld a, $b0 | |
| ldh [rDEMO_STORYBOARD_2], a | |
| ldh a, [rDEMO_GAME] | |
| cp $02 | |
| ld a, $02 | |
| jr nz, .set_up_first_demo_game ; jump if NOT first demo game was played just now | |
| ; (if rDEMO_GAME = 2, then first demo was running. If not, jump.) | |
| ; set up second demo game: | |
| ld a, GAME_TYPE_B | |
| ldh [rGAME_TYPE], a | |
| ld a, $09 | |
| ldh [rLEVEL_B], a ; set to level 9 | |
| ld a, $02 | |
| ldh [rINITIAL_HEIGHT], a | |
| ld a, $63 ; $63b0 = start address of second demo storyboard | |
| ldh [rDEMO_STORYBOARD_1], a | |
| ld a, $b0 | |
| ldh [rDEMO_STORYBOARD_2], a | |
| ld a, $11 | |
| ldh [rDEMO_STATUS], a | |
| ld a, $01 | |
| .set_up_first_demo_game: | |
| ldh [rDEMO_GAME], a | |
| ld a, MENU_IN_GAME_INIT | |
| ldh [rGAME_STATUS], a ; start a normal in-game (called routines are mostly the same) | |
| call WAIT_FOR_VBLANK | |
| call COPY_IN_GAME_TILES | |
| ld de, $4cd7 ; start of tile map for game select screen | |
| call COPY_TILEMAP ; copy that tile map to VRAM (useless!) | |
| call CLEAR_OAM_DATA | |
| ld a, LCDC_STANDARD | |
| ldh [rLCDC], a | |
| ret | |
| func_0474: ; not used function | |
| ld a, $ff | |
| ldh [rUNUSED], a | |
| ret | |
| lbl_MENU_TITLE:: | |
| ldh a, [rCOUNTDOWN] | |
| and a | |
| jr nz, .skip_still_no_demo | |
| ld hl, rMUSIC_COUNTDOWN | |
| dec [hl] | |
| jr z, PLAY_DEMO_GAME | |
| ld a, $7d ; ~ 2 seconds | |
| ldh [rCOUNTDOWN], a | |
| .skip_still_no_demo: | |
| call WASTE_TIME | |
| ld a, $55 ; Something Serial Data related | |
| ldh [rSB], a | |
| ld a, $80 | |
| ldh [rSC], a | |
| ldh a, [$ff00 + $cc] | |
| and a | |
| jr z, .skip_title_serial_check | |
| ldh a, [$ff00 + $cb] | |
| and a | |
| jr nz, l_04d7 | |
| xor a | |
| ldh [$ff00 + $cc], a | |
| jr l_0509 | |
| .skip_title_serial_check: | |
| ldh a, [rBUTTON_HIT] | |
| ld b, a | |
| ldh a, [rPLAYERS] | |
| bit BTN_SELECT, b | |
| jr nz, MENU_TITLE_SELECT_BTN | |
| bit BTN_RIGHT, b | |
| jr nz, MENU_TITLE_RIGHT_BTN | |
| bit BTN_LEFT, b | |
| jr nz, MENU_TITLE_LEFT_BTN | |
| bit BTN_START, b | |
| ret z ; Return if no relevant button was pressed | |
| and a | |
| ld a, $08 | |
| jr z, first_player_selected ; jump if 1 player selected | |
| ld a, b | |
| cp $08 | |
| ret nz | |
| ldh a, [$ff00 + $cb] | |
| cp $29 | |
| jr z, l_04d7 | |
| ld a, $29 | |
| ldh [rSB], a | |
| ld a, $81 | |
| ldh [rSC], a | |
| l_04cd: | |
| ldh a, [$ff00 + $cc] | |
| and a | |
| jr z, l_04cd | |
| ldh a, [$ff00 + $cb] | |
| and a | |
| jr z, l_0509 | |
| l_04d7: | |
| ld a, $2a | |
| l_04d9: | |
| ldh [rGAME_STATUS], a | |
| xor a | |
| ldh [rCOUNTDOWN], a | |
| ldh [rLEVEL_A], a | |
| ldh [rLEVEL_B], a | |
| ldh [rINITIAL_HEIGHT], a | |
| ldh [rDEMO_GAME], a | |
| ret | |
| first_player_selected: | |
| push af | |
| ldh a, [rBUTTON_DOWN] | |
| bit BTN_DOWN, a | |
| jr z, .skip_hard_mode ; set hard mode only if (Start + Down) are pressed. | |
| ldh [rHARD_MODE], a | |
| .skip_hard_mode: | |
| pop af | |
| jr l_04d9 | |
| MENU_TITLE_SELECT_BTN: | |
| xor $01 ; toggles rPLAYERS value (i.e. 0 -> 1 and 1 -> 0) | |
| l_04f5: | |
| ldh [rPLAYERS], a | |
| and a | |
| ld a, $10 | |
| jr z, .move_arrow_left | |
| ld a, $60 ; move arrow right - left of "2PLAYER" text | |
| .move_arrow_left: | |
| ld [$c001], a ; X location of first OAM data entry (= title menu arrow) | |
| ret | |
| MENU_TITLE_RIGHT_BTN: | |
| and a | |
| ret nz ; return if rPLAYERS = 1 (i.e. 2 players) | |
| xor a | |
| jr MENU_TITLE_SELECT_BTN | |
| MENU_TITLE_LEFT_BTN: | |
| and a | |
| ret z ; return if rPLAYERS = 0 (i.e. 1 player) | |
| l_0509: | |
| xor a | |
| jr l_04f5 | |
| CHECK_DEMO_GAME_FINISHED:: | |
| ldh a, [rDEMO_GAME] | |
| and a | |
| ret z ; return if NOT in demo mode | |
| call WASTE_TIME | |
| xor a ; empty serial connection byte | |
| ldh [rSB], a | |
| ld a, $80 ; turn on serial connection and act as slave (allow receiving) | |
| ldh [rSC], a | |
| ldh a, [rBUTTON_HIT] | |
| bit BTN_START, a | |
| jr z, .dont_cancel_demo_game ; jump if Start button not pressed | |
| ; Start button pressed: | |
| ld a, $33 ; load byte $33 for starting a serial connection | |
| ldh [rSB], a | |
| ld a, $81 ; turn on serial connection and act as master (try sending) | |
| ldh [rSC], a | |
| ld a, MENU_TITLE_INIT ; quit demo game and return to main menu | |
| ldh [rGAME_STATUS], a | |
| ret | |
| .dont_cancel_demo_game: | |
| ld hl, rDEMO_STATUS | |
| ldh a, [rDEMO_GAME] | |
| cp $02 ; if is currently running the first demo game, ... | |
| ld b, $10 | |
| jr z, .skip_3 | |
| ld b, $1d | |
| .skip_3: ; ... then set b to $10, otherwise set b to $1d. | |
| ld a, [hl] | |
| cp b | |
| ret nz ; if rDEMO_STATUS not equal b then keep going, ... | |
| ld a, MENU_TITLE_INIT ; ... otherwise return to main menu. | |
| ldh [rGAME_STATUS], a ; (rDEMO_STATUS increases with each block, game 1 goes from $03 to $09, game 2 from $14 to $1c) | |
| ret | |
| ; This function reads from the storyboard a button configuration and a frame number, how long to hold the buttons (or none) | |
| ; Actual button pressed are stored and replaced by these simulated presses. | |
| SIMULATE_BUTTON_PRESSES:: | |
| ldh a, [rDEMO_GAME] | |
| and a | |
| ret z ; return if NOT in demo mode | |
| ldh a, [rUNUSED] | |
| cp $ff | |
| ret z ; always false | |
| ldh a, [rDEMO_ACTION_COUNTDOWN] | |
| and a | |
| jr z, .retrieve_next_action ; jump if countdown reached zero | |
| dec a | |
| ldh [rDEMO_ACTION_COUNTDOWN], a ; countdown by 1 | |
| jr .clear_real_button_press | |
| .retrieve_next_action: | |
| ldh a, [rDEMO_STORYBOARD_1] | |
| ld h, a | |
| ldh a, [rDEMO_STORYBOARD_2] | |
| ld l, a ; load the current storyboard address into hl | |
| ldi a, [hl] ; get first value at address -> supposed button press | |
| ld b, a | |
| ldh a, [rDEMO_BUTTON_HIT] | |
| xor b | |
| and b | |
| ldh [rBUTTON_HIT], a ; set (actual) button hit to the new button presses. | |
| ; if any button is pressed twice in a row, turn it off now. | |
| ld a, b | |
| ldh [rDEMO_BUTTON_HIT], a ; (also save it at rDEMO_BUTTON_HIT) | |
| ldi a, [hl] ; load the button press duration from storyboard | |
| ldh [rDEMO_ACTION_COUNTDOWN], a | |
| ld a, h | |
| ldh [rDEMO_STORYBOARD_1], a | |
| ld a, l | |
| ldh [rDEMO_STORYBOARD_2], a ; put the next storyboard address into rDEMO_STORYBOARD_n | |
| jr .store_actual_button_press | |
| .clear_real_button_press: | |
| xor a | |
| ldh [rBUTTON_HIT], a | |
| .store_actual_button_press: | |
| ldh a, [rBUTTON_DOWN] | |
| ldh [rDEMO_ACTUAL_BUTTON], a ; store actual button presses into rDEMO_ACTUAL_BUTTON | |
| ldh a, [rDEMO_BUTTON_HIT] | |
| ldh [rBUTTON_DOWN], a ; replace them with the simulated buttons from the demo storyboard | |
| ret | |
| ; 057D - unused code | |
| xor a | |
| ldh [rDEMO_BUTTON_HIT], a | |
| jr .clear_real_button_press | |
| ret | |
| USELESS_FUNCTION:: | |
| ldh a, [rDEMO_GAME] | |
| and a | |
| ret z ; return if NOT demo mode | |
| ldh a, [rUNUSED] | |
| cp $ff | |
| ret nz ; always true - always return | |
| ; function never executed: | |
| ldh a, [rBUTTON_DOWN] | |
| ld b, a | |
| ldh a, [rDEMO_BUTTON_HIT] | |
| cp b | |
| jr z, l_05ad | |
| ldh a, [rDEMO_STORYBOARD_1] | |
| ld h, a | |
| ldh a, [rDEMO_STORYBOARD_2] | |
| ld l, a | |
| ldh a, [rDEMO_BUTTON_HIT] | |
| ldi [hl], a | |
| ldh a, [rDEMO_ACTION_COUNTDOWN] | |
| ldi [hl], a | |
| ld a, h | |
| ldh [rDEMO_STORYBOARD_1], a | |
| ld a, l | |
| ldh [rDEMO_STORYBOARD_2], a | |
| ld a, b | |
| ldh [rDEMO_BUTTON_HIT], a | |
| xor a | |
| ldh [rDEMO_ACTION_COUNTDOWN], a | |
| ret | |
| l_05ad: | |
| ldh a, [rDEMO_ACTION_COUNTDOWN] | |
| inc a | |
| ldh [rDEMO_ACTION_COUNTDOWN], a | |
| ret | |
| RESTORE_BUTTON_PRESSES:: | |
| ldh a, [rDEMO_GAME] | |
| and a | |
| ret z ; return if NOT in demo game | |
| ldh a, [rUNUSED] | |
| and a | |
| ret nz | |
| ldh a, [rDEMO_ACTUAL_BUTTON] | |
| ldh [rBUTTON_DOWN], a ; restore stored real button presses at begin of menu_in_game function | |
| ret | |
| l_05c0: | |
| ld hl, $ff02 | |
| set 7, [hl] | |
| jr l_05d1 | |
| l_05c7: | |
| ld a, $03 | |
| ldh [$ff00 + $cd], a | |
| ldh a, [$ff00 + $cb] | |
| cp $29 | |
| jr nz, l_05c0 | |
| l_05d1: | |
| call func_144f | |
| ld a, $80 | |
| ld [rNEXT_BLOCK_VISIBILITY], a | |
| call func_2671 | |
| ldh [rREQUEST_SERIAL_TRANSFER], a | |
| xor a | |
| ldh [rSB], a | |
| ldh [rSB_DATA], a | |
| ldh [$ff00 + $dc], a | |
| ldh [$ff00 + $d2], a | |
| ldh [$ff00 + $d3], a | |
| ldh [$ff00 + $d4], a | |
| ldh [$ff00 + $d5], a | |
| ldh [rROW_UPDATE], a | |
| call Sound_Init | |
| ld a, $2b | |
| ldh [rGAME_STATUS], a | |
| ret | |
| func_05f7: | |
| ldh a, [$ff00 + $cb] | |
| cp $29 | |
| jr z, l_0613 | |
| ldh a, [$ff00 + $f0] | |
| and a | |
| jr z, l_0620 | |
| xor a | |
| ldh [$ff00 + $f0], a | |
| ld de, rBLOCK_Y | |
| call func_1492 | |
| call func_1517 | |
| call func_2671 | |
| jr l_0620 | |
| l_0613: | |
| ldh a, [rBUTTON_HIT] | |
| bit 0, a | |
| jr nz, l_0620 | |
| bit 3, a | |
| jr nz, l_0620 | |
| call func_14b0 | |
| l_0620: | |
| ldh a, [$ff00 + $cb] | |
| cp $29 | |
| jr z, l_0644 | |
| ldh a, [$ff00 + $cc] | |
| and a | |
| ret z | |
| xor a | |
| ldh [$ff00 + $cc], a | |
| ld a, $39 | |
| ldh [rSB_DATA], a | |
| ldh a, [$ff00 + $d0] | |
| cp $50 | |
| jr z, l_0664 | |
| ld b, a | |
| ldh a, [$ff00 + $c1] | |
| cp b | |
| ret z | |
| ld a, b | |
| ldh [$ff00 + $c1], a | |
| ld a, $01 | |
| ldh [$ff00 + $f0], a | |
| ret | |
| l_0644: | |
| ldh a, [rBUTTON_HIT] | |
| bit 3, a | |
| jr nz, l_066c | |
| bit 0, a | |
| jr nz, l_066c | |
| ldh a, [$ff00 + $cc] | |
| and a | |
| ret z | |
| xor a | |
| ldh [$ff00 + $cc], a | |
| ldh a, [rSB_DATA] | |
| cp $50 | |
| jr z, l_0664 | |
| ldh a, [$ff00 + $c1] | |
| l_065d: | |
| ldh [rSB_DATA], a | |
| ld a, $01 | |
| ldh [rREQUEST_SERIAL_TRANSFER], a | |
| ret | |
| l_0664: | |
| call CLEAR_OAM_DATA | |
| ld a, $16 | |
| ldh [rGAME_STATUS], a | |
| ret | |
| l_066c: | |
| ld a, $50 | |
| jr l_065d | |
| l_0670: | |
| ld hl, $ff02 | |
| set 7, [hl] | |
| jr l_0696 | |
| ld a, $03 | |
| ldh [$ff00 + $cd], a | |
| ldh a, [$ff00 + $cb] | |
| cp $29 | |
| jr nz, l_0670 | |
| call func_0aa1 | |
| call func_0aa1 | |
| call func_0aa1 | |
| ld b, $00 | |
| ld hl, $c300 | |
| l_068f: | |
| call func_0aa1 | |
| ldi [hl], a | |
| dec b | |
| jr nz, l_068f | |
| l_0696: | |
| call WAIT_FOR_VBLANK | |
| call COPY_IN_GAME_TILES | |
| ld de, $5214 | |
| call COPY_TILEMAP | |
| call CLEAR_OAM_DATA | |
| ld a, $2f | |
| call func_1fdd | |
| ld a, $03 | |
| ldh [rREQUEST_SERIAL_TRANSFER], a | |
| xor a | |
| ldh [rSB], a | |
| ldh [rSB_DATA], a | |
| ldh [$ff00 + $dc], a | |
| ldh [$ff00 + $d2], a | |
| ldh [$ff00 + $d3], a | |
| ldh [$ff00 + $d4], a | |
| ldh [$ff00 + $d5], a | |
| ldh [rROW_UPDATE], a | |
| l_06bf: | |
| ldh [$ff00 + $cc], a | |
| ld hl, $c400 | |
| ld b, $0a | |
| ld a, $28 | |
| l_06c8: | |
| ldi [hl], a | |
| dec b | |
| jr nz, l_06c8 | |
| ldh a, [$ff00 + $d6] | |
| and a | |
| jp nz, l_076d | |
| call func_1517 | |
| ld a, $d3 | |
| ldh [$ff00 + $40], a | |
| ld hl, $c080 | |
| l_06dc: | |
| ld de, $0705 | |
| ld b, $20 | |
| l_06e1: | |
| call func_0725 | |
| ld hl, rBLOCK_VISIBILITY | |
| ld de, $26ed | |
| ld c, $02 | |
| call func_1776 | |
| call func_080e | |
| call func_2671 | |
| xor a | |
| ldh [$ff00 + $d7], a | |
| ldh [$ff00 + $d8], a | |
| ldh [$ff00 + $d9], a | |
| ldh [$ff00 + $da], a | |
| ldh [$ff00 + $db], a | |
| ld a, $17 | |
| ldh [rGAME_STATUS], a | |
| ret | |
| db $40, $28, $AE, $00, $40, $30, $AE, $20, $48, $28, $AF, $00 | |
| db $48, $30, $AF, $20, $78, $28, $C0, $00, $78, $30, $C0, $20 | |
| db $80, $28, $C1, $00, $80, $30, $C1, $20 | |
| func_0725: | |
| ld a, [de] | |
| ldi [hl], a | |
| inc de | |
| dec b | |
| jr nz, func_0725 | |
| ret | |
| ldh a, [$ff00 + $cb] | |
| cp $29 | |
| jr z, l_0755 | |
| ldh a, [$ff00 + $cc] | |
| and a | |
| jr z, l_074a | |
| ldh a, [$ff00 + $d0] | |
| cp $60 | |
| jr z, l_076a | |
| cp $06 | |
| jr nc, l_0743 | |
| ldh [$ff00 + $ac], a | |
| l_0743: | |
| ldh a, [$ff00 + $ad] | |
| ldh [rSB_DATA], a | |
| xor a | |
| ldh [$ff00 + $cc], a | |
| l_074a: | |
| ld de, rNEXT_BLOCK_VISIBILITY | |
| call func_1766 | |
| ld hl, $ffad | |
| jr l_07bd | |
| l_0755: | |
| ldh a, [rBUTTON_HIT] | |
| bit 3, a | |
| jr z, l_075f | |
| ld a, $60 | |
| jr l_07ac | |
| l_075f: | |
| ldh a, [$ff00 + $cc] | |
| and a | |
| jr z, l_07b4 | |
| ldh a, [rSB_DATA] | |
| cp $60 | |
| jr nz, l_07a2 | |
| l_076a: | |
| call CLEAR_OAM_DATA | |
| l_076d: | |
| ldh a, [$ff00 + $d6] | |
| and a | |
| jr nz, l_078a | |
| ld a, $18 | |
| ldh [rGAME_STATUS], a | |
| ldh a, [$ff00 + $cb] | |
| cp $29 | |
| ret nz | |
| xor a | |
| ldh [$ff00 + $a0], a | |
| ld a, $06 | |
| ld de, $ffe0 | |
| ld hl, $c9a2 | |
| call func_1b68 | |
| ret | |
| l_078a: | |
| ldh a, [$ff00 + $cb] | |
| cp $29 | |
| l_078e: | |
| jp nz, l_0828 | |
| xor a | |
| ldh [$ff00 + $a0], a | |
| ld a, $06 | |
| ld de, $ffe0 | |
| ld hl, $c9a2 | |
| call func_1b68 | |
| jp l_0828 | |
| l_07a2: | |
| ldh a, [$ff00 + $d0] | |
| cp $06 | |
| jr nc, l_07aa | |
| ldh [$ff00 + $ad], a | |
| l_07aa: | |
| ldh a, [$ff00 + $ac] | |
| l_07ac: | |
| ldh [rSB_DATA], a | |
| xor a | |
| ldh [$ff00 + $cc], a | |
| inc a | |
| ldh [rREQUEST_SERIAL_TRANSFER], a | |
| l_07b4: | |
| ld de, rBLOCK_VISIBILITY | |
| call func_1766 | |
| ld hl, $ffac | |
| l_07bd: | |
| ld a, [hl] | |
| bit 4, b | |
| jr nz, l_07d6 | |
| bit 5, b | |
| jr nz, l_07e8 | |
| bit 6, b | |
| jr nz, l_07ee | |
| bit 7, b | |
| jr z, l_07e1 | |
| cp $03 | |
| jr nc, l_07e1 | |
| add a, $03 | |
| jr l_07db | |
| l_07d6: | |
| cp $05 | |
| jr z, l_07e1 | |
| inc a | |
| l_07db: | |
| ld [hl], a | |
| ld a, $01 | |
| ld [$dfe0], a | |
| l_07e1: | |
| call func_080e | |
| call func_2671 | |
| ret | |
| l_07e8: | |
| and a | |
| jr z, l_07e1 | |
| dec a | |
| jr l_07db | |
| l_07ee: | |
| cp $03 | |
| jr c, l_07e1 | |
| sub a, $03 | |
| jr l_07db | |
| ;data $7f6 - 80d (incl.) | |
| db $40, $60, $40, $70, $40, $80, $50, $60, $50, $70, $50, $80 | |
| db $78, $60, $78, $70, $78, $80, $88, $60, $88, $70, $88, $80 | |
| func_080e: | |
| ldh a, [$ff00 + $ac] | |
| ld de, rBLOCK_Y | |
| ld hl, $07f6 | |
| call func_1755 | |
| ldh a, [$ff00 + $ad] | |
| ld de, rNEXT_BLOCK_Y | |
| ld hl, $0802 | |
| call func_1755 | |
| ret | |
| call WAIT_FOR_VBLANK | |
| l_0828: | |
| xor a | |
| ld [rNEXT_BLOCK_VISIBILITY], a | |
| ldh [rBLOCK_STATUS], a | |
| ldh [rCLEAR_PROGRESS], a | |
| ldh [$ff00 + $9b], a | |
| ldh [$ff00 + $fb], a | |
| ldh [rLINES_CLEARED2], a | |
| ldh [$ff00 + $cc], a | |
| ldh [rSB], a | |
| ldh [rREQUEST_SERIAL_TRANSFER], a | |
| ldh [$ff00 + $d0], a | |
| ldh [rSB_DATA], a | |
| ldh [$ff00 + $d1], a | |
| call func_2651 | |
| call func_2293 | |
| call func_1ff2 | |
| xor a | |
| ldh [rROW_UPDATE], a | |
| call CLEAR_OAM_DATA | |
| ld de, $537c | |
| push de | |
| ld a, $01 | |
| ldh [$ff00 + $a9], a | |
| ldh [rPLAYERS], a | |
| call COPY_TILEMAP | |
| l_085e: | |
| pop de | |
| ld hl, $9c00 | |
| call COPY_TILEMAP_B | |
| ld de, $2839 | |
| ld hl, $9c63 | |
| ld c, $0a | |
| call func_1f7d | |
| ld hl, rBLOCK_VISIBILITY | |
| ld de, $26bf | |
| call func_26b6 | |
| ld hl, rNEXT_BLOCK_VISIBILITY | |
| ld de, $26c7 | |
| call func_26b6 | |
| ld hl, $9951 | |
| ld a, $30 | |
| ldh [rLINES_CLEARED1], a | |
| ld [hl], $00 | |
| dec l | |
| ld [hl], $03 | |
| call func_1ae8 | |
| xor a | |
| ldh [$ff00 + $a0], a | |
| ldh a, [$ff00 + $cb] | |
| cp $29 | |
| ld de, $08d4 | |
| ldh a, [$ff00 + $ac] | |
| jr z, l_08a4 | |
| ld de, $08c4 | |
| ldh a, [$ff00 + $ad] | |
| l_08a4: | |
| ld hl, $98b0 | |
| ld [hl], a | |
| ld h, $9c | |
| ld [hl], a | |
| ld hl, $c080 | |
| ld b, $10 | |
| call func_0725 | |
| ld a, $77 | |
| ldh [$ff00 + $c0], a | |
| ld a, $d3 | |
| ldh [$ff00 + $40], a | |
| ld a, $19 | |
| ldh [rGAME_STATUS], a | |
| ld a, $01 | |
| ldh [$ff00 + $cd], a | |
| ret | |
| db $18, $84, $C0, $00, $18, $8C, $C0, $20, $20, $84, $C1, $00 | |
| db $20, $8C, $C1, $20, $18, $84, $AE, $00, $18, $8C, $AE, $20 | |
| db $20, $84, $AF, $00, $20, $8C, $AF | |
| jr nz, l_0923 | |
| ld [$ffe0], sp | |
| xor a | |
| ldh [$ff00 + $0f], a | |
| ldh a, [$ff00 + $cb] | |
| l_08ed: | |
| cp $29 | |
| jp nz, l_09f6 | |
| l_08f2: | |
| call WASTE_TIME | |
| call WASTE_TIME | |
| xor a | |
| ldh [$ff00 + $cc], a | |
| ld a, $29 | |
| l_08fd: | |
| ldh [rSB], a | |
| ld a, $81 | |
| ldh [rSC], a | |
| l_0903: | |
| ldh a, [$ff00 + $cc] | |
| and a | |
| jr z, l_0903 | |
| ldh a, [rSB] | |
| cp $55 | |
| jr nz, l_08f2 | |
| ld de, $0016 | |
| ld c, $0a | |
| ld hl, $c902 | |
| l_0916: | |
| ld b, $0a | |
| l_0918: | |
| xor a | |
| ldh [$ff00 + $cc], a | |
| call WASTE_TIME | |
| ldi a, [hl] | |
| ldh [rSB], a | |
| ld a, $81 | |
| l_0923: | |
| ldh [rSC], a | |
| l_0925: | |
| ldh a, [$ff00 + $cc] | |
| and a | |
| jr z, l_0925 | |
| dec b | |
| jr nz, l_0918 | |
| add hl, de | |
| dec c | |
| jr nz, l_0916 | |
| ldh a, [$ff00 + $ac] | |
| cp $05 | |
| jr z, l_0974 | |
| ld hl, $ca22 | |
| ld de, $0040 | |
| l_093d: | |
| add hl, de | |
| inc a | |
| cp $05 | |
| jr nz, l_093d | |
| ld de, $ca22 | |
| ld c, $0a | |
| l_0948: | |
| ld b, $0a | |
| l_094a: | |
| ld a, [de] | |
| ldi [hl], a | |
| inc e | |
| dec b | |
| jr nz, l_094a | |
| push de | |
| ld de, $ffd6 | |
| add hl, de | |
| pop de | |
| push hl | |
| ld hl, $ffd6 | |
| add hl, de | |
| push hl | |
| pop de | |
| pop hl | |
| dec c | |
| jr nz, l_0948 | |
| ld de, $ffd6 | |
| l_0964: | |
| ld b, $0a | |
| ld a, h | |
| cp $c8 | |
| jr z, l_0974 | |
| ld a, $2f | |
| l_096d: | |
| ldi [hl], a | |
| dec b | |
| jr nz, l_096d | |
| add hl, de | |
| jr l_0964 | |
| l_0974: | |
| call WASTE_TIME | |
| call WASTE_TIME | |
| xor a | |
| ldh [$ff00 + $cc], a | |
| ld a, $29 | |
| ldh [rSB], a | |
| ld a, $81 | |
| ldh [rSC], a | |
| l_0985: | |
| ldh a, [$ff00 + $cc] | |
| and a | |
| jr z, l_0985 | |
| ldh a, [rSB] | |
| cp $55 | |
| jr nz, l_0974 | |
| ld hl, $c300 | |
| ld b, $00 | |
| l_0995: | |
| xor a | |
| ldh [$ff00 + $cc], a | |
| ldi a, [hl] | |
| call WASTE_TIME | |
| ldh [rSB], a | |
| ld a, $81 | |
| ldh [rSC], a | |
| l_09a2: | |
| ldh a, [$ff00 + $cc] | |
| and a | |
| jr z, l_09a2 | |
| inc b | |
| jr nz, l_0995 | |
| l_09aa: | |
| call WASTE_TIME | |
| call WASTE_TIME | |
| xor a | |
| ldh [$ff00 + $cc], a | |
| ld a, $30 | |
| ldh [rSB], a | |
| ld a, $81 | |
| ldh [rSC], a | |
| l_09bb: | |
| ldh a, [$ff00 + $cc] | |
| and a | |
| jr z, l_09bb | |
| ldh a, [rSB] | |
| cp $56 | |
| jr nz, l_09aa | |
| l_09c6: | |
| call func_0a8c | |
| ld a, $09 | |
| ldh [$ff00 + $ff], a | |
| ld a, $1c | |
| ldh [rGAME_STATUS], a | |
| ld a, $02 | |
| ldh [rROW_UPDATE], a | |
| ld a, $03 | |
| ldh [$ff00 + $cd], a | |
| ldh a, [$ff00 + $cb] | |
| cp $29 | |
| jr z, l_09e4 | |
| ld hl, $ff02 | |
| set 7, [hl] | |
| l_09e4: | |
| ld hl, $c300 | |
| ldi a, [hl] | |
| ld [rBLOCK_TYPE], a | |
| ldi a, [hl] | |
| ld [rNEXT_BLOCK_TYPE], a | |
| ld a, h | |
| ldh [$ff00 + $af], a | |
| ld a, l | |
| ldh [rDEMO_STATUS], a | |
| ret | |
| l_09f6: | |
| ldh a, [$ff00 + $ad] | |
| inc a | |
| ld b, a | |
| ld hl, $ca42 | |
| ld de, $ffc0 | |
| l_0a00: | |
| dec b | |
| jr z, l_0a06 | |
| add hl, de | |
| jr l_0a00 | |
| l_0a06: | |
| call WASTE_TIME | |
| xor a | |
| ldh [$ff00 + $cc], a | |
| ld a, $55 | |
| ldh [rSB], a | |
| ld a, $80 | |
| ldh [rSC], a | |
| l_0a14: | |
| ldh a, [$ff00 + $cc] | |
| and a | |
| jr z, l_0a14 | |
| ldh a, [rSB] | |
| cp $29 | |
| jr nz, l_0a06 | |
| ld de, $0016 | |
| ld c, $0a | |
| l_0a24: | |
| ld b, $0a | |
| l_0a26: | |
| xor a | |
| ldh [$ff00 + $cc], a | |
| ldh [rSB], a | |
| ld a, $80 | |
| ldh [rSC], a | |
| l_0a2f: | |
| ldh a, [$ff00 + $cc] | |
| and a | |
| jr z, l_0a2f | |
| ldh a, [rSB] | |
| ldi [hl], a | |
| dec b | |
| jr nz, l_0a26 | |
| add hl, de | |
| dec c | |
| jr nz, l_0a24 | |
| l_0a3e: | |
| call WASTE_TIME | |
| xor a | |
| ldh [$ff00 + $cc], a | |
| ld a, $55 | |
| ldh [rSB], a | |
| ld a, $80 | |
| ldh [rSC], a | |
| l_0a4c: | |
| ldh a, [$ff00 + $cc] | |
| and a | |
| jr z, l_0a4c | |
| ldh a, [rSB] | |
| cp $29 | |
| jr nz, l_0a3e | |
| ld b, $00 | |
| ld hl, $c300 | |
| l_0a5c: | |
| xor a | |
| ldh [$ff00 + $cc], a | |
| ldh [rSB], a | |
| ld a, $80 | |
| ldh [rSC], a | |
| l_0a65: | |
| ldh a, [$ff00 + $cc] | |
| and a | |
| jr z, l_0a65 | |
| ldh a, [rSB] | |
| ldi [hl], a | |
| inc b | |
| jr nz, l_0a5c | |
| l_0a70: | |
| call WASTE_TIME | |
| xor a | |
| ldh [$ff00 + $cc], a | |
| ld a, $56 | |
| ldh [rSB], a | |
| ld a, $80 | |
| ldh [rSC], a | |
| l_0a7e: | |
| ldh a, [$ff00 + $cc] | |
| and a | |
| jr z, l_0a7e | |
| ldh a, [rSB] | |
| cp $30 | |
| jr nz, l_0a70 | |
| jp l_09c6 | |
| func_0a8c: | |
| ld hl, $ca42 | |
| ld a, $80 | |
| ld b, $0a | |
| l_0a93: | |
| ldi [hl], a | |
| dec b | |
| jr nz, l_0a93 | |
| ret | |
| WASTE_TIME:: | |
| push bc | |
| ld b, $fa | |
| l_0a9b: | |
| ld b, b | |
| dec b | |
| jr nz, l_0a9b | |
| pop bc | |
| ret | |
| func_0aa1: | |
| push hl | |
| push bc | |
| ldh a, [$ff00 + $fc] | |
| and $fc | |
| ld c, a | |
| ld h, $03 | |
| l_0aaa: | |
| ldh a, [$ff00 + $04] | |
| ld b, a | |
| l_0aad: | |
| xor a | |
| l_0aae: | |
| dec b | |
| jr z, l_0abb | |
| inc a | |
| inc a | |
| inc a | |
| inc a | |
| cp $1c | |
| jr z, l_0aad | |
| jr l_0aae | |
| l_0abb: | |
| ld d, a | |
| ldh a, [$ff00 + $ae] | |
| ld e, a | |
| dec h | |
| jr z, l_0ac9 | |
| or d | |
| or c | |
| and $fc | |
| cp c | |
| jr z, l_0aaa | |
| l_0ac9: | |
| ld a, d | |
| ldh [$ff00 + $ae], a | |
| ld a, e | |
| ldh [$ff00 + $fc], a | |
| pop bc | |
| pop hl | |
| ret | |
| ld a, $01 | |
| ldh [$ff00 + $ff], a | |
| ldh a, [rROW_UPDATE] | |
| and a | |
| jr nz, l_0b02 | |
| ld b, $44 | |
| ld c, $20 | |
| call func_113f | |
| ld a, $02 | |
| ldh [$ff00 + $cd], a | |
| ld a, [$c0de] | |
| and a | |
| jr z, l_0af1 | |
| ld a, $80 | |
| ld [rNEXT_BLOCK_VISIBILITY], a | |
| l_0af1: | |
| call func_2683 | |
| call func_2696 | |
| call func_1517 | |
| xor a | |
| ldh [$ff00 + $d6], a | |
| ld a, $1a | |
| ldh [rGAME_STATUS], a | |
| ret | |
| l_0b02: | |
| cp $05 | |
| ret nz | |
| ld hl, $c030 | |
| ld b, $12 | |
| l_0b0a: | |
| ld [hl], $f0 | |
| inc hl | |
| ld [hl], $10 | |
| inc hl | |
| ld [hl], $b6 | |
| inc hl | |
| ld [hl], $80 | |
| inc hl | |
| dec b | |
| jr nz, l_0b0a | |
| ld a, [$c3ff] | |
| l_0b1c: | |
| ld b, $0a | |
| ld hl, $c400 | |
| l_0b21: | |
| dec a | |
| jr z, l_0b2a | |
| inc l | |
| dec b | |
| jr nz, l_0b21 | |
| jr l_0b1c | |
| l_0b2a: | |
| ld [hl], $2f | |
| ld a, $03 | |
| ldh [rREQUEST_SERIAL_TRANSFER], a | |
| ret | |
| ld a, $01 | |
| ldh [$ff00 + $ff], a | |
| ld hl, $c09c | |
| xor a | |
| ldi [hl], a | |
| ld [hl], $50 | |
| inc l | |
| ld [hl], $27 | |
| inc l | |
| ld [hl], $00 | |
| call START_SELECT_HANDLER | |
| call func_1c88 | |
| call func_24bb | |
| call func_209c | |
| call func_213e | |
| call func_25a1 | |
| call func_224d | |
| call func_0b9b | |
| ldh a, [$ff00 + $d5] | |
| and a | |
| jr z, l_0b73 | |
| ld a, $77 | |
| ldh [rSB_DATA], a | |
| ldh [$ff00 + $b1], a | |
| ld a, $aa | |
| ldh [$ff00 + $d1], a | |
| ld a, $1b | |
| ldh [rGAME_STATUS], a | |
| ld a, $05 | |
| ldh [rCOUNTDOWN2], a | |
| jr l_0b83 | |
| l_0b73: | |
| ldh a, [rGAME_STATUS] | |
| cp $01 | |
| jr nz, l_0b94 | |
| ld a, $aa | |
| ldh [rSB_DATA], a | |
| ldh [$ff00 + $b1], a | |
| ld a, $77 | |
| ldh [$ff00 + $d1], a | |
| l_0b83: | |
| xor a | |
| ldh [$ff00 + $dc], a | |
| ldh [$ff00 + $d2], a | |
| ldh [$ff00 + $d3], a | |
| ldh [$ff00 + $d4], a | |
| ldh a, [$ff00 + $cb] | |
| cp $29 | |
| jr nz, l_0b94 | |
| ldh [rREQUEST_SERIAL_TRANSFER], a | |
| l_0b94: | |
| call func_0bf0 | |
| call func_0c8c | |
| ret | |
| func_0b9b: | |
| ld de, $0020 | |
| ld hl, $c802 | |
| ld a, $2f | |
| ld c, $12 | |
| l_0ba5: | |
| ld b, $0a | |
| push hl | |
| l_0ba8: | |
| cp [hl] | |
| jr nz, l_0bb5 | |
| inc hl | |
| dec b | |
| jr nz, l_0ba8 | |
| pop hl | |
| add hl, de | |
| dec c | |
| jr nz, l_0ba5 | |
| push hl | |
| l_0bb5: | |
| pop hl | |
| ld a, c | |
| ldh [$ff00 + $b1], a | |
| cp $0c | |
| ld a, [$dfe9] | |
| jr nc, l_0bc7 | |
| cp $08 | |
| ret nz | |
| call func_1517 | |
| ret | |
| l_0bc7: | |
| cp $08 | |
| ret z | |
| ld a, [$dff0] | |
| cp $02 | |
| ret z | |
| ld a, $08 | |
| ld [$dfe8], a | |
| ret | |
| l_0bd6: | |
| ldh a, [$ff00 + $cb] | |
| cp $29 | |
| jr z, l_0c2e | |
| ld a, $01 | |
| ld [rPAUSED], a | |
| ldh [$ff00 + $ab], a | |
| ldh a, [rSB_DATA] | |
| ldh [$ff00 + $f1], a | |
| xor a | |
| ldh [$ff00 + $f2], a | |
| ldh [rSB_DATA], a | |
| call func_1ccb | |
| ret | |
| func_0bf0: | |
| ldh a, [$ff00 + $cc] | |
| and a | |
| ret z | |
| ld hl, $c030 | |
| ld de, $0004 | |
| xor a | |
| ldh [$ff00 + $cc], a | |
| ldh a, [$ff00 + $d0] | |
| cp $aa | |
| jr z, l_0c64 | |
| cp $77 | |
| jr z, l_0c50 | |
| cp $94 | |
| jr z, l_0bd6 | |
| ld b, a | |
| and a | |
| jr z, l_0c60 | |
| bit 7, a | |
| jr nz, l_0c82 | |
| cp $13 | |
| jr nc, l_0c2e | |
| ld a, $12 | |
| sub a, b | |
| ld c, a | |
| inc c | |
| l_0c1c: | |
| ld a, $98 | |
| l_0c1e: | |
| ld [hl], a | |
| add hl, de | |
| sub a, $08 | |
| dec b | |
| jr nz, l_0c1e | |
| l_0c25: | |
| ld a, $f0 | |
| l_0c27: | |
| dec c | |
| jr z, l_0c2e | |
| ld [hl], a | |
| add hl, de | |
| jr l_0c27 | |
| l_0c2e: | |
| ldh a, [$ff00 + $dc] | |
| and a | |
| jr z, l_0c3a | |
| or $80 | |
| ldh [$ff00 + $b1], a | |
| xor a | |
| ldh [$ff00 + $dc], a | |
| l_0c3a: | |
| ld a, $ff | |
| ldh [$ff00 + $d0], a | |
| ldh a, [$ff00 + $cb] | |
| cp $29 | |
| ldh a, [$ff00 + $b1] | |
| jr nz, l_0c4d | |
| ldh [rSB_DATA], a | |
| ld a, $01 | |
| ldh [rREQUEST_SERIAL_TRANSFER], a | |
| ret | |
| l_0c4d: | |
| ldh [rSB_DATA], a | |
| ret | |
| l_0c50: | |
| ldh a, [$ff00 + $d1] | |
| cp $aa | |
| jr z, l_0c7c | |
| ld a, $77 | |
| ldh [$ff00 + $d1], a | |
| ld a, $01 | |
| ldh [rGAME_STATUS], a | |
| jr l_0c2e | |
| l_0c60: | |
| ld c, $13 | |
| jr l_0c25 | |
| l_0c64: | |
| ldh a, [$ff00 + $d1] | |
| cp $77 | |
| jr z, l_0c7c | |
| ld a, $aa | |
| ldh [$ff00 + $d1], a | |
| ld a, $1b | |
| ldh [rGAME_STATUS], a | |
| ld a, $05 | |
| ldh [rCOUNTDOWN2], a | |
| ld c, $01 | |
| ld b, $12 | |
| jr l_0c1c | |
| l_0c7c: | |
| ld a, $01 | |
| ldh [$ff00 + $ef], a | |
| jr l_0c2e | |
| l_0c82: | |
| and $7f | |
| cp $05 | |
| jr nc, l_0c2e | |
| ldh [$ff00 + $d2], a | |
| jr l_0c3a | |
| func_0c8c: | |
| ldh a, [$ff00 + $d3] | |
| and a | |
| jr z, l_0c98 | |
| bit 7, a | |
| ret z | |
| and $07 | |
| jr l_0ca2 | |
| l_0c98: | |
| ldh a, [$ff00 + $d2] | |
| and a | |
| ret z | |
| ldh [$ff00 + $d3], a | |
| xor a | |
| ldh [$ff00 + $d2], a | |
| ret | |
| l_0ca2: | |
| ld c, a | |
| push bc | |
| ld hl, $c822 | |
| ld de, $ffe0 | |
| l_0caa: | |
| add hl, de | |
| dec c | |
| jr nz, l_0caa | |
| ld de, $c822 | |
| ld c, $11 | |
| l_0cb3: | |
| ld b, $0a | |
| l_0cb5: | |
| ld a, [de] | |
| ldi [hl], a | |
| inc e | |
| dec b | |
| jr nz, l_0cb5 | |
| push de | |
| ld de, $0016 | |
| add hl, de | |
| pop de | |
| push hl | |
| ld hl, $0016 | |
| add hl, de | |
| push hl | |
| pop de | |
| pop hl | |
| dec c | |
| jr nz, l_0cb3 | |
| pop bc | |
| l_0ccd: | |
| ld de, $c400 | |
| ld b, $0a | |
| l_0cd2: | |
| ld a, [de] | |
| ldi [hl], a | |
| inc de | |
| dec b | |
| jr nz, l_0cd2 | |
| push de | |
| ld de, $0016 | |
| add hl, de | |
| pop de | |
| dec c | |
| jr nz, l_0ccd | |
| ld a, $02 | |
| ldh [rROW_UPDATE], a | |
| ldh [$ff00 + $d4], a | |
| xor a | |
| ldh [$ff00 + $d3], a | |
| ret | |
| ldh a, [rCOUNTDOWN] | |
| and a | |
| ret nz | |
| ld a, $01 | |
| ldh [$ff00 + $ff], a | |
| ld a, $03 | |
| ldh [$ff00 + $cd], a | |
| ldh a, [$ff00 + $d1] | |
| cp $77 | |
| jr nz, l_0d09 | |
| ldh a, [$ff00 + $d0] | |
| cp $aa | |
| jr nz, l_0d13 | |
| l_0d03: | |
| ld a, $01 | |
| ldh [$ff00 + $ef], a | |
| jr l_0d13 | |
| l_0d09: | |
| cp $aa | |
| jr nz, l_0d13 | |
| ldh a, [$ff00 + $d0] | |
| cp $77 | |
| jr z, l_0d03 | |
| l_0d13: | |
| ld b, $34 | |
| ld c, $43 | |
| call func_113f | |
| xor a | |
| ldh [rROW_UPDATE], a | |
| ldh a, [$ff00 + $d1] | |
| cp $aa | |
| ld a, $1e | |
| jr nz, l_0d27 | |
| ld a, $1d | |
| l_0d27: | |
| ldh [rGAME_STATUS], a | |
| ld a, $28 | |
| ldh [rCOUNTDOWN], a | |
| ld a, $1d | |
| ldh [$ff00 + $c6], a | |
| ret | |
| ldh a, [rCOUNTDOWN] | |
| and a | |
| ret nz | |
| ldh a, [$ff00 + $ef] | |
| and a | |
| jr nz, l_0d40 | |
| ldh a, [$ff00 + $d7] | |
| inc a | |
| ldh [$ff00 + $d7], a | |
| l_0d40: | |
| call func_0f6f | |
| ld de, $26f9 | |
| ldh a, [$ff00 + $cb] | |
| cp $29 | |
| jr z, l_0d4f | |
| ld de, $270b | |
| l_0d4f: | |
| ld hl, rBLOCK_VISIBILITY | |
| ld c, $03 | |
| call func_1776 | |
| ld a, $19 | |
| ldh [rCOUNTDOWN], a | |
| ldh a, [$ff00 + $ef] | |
| and a | |
| jr z, l_0d65 | |
| ld hl, $c220 | |
| ld [hl], $80 | |
| l_0d65: | |
| ld a, $03 | |
| call func_2673 | |
| ld a, $20 | |
| ldh [rGAME_STATUS], a | |
| ld a, $09 | |
| ld [$dfe8], a | |
| ldh a, [$ff00 + $d7] | |
| cp $05 | |
| ret nz | |
| ld a, $11 | |
| ld [$dfe8], a | |
| ret | |
| l_0d7e: | |
| ldh a, [$ff00 + $d7] | |
| cp $05 | |
| jr nz, l_0d8b | |
| ldh a, [$ff00 + $c6] | |
| and a | |
| jr z, l_0d91 | |
| jr l_0dad | |
| l_0d8b: | |
| ldh a, [rBUTTON_HIT] | |
| bit 3, a | |
| jr z, l_0dad | |
| l_0d91: | |
| ld a, $60 | |
| ldh [rSB_DATA], a | |
| ldh [rREQUEST_SERIAL_TRANSFER], a | |
| jr l_0db6 | |
| ld a, $01 | |
| ldh [$ff00 + $ff], a | |
| ldh a, [$ff00 + $cc] | |
| jr z, l_0dad | |
| ldh a, [$ff00 + $cb] | |
| cp $29 | |
| jr z, l_0d7e | |
| ldh a, [$ff00 + $d0] | |
| cp $60 | |
| jr z, l_0db6 | |
| l_0dad: | |
| call func_0dbd | |
| ld a, $03 | |
| call func_2673 | |
| ret | |
| l_0db6: | |
| ld a, $1f | |
| ldh [rGAME_STATUS], a | |
| ldh [$ff00 + $cc], a | |
| ret | |
| func_0dbd: | |
| ldh a, [rCOUNTDOWN] | |
| and a | |
| jr nz, l_0de5 | |
| ld hl, $ffc6 | |
| dec [hl] | |
| ld a, $19 | |
| ldh [rCOUNTDOWN], a | |
| call func_0f60 | |
| ld hl, rBLOCK_Y | |
| ld a, [hl] | |
| xor $30 | |
| ldi [hl], a | |
| cp $60 | |
| call z, func_0f17 | |
| inc l | |
| push af | |
| ld a, [hl] | |
| xor $01 | |
| ld [hl], a | |
| ld l, $13 | |
| ldd [hl], a | |
| pop af | |
| dec l | |
| ld [hl], a | |
| l_0de5: | |
| ldh a, [$ff00 + $d7] | |
| cp $05 | |
| jr nz, l_0e13 | |
| ldh a, [$ff00 + $c6] | |
| ld hl, $c221 | |
| cp $06 | |
| jr z, l_0e0f | |
| cp $08 | |
| jr nc, l_0e13 | |
| ld a, [hl] | |
| cp $72 | |
| jr nc, l_0e03 | |
| cp $69 | |
| ret z | |
| inc [hl] | |
| inc [hl] | |
| ret | |
| l_0e03: | |
| ld [hl], $69 | |
| inc l | |
| inc l | |
| ld [hl], $57 | |
| ld a, $06 | |
| ld [$dfe0], a | |
| ret | |
| l_0e0f: | |
| dec l | |
| ld [hl], $80 | |
| ret | |
| l_0e13: | |
| ldh a, [rCOUNTDOWN2] | |
| and a | |
| ret nz | |
| ld a, $0f | |
| ldh [rCOUNTDOWN2], a | |
| ld hl, $c223 | |
| ld a, [hl] | |
| xor $01 | |
| ld [hl], a | |
| ret | |
| ldh a, [rCOUNTDOWN] | |
| and a | |
| ret nz | |
| ldh a, [$ff00 + $ef] | |
| and a | |
| jr nz, l_0e31 | |
| ldh a, [$ff00 + $d8] | |
| inc a | |
| ldh [$ff00 + $d8], a | |
| l_0e31: | |
| call func_0f6f | |
| ld de, $271d | |
| ldh a, [$ff00 + $cb] | |
| cp $29 | |
| jr z, l_0e40 | |
| ld de, $2729 | |
| l_0e40: | |
| ld hl, rBLOCK_VISIBILITY | |
| ld c, $02 | |
| call func_1776 | |
| ld a, $19 | |
| ldh [rCOUNTDOWN], a | |
| ldh a, [$ff00 + $ef] | |
| and a | |
| jr z, l_0e56 | |
| ld hl, rNEXT_BLOCK_VISIBILITY | |
| ld [hl], $80 | |
| l_0e56: | |
| ld a, $02 | |
| call func_2673 | |
| ld a, $21 | |
| ldh [rGAME_STATUS], a | |
| ld a, $09 | |
| ld [$dfe8], a | |
| ldh a, [$ff00 + $d8] | |
| cp $05 | |
| ret nz | |
| ld a, $11 | |
| ld [$dfe8], a | |
| ret | |
| l_0e6f: | |
| ldh a, [$ff00 + $d8] | |
| cp $05 | |
| jr nz, l_0e7c | |
| ldh a, [$ff00 + $c6] | |
| and a | |
| jr z, l_0e82 | |
| jr l_0e9e | |
| l_0e7c: | |
| ldh a, [rBUTTON_HIT] | |
| bit 3, a | |
| jr z, l_0e9e | |
| l_0e82: | |
| ld a, $60 | |
| ldh [rSB_DATA], a | |
| ldh [rREQUEST_SERIAL_TRANSFER], a | |
| jr l_0ea7 | |
| ld a, $01 | |
| ldh [$ff00 + $ff], a | |
| ldh a, [$ff00 + $cc] | |
| jr z, l_0e9e | |
| ldh a, [$ff00 + $cb] | |
| cp $29 | |
| jr z, l_0e6f | |
| ldh a, [$ff00 + $d0] | |
| cp $60 | |
| jr z, l_0ea7 | |
| l_0e9e: | |
| call func_0eae | |
| ld a, $02 | |
| call func_2673 | |
| ret | |
| l_0ea7: | |
| ld a, $1f | |
| ldh [rGAME_STATUS], a | |
| ldh [$ff00 + $cc], a | |
| ret | |
| func_0eae: | |
| ldh a, [rCOUNTDOWN] | |
| and a | |
| jr nz, l_0ecf | |
| ld hl, $ffc6 | |
| dec [hl] | |
| ld a, $19 | |
| ldh [rCOUNTDOWN], a | |
| call func_0f60 | |
| ld hl, rNEXT_BLOCK_Y | |
| ld a, [hl] | |
| xor $08 | |
| ldi [hl], a | |
| cp $68 | |
| call z, func_0f17 | |
| inc l | |
| ld a, [hl] | |
| xor $01 | |
| ld [hl], a | |
| l_0ecf: | |
| ldh a, [$ff00 + $d8] | |
| cp $05 | |
| jr nz, l_0f07 | |
| ldh a, [$ff00 + $c6] | |
| ld hl, rBLOCK_Y | |
| cp $05 | |
| jr z, l_0f03 | |
| cp $06 | |
| jr z, l_0ef3 | |
| cp $08 | |
| jr nc, l_0f07 | |
| ld a, [hl] | |
| cp $72 | |
| jr nc, l_0f03 | |
| cp $61 | |
| ret z | |
| inc [hl] | |
| inc [hl] | |
| inc [hl] | |
| inc [hl] | |
| ret | |
| l_0ef3: | |
| dec l | |
| ld [hl], $00 | |
| inc l | |
| ld [hl], $61 | |
| inc l | |
| inc l | |
| ld [hl], $56 | |
| ld a, $06 | |
| ld [$dfe0], a | |
| ret | |
| l_0f03: | |
| dec l | |
| ld [hl], $80 | |
| ret | |
| l_0f07: | |
| ldh a, [rCOUNTDOWN2] | |
| and a | |
| ret nz | |
| ld a, $0f | |
| ldh [rCOUNTDOWN2], a | |
| ld hl, rBLOCK_TYPE | |
| ld a, [hl] | |
| xor $01 | |
| ld [hl], a | |
| ret | |
| func_0f17: | |
| push af | |
| push hl | |
| ldh a, [$ff00 + $d7] | |
| cp $05 | |
| jr z, l_0f39 | |
| ldh a, [$ff00 + $d8] | |
| cp $05 | |
| jr z, l_0f39 | |
| ldh a, [$ff00 + $cb] | |
| cp $29 | |
| jr nz, l_0f39 | |
| ld hl, $c060 | |
| ld b, $24 | |
| ld de, $0f3c | |
| l_0f33: | |
| ld a, [de] | |
| ldi [hl], a | |
| inc de | |
| dec b | |
| jr nz, l_0f33 | |
| l_0f39: | |
| pop hl | |
| pop af | |
| ret | |
| db $42, $30, $0D, $00, $42, $38, $B2, $00, $42, $40, $0E, $00 | |
| db $42, $48, $1C, $00, $42, $58, $0E, $00, $42, $60, $1D, $00 | |
| db $42, $68, $B5, $00, $42, $70, $BB, $00, $42, $78, $1D, $00 | |
| func_0f60: | |
| ld hl, $c060 | |
| ld de, $0004 | |
| ld b, $09 | |
| xor a | |
| l_0f69: | |
| ld [hl], a | |
| add hl, de | |
| dec b | |
| jr nz, l_0f69 | |
| ret | |
| func_0f6f: | |
| call WAIT_FOR_VBLANK | |
| ld hl, $55ac | |
| ld bc, $1000 | |
| call func_27e4 | |
| call Flush_BG1 | |
| ld hl, $9800 | |
| ld de, $54e4 | |
| ld b, $04 | |
| call COPY_TILEMAP_FEWER_ROWS | |
| ld hl, $9980 | |
| ld b, $06 | |
| call COPY_TILEMAP_FEWER_ROWS | |
| ldh a, [$ff00 + $cb] | |
| cp $29 | |
| jr nz, l_0fb9 | |
| ld hl, $9841 | |
| ld [hl], $bd | |
| inc l | |
| ld [hl], $b2 | |
| inc l | |
| ld [hl], $2e | |
| inc l | |
| ld [hl], $be | |
| inc l | |
| ld [hl], $2e | |
| ld hl, $9a01 | |
| ld [hl], $b4 | |
| inc l | |
| ld [hl], $b5 | |
| inc l | |
| ld [hl], $bb | |
| inc l | |
| ld [hl], $2e | |
| inc l | |
| ld [hl], $bc | |
| l_0fb9: | |
| ldh a, [$ff00 + $ef] | |
| and a | |
| jr nz, l_0fc1 | |
| call func_1085 | |
| l_0fc1: | |
| ldh a, [$ff00 + $d7] | |
| and a | |
| jr z, l_100f | |
| cp $05 | |
| jr nz, l_0fe0 | |
| ld hl, $98a5 | |
| ld b, $0b | |
| ldh a, [$ff00 + $cb] | |
| cp $29 | |
| ld de, $10f3 | |
| jr z, l_0fdb | |
| ld de, $10fe | |
| l_0fdb: | |
| call func_10d8 | |
| ld a, $04 | |
| l_0fe0: | |
| ld c, a | |
| ldh a, [$ff00 + $cb] | |
| cp $29 | |
| ld a, $93 | |
| jr nz, l_0feb | |
| ld a, $8f | |
| l_0feb: | |
| ldh [$ff00 + $a0], a | |
| ld hl, $99e7 | |
| call func_106a | |
| ldh a, [$ff00 + $d9] | |
| and a | |
| jr z, l_100f | |
| ld a, $ac | |
| ldh [$ff00 + $a0], a | |
| ld hl, $99f0 | |
| ld c, $01 | |
| call func_106a | |
| ld hl, $98a6 | |
| ld de, $1109 | |
| ld b, $09 | |
| call func_10d8 | |
| l_100f: | |
| ldh a, [$ff00 + $d8] | |
| and a | |
| jr z, l_1052 | |
| cp $05 | |
| jr nz, l_102e | |
| ld hl, $98a5 | |
| ld b, $0b | |
| ldh a, [$ff00 + $cb] | |
| cp $29 | |
| ld de, $10fe | |
| jr z, l_1029 | |
| ld de, $10f3 | |
| l_1029: | |
| call func_10d8 | |
| ld a, $04 | |
| l_102e: | |
| ld c, a | |
| ldh a, [$ff00 + $cb] | |
| cp $29 | |
| ld a, $8f | |
| jr nz, l_1039 | |
| ld a, $93 | |
| l_1039: | |
| ldh [$ff00 + $a0], a | |
| ld hl, $9827 | |
| call func_106a | |
| ldh a, [$ff00 + $da] | |
| and a | |
| jr z, l_1052 | |
| ld a, $ac | |
| ldh [$ff00 + $a0], a | |
| ld hl, $9830 | |
| ld c, $01 | |
| call func_106a | |
| l_1052: | |
| ldh a, [$ff00 + $db] | |
| and a | |
| jr z, l_1062 | |
| ld hl, $98a7 | |
| ld de, $10ed | |
| ld b, $06 | |
| call func_10d8 | |
| l_1062: | |
| ld a, $d3 | |
| ldh [$ff00 + $40], a | |
| call CLEAR_OAM_DATA | |
| ret | |
| func_106a: | |
| ldh a, [$ff00 + $a0] | |
| push hl | |
| ld de, $0020 | |
| ld b, $02 | |
| l_1072: | |
| push hl | |
| ldi [hl], a | |
| inc a | |
| ld [hl], a | |
| inc a | |
| pop hl | |
| add hl, de | |
| dec b | |
| jr nz, l_1072 | |
| pop hl | |
| ld de, $0003 | |
| add hl, de | |
| dec c | |
| jr nz, $106a | |
| ret | |
| func_1085: | |
| ld hl, $ffd7 | |
| ld de, $ffd8 | |
| ldh a, [$ff00 + $d9] | |
| and a | |
| jr nz, l_10ca | |
| ldh a, [$ff00 + $da] | |
| and a | |
| jr nz, l_10d1 | |
| ldh a, [$ff00 + $db] | |
| and a | |
| jr nz, l_10bb | |
| ld a, [hl] | |
| cp $04 | |
| jr z, l_10b0 | |
| ld a, [de] | |
| cp $04 | |
| ret nz | |
| l_10a3: | |
| ld a, $05 | |
| ld [de], a | |
| jr l_10b2 | |
| ld a, [de] | |
| cp $03 | |
| ret nz | |
| l_10ac: | |
| ld a, $03 | |
| jr l_10b5 | |
| l_10b0: | |
| ld [hl], $05 | |
| l_10b2: | |
| xor a | |
| ldh [$ff00 + $db], a | |
| l_10b5: | |
| xor a | |
| ldh [$ff00 + $d9], a | |
| ldh [$ff00 + $da], a | |
| ret | |
| l_10bb: | |
| ld a, [hl] | |
| cp $04 | |
| jr nz, l_10c6 | |
| ldh [$ff00 + $d9], a | |
| l_10c2: | |
| xor a | |
| ldh [$ff00 + $db], a | |
| ret | |
| l_10c6: | |
| ldh [$ff00 + $da], a | |
| jr l_10c2 | |
| l_10ca: | |
| ld a, [hl] | |
| cp $05 | |
| jr z, l_10b0 | |
| jr l_10ac | |
| l_10d1: | |
| ld a, [de] | |
| cp $05 | |
| jr z, l_10a3 | |
| jr l_10ac | |
| func_10d8: | |
| push bc | |
| push hl | |
| l_10da: | |
| ld a, [de] | |
| ldi [hl], a | |
| inc de | |
| dec b | |
| jr nz, l_10da | |
| pop hl | |
| ld de, $0020 | |
| add hl, de | |
| pop bc | |
| ld a, $b6 | |
| l_10e8: | |
| ldi [hl], a | |
| dec b | |
| jr nz, l_10e8 | |
| ret | |
| or b | |
| or c | |
| or d | |
| or e | |
| or c | |
| ld a, $b4 | |
| or l | |
| cp e | |
| ld l, $bc | |
| cpl | |
| dec l | |
| ld l, $3d | |
| ld c, $3e | |
| cp l | |
| or d | |
| ld l, $be | |
| ld l, $2f | |
| dec l | |
| ld l, $3d | |
| ld c, $3e | |
| or l | |
| or b | |
| ld b, c | |
| or l | |
| dec a | |
| dec e | |
| or l | |
| cp [hl] | |
| or c | |
| ld a, $01 | |
| ldh [$ff00 + $ff], a | |
| ldh a, [rCOUNTDOWN] | |
| and a | |
| ret nz | |
| call CLEAR_OAM_DATA | |
| xor a | |
| ldh [$ff00 + $ef], a | |
| ld b, $27 | |
| ld c, $79 | |
| call func_113f | |
| call Sound_Init | |
| ldh a, [$ff00 + $d7] | |
| cp $05 | |
| jr z, l_113a | |
| ldh a, [$ff00 + $d8] | |
| cp $05 | |
| jr z, l_113a | |
| ld a, $01 | |
| ldh [$ff00 + $d6], a | |
| l_113a: | |
| ld a, $16 | |
| ldh [rGAME_STATUS], a | |
| ret | |
| func_113f: | |
| ldh a, [$ff00 + $cc] | |
| and a | |
| jr z, l_1158 | |
| xor a | |
| ldh [$ff00 + $cc], a | |
| ldh a, [$ff00 + $cb] | |
| cp $29 | |
| ldh a, [$ff00 + $d0] | |
| jr nz, l_1160 | |
| cp b | |
| jr z, l_115a | |
| ld a, $02 | |
| ldh [rSB_DATA], a | |
| ldh [rREQUEST_SERIAL_TRANSFER], a | |
| l_1158: | |
| pop hl | |
| ret | |
| l_115a: | |
| ld a, c | |
| ldh [rSB_DATA], a | |
| ldh [rREQUEST_SERIAL_TRANSFER], a | |
| ret | |
| l_1160: | |
| cp c | |
| ret z | |
| ld a, b | |
| ldh [rSB_DATA], a | |
| pop hl | |
| ret | |
| call func_11b2 | |
| ld hl, $9ce6 | |
| ld de, $141b | |
| ld b, $07 | |
| call func_1437 | |
| ld hl, $9ce7 | |
| ld de, $1422 | |
| ld b, $07 | |
| call func_1437 | |
| ld hl, $9d08 | |
| ld [hl], $72 | |
| inc l | |
| ld [hl], $c4 | |
| ld hl, $9d28 | |
| ld [hl], $b7 | |
| inc l | |
| ld [hl], $b8 | |
| ld de, $2771 | |
| ld hl, rBLOCK_VISIBILITY | |
| ld c, $03 | |
| call func_1776 | |
| ld a, $03 | |
| call func_2673 | |
| ld a, $db | |
| ldh [$ff00 + $40], a | |
| ld a, $bb | |
| ldh [rCOUNTDOWN], a | |
| ld a, $27 | |
| ldh [rGAME_STATUS], a | |
| ld a, $10 | |
| ld [$dfe8], a | |
| ret | |
| func_11b2: | |
| call WAIT_FOR_VBLANK | |
| ld hl, $55ac | |
| ld bc, $1000 | |
| call func_27e4 | |
| ld hl, $9fff | |
| call func_2798 | |
| ld hl, $9dc0 | |
| ld de, $51c4 | |
| ld b, $04 | |
| call COPY_TILEMAP_FEWER_ROWS | |
| ld hl, $9cec | |
| ld de, $1429 | |
| ld b, $07 | |
| call func_1437 | |
| ld hl, $9ced | |
| ld de, $1430 | |
| ld b, $07 | |
| call func_1437 | |
| ret | |
| ldh a, [rCOUNTDOWN] | |
| and a | |
| ret nz | |
| ld hl, rNEXT_BLOCK_VISIBILITY | |
| ld [hl], $00 | |
| ld l, $20 | |
| ld [hl], $00 | |
| ld a, $ff | |
| ldh [rCOUNTDOWN], a | |
| ld a, $28 | |
| ldh [rGAME_STATUS], a | |
| ret | |
| ldh a, [rCOUNTDOWN] | |
| and a | |
| jr z, l_1205 | |
| call func_13fa | |
| ret | |
| l_1205: | |
| ld a, $29 | |
| ldh [rGAME_STATUS], a | |
| ld hl, rNEXT_BLOCK_TYPE | |
| ld [hl], $35 | |
| ld l, $23 | |
| ld [hl], $35 | |
| ld a, $ff | |
| ldh [rCOUNTDOWN], a | |
| ld a, $2f | |
| call func_1fd7 | |
| ret | |
| ldh a, [rCOUNTDOWN] | |
| and a | |
| jr z, l_1225 | |
| call func_13fa | |
| ret | |
| l_1225: | |
| ld a, $02 | |
| ldh [rGAME_STATUS], a | |
| ld hl, $9d08 | |
| ld b, $2f | |
| call func_19ff | |
| ld hl, $9d09 | |
| call func_19ff | |
| ld hl, $9d28 | |
| call func_19ff | |
| ld hl, $9d29 | |
| call func_19ff | |
| ret | |
| lbl_MENU_ROCKET_1D:: | |
| ldh a, [rCOUNTDOWN] | |
| and a | |
| jr nz, l_1277 | |
| ld a, $0a | |
| ldh [rCOUNTDOWN], a | |
| ld hl, rBLOCK_Y | |
| dec [hl] | |
| ld a, [hl] | |
| cp $58 | |
| jr nz, l_1277 | |
| ld hl, rNEXT_BLOCK_VISIBILITY | |
| ld [hl], $00 | |
| inc l | |
| add a, $20 | |
| ldi [hl], a | |
| ld [hl], $4c | |
| inc l | |
| ld [hl], $40 | |
| ld l, $20 | |
| ld [hl], $80 | |
| ld a, $03 | |
| call func_2673 | |
| ld a, $03 | |
| ldh [rGAME_STATUS], a | |
| ld a, $04 | |
| ld [$dff8], a | |
| ret | |
| l_1277: | |
| call func_13fa | |
| ret | |
| lbl_MENU_ROCKET_1E:: | |
| ldh a, [rCOUNTDOWN] | |
| and a | |
| jr nz, l_129d | |
| ld a, $0a | |
| ldh [rCOUNTDOWN], a | |
| ld hl, rNEXT_BLOCK_Y | |
| dec [hl] | |
| ld l, $01 | |
| dec [hl] | |
| ld a, [hl] | |
| cp $d0 | |
| jr nz, l_129d | |
| ld a, $9c | |
| ldh [$ff00 + $c9], a | |
| ld a, $82 | |
| ldh [$ff00 + $ca], a | |
| ld a, $2c | |
| ldh [rGAME_STATUS], a | |
| ret | |
| l_129d: | |
| ldh a, [rCOUNTDOWN2] | |
| and a | |
| jr nz, l_12ad | |
| ld a, $06 | |
| ldh [rCOUNTDOWN2], a | |
| ld hl, rNEXT_BLOCK_TYPE | |
| ld a, [hl] | |
| xor $01 | |
| ld [hl], a | |
| l_12ad: | |
| ld a, $03 | |
| call func_2673 | |
| ret | |
| ldh a, [rCOUNTDOWN] | |
| and a | |
| ret nz | |
| ld a, $06 | |
| ldh [rCOUNTDOWN], a | |
| ldh a, [$ff00 + $ca] | |
| sub a, $82 | |
| ld e, a | |
| ld d, $00 | |
| ld hl, $12f5 | |
| add hl, de | |
| push hl | |
| pop de | |
| ldh a, [$ff00 + $c9] | |
| ld h, a | |
| ldh a, [$ff00 + $ca] | |
| ld l, a | |
| ld a, [de] | |
| call func_19fe | |
| push hl | |
| ld de, $0020 | |
| add hl, de | |
| ld b, $b6 | |
| call func_19ff | |
| pop hl | |
| inc hl | |
| ld a, $02 | |
| ld [$dfe0], a | |
| ld a, h | |
| ldh [$ff00 + $c9], a | |
| ld a, l | |
| ldh [$ff00 + $ca], a | |
| cp $92 | |
| ret nz | |
| ld a, $ff | |
| ldh [rCOUNTDOWN], a | |
| ld a, $2d | |
| ldh [rGAME_STATUS], a | |
| ret | |
| or e | |
| cp h | |
| dec a | |
| cp [hl] | |
| cp e | |
| or l | |
| dec e | |
| or d | |
| cp l | |
| or l | |
| dec e | |
| ld l, $bc | |
| dec a | |
| ld c, $3e | |
| ldh a, [rCOUNTDOWN] | |
| and a | |
| ret nz | |
| call WAIT_FOR_VBLANK | |
| call COPY_IN_GAME_TILES | |
| call func_2293 | |
| ld a, $93 | |
| ldh [$ff00 + $40], a | |
| ld a, $05 | |
| ldh [rGAME_STATUS], a | |
| ret | |
| ldh a, [rCOUNTDOWN] | |
| and a | |
| ret nz | |
| ld a, $2e | |
| ldh [rGAME_STATUS], a | |
| ret | |
| call func_11b2 | |
| ld de, $2783 | |
| ld hl, rBLOCK_VISIBILITY | |
| ld c, $03 | |
| call func_1776 | |
| ldh a, [$ff00 + $f3] | |
| ld [rBLOCK_TYPE], a | |
| ld a, $03 | |
| call func_2673 | |
| xor a | |
| ldh [$ff00 + $f3], a | |
| ld a, $db | |
| ldh [$ff00 + $40], a | |
| ld a, $bb | |
| ldh [rCOUNTDOWN], a | |
| ld a, $2f | |
| ldh [rGAME_STATUS], a | |
| ld a, $10 | |
| ld [$dfe8], a | |
| ret | |
| ldh a, [rCOUNTDOWN] | |
| and a | |
| ret nz | |
| ld hl, rNEXT_BLOCK_VISIBILITY | |
| ld [hl], $00 | |
| ld l, $20 | |
| ld [hl], $00 | |
| ld a, $a0 | |
| ldh [rCOUNTDOWN], a | |
| ld a, $30 | |
| ldh [rGAME_STATUS], a | |
| ret | |
| ldh a, [rCOUNTDOWN] | |
| and a | |
| jr z, l_1370 | |
| call func_13fa | |
| ret | |
| l_1370: | |
| ld a, $31 | |
| ldh [rGAME_STATUS], a | |
| ld a, $80 | |
| ldh [rCOUNTDOWN], a | |
| ld a, $2f | |
| call func_1fd7 | |
| ret | |
| ldh a, [rCOUNTDOWN] | |
| and a | |
| jr nz, l_13b1 | |
| ld a, $0a | |
| ldh [rCOUNTDOWN], a | |
| ld hl, rBLOCK_Y | |
| dec [hl] | |
| ld a, [hl] | |
| cp $6a | |
| jr nz, l_13b1 | |
| ld hl, rNEXT_BLOCK_VISIBILITY | |
| ld [hl], $00 | |
| inc l | |
| add a, $10 | |
| ldi [hl], a | |
| ld [hl], $54 | |
| inc l | |
| ld [hl], $5c | |
| ld l, $20 | |
| ld [hl], $80 | |
| ld a, $03 | |
| call func_2673 | |
| ld a, $32 | |
| ldh [rGAME_STATUS], a | |
| ld a, $04 | |
| ld [$dff8], a | |
| ret | |
| l_13b1: | |
| call func_13fa | |
| ret | |
| ldh a, [rCOUNTDOWN] | |
| and a | |
| jr nz, l_13cf | |
| ld a, $0a | |
| ldh [rCOUNTDOWN], a | |
| ld hl, rNEXT_BLOCK_Y | |
| dec [hl] | |
| ld l, $01 | |
| dec [hl] | |
| ld a, [hl] | |
| cp $e0 | |
| jr nz, l_13cf | |
| ld a, $33 | |
| ldh [rGAME_STATUS], a | |
| ret | |
| l_13cf: | |
| ldh a, [rCOUNTDOWN2] | |
| and a | |
| jr nz, l_13df | |
| ld a, $06 | |
| ldh [rCOUNTDOWN2], a | |
| ld hl, rNEXT_BLOCK_TYPE | |
| ld a, [hl] | |
| xor $01 | |
| ld [hl], a | |
| l_13df: | |
| ld a, $03 | |
| call func_2673 | |
| ret | |
| call WAIT_FOR_VBLANK | |
| call COPY_IN_GAME_TILES | |
| call Sound_Init | |
| call func_2293 | |
| ld a, $93 | |
| ldh [$ff00 + $40], a | |
| ld a, $10 | |
| ldh [rGAME_STATUS], a | |
| ret | |
| func_13fa: | |
| ldh a, [rCOUNTDOWN2] | |
| and a | |
| ret nz | |
| ld a, $0a | |
| ldh [rCOUNTDOWN2], a | |
| ld a, $03 | |
| ld [$dff8], a | |
| ld b, $02 | |
| ld hl, rNEXT_BLOCK_VISIBILITY | |
| l_140c: | |
| ld a, [hl] | |
| xor $80 | |
| ld [hl], a | |
| ld l, $20 | |
| dec b | |
| jr nz, l_140c | |
| ld a, $03 | |
| call func_2673 | |
| ret | |
| db $C2, $CA, $CA, $CA, $CA, $CA, $CA, $C3, $CB, $58, $48, $48 | |
| db $48, $48, $C8, $73, $73, $73, $73, $73, $73, $C9, $74, $74 | |
| db $74, $74, $74, $74 | |
| func_1437: | |
| ld a, [de] | |
| ld [hl], a | |
| inc de | |
| push de | |
| ld de, $0020 | |
| add hl, de | |
| pop de | |
| dec b | |
| jr nz, $1437 | |
| ret | |
| ld a, $01 | |
| ldh [$ff00 + $ff], a | |
| xor a | |
| ldh [rSB], a | |
| ldh [rSC], a | |
| ldh [$ff00 + $0f], a | |
| func_144f: | |
| call WAIT_FOR_VBLANK | |
| call COPY_IN_GAME_TILES | |
| ld de, $4cd7 | |
| call COPY_TILEMAP | |
| call CLEAR_OAM_DATA | |
| ld hl, rBLOCK_VISIBILITY | |
| ld de, $26cf | |
| ld c, $02 | |
| call func_1776 | |
| ld de, rBLOCK_Y | |
| call func_148d | |
| ldh a, [$ff00 + $c0] | |
| ld e, $12 | |
| ld [de], a | |
| inc de | |
| cp $37 | |
| ld a, $1c | |
| jr z, l_147d | |
| ld a, $1d | |
| l_147d: | |
| ld [de], a | |
| call func_2671 | |
| call func_1517 | |
| ld a, $d3 | |
| ldh [$ff00 + $40], a | |
| ld a, $0e | |
| ldh [rGAME_STATUS], a | |
| ret | |
| func_148d: | |
| ld a, $01 | |
| ld [$dfe0], a | |
| func_1492: | |
| ldh a, [$ff00 + $c1] | |
| push af | |
| sub a, $1c | |
| add a, a | |
| ld c, a | |
| ld b, $00 | |
| ld hl, $14a8 | |
| add hl, bc | |
| ldi a, [hl] | |
| ld [de], a | |
| inc de | |
| ld a, [hl] | |
| ld [de], a | |
| inc de | |
| pop af | |
| ld [de], a | |
| ret | |
| ld [hl], b | |
| scf | |
| ld [hl], b | |
| ld [hl], a | |
| add a, b | |
| scf | |
| add a, b | |
| ld [hl], a | |
| func_14b0: | |
| ld de, rBLOCK_VISIBILITY | |
| call func_1766 | |
| ld hl, $ffc1 | |
| ld a, [hl] | |
| bit 3, b | |
| jp nz, l_1563 | |
| bit 0, b | |
| jp nz, l_1563 | |
| bit 1, b | |
| jr nz, l_1509 | |
| l_14c8: | |
| inc e | |
| bit 4, b | |
| jr nz, l_14f3 | |
| bit 5, b | |
| jr nz, l_14fe | |
| bit 6, b | |
| jr nz, l_14eb | |
| bit 7, b | |
| jp z, l_155f | |
| cp $1e | |
| jr nc, l_14e7 | |
| add a, $02 | |
| l_14e0: | |
| ld [hl], a | |
| call func_148d | |
| call func_1517 | |
| l_14e7: | |
| call func_2671 | |
| ret | |
| l_14eb: | |
| cp $1e | |
| jr c, l_14e7 | |
| sub a, $02 | |
| jr l_14e0 | |
| l_14f3: | |
| cp $1d | |
| jr z, l_14e7 | |
| cp $1f | |
| jr z, l_14e7 | |
| inc a | |
| jr l_14e0 | |
| l_14fe: | |
| cp $1c | |
| jr z, l_14e7 | |
| cp $1e | |
| jr z, l_14e7 | |
| dec a | |
| jr l_14e0 | |
| l_1509: | |
| push af | |
| ldh a, [rPLAYERS] | |
| and a | |
| jr z, l_1512 | |
| pop af | |
| jr l_14c8 | |
| l_1512: | |
| pop af | |
| ld a, $0e | |
| jr l_1572 | |
| func_1517: | |
| ldh a, [$ff00 + $c1] | |
| sub a, $17 | |
| cp $08 | |
| jr nz, l_1521 | |
| ld a, $ff | |
| l_1521: | |
| ld [$dfe8], a | |
| ret | |
| ld de, rNEXT_BLOCK_VISIBILITY | |
| call func_1766 | |
| ld hl, $ffc0 | |
| ld a, [hl] | |
| bit 3, b | |
| jr nz, l_1563 | |
| bit 0, b | |
| jr nz, l_1577 | |
| inc e | |
| inc e | |
| bit 4, b | |
| jr nz, l_154b | |
| bit 5, b | |
| jr z, l_155f | |
| cp $37 | |
| jr z, l_155f | |
| ld a, $37 | |
| ld b, $1c | |
| jr l_1553 | |
| l_154b: | |
| cp $77 | |
| jr z, l_155f | |
| ld a, $77 | |
| ld b, $1d | |
| l_1553: | |
| ld [hl], a | |
| push af | |
| ld a, $01 | |
| ld [$dfe0], a | |
| pop af | |
| ld [de], a | |
| inc de | |
| ld a, b | |
| l_155e: | |
| ld [de], a | |
| l_155f: | |
| call func_2671 | |
| ret | |
| l_1563: | |
| ld a, $02 | |
| ld [$dfe0], a | |
| ldh a, [$ff00 + $c0] | |
| cp $37 | |
| ld a, $10 | |
| jr z, l_1572 | |
| ld a, $12 | |
| l_1572: | |
| ldh [rGAME_STATUS], a | |
| xor a | |
| jr l_155e | |
| l_1577: | |
| ld a, $0f | |
| jr l_1572 | |
| call WAIT_FOR_VBLANK | |
| ld de, $4e3f | |
| call COPY_TILEMAP | |
| call func_18fc | |
| call CLEAR_OAM_DATA | |
| ld hl, rBLOCK_VISIBILITY | |
| ld de, $26db | |
| ld c, $01 | |
| call func_1776 | |
| ld de, rBLOCK_Y | |
| ldh a, [rLEVEL_A] | |
| ld hl, $1615 | |
| call func_174e | |
| call func_2671 | |
| call func_1795 | |
| call func_18ca | |
| ld a, $d3 | |
| ldh [$ff00 + $40], a | |
| ld a, $11 | |
| ldh [rGAME_STATUS], a | |
| ldh a, [$ff00 + $c7] | |
| and a | |
| jr nz, l_15ba | |
| call func_1517 | |
| ret | |
| l_15ba: | |
| ld a, $15 | |
| l_15bc: | |
| ldh [rGAME_STATUS], a | |
| ret | |
| ld de, rBLOCK_VISIBILITY | |
| call func_1766 | |
| ld hl, $ffc2 | |
| ld a, $0a | |
| bit 3, b | |
| jr nz, l_15bc | |
| bit 0, b | |
| jr nz, l_15bc | |
| ld a, $08 | |
| bit 1, b | |
| jr nz, l_15bc | |
| ld a, [hl] | |
| bit 4, b | |
| jr nz, l_15f1 | |
| bit 5, b | |
| jr nz, l_1607 | |
| bit 6, b | |
| jr nz, l_160d | |
| bit 7, b | |
| jr z, l_1603 | |
| cp $05 | |
| jr nc, l_1603 | |
| add a, $05 | |
| jr l_15f6 | |
| l_15f1: | |
| cp $09 | |
| jr z, l_1603 | |
| inc a | |
| l_15f6: | |
| ld [hl], a | |
| ld de, rBLOCK_Y | |
| ld hl, $1615 | |
| call func_174e | |
| call func_1795 | |
| l_1603: | |
| call func_2671 | |
| ret | |
| l_1607: | |
| and a | |
| jr z, l_1603 | |
| dec a | |
| jr l_15f6 | |
| l_160d: | |
| cp $05 | |
| jr c, l_1603 | |
| sub a, $05 | |
| jr l_15f6 | |
| db $40, $30, $40, $40, $40, $50, $40, $60, $40, $70, $50, $30, | |
| db $50, $40, $50, $50, $50, $60, $50, $70 | |
| call WAIT_FOR_VBLANK | |
| ld de, $4fa7 | |
| call COPY_TILEMAP | |
| call CLEAR_OAM_DATA | |
| ld hl, rBLOCK_VISIBILITY | |
| ld de, $26e1 | |
| ld c, $02 | |
| call func_1776 | |
| ld de, rBLOCK_Y | |
| ldh a, [$ff00 + $c3] | |
| ld hl, $16d2 | |
| call func_174e | |
| ld de, rNEXT_BLOCK_Y | |
| ldh a, [rINITIAL_HEIGHT] | |
| ld hl, $1741 | |
| call func_174e | |
| call func_2671 | |
| call func_17af | |
| call func_18ca | |
| ld a, $d3 | |
| ldh [$ff00 + $40], a | |
| ld a, $13 | |
| ldh [rGAME_STATUS], a | |
| ldh a, [$ff00 + $c7] | |
| and a | |
| jr nz, l_1670 | |
| call func_1517 | |
| ret | |
| l_1670: | |
| ld a, $15 | |
| l_1672: | |
| ldh [rGAME_STATUS], a | |
| ret | |
| l_1675: | |
| ldh [rGAME_STATUS], a | |
| xor a | |
| ld [de], a | |
| ret | |
| ld de, rBLOCK_VISIBILITY | |
| call func_1766 | |
| ld hl, $ffc3 | |
| ld a, $0a | |
| bit 3, b | |
| jr nz, l_1675 | |
| ld a, $14 | |
| bit 0, b | |
| jr nz, l_1675 | |
| ld a, $08 | |
| bit 1, b | |
| jr nz, l_1675 | |
| ld a, [hl] | |
| bit 4, b | |
| jr nz, l_16ae | |
| bit 5, b | |
| jr nz, l_16c4 | |
| bit 6, b | |
| jr nz, l_16ca | |
| bit 7, b | |
| jr z, l_16c0 | |
| cp $05 | |
| jr nc, l_16c0 | |
| add a, $05 | |
| jr l_16b3 | |
| l_16ae: | |
| cp $09 | |
| jr z, l_16c0 | |
| inc a | |
| l_16b3: | |
| ld [hl], a | |
| ld de, rBLOCK_Y | |
| ld hl, $16d2 | |
| call func_174e | |
| call func_17af | |
| l_16c0: | |
| call func_2671 | |
| ret | |
| l_16c4: | |
| and a | |
| jr z, l_16c0 | |
| dec a | |
| jr l_16b3 | |
| l_16ca: | |
| cp $05 | |
| jr c, l_16c0 | |
| sub a, $05 | |
| jr l_16b3 | |
| db $40, $18, $40, $28, $40, $38, $40, $48, $40, $58, $50, $18 | |
| db $50, $28, $50, $38, $50, $48, $50, $58 | |
| l_16e6: | |
| ldh [rGAME_STATUS], a | |
| xor a | |
| ld [de], a | |
| ret | |
| ld de, rNEXT_BLOCK_VISIBILITY | |
| call func_1766 | |
| ld hl, $ffc4 | |
| ld a, $0a | |
| bit 3, b | |
| jr nz, l_16e6 | |
| bit 0, b | |
| jr nz, l_16e6 | |
| ld a, $13 | |
| bit 1, b | |
| jr nz, l_16e6 | |
| ld a, [hl] | |
| bit 4, b | |
| jr nz, l_171d | |
| bit 5, b | |
| jr nz, l_1733 | |
| bit 6, b | |
| jr nz, l_1739 | |
| bit 7, b | |
| jr z, l_172f | |
| l_1715: | |
| cp $03 | |
| l_1717: | |
| jr nc, l_172f | |
| l_1719: | |
| add a, $03 | |
| jr l_1722 | |
| l_171d: | |
| cp $05 | |
| jr z, l_172f | |
| inc a | |
| l_1722: | |
| ld [hl], a | |
| ld de, rNEXT_BLOCK_Y | |
| ld hl, $1741 | |
| call func_174e | |
| call func_17af | |
| l_172f: | |
| call func_2671 | |
| l_1731: | |
| ret | |
| l_1733: | |
| and a | |
| jr z, l_172f | |
| dec a | |
| jr l_1722 | |
| l_1739: | |
| cp $03 | |
| jr c, l_172f | |
| sub a, $03 | |
| jr l_1722 | |
| ld b, b | |
| ld [hl], b | |
| ld b, b | |
| add a, b | |
| ld b, b | |
| sub a, b | |
| ld d, b | |
| ld [hl], b | |
| ld d, b | |
| add a, b | |
| ld d, b | |
| sub a, b | |
| nop | |
| func_174e: | |
| push af | |
| ld a, $01 | |
| ld [$dfe0], a | |
| pop af | |
| func_1755: | |
| push af | |
| add a, a | |
| ld c, a | |
| ld b, $00 | |
| add hl, bc | |
| ldi a, [hl] | |
| ld [de], a | |
| inc de | |
| ld a, [hl] | |
| ld [de], a | |
| inc de | |
| pop af | |
| add a, $20 | |
| ld [de], a | |
| ret | |
| func_1766: | |
| ldh a, [rBUTTON_HIT] | |
| ld b, a | |
| ldh a, [rCOUNTDOWN] | |
| and a | |
| ret nz | |
| ld a, $10 | |
| ldh [rCOUNTDOWN], a | |
| ld a, [de] | |
| xor $80 | |
| ld [de], a | |
| ret | |
| func_1776: | |
| push hl | |
| ld b, $06 | |
| l_1779: | |
| ld a, [de] | |
| ldi [hl], a | |
| inc de | |
| dec b | |
| jr nz, l_1779 | |
| pop hl | |
| ld a, $10 | |
| add a, l | |
| ld l, a | |
| dec c | |
| jr nz, $1776 | |
| ld [hl], $80 | |
| ret | |
| CLEAR_OAM_DATA:: | |
| xor a | |
| ld hl, $c000 | |
| ld b, $a0 | |
| .loop_16: | |
| ldi [hl], a | |
| dec b | |
| jr nz, .loop_16 | |
| ret | |
| func_1795: | |
| call func_18fc | |
| ldh a, [rLEVEL_A] | |
| ld hl, $d654 | |
| ld de, $001b | |
| l_17a0: | |
| and a | |
| jr z, l_17a7 | |
| dec a | |
| add hl, de | |
| jr l_17a0 | |
| l_17a7: | |
| inc hl | |
| inc hl | |
| push hl | |
| pop de | |
| call func_1800 | |
| ret | |
| func_17af: | |
| call func_18fc | |
| ldh a, [$ff00 + $c3] | |
| ld hl, $d000 | |
| ld de, $00a2 | |
| l_17ba: | |
| and a | |
| jr z, l_17c1 | |
| dec a | |
| add hl, de | |
| jr l_17ba | |
| l_17c1: | |
| ldh a, [rINITIAL_HEIGHT] | |
| ld de, $001b | |
| l_17c6: | |
| and a | |
| jr z, l_17cd | |
| dec a | |
| add hl, de | |
| jr l_17c6 | |
| l_17cd: | |
| inc hl | |
| inc hl | |
| push hl | |
| pop de | |
| call func_1800 | |
| ret | |
| func_17d5: | |
| ld b, $03 | |
| l_17d7: | |
| ld a, [hl] | |
| and $f0 | |
| jr nz, l_17e7 | |
| inc e | |
| ldd a, [hl] | |
| and $0f | |
| jr nz, l_17f1 | |
| inc e | |
| dec b | |
| jr nz, l_17d7 | |
| ret | |
| l_17e7: | |
| ld a, [hl] | |
| and $f0 | |
| swap a | |
| ld [de], a | |
| inc e | |
| ldd a, [hl] | |
| and $0f | |
| l_17f1: | |
| ld [de], a | |
| inc e | |
| dec b | |
| jr nz, l_17e7 | |
| ret | |
| func_17f7: | |
| ld b, $03 | |
| func_17f9: | |
| ldd a, [hl] | |
| ld [de], a | |
| dec de | |
| dec b | |
| jr nz, $17f9 | |
| ret | |
| func_1800: | |
| ld a, d | |
| ldh [$ff00 + $fb], a | |
| ld a, e | |
| ldh [$ff00 + $fc], a | |
| ld c, $03 | |
| l_1808: | |
| ld hl, $c0a2 | |
| push de | |
| ld b, $03 | |
| l_180e: | |
| ld a, [de] | |
| sub a, [hl] | |
| jr c, l_1822 | |
| jr nz, l_1819 | |
| dec l | |
| dec de | |
| dec b | |
| jr nz, l_180e | |
| l_1819: | |
| pop de | |
| inc de | |
| inc de | |
| inc de | |
| dec c | |
| jr nz, l_1808 | |
| jr l_1880 | |
| l_1822: | |
| pop de | |
| ldh a, [$ff00 + $fb] | |
| ld d, a | |
| ldh a, [$ff00 + $fc] | |
| ld e, a | |
| push de | |
| push bc | |
| ld hl, $0006 | |
| add hl, de | |
| push hl | |
| pop de | |
| dec hl | |
| dec hl | |
| dec hl | |
| l_1834: | |
| dec c | |
| jr z, l_183c | |
| call func_17f7 | |
| jr l_1834 | |
| l_183c: | |
| ld hl, $c0a2 | |
| ld b, $03 | |
| l_1841: | |
| ldd a, [hl] | |
| ld [de], a | |
| dec e | |
| dec b | |
| jr nz, l_1841 | |
| pop bc | |
| pop de | |
| ld a, c | |
| ldh [$ff00 + $c8], a | |
| ld hl, $0012 | |
| add hl, de | |
| push hl | |
| ld de, $0006 | |
| add hl, de | |
| push hl | |
| pop de | |
| pop hl | |
| l_1858: | |
| dec c | |
| jr z, l_1862 | |
| ld b, $06 | |
| call func_17f9 | |
| jr l_1858 | |
| l_1862: | |
| ld a, $60 | |
| ld b, $05 | |
| l_1866: | |
| ld [de], a | |
| dec de | |
| dec b | |
| jr nz, l_1866 | |
| ld a, $0a | |
| ld [de], a | |
| ld a, d | |
| ldh [$ff00 + $c9], a | |
| ld a, e | |
| ldh [$ff00 + $ca], a | |
| xor a | |
| ldh [rCLEAR_PROGRESS], a | |
| ldh [$ff00 + $c6], a | |
| ld a, $01 | |
| ld [$dfe8], a | |
| ldh [$ff00 + $c7], a | |
| l_1880: | |
| ld de, $c9ac | |
| ldh a, [$ff00 + $fb] | |
| ld h, a | |
| ldh a, [$ff00 + $fc] | |
| ld l, a | |
| ld b, $03 | |
| l_188b: | |
| push hl | |
| push de | |
| push bc | |
| call func_17d5 | |
| pop bc | |
| pop de | |
| ld hl, $0020 | |
| add hl, de | |
| push hl | |
| pop de | |
| pop hl | |
| push de | |
| ld de, $0003 | |
| add hl, de | |
| pop de | |
| dec b | |
| jr nz, l_188b | |
| dec hl | |
| dec hl | |
| ld b, $03 | |
| ld de, $c9a4 | |
| l_18aa: | |
| push de | |
| ld c, $06 | |
| l_18ad: | |
| ldi a, [hl] | |
| and a | |
| jr z, l_18b6 | |
| ld [de], a | |
| inc de | |
| dec c | |
| jr nz, l_18ad | |
| l_18b6: | |
| pop de | |
| push hl | |
| ld hl, $0020 | |
| add hl, de | |
| push hl | |
| pop de | |
| pop hl | |
| dec b | |
| jr nz, l_18aa | |
| call func_2651 | |
| ld a, $01 | |
| ldh [$ff00 + $e8], a | |
| ret | |
| func_18ca: | |
| ldh a, [$ff00 + $e8] | |
| and a | |
| ret z | |
| ld hl, $99a4 | |
| ld de, $c9a4 | |
| ld c, $06 | |
| l_18d6: | |
| push hl | |
| l_18d7: | |
| ld b, $06 | |
| l_18d9: | |
| ld a, [de] | |
| ldi [hl], a | |
| inc e | |
| dec b | |
| jr nz, l_18d9 | |
| inc e | |
| inc l | |
| inc e | |
| inc l | |
| dec c | |
| jr z, l_18f7 | |
| bit 0, c | |
| jr nz, l_18d7 | |
| pop hl | |
| ld de, $0020 | |
| add hl, de | |
| push hl | |
| pop de | |
| ld a, $30 | |
| add a, d | |
| ld d, a | |
| jr l_18d6 | |
| l_18f7: | |
| pop hl | |
| func_18f8: | |
| xor a | |
| ldh [$ff00 + $e8], a | |
| ret | |
| func_18fc: | |
| ld hl, $c9a4 | |
| ld de, $0020 | |
| ld a, $60 | |
| ld c, $03 | |
| l_1906: | |
| ld b, $0e | |
| push hl | |
| l_1909: | |
| ldi [hl], a | |
| dec b | |
| jr nz, l_1909 | |
| pop hl | |
| add hl, de | |
| dec c | |
| jr nz, l_1906 | |
| ret | |
| ldh a, [$ff00 + $c8] | |
| ld hl, $99e4 | |
| ld de, $ffe0 | |
| l_191b: | |
| dec a | |
| jr z, l_1921 | |
| add hl, de | |
| jr l_191b | |
| l_1921: | |
| ldh a, [$ff00 + $c6] | |
| ld e, a | |
| ld d, $00 | |
| add hl, de | |
| ldh a, [$ff00 + $c9] | |
| ld d, a | |
| ldh a, [$ff00 + $ca] | |
| ld e, a | |
| ldh a, [rCOUNTDOWN] | |
| and a | |
| jr nz, l_1944 | |
| ld a, $07 | |
| ldh [rCOUNTDOWN], a | |
| ldh a, [rCLEAR_PROGRESS] | |
| xor $01 | |
| ldh [rCLEAR_PROGRESS], a | |
| ld a, [de] | |
| jr z, l_1941 | |
| ld a, $2f | |
| l_1941: | |
| call func_19fe | |
| l_1944: | |
| ldh a, [rBUTTON_HIT] | |
| ld b, a | |
| ldh a, [rBUTTON_DOWN] | |
| ld c, a | |
| ld a, $17 | |
| bit 6, b | |
| jr nz, l_1987 | |
| bit 6, c | |
| jr nz, l_197f | |
| bit 7, b | |
| jr nz, l_19b0 | |
| bit 7, c | |
| jr nz, l_19a8 | |
| bit 0, b | |
| jr nz, l_19cc | |
| bit 1, b | |
| jp nz, l_19ee | |
| bit 3, b | |
| ret z | |
| l_1968: | |
| ld a, [de] | |
| call func_19fe | |
| call func_1517 | |
| xor a | |
| ldh [$ff00 + $c7], a | |
| ldh a, [$ff00 + $c0] | |
| cp $37 | |
| ld a, $11 | |
| jr z, l_197c | |
| ld a, $13 | |
| l_197c: | |
| ldh [rGAME_STATUS], a | |
| ret | |
| l_197f: | |
| ldh a, [$ff00 + $aa] | |
| dec a | |
| ldh [$ff00 + $aa], a | |
| ret nz | |
| ld a, $09 | |
| l_1987: | |
| ldh [$ff00 + $aa], a | |
| ld b, $26 | |
| ldh a, [rHARD_MODE] | |
| and a | |
| jr z, l_1992 | |
| ld b, $27 | |
| l_1992: | |
| ld a, [de] | |
| cp b | |
| jr nz, l_19a0 | |
| ld a, $2e | |
| l_1998: | |
| inc a | |
| l_1999: | |
| ld [de], a | |
| ld a, $01 | |
| ld [$dfe0], a | |
| ret | |
| l_19a0: | |
| cp $2f | |
| jr nz, l_1998 | |
| ld a, $0a | |
| jr l_1999 | |
| l_19a8: | |
| ldh a, [$ff00 + $aa] | |
| dec a | |
| ldh [$ff00 + $aa], a | |
| ret nz | |
| ld a, $09 | |
| l_19b0: | |
| ldh [$ff00 + $aa], a | |
| ld b, $26 | |
| ldh a, [rHARD_MODE] | |
| and a | |
| jr z, l_19bb | |
| ld b, $27 | |
| l_19bb: | |
| ld a, [de] | |
| cp $0a | |
| jr nz, l_19c5 | |
| ld a, $30 | |
| l_19c2: | |
| dec a | |
| jr l_1999 | |
| l_19c5: | |
| cp $2f | |
| jr nz, l_19c2 | |
| ld a, b | |
| jr l_1999 | |
| l_19cc: | |
| ld a, [de] | |
| call func_19fe | |
| ld a, $02 | |
| ld [$dfe0], a | |
| ldh a, [$ff00 + $c6] | |
| inc a | |
| cp $06 | |
| jr z, l_1968 | |
| ldh [$ff00 + $c6], a | |
| inc de | |
| ld a, [de] | |
| cp $60 | |
| jr nz, l_19e7 | |
| ld a, $0a | |
| ld [de], a | |
| l_19e7: | |
| ld a, d | |
| ldh [$ff00 + $c9], a | |
| ld a, e | |
| ldh [$ff00 + $ca], a | |
| ret | |
| l_19ee: | |
| ldh a, [$ff00 + $c6] | |
| and a | |
| ret z | |
| ld a, [de] | |
| call func_19fe | |
| ldh a, [$ff00 + $c6] | |
| dec a | |
| ldh [$ff00 + $c6], a | |
| dec de | |
| jr l_19e7 | |
| func_19fe: | |
| ld b, a | |
| func_19ff: | |
| ldh a, [$ff00 + $41] | |
| and $03 | |
| jr nz, $19ff | |
| ld [hl], b | |
| ret | |
| call WAIT_FOR_VBLANK | |
| xor a | |
| ld [rNEXT_BLOCK_VISIBILITY], a | |
| ldh [rBLOCK_STATUS], a | |
| ldh [rCLEAR_PROGRESS], a | |
| ldh [$ff00 + $9b], a | |
| ldh [$ff00 + $fb], a | |
| ldh [rLINES_CLEARED2], a | |
| ld a, $2f | |
| call func_1fd7 | |
| call func_1ff2 | |
| call func_2651 | |
| xor a | |
| ldh [rROW_UPDATE], a | |
| call CLEAR_OAM_DATA | |
| ldh a, [$ff00 + $c0] | |
| ld de, $3ff7 | |
| ld hl, $ffc3 | |
| cp $77 | |
| ld a, $50 | |
| jr z, l_1a3f | |
| ld a, $f1 | |
| ld hl, $ffc2 | |
| ld de, $3e8f | |
| l_1a3f: | |
| push de | |
| ldh [$ff00 + $e6], a | |
| ld a, [hl] | |
| ldh [$ff00 + $a9], a | |
| call COPY_TILEMAP | |
| pop de | |
| ld hl, $9c00 | |
| call COPY_TILEMAP_B | |
| ld de, $2839 | |
| ld hl, $9c63 | |
| ld c, $0a | |
| call func_1f7d | |
| ld h, $98 | |
| ldh a, [$ff00 + $e6] | |
| ld l, a | |
| ldh a, [$ff00 + $a9] | |
| ld [hl], a | |
| ld h, $9c | |
| ld [hl], a | |
| ldh a, [rHARD_MODE] | |
| and a | |
| jr z, l_1a71 | |
| inc hl | |
| ld [hl], $27 | |
| ld h, $98 | |
| ld [hl], $27 | |
| l_1a71: | |
| ld hl, rBLOCK_VISIBILITY | |
| ld de, $26bf | |
| call func_26b6 | |
| ld hl, rNEXT_BLOCK_VISIBILITY | |
| ld de, $26c7 | |
| call func_26b6 | |
| ld hl, $9951 | |
| ldh a, [$ff00 + $c0] | |
| cp $77 | |
| ld a, $25 | |
| jr z, l_1a8f | |
| xor a | |
| l_1a8f: | |
| ldh [rLINES_CLEARED1], a | |
| and $0f | |
| ldd [hl], a | |
| jr z, l_1a98 | |
| ld [hl], $02 | |
| l_1a98: | |
| call func_1ae8 | |
| ld a, [rHIDE_NEXT_BLOCK] | |
| and a | |
| jr z, l_1aa6 | |
| ld a, $80 | |
| ld [rNEXT_BLOCK_VISIBILITY], a | |
| l_1aa6: | |
| call func_2007 | |
| call func_2007 | |
| call func_2007 | |
| call func_2683 | |
| xor a | |
| ldh [$ff00 + $a0], a | |
| ldh a, [rGAME_TYPE] | |
| cp GAME_TYPE_B | |
| jr nz, l_1ae0 | |
| ld a, $34 | |
| ldh [rGRAVITY], a | |
| ldh a, [rINITIAL_HEIGHT] | |
| ld hl, $98b0 | |
| ld [hl], a | |
| ld h, $9c | |
| ld [hl], a | |
| and a | |
| jr z, l_1ae0 | |
| ld b, a | |
| ldh a, [rDEMO_GAME] | |
| and a | |
| jr z, l_1ad6 | |
| call func_1b1b | |
| jr l_1ae0 | |
| l_1ad6: | |
| ld a, b | |
| ld de, $ffc0 | |
| ld hl, $9a02 | |
| call func_1b68 | |
| l_1ae0: | |
| ld a, $d3 | |
| ldh [$ff00 + $40], a | |
| xor a | |
| ldh [rGAME_STATUS], a | |
| ret | |
| func_1ae8: | |
| ldh a, [$ff00 + $a9] | |
| ld e, a | |
| ldh a, [rHARD_MODE] | |
| and a | |
| jr z, l_1afa | |
| ld a, $0a | |
| add a, e | |
| cp $15 | |
| jr c, l_1af9 | |
| ld a, $14 | |
| l_1af9: | |
| ld e, a | |
| l_1afa: | |
| ld hl, $1b06 | |
| ld d, $00 | |
| add hl, de | |
| ld a, [hl] | |
| ldh [rGRAVITY], a | |
| ldh [$ff00 + $9a], a | |
| ret | |
| db $34, $30, $2C, $28, $24, $20, $1B, $15, $10, $0A, $09, $08 | |
| db $07, $06, $05, $05, $04, $04, $03, $03, $02 | |
| func_1b1b: | |
| ld hl, $99c2 | |
| ld de, $1b40 | |
| ld c, $04 | |
| l_1b23: | |
| ld b, $0a | |
| push hl | |
| l_1b26: | |
| ld a, [de] | |
| ld [hl], a | |
| l_1b28: | |
| push hl | |
| ld a, h | |
| add a, $30 | |
| ld h, a | |
| ld a, [de] | |
| ld [hl], a | |
| l_1b2f: | |
| pop hl | |
| inc l | |
| inc de | |
| dec b | |
| jr nz, l_1b26 | |
| l_1b35: | |
| pop hl | |
| push de | |
| ld de, $0020 | |
| add hl, de | |
| pop de | |
| dec c | |
| jr nz, l_1b23 | |
| ret | |
| db $85, $2F, $82, $86, $83, $2F, $2F, $80, $82, $85, $2F, $82 | |
| db $84, $82, $83, $2F, $83, $2F, $87, $2F, $2F, $85, $2F, $83 | |
| db $2F, $86, $82, $80, $81, $2F, $83, $2F, $86, $83, $2F, $85 | |
| db $2F, $85, $2F, $2F | |
| func_1b68: | |
| ld b, a | |
| l_1b69: | |
| dec b | |
| jr z, l_1b6f | |
| add hl, de | |
| jr l_1b69 | |
| l_1b6f: | |
| ldh a, [$ff00 + $04] | |
| ld b, a | |
| l_1b72: | |
| ld a, $80 | |
| l_1b74: | |
| dec b | |
| jr z, l_1b7f | |
| cp $80 | |
| jr nz, l_1b72 | |
| ld a, $2f | |
| jr l_1b74 | |
| l_1b7f: | |
| cp $2f | |
| jr z, l_1b8b | |
| ldh a, [$ff00 + $04] | |
| and $07 | |
| or $80 | |
| jr l_1b8d | |
| l_1b8b: | |
| ldh [$ff00 + $a0], a | |
| l_1b8d: | |
| push af | |
| ld a, l | |
| and $0f | |
| cp $0b | |
| jr nz, l_1ba0 | |
| ldh a, [$ff00 + $a0] | |
| cp $2f | |
| jr z, l_1ba0 | |
| pop af | |
| ld a, $2f | |
| jr l_1ba1 | |
| l_1ba0: | |
| pop af | |
| l_1ba1: | |
| ld [hl], a | |
| push hl | |
| push af | |
| ldh a, [rPLAYERS] | |
| and a | |
| jr nz, l_1bad | |
| ld de, $3000 | |
| add hl, de | |
| l_1bad: | |
| pop af | |
| ld [hl], a | |
| pop hl | |
| inc hl | |
| ld a, l | |
| and $0f | |
| cp $0c | |
| jr nz, l_1b6f | |
| xor a | |
| ldh [$ff00 + $a0], a | |
| ld a, h | |
| and $0f | |
| cp $0a | |
| jr z, l_1bc8 | |
| l_1bc2: | |
| ld de, $0016 | |
| add hl, de | |
| jr l_1b6f | |
| l_1bc8: | |
| ld a, l | |
| cp $2c | |
| jr nz, l_1bc2 | |
| ret | |
| SECTION "MENU_IN_GAME", ROM0 [$1BCE] | |
| lbl_MENU_IN_GAME:: | |
| call START_SELECT_HANDLER ; check if start or select was pressed | |
| ldh a, [rPAUSE_MENU] | |
| and a | |
| ret nz ; return if in pause menu | |
| call CHECK_DEMO_GAME_FINISHED | |
| call SIMULATE_BUTTON_PRESSES | |
| call USELESS_FUNCTION ; does nothing b/c depending on unused variable | |
| call func_24bb | |
| call func_209c | |
| call func_213e | |
| call func_25a1 | |
| call func_224d | |
| call func_1f91 | |
| call RESTORE_BUTTON_PRESSES | |
| ret | |
| toggle_next_block_hidden: | |
| bit 2, a | |
| ret z | |
| ld a, [rHIDE_NEXT_BLOCK] | |
| xor $01 | |
| ld [rHIDE_NEXT_BLOCK], a | |
| jr z, l_1c0a | |
| ld a, $80 | |
| l_1c03: | |
| ld [rNEXT_BLOCK_VISIBILITY], a | |
| call func_2696 | |
| ret | |
| l_1c0a: | |
| xor a | |
| jr l_1c03 | |
| START_SELECT_HANDLER:: | |
| ldh a, [rBUTTON_DOWN] | |
| and $0f | |
| cp $0f | |
| jp z, Screen_Setup ; if buttons A, B, Select and Start are all pressed, reset game | |
| ldh a, [rDEMO_GAME] | |
| and a | |
| ret nz ; return now, if it is only a demo game | |
| ldh a, [rBUTTON_HIT] | |
| bit BTN_START, a | |
| jr z, toggle_next_block_hidden ; if Start is NOT pressed, check if Select is pressed | |
| ; start button was pressed: | |
| ldh a, [rPLAYERS] | |
| and a | |
| jr nz, l_1c6a ; jump if 2 player mode | |
| ld hl, rLCDC | |
| ldh a, [rPAUSE_MENU] | |
| xor $01 ; toggle start menu flag | |
| ldh [rPAUSE_MENU], a | |
| jr z, .unpausing ; jump if now unpausing | |
| ; pausing now: | |
| set 3, [hl] ; select second background tile map at $9c00 (already contains the pause menu text) | |
| ld a, $01 | |
| ld [rPAUSED], a ; set "just paused" flag | |
| ld hl, $994e ; start of line tiles on BG tile map 1 | |
| ld de, $9d4e ; start of line tiles on BG tile map 2 | |
| ld b, $04 ; length of line tiles (4 numbers max, 9999 is highest line number) | |
| .loop_18: | |
| ldh a, [rLCDC_STAT] | |
| and $03 | |
| jr nz, .loop_18 ; Loop until H-Blank reached (bits 0 and 1 of rLCDC_STAT not set) | |
| ldi a, [hl] | |
| ld [de], a ; Copy score tile from BG tile map 1 to BG tile map 2 | |
| inc de | |
| dec b | |
| jr nz, .loop_18 ; loop while there are still tiles left (and wait for H-Blank again) | |
| ld a, $80 | |
| .set_next_block_display: | |
| ld [rHIDE_NEXT_BLOCK_DISPLAY], a ; set the actual visibility of the next block display | |
| .l_1c50: | |
| ld [rBLOCK_VISIBILITY], a | |
| call func_2683 | |
| call func_2696 | |
| ret | |
| .unpausing: | |
| res 3, [hl] ; select first background tile map at $9800 (still contains the fallen blocks) | |
| ld a, $02 | |
| ld [rPAUSED], a ; set the "just unpaused" flag | |
| ld a, [rHIDE_NEXT_BLOCK] | |
| and a | |
| jr z, .set_next_block_display ; jump if next block was not hidden before pausing | |
| xor a | |
| jr .l_1c50 ; jump if next block was hidden before pausing | |
| l_1c6a: | |
| ldh a, [$ff00 + $cb] | |
| cp $29 | |
| ret nz | |
| ldh a, [$ff00 + $ab] | |
| xor $01 | |
| ldh [$ff00 + $ab], a | |
| jr z, l_1caa | |
| ld a, $01 | |
| ld [rPAUSED], a | |
| ldh a, [$ff00 + $d0] | |
| ldh [$ff00 + $f2], a | |
| ldh a, [rSB_DATA] | |
| ldh [$ff00 + $f1], a | |
| call func_1ccb | |
| ret | |
| func_1c88: | |
| ldh a, [$ff00 + $ab] | |
| and a | |
| ret z | |
| ldh a, [$ff00 + $cc] | |
| jr z, l_1cc9 | |
| xor a | |
| ldh [$ff00 + $cc], a | |
| ldh a, [$ff00 + $cb] | |
| cp $29 | |
| jr nz, l_1ca1 | |
| ld a, $94 | |
| ldh [rSB_DATA], a | |
| ldh [rREQUEST_SERIAL_TRANSFER], a | |
| pop hl | |
| ret | |
| l_1ca1: | |
| xor a | |
| ldh [rSB_DATA], a | |
| ldh a, [$ff00 + $d0] | |
| cp $94 | |
| jr z, l_1cc9 | |
| l_1caa: | |
| ldh a, [$ff00 + $f2] | |
| ldh [$ff00 + $d0], a | |
| ldh a, [$ff00 + $f1] | |
| ldh [rSB_DATA], a | |
| ld a, $02 | |
| ld [rPAUSED], a | |
| xor a | |
| ldh [$ff00 + $ab], a | |
| ld hl, $98ee | |
| ld b, $8e | |
| ld c, $05 | |
| l_1cc1: | |
| call func_19ff | |
| inc l | |
| dec c | |
| jr nz, l_1cc1 | |
| ret | |
| l_1cc9: | |
| pop hl | |
| ret | |
| func_1ccb: | |
| ld hl, $98ee | |
| ld c, $05 | |
| ld de, $1cdd | |
| l_1cd3: | |
| ld a, [de] | |
| call func_19fe | |
| inc de | |
| inc l | |
| dec c | |
| jr nz, l_1cd3 | |
| ret | |
| add hl, de | |
| ld a, [bc] | |
| ld e, $1c | |
| db $0E | |
| lbl_MENU_GAME_OVER_INIT:: | |
| ld a, $80 | |
| ld [rBLOCK_VISIBILITY], a | |
| ld [rNEXT_BLOCK_VISIBILITY], a | |
| call func_2683 | |
| call func_2696 | |
| xor a | |
| ldh [rBLOCK_STATUS], a | |
| ldh [rCLEAR_PROGRESS], a | |
| call func_2293 | |
| ld a, $87 | |
| call func_1fd7 | |
| ld a, $46 | |
| ldh [rCOUNTDOWN], a | |
| ld a, $0d | |
| ldh [rGAME_STATUS], a | |
| ret | |
| lbl_MENU_GAME_OVER:: | |
| ldh a, [rBUTTON_HIT] | |
| bit 0, a | |
| jr nz, l_1d0f | |
| bit 3, a | |
| ret z | |
| l_1d0f: | |
| xor a | |
| ldh [rROW_UPDATE], a | |
| ldh a, [rPLAYERS] | |
| and a | |
| ld a, $16 | |
| jr nz, l_1d23 | |
| ldh a, [$ff00 + $c0] | |
| cp $37 | |
| ld a, $10 | |
| jr z, l_1d23 | |
| ld a, $12 | |
| l_1d23: | |
| ldh [rGAME_STATUS], a | |
| ret | |
| lbl_MENU_TYPE_B_WON:: | |
| ldh a, [rCOUNTDOWN] | |
| and a | |
| ret nz | |
| ld hl, $c802 | |
| ld de, $2889 | |
| call func_2804 | |
| ldh a, [$ff00 + $c3] | |
| and a | |
| jr z, l_1d66 | |
| ld de, $0040 | |
| ld hl, $c827 | |
| call func_1d83 | |
| ld de, $0100 | |
| ld hl, $c887 | |
| call func_1d83 | |
| ld de, $0300 | |
| ld hl, $c8e7 | |
| call func_1d83 | |
| ld de, $1200 | |
| ld hl, $c947 | |
| call func_1d83 | |
| ld hl, $c0a0 | |
| ld b, $03 | |
| xor a | |
| l_1d62: | |
| ldi [hl], a | |
| dec b | |
| jr nz, l_1d62 | |
| l_1d66: | |
| ld a, $80 | |
| ldh [rCOUNTDOWN], a | |
| ld a, $80 | |
| ld [rBLOCK_VISIBILITY], a | |
| ld [rNEXT_BLOCK_VISIBILITY], a | |
| call func_2683 | |
| call func_2696 | |
| call Sound_Init | |
| ld a, $25 | |
| ldh [rLINES_CLEARED1], a | |
| ld a, $0b | |
| ldh [rGAME_STATUS], a | |
| ret | |
| func_1d83: | |
| push hl | |
| ld hl, $c0a0 | |
| ld b, $03 | |
| xor a | |
| l_1d8b: | |
| ldi [hl], a | |
| dec b | |
| jr nz, l_1d8b | |
| ldh a, [$ff00 + $c3] | |
| ld b, a | |
| inc b | |
| l_1d93: | |
| ld hl, $c0a0 | |
| call func_0166 | |
| dec b | |
| jr nz, l_1d93 | |
| pop hl | |
| ld b, $03 | |
| ld de, $c0a2 | |
| l_1da2: | |
| ld a, [de] | |
| and $f0 | |
| jr nz, l_1db1 | |
| ld a, [de] | |
| and $0f | |
| jr nz, l_1db7 | |
| dec e | |
| dec b | |
| jr nz, l_1da2 | |
| ret | |
| l_1db1: | |
| ld a, [de] | |
| and $f0 | |
| swap a | |
| ldi [hl], a | |
| l_1db7: | |
| ld a, [de] | |
| and $0f | |
| ldi [hl], a | |
| dec e | |
| dec b | |
| jr nz, l_1db1 | |
| ret | |
| ldh a, [rCOUNTDOWN] | |
| and a | |
| ret nz | |
| ld a, $01 | |
| ld [$c0c6], a | |
| ld a, $05 | |
| ldh [rCOUNTDOWN], a | |
| ret | |
| ldh a, [rCOUNTDOWN] | |
| and a | |
| ret nz | |
| ld hl, $c802 | |
| ld de, $510f | |
| call func_2804 | |
| call CLEAR_OAM_DATA | |
| ld hl, rBLOCK_VISIBILITY | |
| ld de, $2735 | |
| ld c, $0a | |
| call func_1776 | |
| ld a, $10 | |
| ld hl, $c266 | |
| ld [hl], a | |
| ld l, $76 | |
| ld [hl], a | |
| ld hl, $c20e | |
| ld de, $1e31 | |
| ld b, $0a | |
| l_1dfa: | |
| ld a, [de] | |
| ldi [hl], a | |
| ldi [hl], a | |
| inc de | |
| push de | |
| ld de, $000e | |
| add hl, de | |
| pop de | |
| dec b | |
| jr nz, l_1dfa | |
| ldh a, [rINITIAL_HEIGHT] | |
| cp $05 | |
| jr nz, l_1e0f | |
| ld a, $09 | |
| l_1e0f: | |
| inc a | |
| ld b, a | |
| ld hl, rBLOCK_VISIBILITY | |
| ld de, $0010 | |
| xor a | |
| l_1e18: | |
| ld [hl], a | |
| add hl, de | |
| dec b | |
| jr nz, l_1e18 | |
| ldh a, [rINITIAL_HEIGHT] | |
| add a, $0a | |
| ld [$dfe8], a | |
| ld a, $25 | |
| ldh [rLINES_CLEARED1], a | |
| ld a, $1b | |
| ldh [rCOUNTDOWN], a | |
| ld a, $23 | |
| ldh [rGAME_STATUS], a | |
| ret | |
| inc e | |
| rrca | |
| ld e, $32 | |
| jr nz, l_1e4f | |
| ld h, $1d | |
| jr z, l_1e66 | |
| l_1e3b: | |
| ld a, $0a | |
| call func_2673 | |
| ret | |
| ldh a, [rCOUNTDOWN] | |
| cp $14 | |
| jr z, l_1e3b | |
| and a | |
| ret nz | |
| ld hl, $c20e | |
| ld de, $0010 | |
| l_1e4f: | |
| ld b, $0a | |
| l_1e51: | |
| push hl | |
| dec [hl] | |
| jr nz, l_1e6a | |
| inc l | |
| ldd a, [hl] | |
| ld [hl], a | |
| ld a, l | |
| and $f0 | |
| or $03 | |
| ld l, a | |
| ld a, [hl] | |
| xor $01 | |
| ld [hl], a | |
| cp $50 | |
| jr z, l_1e89 | |
| l_1e66: | |
| cp $51 | |
| jr z, l_1e8f | |
| l_1e6a: | |
| pop hl | |
| add hl, de | |
| dec b | |
| jr nz, l_1e51 | |
| ld a, $0a | |
| call func_2673 | |
| ld a, [$dfe9] | |
| and a | |
| ret nz | |
| call CLEAR_OAM_DATA | |
| ldh a, [rINITIAL_HEIGHT] | |
| cp $05 | |
| ld a, $26 | |
| jr z, l_1e86 | |
| ld a, $05 | |
| l_1e86: | |
| ldh [rGAME_STATUS], a | |
| ret | |
| l_1e89: | |
| dec l | |
| dec l | |
| ld [hl], $67 | |
| jr l_1e6a | |
| l_1e8f: | |
| dec l | |
| dec l | |
| ld [hl], $5d | |
| jr l_1e6a | |
| l_1e95: | |
| xor a | |
| ld [$c0c6], a | |
| ld de, $c0c0 | |
| ld a, [de] | |
| ld l, a | |
| inc de | |
| ld a, [de] | |
| ld h, a | |
| or l | |
| jp z, l_263a | |
| dec hl | |
| ld a, h | |
| ld [de], a | |
| dec de | |
| ld a, l | |
| ld [de], a | |
| ld de, $0001 | |
| ld hl, $c0c2 | |
| push de | |
| call func_0166 | |
| ld de, $c0c4 | |
| ld hl, $99a5 | |
| call func_2a36 | |
| xor a | |
| ldh [rCOUNTDOWN], a | |
| pop de | |
| ld hl, $c0a0 | |
| call func_0166 | |
| ld de, $c0a2 | |
| ld hl, $9a25 | |
| call func_2a3a | |
| ld a, $02 | |
| ld [$dfe0], a | |
| ret | |
| func_1ed7: | |
| ld a, [$c0c6] | |
| and a | |
| ret z | |
| ld a, [$c0c5] | |
| cp $04 | |
| jr z, l_1e95 | |
| ld de, $0040 | |
| ld bc, $9823 | |
| ld hl, $c0ac | |
| and a | |
| jr z, l_1f12 | |
| ld de, $0100 | |
| ld bc, $9883 | |
| ld hl, $c0b1 | |
| cp $01 | |
| jr z, l_1f12 | |
| ld de, $0300 | |
| ld bc, $98e3 | |
| ld hl, $c0b6 | |
| cp $02 | |
| jr z, l_1f12 | |
| ld de, $1200 | |
| ld bc, $9943 | |
| ld hl, $c0bb | |
| l_1f12: | |
| call func_25d9 | |
| ret | |
| ldh a, [rBUTTON_HIT] | |
| and a | |
| ret z | |
| ld a, $02 | |
| ldh [rGAME_STATUS], a | |
| ret | |
| ldh a, [rCOUNTDOWN] | |
| and a | |
| ret nz | |
| ld a, $04 | |
| ld [$dfe8], a | |
| ldh a, [rPLAYERS] | |
| and a | |
| jr z, l_1f37 | |
| ld a, $3f | |
| ldh [rCOUNTDOWN], a | |
| ld a, $1b | |
| ldh [$ff00 + $cc], a | |
| jr l_1f6e | |
| l_1f37: | |
| ld a, $2f | |
| call func_1fd7 | |
| ld hl, $c843 | |
| ld de, $293e | |
| ld c, $07 | |
| call func_1f7d | |
| ld hl, $c983 | |
| ld de, $2976 | |
| ld c, $06 | |
| call func_1f7d | |
| ldh a, [$ff00 + $c0] | |
| cp $37 | |
| jr nz, l_1f6c | |
| ld hl, $c0a2 | |
| ld a, [hl] | |
| ld b, $58 | |
| cp $20 | |
| jr nc, l_1f71 | |
| inc b | |
| cp $15 | |
| jr nc, l_1f71 | |
| inc b | |
| cp $10 | |
| jr nc, l_1f71 | |
| l_1f6c: | |
| ld a, $04 | |
| l_1f6e: | |
| ldh [rGAME_STATUS], a | |
| ret | |
| l_1f71: | |
| ld a, b | |
| ldh [$ff00 + $f3], a | |
| ld a, $90 | |
| ldh [rCOUNTDOWN], a | |
| ld a, $34 | |
| ldh [rGAME_STATUS], a | |
| ret | |
| func_1f7d: | |
| ld b, $08 | |
| push hl | |
| l_1f80: | |
| ld a, [de] | |
| ldi [hl], a | |
| inc de | |
| dec b | |
| jr nz, l_1f80 | |
| pop hl | |
| push de | |
| ld de, $0020 | |
| add hl, de | |
| pop de | |
| dec c | |
| jr nz, $1f7d | |
| ret | |
| func_1f91: | |
| ldh a, [$ff00 + $c0] | |
| cp $37 | |
| ret nz | |
| ldh a, [rGAME_STATUS] | |
| and a | |
| ret nz | |
| ldh a, [rROW_UPDATE] | |
| cp $05 | |
| ret nz | |
| ld hl, $c0ac | |
| ld bc, $0005 | |
| ld a, [hl] | |
| ld de, $0040 | |
| and a | |
| jr nz, l_1fc3 | |
| add hl, bc | |
| ld a, [hl] | |
| ld de, $0100 | |
| and a | |
| jr nz, l_1fc3 | |
| add hl, bc | |
| ld a, [hl] | |
| ld de, $0300 | |
| and a | |
| jr nz, l_1fc3 | |
| add hl, bc | |
| ld de, $1200 | |
| ld a, [hl] | |
| and a | |
| ret z | |
| l_1fc3: | |
| ld [hl], $00 | |
| ldh a, [$ff00 + $a9] | |
| ld b, a | |
| inc b | |
| l_1fc9: | |
| push bc | |
| push de | |
| ld hl, $c0a0 | |
| call func_0166 | |
| pop de | |
| pop bc | |
| dec b | |
| jr nz, l_1fc9 | |
| ret | |
| func_1fd7: | |
| push af | |
| ld a, $02 | |
| ldh [rROW_UPDATE], a | |
| pop af | |
| func_1fdd: | |
| ld hl, $c802 | |
| ld c, $12 | |
| ld de, $0020 | |
| l_1fe5: | |
| push hl | |
| ld b, $0a | |
| l_1fe8: | |
| ldi [hl], a | |
| dec b | |
| jr nz, l_1fe8 | |
| pop hl | |
| add hl, de | |
| dec c | |
| jr nz, l_1fe5 | |
| ret | |
| func_1ff2: | |
| ld hl, $cbc2 | |
| ld de, $0016 | |
| ld c, $02 | |
| ld a, $2f | |
| l_1ffc: | |
| ld b, $0a | |
| l_1ffe: | |
| ldi [hl], a | |
| dec b | |
| jr nz, l_1ffe | |
| add hl, de | |
| dec c | |
| jr nz, l_1ffc | |
| ret | |
| func_2007: | |
| ld hl, rBLOCK_VISIBILITY | |
| ld [hl], $00 | |
| inc l | |
| ld [hl], $18 | |
| inc l | |
| ld [hl], $3f | |
| inc l | |
| ld a, [rNEXT_BLOCK_TYPE] | |
| ld [hl], a | |
| and $fc | |
| ld c, a | |
| ldh a, [rDEMO_GAME] | |
| and a | |
| jr nz, l_2024 | |
| ldh a, [rPLAYERS] | |
| and a | |
| jr z, l_2041 | |
| l_2024: | |
| ld h, $c3 | |
| ldh a, [rDEMO_STATUS] | |
| ld l, a | |
| ld e, [hl] | |
| inc hl | |
| ld a, h | |
| cp $c4 | |
| jr nz, l_2033 | |
| ld hl, $c300 | |
| l_2033: | |
| ld a, l | |
| ldh [rDEMO_STATUS], a | |
| ldh a, [$ff00 + $d3] | |
| and a | |
| jr z, l_2065 | |
| or $80 | |
| ldh [$ff00 + $d3], a | |
| jr l_2065 | |
| l_2041: | |
| ld h, $03 | |
| l_2043: | |
| ldh a, [rDIV] | |
| ld b, a | |
| l_2046: | |
| xor a | |
| l_2047: | |
| dec b | |
| jr z, l_2054 | |
| inc a | |
| inc a | |
| inc a | |
| inc a | |
| cp $1c | |
| jr z, l_2046 | |
| jr l_2047 | |
| l_2054: | |
| ld d, a | |
| ldh a, [$ff00 + $ae] | |
| ld e, a | |
| dec h | |
| jr z, l_2062 | |
| or d | |
| or c | |
| and $fc | |
| cp c | |
| jr z, l_2043 | |
| l_2062: | |
| ld a, d | |
| ldh [$ff00 + $ae], a | |
| l_2065: | |
| ld a, e | |
| ld [rNEXT_BLOCK_TYPE], a | |
| call func_2696 | |
| ldh a, [$ff00 + $9a] | |
| ldh [rGRAVITY], a | |
| ret | |
| l_2071: | |
| ld a, [$c0c7] | |
| and a | |
| jr z, l_2083 | |
| ldh a, [rBUTTON_HIT] | |
| and $b0 | |
| cp $80 | |
| jr nz, l_20a4 | |
| xor a | |
| ld [$c0c7], a | |
| l_2083: | |
| ldh a, [rCOUNTDOWN2] | |
| and a | |
| jr nz, l_20b1 | |
| ldh a, [rBLOCK_STATUS] | |
| and a | |
| jr nz, l_20b1 | |
| ldh a, [rROW_UPDATE] | |
| and a | |
| jr nz, l_20b1 | |
| ld a, $03 | |
| ldh [$ff00 + $a7], a | |
| ld hl, $ffe5 | |
| inc [hl] | |
| jr l_20c2 | |
| func_209c: | |
| ldh a, [rBUTTON_DOWN] | |
| and $b0 | |
| cp $80 | |
| jr z, l_2071 | |
| l_20a4: | |
| ld hl, $ffe5 | |
| ld [hl], $00 | |
| ldh a, [rGRAVITY] | |
| and a | |
| jr z, l_20b5 | |
| dec a | |
| ldh [rGRAVITY], a | |
| l_20b1: | |
| call func_2683 | |
| ret | |
| l_20b5: | |
| ldh a, [rBLOCK_STATUS] | |
| cp $03 | |
| ret z | |
| ldh a, [rROW_UPDATE] | |
| and a | |
| ret nz | |
| ldh a, [$ff00 + $9a] | |
| ldh [rGRAVITY], a | |
| l_20c2: | |
| ld hl, rBLOCK_Y | |
| ld a, [hl] | |
| ldh [$ff00 + $a0], a | |
| add a, $08 | |
| ld [hl], a | |
| call func_2683 | |
| call func_2573 | |
| and a | |
| ret z | |
| ldh a, [$ff00 + $a0] | |
| ld hl, rBLOCK_Y | |
| ld [hl], a | |
| call func_2683 | |
| ld a, $01 | |
| ldh [rBLOCK_STATUS], a | |
| ld [$c0c7], a | |
| ldh a, [$ff00 + $e5] | |
| and a | |
| jr z, l_2103 | |
| ld c, a | |
| ldh a, [$ff00 + $c0] | |
| cp $37 | |
| jr z, l_2126 | |
| ld de, $c0c0 | |
| ld a, [de] | |
| ld l, a | |
| inc de | |
| ld a, [de] | |
| ld h, a | |
| ld b, $00 | |
| dec c | |
| add hl, bc | |
| ld a, h | |
| ld [de], a | |
| ld a, l | |
| dec de | |
| ld [de], a | |
| l_2100: | |
| xor a | |
| ldh [$ff00 + $e5], a | |
| l_2103: | |
| ld a, [rBLOCK_Y] | |
| cp $18 | |
| ret nz | |
| ld a, [rBLOCK_X] | |
| cp $3f | |
| ret nz | |
| ld hl, $fffb | |
| ld a, [hl] | |
| cp $01 | |
| jr nz, l_2124 | |
| call Sound_Init | |
| ld a, $01 | |
| ldh [rGAME_STATUS], a | |
| ld a, $02 | |
| ld [$dff0], a | |
| ret | |
| l_2124: | |
| inc [hl] | |
| ret | |
| l_2126: | |
| xor a | |
| l_2127: | |
| dec c | |
| jr z, l_212e | |
| inc a | |
| daa | |
| jr l_2127 | |
| l_212e: | |
| ld e, a | |
| ld d, $00 | |
| ld hl, $c0a0 | |
| call func_0166 | |
| ld a, $01 | |
| ld [$c0ce], a | |
| jr l_2100 | |
| func_213e: | |
| ldh a, [rBLOCK_STATUS] | |
| cp $02 | |
| ret nz | |
| ld a, $02 | |
| ld [$dff8], a | |
| xor a | |
| ldh [$ff00 + $a0], a | |
| ld de, rLINE_CLEAR_START | |
| ld hl, $c842 | |
| ld b, $10 | |
| l_2153: | |
| ld c, $0a | |
| push hl | |
| l_2156: | |
| ldi a, [hl] | |
| cp $2f | |
| jp z, l_21d8 | |
| dec c | |
| jr nz, l_2156 | |
| pop hl | |
| ld a, h | |
| ld [de], a | |
| inc de | |
| ld a, l | |
| ld [de], a | |
| inc de | |
| ldh a, [$ff00 + $a0] | |
| inc a | |
| ldh [$ff00 + $a0], a | |
| l_216b: | |
| push de | |
| ld de, $0020 | |
| add hl, de | |
| pop de | |
| dec b | |
| jr nz, l_2153 | |
| ld a, $03 | |
| ldh [rBLOCK_STATUS], a | |
| dec a | |
| ldh [rCOUNTDOWN], a | |
| ldh a, [$ff00 + $a0] | |
| and a | |
| ret z | |
| ld b, a | |
| ld hl, $ff9e | |
| ldh a, [$ff00 + $c0] | |
| cp $77 | |
| jr z, l_219b | |
| ld a, b | |
| add a, [hl] | |
| daa | |
| ldi [hl], a | |
| ld a, $00 | |
| adc a, [hl] | |
| daa | |
| ld [hl], a | |
| jr nc, l_21aa | |
| ld [hl], $99 | |
| dec hl | |
| ld [hl], $99 | |
| jr l_21aa | |
| l_219b: | |
| ld a, [hl] | |
| or a | |
| sub a, b | |
| jr z, l_21db | |
| jr c, l_21db | |
| daa | |
| ld [hl], a | |
| and $f0 | |
| cp $90 | |
| jr z, l_21db | |
| l_21aa: | |
| ld a, b | |
| ld c, $06 | |
| ld hl, $c0ac | |
| ld b, $00 | |
| cp $01 | |
| jr z, l_21cf | |
| ld hl, $c0b1 | |
| ld b, $01 | |
| cp $02 | |
| jr z, l_21cf | |
| ld hl, $c0b6 | |
| ld b, $02 | |
| cp $03 | |
| jr z, l_21cf | |
| ld hl, $c0bb | |
| ld b, $04 | |
| ld c, $07 | |
| l_21cf: | |
| inc [hl] | |
| ld a, b | |
| ldh [$ff00 + $dc], a | |
| ld a, c | |
| ld [$dfe0], a | |
| ret | |
| l_21d8: | |
| pop hl | |
| jr l_216b | |
| l_21db: | |
| xor a | |
| ldh [rLINES_CLEARED1], a | |
| jr l_21aa | |
| ; When rows are completed (and RAM values $c0a3 to $c0aa are set to indicate where) | |
| ; - Between every state change a countdown of 10 draw cycles (~ 0.15 secs) is run. | |
| ; - Function kicks off with rBLOCK_STATUS set to 3 | |
| ; - rCLEAR_PROGRESS starts with 0 and is increased by 1 every run, until 7 | |
| ; - on odd numbers the original blocks are displayed, | |
| ; - on even numbers dark blocks replace them | |
| ; - on 6, blocks are replaced by white blocks | |
| ; - when it reaches 7, rBLOCK_STATUS and rCLEAR_PROGRESS are set to 0, rROW_UPDATE is set to 1 | |
| ; - Countdown is set to 13 | |
| clear_row_animation:: | |
| ldh a, [rBLOCK_STATUS] | |
| cp $03 | |
| ret nz ; Return if not right at end of block placement handling | |
| ldh a, [rCOUNTDOWN] | |
| and a | |
| ret nz ; Return if there is a countdown running | |
| ld de, rLINE_CLEAR_START | |
| ldh a, [rCLEAR_PROGRESS] | |
| bit 0, a ; Check if lowest bit of rCLEAR_PROGRESS is set | |
| jr nz, .unfill_block_rows ; Jump if rCLEAR_PROGRESS = 1,3,5 or 7 | |
| ld a, [de] | |
| and a | |
| jr z, .nothing_to_clear ; Jump if line is clear | |
| ; At RAM addresses $c0a3 to $c0aa lie the VRAM starting map addresses for the | |
| ; to be removed block lines. (The higher byte needs to be reduced by $30 first) | |
| ; i.e.: The second to last line is to be cleared, the first block on that row has | |
| ; the map address of $9A02. | |
| ; It is therefore saved at $c0a3 as $ca02. | |
| .fill_block_rows: | |
| sub a, $30 | |
| ld h, a ; Get the first block's address' high byte | |
| inc de | |
| ld a, [de] | |
| ld l, a ; Get the first block's address' low byte | |
| ldh a, [rCLEAR_PROGRESS] | |
| cp $06 | |
| ld a, $8c | |
| jr nz, .dark_blocks ; if the clearing progress is in state 6 (= almost done) | |
| ld a, $2f ; fill line with white blocks (tile 2f) | |
| .dark_blocks: ; otherwise use dark blocks (tile 8c) | |
| ld c, $0a ; 10 = width of tetris block line | |
| .loop_10: | |
| ldi [hl], a ; fill whole line of tile map with chosen block | |
| dec c | |
| jr nz, .loop_10 | |
| inc de | |
| ld a, [de] | |
| and a | |
| jr nz, .fill_block_rows ; check if another line needs to be cleared, then loop | |
| .increase_clear_progress: | |
| ldh a, [rCLEAR_PROGRESS] | |
| inc a | |
| ldh [rCLEAR_PROGRESS], a ; go to next clearing state (different block filling) | |
| cp $07 | |
| jr z, .fill_state_7 | |
| ld a, $0a | |
| ldh [rCOUNTDOWN], a | |
| ret | |
| .fill_state_7: | |
| xor a | |
| ldh [rCLEAR_PROGRESS], a | |
| ld a, $0d | |
| ldh [rCOUNTDOWN], a | |
| ld a, $01 | |
| ldh [rROW_UPDATE], a | |
| .clear_block_status: | |
| xor a | |
| ldh [rBLOCK_STATUS], a | |
| ret | |
| .unfill_block_rows: | |
| ld a, [de] ; ([de] still points to the first block of the first line to be removed) | |
| ld h, a | |
| sub a, $30 | |
| ld c, a ; set bc to the correct RAM location (where all tiles are saved) | |
| inc de | |
| ld a, [de] | |
| ld l, a ; set hl to the correct VRAM location (where the displayed tilemap is saved) | |
| ld b, $0a ; 10 = number of rows | |
| .loop_11: | |
| ld a, [hl] | |
| push hl | |
| ld h, c | |
| ld [hl], a ; move all ten tiles from RAM to VRAM | |
| pop hl | |
| inc hl | |
| dec b | |
| jr nz, .loop_11 | |
| inc de | |
| ld a, [de] | |
| and a | |
| jr nz, .unfill_block_rows ; check if another line needs to be restored, then loop | |
| jr .increase_clear_progress | |
| .nothing_to_clear: | |
| call func_2007 | |
| jr .clear_block_status | |
| func_224d: | |
| ldh a, [rCOUNTDOWN] | |
| and a | |
| ret nz | |
| ldh a, [rROW_UPDATE] | |
| cp $01 | |
| ret nz | |
| ld de, rLINE_CLEAR_START | |
| ld a, [de] | |
| l_225a: | |
| ld h, a | |
| inc de | |
| ld a, [de] | |
| ld l, a | |
| push de | |
| push hl | |
| ld bc, $ffe0 | |
| add hl, bc | |
| pop de | |
| l_2265: | |
| push hl | |
| ld b, $0a | |
| l_2268: | |
| ldi a, [hl] | |
| ld [de], a | |
| inc de | |
| dec b | |
| jr nz, l_2268 | |
| pop hl | |
| push hl | |
| pop de | |
| ld bc, $ffe0 | |
| add hl, bc | |
| ld a, h | |
| cp $c7 | |
| jr nz, l_2265 | |
| pop de | |
| inc de | |
| ld a, [de] | |
| and a | |
| jr nz, l_225a | |
| ld hl, $c802 | |
| ld a, $2f | |
| ld b, $0a | |
| l_2287: | |
| ldi [hl], a | |
| dec b | |
| jr nz, l_2287 | |
| call func_2293 | |
| ld a, $02 | |
| ldh [rROW_UPDATE], a | |
| ret | |
| func_2293: | |
| ld hl, rLINE_CLEAR_START | |
| xor a | |
| ld b, $09 | |
| l_2299: | |
| ldi [hl], a | |
| dec b | |
| jr nz, l_2299 | |
| ret | |
| func_229e: | |
| ldh a, [rROW_UPDATE] | |
| cp $02 | |
| ret nz | |
| ld hl, $9a22 | |
| ld de, $ca22 | |
| call COPY_ROW | |
| ret | |
| func_22ad: | |
| ldh a, [rROW_UPDATE] | |
| cp $03 | |
| ret nz | |
| ld hl, $9a02 | |
| ld de, $ca02 | |
| call COPY_ROW | |
| ret | |
| func_22bc: | |
| ldh a, [rROW_UPDATE] | |
| cp $04 | |
| ret nz | |
| ld hl, $99e2 | |
| ld de, $c9e2 | |
| call COPY_ROW | |
| ret | |
| func_22cb: | |
| ldh a, [rROW_UPDATE] | |
| cp $05 | |
| ret nz | |
| ld hl, $99c2 | |
| ld de, $c9c2 | |
| call COPY_ROW | |
| ret | |
| func_22da: | |
| ldh a, [rROW_UPDATE] | |
| cp $06 | |
| ret nz | |
| ld hl, $99a2 | |
| ld de, $c9a2 | |
| call COPY_ROW | |
| ret | |
| func_22e9: | |
| ldh a, [rROW_UPDATE] | |
| cp $07 | |
| ret nz | |
| ld hl, $9982 | |
| ld de, $c982 | |
| call COPY_ROW | |
| ret | |
| func_22f8: | |
| ldh a, [rROW_UPDATE] | |
| cp $08 | |
| ret nz | |
| ld hl, $9962 | |
| ld de, $c962 | |
| call COPY_ROW | |
| ldh a, [rPLAYERS] | |
| and a | |
| ldh a, [rGAME_STATUS] | |
| jr nz, l_2315 | |
| and a | |
| ret nz | |
| l_230f: | |
| ld a, $01 | |
| ld [$dff8], a | |
| ret | |
| l_2315: | |
| cp $1a | |
| ret nz | |
| ldh a, [$ff00 + $d4] | |
| and a | |
| jr z, l_230f | |
| ld a, $05 | |
| ld [$dfe0], a | |
| ret | |
| func_2323: | |
| ldh a, [rROW_UPDATE] | |
| cp $09 | |
| ret nz | |
| ld hl, $9942 | |
| ld de, $c942 | |
| call COPY_ROW | |
| ret | |
| func_2332: | |
| ldh a, [rROW_UPDATE] | |
| cp $0a | |
| ret nz | |
| ld hl, $9922 | |
| ld de, $c922 | |
| call COPY_ROW | |
| ret | |
| func_2341: | |
| ldh a, [rROW_UPDATE] | |
| cp $0b | |
| ret nz | |
| ld hl, $9902 | |
| ld de, $c902 | |
| call COPY_ROW | |
| ret | |
| func_2350: | |
| ldh a, [rROW_UPDATE] | |
| cp $0c | |
| ret nz | |
| ld hl, $98e2 | |
| ld de, $c8e2 | |
| call COPY_ROW | |
| ret | |
| func_235f: | |
| ldh a, [rROW_UPDATE] | |
| cp $0d | |
| ret nz | |
| ld hl, $98c2 | |
| ld de, $c8c2 | |
| call COPY_ROW | |
| ret | |
| func_236e: | |
| ldh a, [rROW_UPDATE] | |
| cp $0e | |
| ret nz | |
| ld hl, $98a2 | |
| ld de, $c8a2 | |
| call COPY_ROW | |
| ret | |
| func_237d: | |
| ldh a, [rROW_UPDATE] | |
| cp $0f | |
| ret nz | |
| ld hl, $9882 | |
| ld de, $c882 | |
| call COPY_ROW | |
| ret | |
| func_238c: | |
| ldh a, [rROW_UPDATE] | |
| cp $10 | |
| ret nz | |
| ld hl, $9862 | |
| ld de, $c862 | |
| call COPY_ROW | |
| call func_244b | |
| ret | |
| func_239e: | |
| ldh a, [rROW_UPDATE] | |
| cp $11 | |
| ret nz | |
| ld hl, $9842 | |
| ld de, $c842 | |
| call COPY_ROW | |
| ld hl, $9c6d | |
| call func_243b | |
| ld a, $01 | |
| ldh [$ff00 + $e0], a | |
| ret | |
| func_23b7: | |
| ldh a, [rROW_UPDATE] | |
| cp $12 | |
| ret nz ; Return if not row 12 is to be copied | |
| ld hl, $9822 | |
| ld de, $c822 | |
| call COPY_ROW | |
| ld hl, $986d | |
| call func_243b | |
| ret | |
| func_23cc: | |
| ldh a, [rROW_UPDATE] | |
| cp $13 | |
| ret nz | |
| ld [$c0c7], a | |
| ld hl, $9802 | |
| ld de, $c802 | |
| call COPY_ROW | |
| xor a | |
| ldh [rROW_UPDATE], a | |
| ldh a, [rPLAYERS] | |
| and a | |
| ldh a, [rGAME_STATUS] | |
| jr nz, l_242f | |
| and a | |
| ret nz | |
| l_23e9: | |
| ld hl, $994e | |
| ld de, $ff9f | |
| ld c, $02 | |
| ldh a, [rGAME_TYPE] | |
| cp GAME_TYPE_A | |
| jr z, l_23ff | |
| ld hl, $9950 | |
| ld de, $ff9e | |
| ld c, $01 | |
| l_23ff: | |
| call func_2a3c | |
| ldh a, [rGAME_TYPE] | |
| cp GAME_TYPE_A | |
| jr z, l_242b | |
| ldh a, [rLINES_CLEARED1] | |
| and a | |
| jr nz, l_242b | |
| ld a, $64 | |
| ldh [rCOUNTDOWN], a | |
| ld a, $02 | |
| ld [$dfe8], a | |
| ldh a, [rPLAYERS] | |
| and a | |
| jr z, l_241e | |
| ldh [$ff00 + $d5], a | |
| ret | |
| l_241e: | |
| ldh a, [$ff00 + $c3] | |
| cp $09 | |
| ld a, $05 | |
| jr nz, l_2428 | |
| ld a, $22 | |
| l_2428: | |
| ldh [rGAME_STATUS], a | |
| ret | |
| l_242b: | |
| call func_2007 | |
| ret | |
| l_242f: | |
| cp $1a | |
| ret nz | |
| ldh a, [$ff00 + $d4] | |
| and a | |
| jr z, l_23e9 | |
| xor a | |
| ldh [$ff00 + $d4], a | |
| ret | |
| func_243b: | |
| ldh a, [rGAME_STATUS] | |
| and a | |
| ret nz ; return if not in-game | |
| ldh a, [rGAME_TYPE] | |
| cp GAME_TYPE_A | |
| ret nz ; return if type B game | |
| ld de, $c0a2 | |
| call func_2a36 | |
| ret | |
| func_244b: | |
| ldh a, [rGAME_STATUS] | |
| and a | |
| ret nz | |
| ldh a, [$ff00 + $c0] | |
| cp $37 | |
| ret nz | |
| ld hl, $ffa9 | |
| ld a, [hl] | |
| cp $14 | |
| ret z | |
| call func_249d | |
| ldh a, [rLINES_CLEARED2] | |
| ld d, a | |
| and $f0 | |
| ret nz | |
| ld a, d | |
| and $0f | |
| swap a | |
| ld d, a | |
| ldh a, [rLINES_CLEARED1] | |
| and $f0 | |
| swap a | |
| or d | |
| cp b | |
| ret c | |
| ret z | |
| inc [hl] | |
| call func_249d | |
| and $0f | |
| ld c, a | |
| ld hl, $98f1 | |
| l_247e: | |
| ld [hl], c | |
| ld h, $9c | |
| ld [hl], c | |
| ld a, b | |
| and $f0 | |
| jr z, l_2494 | |
| swap a | |
| ld c, a | |
| ld a, l | |
| cp $f0 | |
| jr z, l_2494 | |
| ld hl, $98f0 | |
| jr l_247e | |
| l_2494: | |
| ld a, $08 | |
| ld [$dfe0], a | |
| call func_1ae8 | |
| ret | |
| func_249d: | |
| ld a, [hl] | |
| ld b, a | |
| and a | |
| ret z | |
| xor a | |
| l_24a2: | |
| or a | |
| inc a | |
| daa | |
| dec b | |
| jr z, l_24aa | |
| jr l_24a2 | |
| l_24aa: | |
| ld b, a | |
| ret | |
| COPY_ROW:: | |
| ld b, $0a | |
| .loop_17: | |
| ld a, [de] | |
| ld [hl], a | |
| inc l | |
| inc e | |
| dec b | |
| jr nz, .loop_17 | |
| ldh a, [rROW_UPDATE] | |
| inc a | |
| ldh [rROW_UPDATE], a | |
| ret | |
| func_24bb: | |
| ld hl, rBLOCK_VISIBILITY | |
| ld a, [hl] | |
| cp $80 | |
| ret z ; return if there is no falling block (visible) | |
| ld l, $03 | |
| ld a, [hl] ; = rBLOCK_TYPE | |
| ldh [$ff00 + $a0], a ; store current block type | |
| ldh a, [rBUTTON_HIT] | |
| ld b, a | |
| bit BTN_B, b | |
| jr nz, .rotate_B_button ; jump if button B was pressed | |
| bit BTN_A, b | |
| jr z, l_2509 ; jump if anything BUT button A was pressed | |
| ; Button A pressed: | |
| ld a, [hl] | |
| and $03 | |
| jr z, .block_variation_low_end ; jump if block type MOD 4 = 0 (lowest variation of block) | |
| dec [hl] ; change to lower variation (rotate clockwise) | |
| jr .rotation_finished | |
| .block_variation_low_end: | |
| ld a, [hl] | |
| or $03 | |
| ld [hl], a ; add 3 to the block variation (starting back at the highest variation) | |
| jr .rotation_finished | |
| .rotate_B_button: | |
| ld a, [hl] | |
| and $03 | |
| cp $03 | |
| jr z, .block_variation_high_end ; jump if block type MOD 4 = 3 (highest variation of block) | |
| inc [hl] ; change to higher variation (rotate counter-clockwise) | |
| jr .rotation_finished | |
| .block_variation_high_end: | |
| ld a, [hl] | |
| and $fc ; subtract 3 from block variation (starting back at lowest variation) | |
| ld [hl], a | |
| .rotation_finished: | |
| ld a, $03 | |
| ld [$dfe0], a | |
| call func_2683 | |
| call func_2573 | |
| and a | |
| jr z, l_2509 | |
| xor a | |
| ld [$dfe0], a | |
| ld hl, rBLOCK_TYPE | |
| ldh a, [$ff00 + $a0] | |
| ld [hl], a | |
| call func_2683 | |
| l_2509: | |
| ld hl, rBLOCK_X | |
| ldh a, [rBUTTON_HIT] | |
| ld b, a | |
| ldh a, [rBUTTON_DOWN] | |
| ld c, a | |
| ld a, [hl] | |
| ldh [$ff00 + $a0], a | |
| bit 4, b | |
| ld a, $17 | |
| jr nz, l_2527 | |
| bit 4, c | |
| jr z, l_254c | |
| ldh a, [$ff00 + $aa] | |
| dec a | |
| ldh [$ff00 + $aa], a | |
| ret nz | |
| ld a, $09 | |
| l_2527: | |
| ldh [$ff00 + $aa], a | |
| ld a, [hl] | |
| add a, $08 | |
| ld [hl], a | |
| call func_2683 | |
| ld a, $04 | |
| ld [$dfe0], a | |
| call func_2573 | |
| and a | |
| ret z | |
| l_253a: | |
| ld hl, rBLOCK_X | |
| xor a | |
| ld [$dfe0], a | |
| ldh a, [$ff00 + $a0] | |
| ld [hl], a | |
| call func_2683 | |
| ld a, $01 | |
| l_2549: | |
| ldh [$ff00 + $aa], a | |
| ret | |
| l_254c: | |
| bit 5, b | |
| ld a, $17 | |
| jr nz, l_255e | |
| bit 5, c | |
| jr z, l_2549 | |
| ldh a, [$ff00 + $aa] | |
| dec a | |
| ldh [$ff00 + $aa], a | |
| ret nz | |
| ld a, $09 | |
| l_255e: | |
| ldh [$ff00 + $aa], a | |
| ld a, [hl] | |
| sub a, $08 | |
| ld [hl], a | |
| ld a, $04 | |
| ld [$dfe0], a | |
| call func_2683 | |
| call func_2573 | |
| and a | |
| ret z | |
| jr l_253a | |
| func_2573: | |
| ld hl, $c010 | |
| ld b, $04 | |
| l_2578: | |
| ldi a, [hl] | |
| ldh [$ff00 + $b2], a | |
| ldi a, [hl] | |
| and a | |
| jr z, l_2596 | |
| ldh [$ff00 + $b3], a | |
| push hl | |
| push bc | |
| call func_29e3 | |
| ld a, h | |
| add a, $30 | |
| ld h, a | |
| ld a, [hl] | |
| cp $2f | |
| jr nz, l_259a | |
| pop bc | |
| pop hl | |
| inc l | |
| inc l | |
| dec b | |
| jr nz, l_2578 | |
| l_2596: | |
| xor a | |
| ldh [$ff00 + $9b], a | |
| ret | |
| l_259a: | |
| pop bc | |
| pop hl | |
| ld a, $01 | |
| ldh [$ff00 + $9b], a | |
| ret | |
| func_25a1: | |
| ldh a, [rBLOCK_STATUS] | |
| cp $01 | |
| ret nz | |
| ld hl, $c010 | |
| ld b, $04 | |
| l_25ab: | |
| ldi a, [hl] | |
| ldh [$ff00 + $b2], a | |
| ldi a, [hl] | |
| and a | |
| jr z, l_25cf | |
| ldh [$ff00 + $b3], a | |
| push hl | |
| push bc | |
| call func_29e3 | |
| push hl | |
| pop de | |
| pop bc | |
| pop hl | |
| l_25bd: | |
| ldh a, [$ff00 + $41] | |
| and $03 | |
| jr nz, l_25bd | |
| ld a, [hl] | |
| ld [de], a | |
| ld a, d | |
| add a, $30 | |
| ld d, a | |
| ldi a, [hl] | |
| ld [de], a | |
| inc l | |
| dec b | |
| jr nz, l_25ab | |
| l_25cf: | |
| ld a, $02 | |
| ldh [rBLOCK_STATUS], a | |
| ld hl, rBLOCK_VISIBILITY | |
| ld [hl], $80 | |
| ret | |
| func_25d9: | |
| ld a, [$c0c6] | |
| cp $02 | |
| jr z, l_2626 | |
| push de | |
| ld a, [hl] | |
| or a | |
| jr z, l_2639 | |
| dec a | |
| ldi [hl], a | |
| ld a, [hl] | |
| inc a | |
| daa | |
| ld [hl], a | |
| and $0f | |
| ld [bc], a | |
| dec c | |
| ldi a, [hl] | |
| swap a | |
| and $0f | |
| jr z, l_25f7 | |
| ld [bc], a | |
| l_25f7: | |
| push bc | |
| ldh a, [$ff00 + $c3] | |
| ld b, a | |
| inc b | |
| l_25fc: | |
| push hl | |
| call func_0166 | |
| pop hl | |
| dec b | |
| jr nz, l_25fc | |
| pop bc | |
| inc hl | |
| inc hl | |
| push hl | |
| ld hl, $0023 | |
| add hl, bc | |
| pop de | |
| call func_2a3a | |
| pop de | |
| ldh a, [$ff00 + $c3] | |
| ld b, a | |
| inc b | |
| ld hl, $c0a0 | |
| l_2618: | |
| push hl | |
| call func_0166 | |
| pop hl | |
| dec b | |
| jr nz, l_2618 | |
| ld a, $02 | |
| ld [$c0c6], a | |
| ret | |
| l_2626: | |
| ld de, $c0a2 | |
| ld hl, $9a25 | |
| call func_2a3a | |
| ld a, $02 | |
| ld [$dfe0], a | |
| xor a | |
| ld [$c0c6], a | |
| ret | |
| l_2639: | |
| pop de | |
| l_263a: | |
| ld a, $21 | |
| ldh [rCOUNTDOWN], a | |
| xor a | |
| ld [$c0c6], a | |
| ld a, [$c0c5] | |
| inc a | |
| ld [$c0c5], a | |
| cp $05 | |
| ret nz | |
| ld a, $04 | |
| ldh [rGAME_STATUS], a | |
| ret | |
| func_2651: | |
| ld hl, $c0ac | |
| ld b, $1b | |
| xor a | |
| l_2657: | |
| ldi [hl], a | |
| dec b | |
| jr nz, l_2657 | |
| ld hl, $c0a0 | |
| ld b, $03 | |
| l_2660: | |
| ldi [hl], a | |
| dec b | |
| jr nz, l_2660 | |
| ret | |
| ld a, [hl] | |
| and $f0 | |
| swap a | |
| ld [de], a | |
| ld a, [hl] | |
| and $0f | |
| inc e | |
| ld [de], a | |
| ret | |
| func_2671: | |
| ld a, $02 | |
| func_2673: | |
| ldh [rAMOUNT_SPRITES_TO_DRAW], a | |
| xor a | |
| ldh [rOAM_TILE_ADDRESS_2], a | |
| ld a, $c0 | |
| ldh [rOAM_TILE_ADDRESS_1], a | |
| ld hl, rBLOCK_VISIBILITY | |
| call func_2a89 | |
| ret | |
| func_2683: | |
| ld a, $01 | |
| ldh [rAMOUNT_SPRITES_TO_DRAW], a | |
| ld a, $10 | |
| ldh [rOAM_TILE_ADDRESS_2], a | |
| ld a, $c0 | |
| ldh [rOAM_TILE_ADDRESS_1], a | |
| ld hl, rBLOCK_VISIBILITY | |
| call func_2a89 | |
| ret | |
| func_2696: | |
| ld a, $01 | |
| ldh [rAMOUNT_SPRITES_TO_DRAW], a | |
| ld a, $20 | |
| ldh [rOAM_TILE_ADDRESS_2], a | |
| ld a, $c0 | |
| ldh [rOAM_TILE_ADDRESS_1], a | |
| ld hl, rNEXT_BLOCK_VISIBILITY | |
| call func_2a89 | |
| ret | |
| func_26a9: | |
| ld b, $20 | |
| ld a, $8e | |
| ld de, $0020 | |
| l_26b0: | |
| ld [hl], a | |
| add hl, de | |
| dec b | |
| jr nz, l_26b0 | |
| ret | |
| func_26b6: | |
| ld a, [de] | |
| cp $ff | |
| ret z | |
| ldi [hl], a | |
| inc de | |
| jr $26b6 | |
| HBlank_Timer:: | |
| reti | |
| ;data $26BF - $2794 (incl.) | |
| db $00, $18, $3F, $00, $80, $00, $00, $FF, $00, $80, $8F, $00 | |
| db $80, $00, $00, $FF, $00, $70, $37, $1C, $00, $00, $00, $38 | |
| db $37, $1C, $00, $00, $00, $40, $34, $20, $00, $00, $00, $40 | |
| db $1C, $20, $00, $00, $00, $40, $74, $20, $00, $00, $00, $40 | |
| db $68, $21, $00, $00, $00, $78, $68, $21, $00, $00, $00, $60 | |
| db $60, $2A, $80, $00, $00, $60, $72, $2A, $80, $20, $00, $68 | |
| db $38, $3E, $80, $00, $00, $60, $60, $36, $80, $00, $00, $60 | |
| db $72, $36, $80, $20, $00, $68, $38, $32, $80, $00, $00, $60 | |
| db $60, $2E, $80, $00, $00, $68, $38, $3C, $80, $00, $00, $60 | |
| db $60, $3A, $80, $00, $00, $68, $38, $30, $80, $00, $80, $3F | |
| db $40, $44, $00, $00, $80, $3F, $20, $4A, $00, $00, $80, $3F | |
| db $30, $46, $00, $00, $80, $77, $20, $48, $00, $00, $80, $87 | |
| db $48, $4C, $00, $00, $80, $87, $58, $4E, $00, $00, $80, $67 | |
| db $4D, $50, $00, $00, $80, $67, $5D, $52, $00, $00, $80, $8F | |
| db $88, $54, $00, $00, $80, $8F, $98, $55, $00, $00, $00, $5F | |
| db $57, $2C, $00, $00, $80, $80, $50, $34, $00, $00, $80, $80 | |
| db $60, $34, $00, $20, $00, $6F, $57, $58, $00, $00, $80, $80 | |
| db $55, $34, $00, $00, $80, $80, $5B, $34, $00, $20 | |
| Flush_BG1:: | |
| ; Fill BG Map 1 entirely with value $2F | |
| ld hl, $9bff ; End of BG Map Data 1 | |
| func_2798: | |
| ld bc, $0400 ; Size of BG Map Data 1 | |
| .loop_9: | |
| ld a, $2f | |
| ldd [hl], a | |
| dec bc | |
| ld a, b | |
| or c | |
| jr nz, .loop_9 | |
| ret | |
| ; copy all tiles as specified in registers de (target), hl (source) and bc (length) | |
| COPY_TILES:: | |
| ldi a, [hl] | |
| ld [de], a | |
| inc de | |
| dec bc | |
| ld a, b | |
| or c | |
| jr nz, COPY_TILES | |
| ret | |
| COPY_IN_GAME_TILES:: | |
| call COPY_CHARACTERS | |
| ld bc, $00a0 | |
| call COPY_TILES ; continue copying right after characters | |
| ld hl, $323f ; address of in-game tiles in memory | |
| ld de, $8300 ; not starting at $8000 -> Keeping character tiles | |
| ld bc, $0d00 | |
| call COPY_TILES ; Copy in-game tiles (blocks, walls, GUI, celebration screens) | |
| ret | |
| ; copy characters such as numbers, letters and .,-" | |
| COPY_CHARACTERS:: | |
| ld hl, $415f ; address of (black-white) character set in ROM | |
| ld bc, $0138 ; length of data set | |
| ld de, $8000 ; Starting address of tile data in VRAM | |
| .loop_14: | |
| ldi a, [hl] | |
| ld [de], a | |
| inc de ; copy each byte at $415f twice into $8000, | |
| ld [de], a ; because characters are stored as only black and white | |
| inc de ; but the GB uses two bytes per character to allow for 4 colors | |
| dec bc | |
| ld a, b | |
| or c | |
| jr nz, .loop_14 | |
| ret | |
| COPY_TITLE_TILES:: | |
| call COPY_CHARACTERS | |
| ld bc, $0da0 ; length of symbol data set (starting right after characters) | |
| call COPY_TILES ; copy all title image tiles (picture of Moscow cathedral) | |
| ret | |
| ld bc, $1000 | |
| func_27e4: | |
| ld de, $8000 | |
| call COPY_TILES | |
| ret | |
| ; Takes a ROM address (de) and copies the full tilemap into Tilemap A (starting at $9800) | |
| COPY_TILEMAP:: | |
| ld hl, $9800 | |
| ; Allows for a unique tilemap starting address - is only ever used for Tilemap B (starting at $9C00) | |
| COPY_TILEMAP_B:: | |
| ld b, $12 ; = full 18 rows of tiles | |
| ; Allows for unique tilemap and a custom number of rows (less than the full 18) | |
| COPY_TILEMAP_FEWER_ROWS:: | |
| push hl | |
| ld c, $14 ; = full 20 columns of tiles | |
| .loop_15: | |
| ld a, [de] | |
| ldi [hl], a | |
| inc de | |
| dec c | |
| jr nz, .loop_15 | |
| pop hl | |
| push de | |
| ld de, $0020 | |
| add hl, de ; Add $20 to target address, to skip area of tile map outside the window | |
| pop de | |
| dec b | |
| jr nz, COPY_TILEMAP_FEWER_ROWS | |
| ret | |
| func_2804: | |
| ld b, $0a | |
| push hl | |
| l_2807: | |
| ld a, [de] | |
| cp $ff | |
| jr z, l_281a | |
| ldi [hl], a | |
| inc de | |
| dec b | |
| jr nz, l_2807 | |
| pop hl | |
| push de | |
| ld de, $0020 | |
| add hl, de | |
| pop de | |
| jr $2804 | |
| l_281a: | |
| pop hl | |
| ld a, $02 | |
| ldh [rROW_UPDATE], a | |
| ret | |
| WAIT_FOR_VBLANK:: | |
| ldh a, [rIE] | |
| ldh [rIE_TEMP], a | |
| res 0, a | |
| ldh [rIE], a ; turn off V-Blank interrupt | |
| .loop_13: | |
| ldh a, [rLY] ; loop until in V-Blank area | |
| cp SCREEN_HEIGHT + 1 | |
| jr nz, .loop_13 | |
| ldh a, [rLCDC] | |
| and $7f | |
| ldh [rLCDC], a ; turn off LCDC (keep other settings in rLCDC) | |
| ldh a, [rIE_TEMP] | |
| ldh [rIE], a | |
| ret | |
| ; data section $2839 - $29a5 incl. | |
| data: | |
| db $2F, $2F, $11, $12, $1D, $2F, $2F, $2F, $2F, $2F, $29, $29 | |
| db $29, $2F, $2F, $2F, $2F, $1C, $1D, $0A, $1B, $1D, $2F, $2F | |
| db $2F, $29, $29, $29, $29, $29, $2F, $2F, $2F, $2F, $2F, $1D | |
| db $18, $2F, $2F, $2F, $2F, $2F, $2F, $29, $29, $2F, $2F, $2F | |
| db $0C, $18, $17, $1D, $12, $17, $1E, $0E, $29, $29, $29, $29 | |
| db $29, $29, $29, $29, $2F, $2F, $10, $0A, $16, $0E, $2F, $2F | |
| db $2F, $2F, $29, $29, $29, $29, $2F, $2F, $1C, $12, $17, $10 | |
| db $15, $0E, $2F, $2F, $2F, $2F, $2F, $00, $2F, $26, $2F, $04 | |
| db $00, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $00, $2F, $0D, $18, $1E, $0B, $15, $0E, $2F, $2F, $2F, $2F | |
| db $2F, $00, $2F, $26, $2F, $01, $00, $00, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $00, $2F, $1D, $1B, $12, $19 | |
| db $15, $0E, $2F, $2F, $2F, $2F, $2F, $00, $2F, $26, $2F, $03 | |
| db $00, $00, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $00, $2F, $1D, $0E, $1D, $1B, $12, $1C, $2F, $2F, $2F, $2F | |
| db $2F, $00, $2F, $26, $2F, $01, $02, $00, $00, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $00, $2F, $0D, $1B, $18, $19 | |
| db $1C, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $00, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $29, $29, $29, $29, $29, $29, $29, $29, $29, $29 | |
| db $1D, $11, $12, $1C, $2F, $1C, $1D, $0A, $10, $0E, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $00, $2F, $FF, $61, $62, $62 | |
| db $62, $62, $62, $62, $63, $64, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $65, $64, $2F, $10, $0A, $16, $0E, $2F, $65, $64, $2F, $AD | |
| db $AD, $AD, $AD, $2F, $65, $64, $2F, $18, $1F, $0E, $1B, $2F | |
| db $65, $64, $2F, $AD, $AD, $AD, $AD, $2F, $65, $66, $69, $69 | |
| db $69, $69, $69, $69, $6A, $19, $15, $0E, $0A, $1C, $0E, $2F | |
| db $2F, $29, $29, $29, $29, $29, $29, $2F, $2F, $2F, $1D, $1B | |
| db $22, $2F, $2F, $2F, $2F, $2F, $29, $29, $29, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $0A, $10, $0A, $12, $17, $27, $2F, $2F, $29 | |
| db $29, $29, $29, $29, $2F | |
| Read_Joypad:: | |
| ld a, 1 << 5 ; select direction keys | |
| ldh [rJOYP], a | |
| rept 4 | |
| ldh a, [rJOYP] ; poll buttons multiple times | |
| endr | |
| cpl ; reverse bits (as pressed buttons are shown as 0's) | |
| and $0f ; mask lower nibble | |
| swap a ; move it to higher nibble | |
| ld b, a | |
| ld a, 1 << 4 ; select button keys | |
| ldh [rJOYP], a | |
| rept 10 | |
| ldh a, [rJOYP] | |
| endr | |
| cpl | |
| and $0f | |
| or b ; In register A: lower nibble = buttons, higher nibble = directional keys | |
| ld c, a | |
| ldh a, [rBUTTON_DOWN] | |
| xor c ; XOR+AND gate (only true, if "false -> true", | |
| and c ; i.e. button pressed now, but wasn't pressed before) | |
| ldh [rBUTTON_HIT], a | |
| ld a, c | |
| ldh [rBUTTON_DOWN], a | |
| ld a, 1 << 5 | 1 << 4 ; deselect both directional and button keys | |
| ldh [$ff00 + $00], a | |
| ret | |
| func_29e3: ; Shutdown routine? | |
| ldh a, [$ff00 + $b2] | |
| sub a, $10 | |
| srl a | |
| srl a | |
| srl a | |
| ld de, $0000 | |
| ld e, a | |
| ld hl, $9800 | |
| ld b, $20 | |
| l_29f6: | |
| add hl, de | |
| dec b | |
| jr nz, l_29f6 | |
| ldh a, [$ff00 + $b3] | |
| sub a, $08 | |
| srl a | |
| srl a | |
| srl a | |
| ld de, $0000 | |
| ld e, a | |
| add hl, de | |
| ld a, h | |
| ldh [$ff00 + $b5], a | |
| ld a, l | |
| ldh [$ff00 + $b4], a | |
| ret | |
| ldh a, [$ff00 + $b5] | |
| ld d, a | |
| ldh a, [$ff00 + $b4] | |
| ld e, a | |
| ld b, $04 | |
| l_2a18: | |
| rr d | |
| rr e | |
| dec b | |
| jr nz, l_2a18 | |
| ld a, e | |
| sub a, $84 | |
| and $fe | |
| rlca | |
| rlca | |
| add a, $08 | |
| ldh [$ff00 + $b2], a | |
| ldh a, [$ff00 + $b4] | |
| and $1f | |
| rla | |
| rla | |
| rla | |
| add a, $08 | |
| ldh [$ff00 + $b3], a | |
| ret | |
| func_2a36: | |
| ldh a, [$ff00 + $e0] ; is $01 before the first block and shortly after a line clear | |
| and a | |
| ret z | |
| func_2a3a: | |
| ld c, $03 | |
| func_2a3c: | |
| xor a | |
| ldh [$ff00 + $e0], a | |
| l_2a3f: | |
| ld a, [de] | |
| ld b, a | |
| swap a | |
| and $0f | |
| jr nz, l_2a6f | |
| ldh a, [$ff00 + $e0] | |
| and a | |
| ld a, $00 | |
| jr nz, l_2a50 | |
| ld a, $2f | |
| l_2a50: | |
| ldi [hl], a | |
| ld a, b | |
| and $0f | |
| jr nz, l_2a77 | |
| ldh a, [$ff00 + $e0] | |
| and a | |
| ld a, $00 | |
| jr nz, l_2a66 | |
| ld a, $01 | |
| cp c | |
| ld a, $00 | |
| jr z, l_2a66 | |
| ld a, $2f | |
| l_2a66: | |
| ldi [hl], a | |
| dec e | |
| dec c | |
| jr nz, l_2a3f | |
| xor a | |
| ldh [$ff00 + $e0], a | |
| ret | |
| l_2a6f: | |
| push af | |
| ld a, $01 | |
| ldh [$ff00 + $e0], a | |
| pop af | |
| jr l_2a50 | |
| l_2a77: | |
| push af | |
| ld a, $01 | |
| ldh [$ff00 + $e0], a | |
| pop af | |
| jr l_2a66 | |
| ld a, $c0 | |
| ldh [$ff00 + $46], a | |
| ld a, $28 | |
| l_2a85: | |
| dec a | |
| jr nz, l_2a85 | |
| ret | |
| func_2a89: | |
| ld a, h | |
| ldh [rSPRITE_ORIGINAL_ADDRESS_1], a | |
| ld a, l | |
| ldh [rSPRITE_ORIGINAL_ADDRESS_2], a | |
| ld a, [hl] | |
| and a | |
| jr z, l_2ab0 ; jmp if sprite is (supposed to be) visible | |
| cp $80 | |
| jr z, l_2aae ; jmp if sprite is (supposed to be) invisible | |
| l_2a97: | |
| ldh a, [rSPRITE_ORIGINAL_ADDRESS_1] | |
| ld h, a | |
| ldh a, [rSPRITE_ORIGINAL_ADDRESS_2] | |
| ld l, a | |
| ld de, $0010 | |
| add hl, de | |
| ldh a, [rAMOUNT_SPRITES_TO_DRAW] | |
| dec a | |
| ldh [rAMOUNT_SPRITES_TO_DRAW], a | |
| ret z | |
| jr $2a89 | |
| l_2aa9: | |
| xor a | |
| ldh [rOAM_VISIBLE], a | |
| jr l_2a97 | |
| l_2aae: | |
| ldh [rOAM_VISIBLE], a | |
| l_2ab0: | |
| ld b, $07 | |
| ld de, $ff86 | |
| l_2ab5: | |
| ldi a, [hl] ; store current sprite info into $ff86 - $ff8d | |
| ld [de], a | |
| inc de | |
| dec b | |
| jr nz, l_2ab5 | |
| ldh a, [rOAM_TILE_NO] ; = sprite index (block type) | |
| ld hl, $2b64 ; list of addresses | |
| rlca | |
| ld e, a | |
| ld d, $00 | |
| add hl, de ; add sprite index * 2 to $2b64 | |
| ld e, [hl] | |
| inc hl | |
| ld d, [hl] ; retrieve a memory address dependent on current sprite index (smallest is $2c20) | |
| ld a, [de] | |
| ld l, a | |
| inc de | |
| ld a, [de] | |
| ld h, a ; retrieve a new memory address at the previously retrieved address (smallest is $2d58) | |
| inc de | |
| ld a, [de] | |
| ldh [$ff00 + $90], a | |
| inc de | |
| ld a, [de] | |
| ldh [$ff00 + $91], a ; store also two further values in each $ff00 + $90 and $ff00 + $91 | |
| ld e, [hl] | |
| inc hl | |
| ld d, [hl] ; retrieve a new memory address at the previously retrieved address (smallest is $31a9) | |
| read_next_design_element: | |
| inc hl ; retrieve the sprite design of the sprite index, using tile numbers, $fe for nothing and $ff for end of block | |
| ldh a, [$ff00 + $8c] ; ? | |
| ldh [$ff00 + $94], a | |
| ld a, [hl] | |
| cp $ff | |
| jr z, l_2aa9 ; jump if end of this sprite's design found | |
| cp $fd ; (there is $fd during congratulation animation.) | |
| jr nz, l_2af4 ; jump if not $fd | |
| ldh a, [$ff00 + $8c] | |
| xor $20 | |
| ldh [$ff00 + $94], a | |
| inc hl | |
| ld a, [hl] ; read input byte after the $fd | |
| jr l_2af8 | |
| is_empty_design_element: | |
| inc de | |
| inc de ; skip two de bytes and read next design element | |
| jr read_next_design_element | |
| l_2af4: | |
| cp $fe | |
| jr z, is_empty_design_element | |
| l_2af8: | |
| ldh [rOAM_TILE_NO], a | |
| ldh a, [$ff00 + $87] | |
| ld b, a | |
| ld a, [de] | |
| ld c, a | |
| ldh a, [$ff00 + $8b] | |
| bit 6, a | |
| jr nz, l_2b0b | |
| ldh a, [$ff00 + $90] | |
| add a, b | |
| adc a, c | |
| jr l_2b15 | |
| l_2b0b: | |
| ld a, b | |
| push af | |
| ldh a, [$ff00 + $90] | |
| ld b, a | |
| pop af | |
| sub a, b | |
| sbc a, c | |
| sbc a, $08 | |
| l_2b15: | |
| ldh [rOAM_Y_POS], a | |
| ldh a, [$ff00 + $88] | |
| ld b, a | |
| inc de | |
| ld a, [de] | |
| inc de | |
| ld c, a | |
| ldh a, [$ff00 + $8b] | |
| bit 5, a | |
| jr nz, l_2b2a | |
| ldh a, [$ff00 + $91] | |
| add a, b | |
| adc a, c | |
| jr l_2b34 | |
| l_2b2a: | |
| ld a, b | |
| push af | |
| ldh a, [$ff00 + $91] | |
| ld b, a | |
| pop af | |
| sub a, b | |
| sbc a, c | |
| sbc a, $08 | |
| l_2b34: | |
| ldh [rOAM_X_POS], a | |
| push hl | |
| ldh a, [rOAM_TILE_ADDRESS_1] | |
| ld h, a | |
| ldh a, [rOAM_TILE_ADDRESS_2] | |
| ld l, a | |
| ldh a, [rOAM_VISIBLE] | |
| and a | |
| jr z, l_2b46 ; jump if sprite is (supposed to be) visible | |
| ld a, $ff | |
| jr l_2b48 | |
| l_2b46: | |
| ldh a, [rOAM_Y_POS] | |
| l_2b48: | |
| ldi [hl], a | |
| ldh a, [rOAM_X_POS] | |
| ldi [hl], a | |
| ldh a, [rOAM_TILE_NO] | |
| ldi [hl], a | |
| ldh a, [$ff00 + $94] ; | |
| ld b, a ; | |
| ldh a, [$ff00 + $8b] ; | |
| or b ; | |
| ld b, a ; | |
| ldh a, [rOAM_ATTRIBUTE_NO] ; | |
| or b ; "or" both 8b and 9f into the attribute | |
| ldi [hl], a | |
| ld a, h | |
| ldh [rOAM_TILE_ADDRESS_1], a | |
| ld a, l | |
| ldh [rOAM_TILE_ADDRESS_2], a | |
| pop hl | |
| jp read_next_design_element | |
| ; start of data section (see above): starting at $2b64 | |
| SECTION "Data", ROM0 [$2B64] | |
| db $20, $2C, $24, $2C, $28, $2C, $2C, $2C, $30, $2C, $34, $2C | |
| db $38, $2C, $3C, $2C, $40, $2C, $44, $2C, $48, $2C, $4C, $2C | |
| db $50, $2C, $54, $2C, $58, $2C, $5C, $2C, $60, $2C, $64, $2C | |
| db $68, $2C, $6C, $2C, $70, $2C, $74, $2C, $78, $2C, $7C, $2C | |
| db $80, $2C, $84, $2C, $88, $2C, $8C, $2C, $90, $2C, $94, $2C | |
| db $98, $2C, $9C, $2C, $A0, $2C, $A4, $2C, $A8, $2C, $AC, $2C | |
| db $B0, $2C, $B4, $2C, $B8, $2C, $BC, $2C, $C0, $2C, $C4, $2C | |
| db $C8, $2C, $CC, $2C, $C7, $30, $CC, $2C, $D0, $2C, $D4, $2C | |
| db $D8, $2C, $DC, $2C, $E0, $2C, $E4, $2C, $EA, $30, $EE, $30 | |
| db $E8, $2C, $EC, $2C, $F2, $30, $F6, $30, $F0, $2C, $F4, $2C | |
| db $F8, $2C, $FC, $2C, $00, $2D, $04, $2D, $FA, $30, $FE, $30 | |
| db $04, $2D, $08, $2D, $08, $2D, $0C, $2D, $10, $2D, $14, $2D | |
| db $18, $2D, $1C, $2D, $20, $2D, $24, $2D, $28, $2D, $2C, $2D | |
| db $30, $2D, $34, $2D, $38, $2D, $3C, $2D, $40, $2D, $44, $2D | |
| db $48, $2D, $4C, $2D, $50, $2D, $54, $2D, $0A, $31, $0E, $31 | |
| db $12, $31, $12, $31, $02, $31, $06, $31, $58, $2D, $EF, $F0 | |
| db $68, $2D, $EF, $F0, $7A, $2D, $EF, $F0, $89, $2D, $EF, $F0 | |
| db $9A, $2D, $EF, $F0, $AC, $2D, $EF, $F0, $BD, $2D, $EF, $F0 | |
| db $CB, $2D, $EF, $F0, $DC, $2D, $EF, $F0, $EB, $2D, $EF, $F0 | |
| db $FC, $2D, $EF, $F0, $0B, $2E, $EF, $F0, $1C, $2E, $EF, $F0 | |
| db $2E, $2E, $EF, $F0, $40, $2E, $EF, $F0, $52, $2E, $EF, $F0 | |
| db $64, $2E, $EF, $F0, $76, $2E, $EF, $F0, $86, $2E, $EF, $F0 | |
| db $98, $2E, $EF, $F0, $A8, $2E, $EF, $F0, $B9, $2E, $EF, $F0 | |
| db $CA, $2E, $EF, $F0, $DB, $2E, $EF, $F0, $0B, $2F, $EF, $F0 | |
| db $1C, $2F, $EF, $F0, $EC, $2E, $EF, $F0, $FA, $2E, $EF, $F0 | |
| db $2D, $2F, $00, $E8, $36, $2F, $00, $E8, $3F, $2F, $00, $E8 | |
| db $48, $2F, $00, $E8, $51, $2F, $00, $00, $55, $2F, $00, $00 | |
| db $59, $2F, $00, $00, $5D, $2F, $00, $00, $61, $2F, $00, $00 | |
| db $65, $2F, $00, $00, $69, $2F, $00, $00, $6D, $2F, $00, $00 | |
| db $71, $2F, $00, $00, $75, $2F, $00, $00, $79, $2F, $F0, $F8 | |
| db $84, $2F, $F0, $F8, $8F, $2F, $F0, $F0, $A3, $2F, $F0, $F0 | |
| db $B8, $2F, $F8, $F8, $C1, $2F, $F8, $F8, $CA, $2F, $F8, $F8 | |
| db $D1, $2F, $F8, $F8, $D8, $2F, $F0, $F8, $E3, $2F, $F0, $F8 | |
| db $EE, $2F, $F0, $F0, $03, $30, $F0, $F0, $19, $30, $F8, $F8 | |
| db $22, $30, $F8, $F8, $2B, $30, $F8, $F8, $32, $30, $F8, $F8 | |
| db $39, $30, $F8, $F8, $40, $30, $F8, $F8, $47, $30, $F8, $F8 | |
| db $4E, $30, $F8, $F8, $55, $30, $F8, $F8, $5C, $30, $F8, $F8 | |
| db $67, $30, $F8, $F8, $6E, $30, $F8, $F8, $75, $30, $F8, $F8 | |
| db $7C, $30, $F8, $F8, $83, $30, $F8, $F8, $8C, $30, $F8, $F8 | |
| db $95, $30, $F8, $F8, $9E, $30, $F8, $F8, $A7, $30, $F8, $F8 | |
| db $B0, $30, $F8, $F8, $B9, $30, $F8, $F8, $C0, $30, $F8, $F8 | |
| db $46, $31, $F0, $F0, $5D, $31, $F8, $F8, $A9, $31, $FE, $FE | |
| db $FE, $FE, $FE, $FE, $FE, $FE, $84, $84, $84, $FE, $84, $FF | |
| db $A9, $31, $FE, $FE, $FE, $FE, $FE, $84, $FE, $FE, $FE, $84 | |
| db $FE, $FE, $FE, $84, $84, $FF, $A9, $31, $FE, $FE, $FE, $FE | |
| db $FE, $FE, $84, $FE, $84, $84, $84, $FE, $FF, $A9, $31, $FE | |
| db $FE, $FE, $FE, $84, $84, $FE, $FE, $FE, $84, $FE, $FE, $FE | |
| db $84, $FF, $A9, $31, $FE, $FE, $FE, $FE, $FE, $FE, $FE, $FE | |
| db $81, $81, $81, $FE, $FE, $FE, $81, $FF, $A9, $31, $FE, $FE | |
| db $FE, $FE, $FE, $81, $81, $FE, $FE, $81, $FE, $FE, $FE, $81 | |
| db $FF, $A9, $31, $FE, $FE, $FE, $FE, $81, $FE, $FE, $FE, $81 | |
| db $81, $81, $FF, $A9, $31, $FE, $FE, $FE, $FE, $FE, $81, $FE | |
| db $FE, $FE, $81, $FE, $FE, $81, $81, $FF, $A9, $31, $FE, $FE | |
| db $FE, $FE, $FE, $FE, $FE, $FE, $8A, $8B, $8B, $8F, $FF, $A9 | |
| db $31, $FE, $80, $FE, $FE, $FE, $88, $FE, $FE, $FE, $88, $FE | |
| db $FE, $FE, $89, $FF, $A9, $31, $FE, $FE, $FE, $FE, $FE, $FE | |
| db $FE, $FE, $8A, $8B, $8B, $8F, $FF, $A9, $31, $FE, $80, $FE | |
| db $FE, $FE, $88, $FE, $FE, $FE, $88, $FE, $FE, $FE, $89, $FF | |
| db $A9, $31, $FE, $FE, $FE, $FE, $FE, $FE, $FE, $FE, $FE, $83 | |
| db $83, $FE, $FE, $83, $83, $FF, $A9, $31, $FE, $FE, $FE, $FE | |
| db $FE, $FE, $FE, $FE, $FE, $83, $83, $FE, $FE, $83, $83, $FF | |
| db $A9, $31, $FE, $FE, $FE, $FE, $FE, $FE, $FE, $FE, $FE, $83 | |
| db $83, $FE, $FE, $83, $83, $FF, $A9, $31, $FE, $FE, $FE, $FE | |
| db $FE, $FE, $FE, $FE, $FE, $83, $83, $FE, $FE, $83, $83, $FF | |
| db $A9, $31, $FE, $FE, $FE, $FE, $FE, $FE, $FE, $FE, $82, $82 | |
| db $FE, $FE, $FE, $82, $82, $FF, $A9, $31, $FE, $FE, $FE, $FE | |
| db $FE, $82, $FE, $FE, $82, $82, $FE, $FE, $82, $FF, $A9, $31 | |
| db $FE, $FE, $FE, $FE, $FE, $FE, $FE, $FE, $82, $82, $FE, $FE | |
| db $FE, $82, $82, $FF, $A9, $31, $FE, $FE, $FE, $FE, $FE, $82 | |
| db $FE, $FE, $82, $82, $FE, $FE, $82, $FF, $A9, $31, $FE, $FE | |
| db $FE, $FE, $FE, $FE, $FE, $FE, $FE, $86, $86, $FE, $86, $86 | |
| db $FF, $A9, $31, $FE, $FE, $FE, $FE, $86, $FE, $FE, $FE, $86 | |
| db $86, $FE, $FE, $FE, $86, $FF, $A9, $31, $FE, $FE, $FE, $FE | |
| db $FE, $FE, $FE, $FE, $FE, $86, $86, $FE, $86, $86, $FF, $A9 | |
| db $31, $FE, $FE, $FE, $FE, $86, $FE, $FE, $FE, $86, $86, $FE | |
| db $FE, $FE, $86, $FF, $A9, $31, $FE, $FE, $FE, $FE, $FE, $85 | |
| db $FE, $FE, $85, $85, $85, $FF, $A9, $31, $FE, $FE, $FE, $FE | |
| db $FE, $85, $FE, $FE, $85, $85, $FE, $FE, $FE, $85, $FF, $A9 | |
| db $31, $FE, $FE, $FE, $FE, $FE, $FE, $FE, $FE, $85, $85, $85 | |
| db $FE, $FE, $85, $FF, $A9, $31, $FE, $FE, $FE, $FE, $FE, $85 | |
| db $FE, $FE, $FE, $85, $85, $FE, $FE, $85, $FF, $C9, $31, $0A | |
| db $25, $1D, $22, $19, $0E, $FF, $C9, $31, $0B, $25, $1D, $22 | |
| db $19, $0E, $FF, $C9, $31, $0C, $25, $1D, $22, $19, $0E, $FF | |
| db $C9, $31, $2F, $18, $0F, $0F, $2F, $2F, $FF, $C9, $31, $00 | |
| db $FF, $C9, $31, $01, $FF, $C9, $31, $02, $FF, $C9, $31, $03 | |
| db $FF, $C9, $31, $04, $FF, $C9, $31, $05, $FF, $C9, $31, $06 | |
| db $FF, $C9, $31, $07, $FF, $C9, $31, $08, $FF, $C9, $31, $09 | |
| db $FF, $D9, $31, $2F, $01, $2F, $11, $20, $21, $30, $31, $FF | |
| db $D9, $31, $2F, $03, $12, $13, $22, $23, $32, $33, $FF, $A9 | |
| db $31, $2F, $05, $FD, $05, $2F, $2F, $15, $04, $17, $24, $25 | |
| db $26, $27, $34, $35, $36, $2F, $FF, $A9, $31, $08, $37, $FD | |
| db $37, $FD, $08, $18, $19, $14, $1B, $28, $29, $2A, $2B, $60 | |
| db $70, $36, $2F, $FF, $D9, $31, $B9, $FD, $B9, $BA, $FD, $BA | |
| db $FF, $D9, $31, $82, $FD, $82, $83, $FD, $83, $FF, $D9, $31 | |
| db $09, $0A, $3A, $3B, $FF, $D9, $31, $0B, $40, $7C, $6F, $FF | |
| db $D9, $31, $2F, $0F, $2F, $1F, $5F, $2C, $2F, $3F, $FF, $D9 | |
| db $31, $6C, $3C, $4B, $4C, $5B, $5C, $6B, $2F, $FF, $A9, $31 | |
| db $2F, $4D, $FD, $4D, $2F, $2F, $5D, $5E, $4E, $5F, $6D, $6E | |
| db $2F, $2F, $7D, $FD, $7D, $2F, $FF, $A9, $31, $08, $77, $FD | |
| db $77, $FD, $08, $18, $78, $43, $53, $7A, $7B, $50, $2F, $2F | |
| db $02, $FD, $7D, $2F, $FF, $D9, $31, $B9, $FD, $B9, $BA, $FD | |
| db $BA, $FF, $D9, $31, $82, $FD, $82, $83, $FD, $83, $FF, $D9 | |
| db $31, $09, $0A, $3A, $3B, $FF, $D9, $31, $0B, $40, $7C, $6F | |
| db $FF, $D9, $31, $DC, $DD, $E0, $E1, $FF, $D9, $31, $DE, $DF | |
| db $E0, $E1, $FF, $D9, $31, $DE, $E2, $E0, $E4, $FF, $D9, $31 | |
| db $DC, $EE, $E0, $E3, $FF, $D9, $31, $E5, $E6, $E7, $E8, $FF | |
| db $D9, $31, $FD, $E6, $FD, $E5, $FD, $E8, $FD, $E7, $FF, $D9 | |
| db $31, $E9, $EA, $EB, $EC, $FF, $D9, $31, $ED, $EA, $EB, $EC | |
| db $FF, $D9, $31, $F2, $F4, $F3, $BF, $FF, $D9, $31, $F4, $F2 | |
| db $BF, $F3, $FF, $D9, $31, $C2, $FD, $C2, $C3, $FD, $C3, $FF | |
| db $D9, $31, $C4, $FD, $C4, $C5, $FD, $C5, $FF, $D9, $31, $DC | |
| db $FD, $DC, $EF, $FD, $EF, $FF, $D9, $31, $F0, $FD, $F0, $F1 | |
| db $FD, $F1, $FF, $D9, $31, $DC, $FD, $F0, $F1, $FD, $EF, $FF | |
| db $D9, $31, $F0, $FD, $DC, $EF, $FD, $F1, $FF, $D9, $31, $BD | |
| db $BE, $BB, $BC, $FF, $D9, $31, $B9, $BA, $DA, $DB, $FF, $CB | |
| db $30, $E0, $F0, $F5, $31, $C0, $C1, $C5, $C6, $CC, $CD, $75 | |
| db $76, $A4, $A5, $A6, $A7, $54, $55, $56, $57, $44, $45, $46 | |
| db $47, $A0, $A1, $A2, $A3, $9C, $9D, $9E, $9F, $FF, $16, $31 | |
| db $F8, $E8, $1C, $31, $F0, $E8, $25, $31, $00, $00, $2B, $31 | |
| db $00, $00, $31, $31, $00, $00, $3A, $31, $00, $00, $9D, $31 | |
| db $00, $00, $A3, $31, $00, $00, $64, $31, $D8, $F8, $7C, $31 | |
| db $E8, $F8, $8E, $31, $F0, $F8, $2D, $32, $63, $64, $65, $FF | |
| db $2D, $32, $63, $64, $65, $66, $67, $68, $FF, $2D, $32, $41 | |
| db $41, $41, $FF, $2D, $32, $42, $42, $42, $FF, $2D, $32, $52 | |
| db $52, $52, $62, $62, $62, $FF, $2D, $32, $51, $51, $51, $61 | |
| db $61, $61, $71, $71, $71, $FF, $A9, $31, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $63, $64, $FD, $64, $FD, $63, $66, $67 | |
| db $FD, $67, $FD, $66, $FF, $D9, $31, $2F, $2F, $63, $64, $FF | |
| db $D9, $31, $00, $FD, $00, $10, $FD, $10, $4F, $FD, $4F, $80 | |
| db $FD, $80, $80, $FD, $80, $81, $FD, $81, $97, $FD, $97, $FF | |
| db $D9, $31, $98, $FD, $98, $99, $FD, $99, $80, $FD, $80, $9A | |
| db $FD, $9A, $9B, $FD, $9B, $FF, $D9, $31, $A8, $FD, $A8, $A9 | |
| db $FD, $A9, $AA, $FD, $AA, $AB, $FD, $AB, $FF, $D9, $31, $41 | |
| db $2F, $2F, $FF, $D9, $31, $52, $2F, $62, $FF, $00, $00, $00 | |
| db $08, $00, $10, $00, $18, $08, $00, $08, $08, $08, $10, $08 | |
| db $18, $10, $00, $10, $08, $10, $10, $10, $18, $18, $00, $18 | |
| db $08, $18, $10, $18, $18, $00, $00, $00, $08, $00, $10, $00 | |
| db $18, $00, $20, $00, $28, $00, $30, $00, $38, $00, $00, $00 | |
| db $08, $08, $00, $08, $08, $10, $00, $10, $08, $18, $00, $18 | |
| db $08, $20, $00, $20, $08, $28, $00, $28, $08, $30, $00, $30 | |
| db $08, $00, $08, $00, $10, $08, $08, $08, $10, $10, $00, $10 | |
| db $08, $10, $10, $10, $18, $18, $00, $18, $08, $18, $10, $18 | |
| db $18, $20, $00, $20, $08, $20, $10, $20, $18, $28, $00, $28 | |
| db $08, $28, $10, $28, $18, $30, $00, $30, $08, $30, $10, $30 | |
| db $18, $38, $00, $38, $08, $38, $10, $38, $18, $00, $00, $00 | |
| db $08, $00, $10, $08, $00, $08, $08, $08, $10, $10, $00, $10 | |
| db $08, $10, $10, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F | |
| db $7F, $7C, $7C, $78, $79, $78, $7B, $FF, $FF, $FF, $FF, $FF | |
| db $FF, $FF, $FF, $FF, $FF, $00, $00, $00, $FF, $00, $00, $FF | |
| db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $3F, $3F, $1F | |
| db $9F, $1F, $DF, $78, $7B, $78, $79, $7C, $7C, $7F, $7F, $7F | |
| db $7F, $7F, $7F, $7F, $7F, $7F, $7F, $00, $00, $00, $FF, $00 | |
| db $00, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $1F | |
| db $DF, $1F, $9F, $3F, $3F, $FF, $FF, $FF, $FF, $FF, $FF, $FF | |
| db $FF, $FF, $FF, $78, $7A, $78, $7A, $78, $7A, $78, $7A, $78 | |
| db $7A, $78, $7A, $78, $7A, $78, $7A, $1F, $5F, $1F, $5F, $1F | |
| db $5F, $1F, $5F, $1F, $5F, $1F, $5F, $1F, $5F, $1F, $5F, $FF | |
| db $FF, $FF, $FF, $FF, $FF, $FF, $F8, $F8, $F0, $F2, $E1, $F5 | |
| db $E3, $F2, $E6, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $00, $00 | |
| db $00, $00, $FF, $FF, $FF, $00, $00, $FF, $FF, $FF, $FF, $FF | |
| db $FF, $FF, $1F, $1F, $0F, $4F, $87, $AF, $C7, $4F, $67, $F2 | |
| db $E6, $F2, $E6, $F2, $E6, $F2, $E6, $F2, $E6, $F2, $E6, $F2 | |
| db $E6, $F2, $E6, $4F, $67, $4F, $67, $4F, $67, $4F, $67, $4F | |
| db $67, $4F, $67, $4F, $67, $4F, $67, $F2, $E6, $F5, $E3, $F2 | |
| db $E1, $F8, $F0, $FF, $F8, $FF, $FF, $FF, $FF, $FF, $FF, $00 | |
| db $00, $FF, $FF, $00, $FF, $00, $00, $FF, $00, $FF, $FF, $FF | |
| db $FF, $FF, $FF, $4F, $67, $AF, $C7, $4F, $87, $1F, $0F, $FF | |
| db $1F, $FF, $FF, $FF, $FF, $FF, $FF, $78, $7B, $78, $79, $7C | |
| db $7C, $7F, $7F, $7F, $7F, $7C, $7C, $78, $79, $78, $7B, $1F | |
| db $DF, $1F, $9F, $3F, $3F, $FF, $FF, $FF, $FF, $3F, $3F, $1F | |
| db $9F, $1F, $DF, $00, $00, $00, $FF, $00, $00, $FF, $FF, $FF | |
| db $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $7F, $00 | |
| db $00, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $78 | |
| db $7A, $78, $7A, $78, $7A, $78, $7A, $78, $7A, $00, $02, $00 | |
| db $7A, $00, $7A, $1F, $5F, $1F, $5F, $1F, $5F, $1F, $5F, $1F | |
| db $5F, $00, $40, $00, $5F, $00, $5F, $00, $00, $00, $FF, $00 | |
| db $00, $00, $FF, $00, $FF, $00, $00, $00, $FF, $00, $00, $00 | |
| db $00, $00, $00, $3F, $3F, $3F, $3F, $30, $30, $30, $30, $33 | |
| db $32, $33, $30, $00, $00, $00, $00, $FF, $FF, $FF, $FF, $00 | |
| db $00, $00, $00, $FF, $02, $FF, $20, $00, $00, $00, $00, $FC | |
| db $FC, $FC, $FC, $0C, $0C, $0C, $0C, $CC, $0C, $CC, $0C, $33 | |
| db $30, $33, $30, $33, $30, $33, $30, $33, $30, $33, $30, $33 | |
| db $32, $33, $30, $CC, $0C, $CC, $4C, $CC, $0C, $CC, $0C, $CC | |
| db $0C, $CC, $8C, $CC, $0C, $CC, $0C, $33, $30, $33, $30, $30 | |
| db $30, $30, $30, $3F, $3F, $3F, $3F, $00, $00, $00, $00, $FF | |
| db $04, $FF, $40, $00, $00, $00, $00, $FF, $FF, $FF, $FF, $00 | |
| db $00, $00, $00, $CC, $0C, $CC, $4C, $0C, $0C, $0C, $0C, $FC | |
| db $FC, $FC, $FC, $00, $00, $00, $00, $00, $00, $FF, $FF, $FF | |
| db $00, $FF, $02, $FF, $20, $FF, $00, $FF, $04, $FF, $00, $FF | |
| db $00, $FF, $02, $FF, $40, $FF, $00, $FF, $08, $FF, $01, $FF | |
| db $43, $FF, $07, $FF, $04, $FF, $40, $FF, $02, $FF, $00, $FF | |
| db $00, $FF, $FF, $FF, $FF, $00, $00, $FF, $00, $FF, $40, $FF | |
| db $02, $FF, $00, $FF, $10, $FF, $80, $FF, $C2, $FF, $E0, $FE | |
| db $06, $FE, $46, $FE, $06, $FE, $06, $FE, $16, $FE, $86, $FE | |
| db $06, $FE, $06, $7F, $64, $7F, $60, $7F, $62, $7F, $60, $7F | |
| db $60, $7F, $68, $7F, $62, $7F, $60, $FF, $02, $FF, $40, $FF | |
| db $00, $FF, $00, $FF, $08, $FF, $80, $FF, $1F, $F0, $10, $FF | |
| db $02, $FF, $20, $FF, $00, $FF, $00, $FF, $04, $FF, $00, $FF | |
| db $FF, $00, $00, $FF, $07, $FF, $13, $FF, $01, $FF, $00, $FF | |
| db $40, $FF, $00, $FF, $FF, $08, $08, $00, $00, $FF, $FF, $FF | |
| db $FF, $FF, $00, $FF, $02, $FF, $20, $FF, $FF, $00, $00, $FF | |
| db $E0, $FF, $C8, $FF, $80, $FF, $00, $FF, $02, $FF, $00, $FF | |
| db $FF, $08, $08, $FF, $00, $FF, $02, $FF, $40, $FF, $00, $FF | |
| db $02, $FF, $00, $FF, $F8, $0F, $08, $F0, $10, $F0, $10, $F0 | |
| db $10, $F0, $50, $F0, $10, $F0, $10, $F0, $10, $F0, $10, $0F | |
| db $08, $0F, $0A, $0F, $08, $0F, $08, $0F, $08, $0F, $08, $0F | |
| db $09, $0F, $08, $00, $00, $00, $7F, $00, $00, $7F, $7F, $7F | |
| db $7F, $7C, $7C, $78, $79, $78, $7B, $00, $00, $00, $FF, $00 | |
| db $00, $FF, $FF, $FF, $FF, $3F, $3F, $1F, $9F, $1F, $DF, $7F | |
| db $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $00, $00, $00 | |
| db $7F, $00, $00, $00, $00, $00, $00, $00, $00, $AA, $AA, $00 | |
| db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $0F | |
| db $0F, $1F, $1F, $38, $38, $33, $30, $36, $30, $34, $30, $00 | |
| db $00, $00, $00, $FF, $FF, $FF, $FF, $00, $00, $FF, $00, $00 | |
| db $00, $00, $00, $00, $00, $00, $00, $F0, $F0, $F8, $F8, $1C | |
| db $1C, $CC, $0C, $6C, $0C, $2C, $0C, $34, $30, $34, $30, $34 | |
| db $30, $34, $30, $34, $30, $34, $30, $34, $30, $34, $30, $2C | |
| db $0C, $2C, $0C, $2C, $0C, $2C, $0C, $2C, $0C, $2C, $0C, $2C | |
| db $0C, $2C, $0C, $34, $30, $36, $30, $33, $30, $38, $38, $1F | |
| db $1F, $0F, $0F, $00, $00, $00, $00, $00, $7B, $00, $79, $00 | |
| db $7C, $00, $7F, $00, $7F, $00, $00, $00, $7F, $00, $00, $00 | |
| db $DF, $00, $9F, $00, $3F, $00, $FF, $00, $FF, $00, $00, $00 | |
| db $FF, $00, $00, $00, $00, $00, $00, $FF, $00, $00, $00, $FF | |
| db $FF, $FF, $FF, $00, $00, $00, $00, $2C, $0C, $6C, $0C, $CC | |
| db $0C, $1C, $1C, $F8, $F8, $F0, $F0, $00, $00, $00, $00, $08 | |
| db $08, $FF, $FF, $FF, $02, $FF, $00, $FF, $20, $FF, $00, $FF | |
| db $02, $FF, $00, $00, $00, $FF, $FF, $FF, $FF, $FF, $00, $FF | |
| db $02, $FF, $20, $FF, $FF, $08, $08, $FF, $07, $FF, $13, $FF | |
| db $01, $FF, $00, $FF, $40, $FF, $00, $FF, $FF, $00, $00, $FF | |
| db $E0, $FF, $C8, $FF, $80, $FF, $00, $FF, $02, $FF, $00, $FF | |
| db $FF, $00, $00, $08, $08, $08, $08, $08, $08, $08, $08, $08 | |
| db $08, $08, $08, $08, $08, $08, $08, $FF, $00, $FF, $02, $FF | |
| db $00, $FF, $20, $FF, $02, $FF, $00, $FF, $FF, $08, $08, $F0 | |
| db $10, $FF, $1F, $F0, $1F, $F0, $1F, $F0, $1F, $F0, $1F, $FF | |
| db $5F, $F0, $10, $00, $00, $FF, $FF, $00, $FF, $00, $FF, $00 | |
| db $FF, $00, $FF, $FF, $FF, $00, $00, $08, $08, $FF, $FF, $00 | |
| db $FF, $00, $FF, $00, $FF, $00, $FF, $FF, $FF, $08, $08, $0F | |
| db $08, $FF, $F8, $0F, $F8, $0F, $F8, $0F, $F8, $0F, $F8, $FF | |
| db $FA, $0F, $08, $FF, $07, $FF, $43, $FF, $01, $FF, $00, $FF | |
| db $00, $FF, $80, $FF, $1F, $F0, $10, $FF, $E0, $FF, $C2, $FF | |
| db $80, $FF, $00, $FF, $22, $FF, $00, $FF, $F8, $0F, $08, $00 | |
| db $00, $00, $00, $00, $00, $3C, $00, $3C, $00, $00, $00, $00 | |
| db $00, $00, $00, $00, $00, $3C, $00, $4E, $00, $4E, $00, $7E | |
| db $00, $4E, $00, $4E, $00, $00, $00, $00, $00, $7C, $00, $66 | |
| db $00, $7C, $00, $66, $00, $66, $00, $7C, $00, $00, $00, $00 | |
| db $00, $3C, $00, $66, $00, $60, $00, $60, $00, $66, $00, $3C | |
| db $00, $00, $00, $DD, $44, $FF, $44, $FF, $FF, $77, $11, $FF | |
| db $11, $FF, $FF, $DD, $44, $FF, $44, $FF, $FF, $77, $11, $FF | |
| db $11, $FF, $FF, $DD, $44, $FF, $44, $FF, $FF, $77, $11, $FF | |
| db $11, $FF, $FF, $DD, $44, $FF, $44, $FF, $FF, $77, $11, $FF | |
| db $11, $FF, $FF, $00, $00, $7E, $00, $18, $00, $18, $00, $18 | |
| db $00, $18, $00, $18, $00, $00, $00, $00, $00, $66, $00, $66 | |
| db $00, $3C, $00, $18, $00, $18, $00, $18, $00, $00, $00, $FF | |
| db $FF, $F7, $89, $DD, $A3, $FF, $81, $B7, $C9, $FD, $83, $D7 | |
| db $A9, $FF, $81, $FF, $FF, $FF, $81, $FF, $BD, $E7, $A5, $E7 | |
| db $A5, $FF, $BD, $FF, $81, $FF, $FF, $FF, $FF, $FF, $81, $FF | |
| db $81, $FF, $99, $FF, $99, $FF, $81, $FF, $81, $FF, $FF, $FF | |
| db $FF, $81, $81, $BD, $BD, $BD, $BD, $BD, $BD, $BD, $BD, $81 | |
| db $81, $FF, $FF, $FF, $FF, $81, $FF, $81, $FF, $81, $FF, $81 | |
| db $FF, $81, $FF, $81, $FF, $FF, $FF, $FF, $FF, $FF, $81, $C3 | |
| db $81, $DF, $85, $DF, $85, $FF, $BD, $FF, $81, $FF, $FF, $FF | |
| db $FF, $81, $FF, $BD, $FF, $A5, $E7, $A5, $E7, $BD, $FF, $81 | |
| db $FF, $FF, $FF, $FF, $FF, $81, $81, $BD, $83, $BD, $83, $BD | |
| db $83, $BD, $83, $81, $FF, $FF, $FF, $ED, $93, $BF, $C1, $F5 | |
| db $8B, $DF, $A1, $FD, $83, $AF, $D1, $FB, $85, $DF, $A1, $FD | |
| db $83, $EF, $91, $BB, $C5, $EF, $91, $BD, $C3, $F7, $89, $DF | |
| db $A1, $FF, $FF, $FF, $FF, $DB, $A4, $FF, $80, $B5, $CA, $FF | |
| db $80, $DD, $A2, $F7, $88, $FF, $FF, $FF, $FF, $57, $A8, $FD | |
| db $02, $DF, $20, $7B, $84, $EE, $11, $BB, $44, $FF, $FF, $FF | |
| db $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF | |
| db $00, $FF, $00, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00 | |
| db $FF, $00, $FF, $00, $FF, $00, $FF, $FF, $FF, $FF, $FF, $FF | |
| db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF | |
| db $FF, $77, $89, $DF, $21, $FB, $05, $AF, $51, $FD, $03, $D7 | |
| db $29, $FF, $FF, $00, $00, $3C, $00, $66, $00, $66, $00, $66 | |
| db $00, $66, $00, $3C, $00, $00, $00, $00, $00, $18, $00, $38 | |
| db $00, $18, $00, $18, $00, $18, $00, $3C, $00, $00, $00, $00 | |
| db $00, $3C, $00, $4E, $00, $0E, $00, $3C, $00, $70, $00, $7E | |
| db $00, $00, $00, $00, $00, $7C, $00, $0E, $00, $3C, $00, $0E | |
| db $00, $0E, $00, $7C, $00, $00, $00, $00, $00, $3C, $00, $6C | |
| db $00, $4C, $00, $4E, $00, $7E, $00, $0C, $00, $00, $00, $00 | |
| db $00, $7C, $00, $60, $00, $7C, $00, $0E, $00, $4E, $00, $3C | |
| db $00, $00, $00, $00, $00, $3C, $00, $60, $00, $7C, $00, $66 | |
| db $00, $66, $00, $3C, $00, $00, $00, $00, $00, $7E, $00, $06 | |
| db $00, $0C, $00, $18, $00, $38, $00, $38, $00, $00, $00, $00 | |
| db $00, $3C, $00, $4E, $00, $3C, $00, $4E, $00, $4E, $00, $3C | |
| db $00, $00, $00, $00, $00, $3C, $00, $4E, $00, $4E, $00, $3E | |
| db $00, $0E, $00, $3C, $00, $00, $00, $00, $00, $7C, $00, $66 | |
| db $00, $66, $00, $7C, $00, $60, $00, $60, $00, $00, $00, $00 | |
| db $00, $7E, $00, $60, $00, $7C, $00, $60, $00, $60, $00, $7E | |
| db $00, $00, $00, $00, $00, $7E, $00, $60, $00, $60, $00, $7C | |
| db $00, $60, $00, $60, $00, $00, $00, $00, $00, $3C, $00, $66 | |
| db $00, $66, $00, $66, $00, $66, $00, $3C, $00, $00, $00, $00 | |
| db $00, $3C, $00, $66, $00, $60, $00, $6E, $00, $66, $00, $3E | |
| db $00, $00, $00, $00, $00, $46, $00, $6E, $00, $7E, $00, $56 | |
| db $00, $46, $00, $46, $00, $00, $00, $00, $00, $46, $00, $46 | |
| db $00, $46, $00, $46, $00, $4E, $00, $3C, $00, $00, $00, $00 | |
| db $00, $3C, $00, $60, $00, $3C, $00, $0E, $00, $4E, $00, $3C | |
| db $00, $00, $00, $00, $00, $3C, $00, $18, $00, $18, $00, $18 | |
| db $00, $18, $00, $3C, $00, $00, $00, $00, $00, $60, $00, $60 | |
| db $00, $60, $00, $60, $00, $60, $00, $7E, $00, $00, $00, $00 | |
| db $00, $46, $00, $46, $00, $46, $00, $46, $00, $2C, $00, $18 | |
| db $00, $00, $00, $00, $00, $7C, $00, $66, $00, $66, $00, $7C | |
| db $00, $68, $00, $66, $00, $00, $00, $00, $00, $46, $00, $66 | |
| db $00, $76, $00, $5E, $00, $4E, $00, $46, $00, $00, $00, $00 | |
| db $00, $7C, $00, $4E, $00, $4E, $00, $4E, $00, $4E, $00, $7C | |
| db $00, $00, $00, $FF, $FF, $FF, $00, $FF, $00, $FF, $00, $FF | |
| db $10, $FF, $80, $FF, $02, $FF, $00, $00, $00, $FF, $FF, $FF | |
| db $FF, $FF, $00, $FF, $02, $FF, $20, $FF, $FF, $80, $80, $80 | |
| db $80, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80 | |
| db $80, $80, $80, $80, $80, $FF, $FF, $00, $FF, $00, $FF, $00 | |
| db $FF, $00, $FF, $FF, $FF, $80, $80, $80, $80, $FF, $FF, $FF | |
| db $00, $FF, $02, $FF, $20, $FF, $00, $FF, $00, $FF, $00, $FF | |
| db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 | |
| db $00, $00, $00, $07, $07, $18, $1F, $21, $3E, $47, $7F, $5F | |
| db $7F, $39, $30, $7B, $62, $FB, $B2, $FF, $A0, $FF, $C2, $7F | |
| db $54, $7F, $5C, $3F, $2E, $7F, $63, $BF, $F8, $37, $FF, $01 | |
| db $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01 | |
| db $01, $83, $83, $01, $01, $01, $01, $01, $01, $01, $01, $01 | |
| db $01, $01, $01, $01, $01, $FF, $FF, $FF, $FF, $01, $01, $01 | |
| db $01, $01, $01, $01, $01, $01, $01, $01, $01, $83, $83, $FF | |
| db $FF, $D9, $87, $D9, $87, $D9, $87, $D9, $87, $D9, $87, $D9 | |
| db $87, $D9, $87, $D9, $87, $D9, $87, $D9, $87, $D9, $87, $D9 | |
| db $87, $D9, $87, $D9, $87, $FF, $FF, $D9, $87, $D9, $87, $D9 | |
| db $87, $D9, $87, $D9, $87, $D9, $87, $D9, $87, $D9, $87, $00 | |
| db $38, $00, $38, $00, $38, $00, $38, $00, $38, $00, $38, $00 | |
| db $38, $00, $38, $7C, $00, $7C, $00, $7C, $00, $7C, $00, $7C | |
| db $00, $7C, $00, $7F, $00, $FF, $00, $00, $00, $00, $00, $08 | |
| db $00, $08, $00, $08, $00, $08, $00, $1C, $00, $1C, $00, $00 | |
| db $00, $00, $0E, $01, $1D, $1E, $06, $2A, $2A, $27, $27, $10 | |
| db $13, $0C, $0D, $00, $00, $C0, $C0, $20, $20, $10, $D0, $D0 | |
| db $10, $F0, $30, $C8, $E8, $08, $E8, $04, $07, $03, $03, $0C | |
| db $0C, $10, $10, $35, $20, $2A, $20, $3F, $3F, $0C, $0C, $28 | |
| db $E8, $D8, $C0, $40, $40, $20, $20, $50, $10, $B0, $10, $F0 | |
| db $F0, $C0, $C0, $00, $E0, $01, $71, $32, $42, $34, $35, $55 | |
| db $54, $4F, $4E, $21, $27, $18, $1B, $00, $00, $80, $80, $40 | |
| db $40, $20, $A0, $A0, $20, $E0, $60, $90, $F0, $08, $C8, $B8 | |
| db $B8, $84, $84, $84, $84, $FC, $FC, $92, $92, $92, $92, $6C | |
| db $6C, $EE, $EE, $07, $07, $1F, $18, $3E, $20, $7F, $4F, $7F | |
| db $5F, $70, $70, $A2, $A2, $B0, $B0, $B4, $B4, $64, $64, $3C | |
| db $3C, $2E, $2E, $27, $27, $10, $10, $6C, $7C, $CF, $B3, $03 | |
| db $03, $03, $03, $03, $02, $07, $06, $09, $09, $16, $17, $12 | |
| db $11, $0E, $0F, $08, $09, $08, $08, $0F, $0F, $08, $08, $09 | |
| db $09, $0A, $0A, $06, $06, $0E, $0E, $03, $03, $03, $03, $03 | |
| db $02, $1F, $1E, $21, $21, $4A, $55, $4A, $75, $0A, $35, $0A | |
| db $15, $08, $08, $0F, $0F, $08, $08, $09, $09, $0A, $0A, $06 | |
| db $06, $0E, $0E, $00, $00, $66, $00, $6C, $00, $78, $00, $78 | |
| db $00, $6C, $00, $66, $00, $00, $00, $00, $00, $46, $00, $2C | |
| db $00, $18, $00, $38, $00, $64, $00, $42, $00, $00, $00, $FD | |
| db $FD, $FD, $FD, $FD, $FD, $FD, $FD, $FD, $FD, $FD, $FD, $FD | |
| db $FD, $FD, $FD, $F8, $00, $E0, $00, $C0, $00, $80, $00, $80 | |
| db $00, $00, $00, $00, $00, $00, $00, $7F, $00, $1F, $00, $0F | |
| db $00, $07, $00, $07, $00, $03, $00, $03, $00, $03, $00, $00 | |
| db $00, $80, $00, $80, $00, $C0, $00, $E0, $00, $F8, $00, $FF | |
| db $00, $FF, $00, $03, $00, $07, $00, $07, $00, $0F, $00, $1F | |
| db $00, $7F, $00, $FF, $00, $FF, $00, $FF, $FF, $FF, $FF, $00 | |
| db $FF, $FF, $FF, $00, $FF, $FF, $00, $00, $FF, $FF, $00, $FF | |
| db $00, $FF, $00, $FF, $01, $FE, $02, $FE, $02, $FC, $04, $FC | |
| db $04, $FC, $04, $FF, $02, $FF, $01, $FF, $01, $01, $01, $FF | |
| db $01, $01, $01, $FF, $01, $01, $01, $02, $02, $02, $02, $03 | |
| db $03, $04, $05, $08, $09, $11, $12, $21, $26, $43, $4C, $00 | |
| db $00, $01, $01, $02, $02, $04, $04, $08, $09, $10, $13, $20 | |
| db $27, $20, $2F, $87, $98, $06, $39, $0E, $71, $1E, $E1, $3C | |
| db $C3, $3C, $C3, $78, $87, $78, $87, $40, $4F, $40, $4F, $80 | |
| db $9F, $80, $9F, $80, $9F, $80, $9F, $80, $9F, $80, $9F, $F8 | |
| db $07, $F0, $0F, $F0, $0F, $F0, $0F, $F0, $0F, $F0, $0F, $F0 | |
| db $0F, $F8, $07, $40, $5F, $40, $4F, $20, $2F, $20, $27, $10 | |
| db $11, $0F, $0F, $04, $04, $07, $07, $78, $87, $7C, $83, $3C | |
| db $C3, $1E, $E1, $0F, $F0, $FF, $FF, $FF, $00, $FF, $FF, $FF | |
| db $00, $FF, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF | |
| db $00, $00, $00, $02, $00, $02, $00, $02, $00, $02, $00, $02 | |
| db $00, $02, $00, $02, $00, $02, $00, $10, $00, $38, $00, $7C | |
| db $00, $FE, $00, $FE, $00, $FE, $00, $7C, $00, $00, $00, $02 | |
| db $03, $01, $01, $02, $02, $04, $04, $0D, $08, $0A, $08, $0F | |
| db $0F, $03, $03, $28, $E8, $F0, $D0, $30, $30, $08, $08, $54 | |
| db $04, $AC, $04, $FC, $FC, $30, $30, $00, $00, $03, $03, $03 | |
| db $03, $03, $02, $07, $06, $09, $09, $08, $08, $0B, $0B, $00 | |
| db $00, $C0, $C0, $C4, $C4, $E8, $68, $90, $F0, $A8, $F8, $48 | |
| db $78, $F8, $B8, $00, $00, $07, $07, $07, $07, $07, $04, $07 | |
| db $04, $0B, $0B, $10, $10, $17, $17, $00, $00, $80, $80, $80 | |
| db $80, $E0, $E0, $90, $F0, $A8, $F8, $48, $78, $B8, $B8, $08 | |
| db $08, $0F, $0F, $08, $08, $0F, $0F, $09, $09, $09, $09, $06 | |
| db $06, $0E, $0E, $E4, $E4, $22, $22, $20, $20, $E0, $E0, $20 | |
| db $20, $20, $20, $C0, $C0, $E0, $E0, $18, $18, $98, $98, $98 | |
| db $98, $F8, $F8, $9C, $98, $3C, $3C, $3C, $3C, $7E, $7E, $7F | |
| db $00, $FE, $FE, $7E, $7E, $FE, $DA, $7E, $5A, $7E, $7E, $FC | |
| db $FC, $F8, $F8, $FE, $0E, $FE, $FE, $7E, $7E, $FE, $DA, $7E | |
| db $5A, $7E, $7E, $FC, $FC, $F8, $F8, $80, $80, $83, $83, $83 | |
| db $83, $C3, $02, $EF, $2E, $97, $97, $47, $44, $24, $24, $00 | |
| db $00, $C0, $C0, $C0, $C0, $C0, $40, $E0, $60, $F8, $F8, $E4 | |
| db $24, $34, $34, $17, $14, $17, $14, $17, $14, $1C, $1F, $17 | |
| db $17, $0F, $0F, $1E, $1E, $00, $00, $F4, $24, $F8, $28, $E8 | |
| db $28, $38, $F8, $E8, $E8, $90, $90, $70, $70, $78, $78, $03 | |
| db $03, $03, $03, $03, $02, $0F, $0E, $11, $11, $37, $37, $71 | |
| db $52, $7D, $4E, $C0, $C0, $C0, $C0, $C0, $40, $C0, $40, $A0 | |
| db $A0, $10, $10, $FF, $FF, $CF, $33, $7F, $40, $3F, $3F, $08 | |
| db $08, $0F, $0F, $09, $09, $09, $09, $06, $06, $0E, $0E, $FC | |
| db $FC, $20, $20, $20, $20, $E0, $E0, $20, $20, $20, $20, $C0 | |
| db $C0, $E0, $E0, $03, $03, $03, $03, $03, $02, $07, $06, $09 | |
| db $09, $33, $33, $77, $54, $73, $4C, $18, $18, $D8, $D8, $D8 | |
| db $D8, $F8, $78, $DC, $58, $BC, $BC, $3C, $3C, $7E, $7E, $09 | |
| db $0E, $07, $07, $08, $0F, $08, $0F, $09, $0F, $0A, $0E, $06 | |
| db $06, $0E, $0E, $00, $00, $03, $03, $03, $03, $03, $02, $FF | |
| db $7E, $C9, $3F, $78, $7F, $09, $0F, $04, $04, $07, $07, $B8 | |
| db $BF, $C0, $FF, $FF, $FF, $00, $00, $00, $00, $00, $00, $00 | |
| db $00, $78, $78, $78, $78, $7B, $48, $60, $5F, $B6, $B0, $84 | |
| db $84, $B8, $B8, $84, $84, $84, $84, $84, $84, $FA, $FA, $92 | |
| db $92, $9E, $9E, $67, $67, $E0, $E0, $00, $00, $00, $00, $78 | |
| db $78, $78, $78, $78, $48, $40, $7E, $B4, $B0, $84, $84, $2A | |
| db $7B, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $7B | |
| db $30, $31, $31, $31, $31, $31, $32, $2A, $7C, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $2F, $7C, $44, $1C, $0C, $18 | |
| db $1B, $0E, $45, $2A, $7D, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $7D, $67, $46, $46, $46, $46, $46, $68, $2A | |
| db $7B, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $7B | |
| db $2F, $2F, $2F, $2F, $2F, $00, $2F, $2A, $7C, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $2F, $7C, $43, $34, $34, $34 | |
| db $34, $34, $34, $2A, $7D, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $7D, $30, $31, $31, $31, $31, $31, $32, $2A | |
| db $7B, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $7B | |
| db $36, $15, $0E, $1F, $0E, $15, $37, $2A, $7C, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $2F, $7C, $36, $2F, $2F, $2F | |
| db $2F, $2F, $37, $2A, $7D, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $7D, $40, $42, $42, $42, $42, $42, $41, $2A | |
| db $7B, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $7B | |
| db $36, $15, $12, $17, $0E, $1C, $37, $2A, $7C, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $2F, $7C, $36, $2F, $2F, $2F | |
| db $2F, $2F, $37, $2A, $7D, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $7D, $33, $34, $34, $34, $34, $34, $35, $2A | |
| db $7B, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $7B | |
| db $2B, $38, $39, $39, $39, $39, $3A, $2A, $7C, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $2F, $7C, $2B, $3B, $2F, $2F | |
| db $2F, $2F, $3C, $2A, $7D, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $7D, $2B, $3B, $2F, $2F, $2F, $2F, $3C, $2A | |
| db $7B, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $7B | |
| db $2B, $3B, $2F, $2F, $2F, $2F, $3C, $2A, $7C, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $2F, $7C, $2B, $3B, $2F, $2F | |
| db $2F, $2F, $3C, $2A, $7D, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $7D, $2B, $3D, $3E, $3E, $3E, $3E, $3F, $2A | |
| db $7B, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| SECTION "Data2", romx | |
| db $2F, $2F, $2F, $7B | |
| db $30, $31, $31, $31, $31, $31, $32, $2A, $7C, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $2F, $7C, $36, $15, $0E, $1F | |
| db $0E, $15, $37, $2A, $7D, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $7D, $36, $2F, $2F, $2F, $2F, $2F, $37, $2A | |
| db $7B, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $7B | |
| db $40, $42, $42, $42, $42, $42, $41, $2A, $7C, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $2F, $7C, $36, $11, $12, $10 | |
| db $11, $2F, $37, $2A, $7D, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $7D, $36, $2F, $2F, $2F, $2F, $2F, $37, $2A | |
| db $7B, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $7B | |
| db $33, $34, $34, $34, $34, $34, $35, $2A, $7C, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $2F, $7C, $2B, $8E, $8E, $8E | |
| db $8E, $8E, $8E, $2A, $7D, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $7D, $30, $31, $31, $31, $31, $31, $32, $2A | |
| db $7B, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $7B | |
| db $36, $15, $12, $17, $0E, $1C, $37, $2A, $7C, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $2F, $7C, $36, $2F, $2F, $02 | |
| db $05, $2F, $37, $2A, $7D, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $7D, $33, $34, $34, $34, $34, $34, $35, $2A | |
| db $7B, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $7B | |
| db $2B, $38, $39, $39, $39, $39, $3A, $2A, $7C, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $2F, $7C, $2B, $3B, $2F, $2F | |
| db $2F, $2F, $3C, $2A, $7D, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $7D, $2B, $3B, $2F, $2F, $2F, $2F, $3C, $2A | |
| db $7B, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $7B | |
| db $2B, $3B, $2F, $2F, $2F, $2F, $3C, $2A, $7C, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $2F, $7C, $2B, $3B, $2F, $2F | |
| db $2F, $2F, $3C, $2A, $7D, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $7D, $2B, $3D, $3E, $3E, $3E, $3E, $3F, $00 | |
| db $3C, $66, $66, $66, $66, $3C, $00, $00, $18, $38, $18, $18 | |
| db $18, $3C, $00, $00, $3C, $4E, $0E, $3C, $70, $7E, $00, $00 | |
| db $7C, $0E, $3C, $0E, $0E, $7C, $00, $00, $3C, $6C, $4C, $4E | |
| db $7E, $0C, $00, $00, $7C, $60, $7C, $0E, $4E, $3C, $00, $00 | |
| db $3C, $60, $7C, $66, $66, $3C, $00, $00, $7E, $06, $0C, $18 | |
| db $38, $38, $00, $00, $3C, $4E, $3C, $4E, $4E, $3C, $00, $00 | |
| db $3C, $4E, $4E, $3E, $0E, $3C, $00, $00, $3C, $4E, $4E, $7E | |
| db $4E, $4E, $00, $00, $7C, $66, $7C, $66, $66, $7C, $00, $00 | |
| db $3C, $66, $60, $60, $66, $3C, $00, $00, $7C, $4E, $4E, $4E | |
| db $4E, $7C, $00, $00, $7E, $60, $7C, $60, $60, $7E, $00, $00 | |
| db $7E, $60, $60, $7C, $60, $60, $00, $00, $3C, $66, $60, $6E | |
| db $66, $3E, $00, $00, $46, $46, $7E, $46, $46, $46, $00, $00 | |
| db $3C, $18, $18, $18, $18, $3C, $00, $00, $1E, $0C, $0C, $6C | |
| db $6C, $38, $00, $00, $66, $6C, $78, $78, $6C, $66, $00, $00 | |
| db $60, $60, $60, $60, $60, $7E, $00, $00, $46, $6E, $7E, $56 | |
| db $46, $46, $00, $00, $46, $66, $76, $5E, $4E, $46, $00, $00 | |
| db $3C, $66, $66, $66, $66, $3C, $00, $00, $7C, $66, $66, $7C | |
| db $60, $60, $00, $00, $3C, $62, $62, $6A, $64, $3A, $00, $00 | |
| db $7C, $66, $66, $7C, $68, $66, $00, $00, $3C, $60, $3C, $0E | |
| db $4E, $3C, $00, $00, $7E, $18, $18, $18, $18, $18, $00, $00 | |
| db $46, $46, $46, $46, $4E, $3C, $00, $00, $46, $46, $46, $46 | |
| db $2C, $18, $00, $00, $46, $46, $56, $7E, $6E, $46, $00, $00 | |
| db $46, $2C, $18, $38, $64, $42, $00, $00, $66, $66, $3C, $18 | |
| db $18, $18, $00, $00, $7E, $0E, $1C, $38, $70, $7E, $00, $00 | |
| db $00, $00, $00, $00, $60, $60, $00, $00, $00, $00, $3C, $3C | |
| db $00, $00, $00, $00, $00, $22, $14, $08, $14, $22, $00, $00 | |
| db $00, $36, $36, $5F, $49, $5F, $41, $7F, $41, $3E, $22, $1C | |
| db $14, $08, $08, $FF, $FF, $FF, $81, $C1, $BF, $C1, $BF, $C1 | |
| db $BF, $C1, $BF, $81, $FF, $FF, $FF, $AA, $AA, $00, $00, $00 | |
| db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FE | |
| db $FE, $FE, $FE, $FE, $FE, $FE, $FE, $FE, $FE, $FE, $FE, $FE | |
| db $FE, $FE, $FE, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F | |
| db $7F, $7F, $7F, $7F, $7F, $7F, $7F, $FF, $00, $FF, $40, $FF | |
| db $02, $FF, $00, $FF, $10, $FF, $80, $FF, $02, $FF, $00, $F0 | |
| db $10, $FF, $1F, $FF, $00, $FF, $40, $FF, $00, $FF, $02, $FF | |
| db $40, $FF, $00, $0F, $08, $FF, $F8, $FF, $00, $FF, $02, $FF | |
| db $00, $FF, $40, $FF, $02, $FF, $00, $00, $00, $00, $00, $00 | |
| db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 | |
| db $00, $00, $00, $18, $18, $38, $38, $18, $18, $18, $18, $18 | |
| db $18, $3C, $3C, $00, $00, $00, $00, $3C, $3C, $4E, $4E, $4E | |
| db $4E, $3E, $3E, $0E, $0E, $3C, $3C, $00, $00, $00, $00, $3C | |
| db $3C, $4E, $4E, $3C, $3C, $4E, $4E, $4E, $4E, $3C, $3C, $00 | |
| db $00, $38, $38, $44, $44, $BA, $BA, $A2, $A2, $BA, $BA, $44 | |
| db $44, $38, $38, $C6, $C6, $E6, $E6, $E6, $E6, $D6, $D6, $D6 | |
| db $D6, $CE, $CE, $CE, $CE, $C6, $C6, $C0, $C0, $C0, $C0, $00 | |
| db $00, $DB, $DB, $DD, $DD, $D9, $D9, $D9, $D9, $D9, $D9, $00 | |
| db $00, $30, $30, $78, $78, $33, $33, $B6, $B6, $B7, $B7, $B6 | |
| db $B6, $B3, $B3, $00, $00, $00, $00, $00, $00, $CD, $CD, $6E | |
| db $6E, $EC, $EC, $0C, $0C, $EC, $EC, $01, $01, $01, $01, $01 | |
| db $01, $8F, $8F, $D9, $D9, $D9, $D9, $D9, $D9, $CF, $CF, $80 | |
| db $80, $80, $80, $80, $80, $9E, $9E, $B3, $B3, $B3, $B3, $B3 | |
| db $B3, $9E, $9E, $FF, $00, $FF, $00, $FF, $00, $EF, $00, $FF | |
| db $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF | |
| db $00, $E7, $00, $E7, $00, $FF, $00, $FF, $00, $FF, $00, $00 | |
| db $FF, $FF, $FF, $00, $FF, $00, $FF, $FF, $00, $00, $FF, $FF | |
| db $00, $FF, $00, $00, $FF, $FF, $FF, $01, $FF, $02, $FE, $FE | |
| db $02, $04, $FC, $FC, $04, $FC, $04, $00, $FF, $FF, $FF, $80 | |
| db $FF, $40, $7F, $FF, $40, $E0, $3F, $FF, $20, $BF, $60, $FF | |
| db $00, $FF, $00, $FF, $01, $FE, $02, $FE, $02, $FC, $04, $FC | |
| db $04, $FC, $04, $FF, $00, $FF, $00, $FF, $80, $7F, $40, $FF | |
| db $40, $FF, $20, $FF, $20, $BF, $60, $FF, $FF, $FF, $FF, $FF | |
| db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $00, $00, $00, $00, $FF | |
| db $02, $FF, $01, $FF, $01, $FF, $01, $FF, $01, $FF, $01, $FF | |
| db $01, $FF, $01, $7F, $C0, $FF, $80, $FF, $80, $FF, $80, $FF | |
| db $80, $FF, $80, $FF, $80, $FF, $80, $FE, $02, $FE, $02, $FF | |
| db $03, $FC, $05, $F8, $09, $F1, $12, $E1, $26, $C3, $4C, $7F | |
| db $C0, $7F, $C0, $FF, $C0, $BF, $60, $9F, $70, $AF, $58, $27 | |
| db $DC, $33, $CE, $FF, $00, $FF, $01, $FE, $02, $FC, $04, $F8 | |
| db $09, $F0, $13, $E0, $27, $E0, $2F, $87, $98, $06, $39, $0E | |
| db $71, $1E, $E1, $3C, $C3, $3C, $C3, $78, $87, $78, $87, $35 | |
| db $CB, $32, $CD, $3A, $C5, $79, $86, $78, $87, $78, $87, $7C | |
| db $83, $7C, $83, $FF, $00, $FF, $80, $7F, $C0, $3F, $E0, $9F | |
| db $70, $4F, $B8, $67, $9C, $37, $CC, $C0, $4F, $C0, $4F, $80 | |
| db $9F, $80, $9F, $80, $9F, $80, $9F, $80, $9F, $80, $9F, $F8 | |
| db $07, $F0, $0F, $F0, $0F, $F0, $0F, $F0, $0F, $F0, $0F, $F0 | |
| db $0F, $F8, $07, $7C, $83, $7E, $81, $7E, $81, $3E, $C1, $3F | |
| db $C0, $1F, $E0, $1F, $E0, $1F, $E0, $33, $CE, $1B, $E6, $09 | |
| db $F7, $0D, $F3, $0D, $F3, $0D, $F3, $0D, $F3, $09, $F7, $C0 | |
| db $5F, $C0, $4F, $E0, $2F, $E0, $27, $F0, $11, $BF, $4F, $0C | |
| db $F4, $07, $FF, $78, $87, $7C, $83, $3C, $C3, $1E, $E1, $0F | |
| db $F0, $FF, $FF, $FF, $00, $FF, $FF, $0F, $F0, $0F, $F0, $0E | |
| db $F1, $0E, $F1, $06, $F9, $FF, $FF, $C5, $3F, $FF, $FF, $1B | |
| db $E6, $13, $EE, $37, $CC, $27, $DC, $4F, $B8, $FC, $F3, $FC | |
| db $A3, $E0, $FF, $FE, $02, $FE, $02, $BF, $43, $1C, $E5, $B8 | |
| db $49, $B1, $52, $A1, $66, $43, $CC, $FF, $00, $FF, $00, $FF | |
| db $00, $FF, $00, $FF, $00, $FF, $00, $EF, $10, $C7, $38, $FF | |
| db $00, $FB, $04, $FB, $04, $FB, $04, $FB, $04, $F1, $0E, $F1 | |
| db $0E, $F1, $0E, $83, $7C, $01, $FE, $01, $FE, $01, $FE, $83 | |
| db $7C, $FF, $00, $83, $7C, $83, $7C, $F1, $0E, $E0, $1F, $E0 | |
| db $1F, $E0, $1F, $E0, $1F, $E0, $1F, $80, $7F, $80, $7F, $F7 | |
| db $08, $EB, $14, $F7, $08, $F7, $08, $E3, $1C, $E3, $1C, $63 | |
| db $9C, $01, $FE, $00, $00, $60, $60, $70, $70, $78, $78, $78 | |
| db $78, $70, $70, $60, $60, $00, $00, $00, $00, $30, $30, $70 | |
| db $70, $30, $30, $30, $30, $30, $30, $78, $78, $00, $00, $E0 | |
| db $E0, $F0, $E0, $FB, $E0, $FC, $E0, $FC, $E1, $FC, $E1, $FC | |
| db $E1, $FC, $E1, $00, $00, $00, $00, $FF, $00, $00, $00, $00 | |
| db $FF, $00, $00, $00, $00, $00, $00, $07, $07, $0F, $07, $DF | |
| db $07, $3F, $07, $3F, $87, $3F, $87, $3F, $87, $3F, $87, $FC | |
| db $E1, $FC, $E1, $FC, $E1, $FC, $E1, $FC, $E1, $FC, $E1, $FC | |
| db $E1, $FC, $E1, $3F, $87, $3F, $87, $3F, $87, $3F, $87, $3F | |
| db $87, $3F, $87, $3F, $87, $3F, $87, $FC, $E1, $FC, $E1, $FC | |
| db $E1, $FC, $E1, $FC, $E0, $FF, $E7, $FF, $EF, $E0, $FF, $00 | |
| db $00, $00, $00, $00, $00, $00, $FF, $00, $00, $FF, $FF, $FF | |
| db $FF, $00, $FF, $3F, $87, $3F, $87, $3F, $87, $3F, $87, $3F | |
| db $07, $FF, $E7, $FF, $F7, $07, $FF, $F8, $00, $E0, $00, $C0 | |
| db $00, $80, $00, $80, $00, $00, $00, $00, $00, $00, $00, $7F | |
| db $00, $1F, $00, $0F, $00, $07, $00, $07, $00, $03, $00, $03 | |
| db $00, $03, $00, $00, $00, $80, $00, $80, $00, $C0, $00, $E0 | |
| db $00, $F8, $00, $FF, $00, $FF, $00, $03, $00, $07, $00, $07 | |
| db $00, $0F, $00, $1F, $00, $7F, $00, $FF, $00, $FF, $00, $01 | |
| db $01, $01, $01, $81, $81, $C1, $C1, $C1, $C1, $E1, $E1, $F1 | |
| db $F1, $F9, $F9, $FE, $FE, $FE, $FE, $FE, $FE, $FE, $FE, $FE | |
| db $FE, $FE, $FE, $FE, $FE, $FE, $FE, $7E, $7E, $7F, $7F, $7F | |
| db $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F | |
| db $7F, $3F, $3F, $9F, $9F, $8F, $8F, $CF, $CF, $E7, $E7, $F3 | |
| db $F3, $F7, $F7, $E0, $E0, $E0, $E0, $E0, $E0, $E0, $E0, $E0 | |
| db $E0, $C0, $C0, $C0, $C0, $80, $80, $F0, $F0, $F0, $F0, $F0 | |
| db $F0, $F0, $F0, $F0, $F0, $F0, $F0, $F0, $F0, $F0, $F0, $00 | |
| db $00, $7C, $7C, $47, $47, $41, $41, $40, $40, $40, $40, $40 | |
| db $40, $7F, $40, $00, $00, $01, $01, $01, $01, $81, $81, $C1 | |
| db $C1, $41, $41, $61, $61, $E1, $61, $00, $00, $FE, $FE, $06 | |
| db $06, $06, $06, $06, $06, $06, $06, $06, $06, $FE, $06, $00 | |
| db $00, $1B, $1B, $32, $32, $59, $59, $4C, $4C, $8C, $8C, $86 | |
| db $86, $FF, $83, $00, $00, $FF, $FF, $01, $01, $01, $01, $81 | |
| db $81, $41, $41, $41, $41, $3F, $21, $00, $00, $BE, $BE, $88 | |
| db $88, $88, $88, $88, $88, $88, $88, $80, $80, $80, $80, $00 | |
| db $00, $88, $88, $D8, $D8, $A8, $A8, $88, $88, $88, $88, $00 | |
| db $00, $00, $00, $7F, $40, $7F, $40, $7F, $40, $7F, $40, $7F | |
| db $40, $7F, $40, $7F, $40, $47, $7F, $E1, $61, $E1, $61, $E1 | |
| db $61, $E1, $61, $E1, $61, $C1, $C1, $C1, $C1, $81, $81, $FE | |
| db $06, $FE, $06, $FE, $06, $FE, $06, $FE, $06, $FE, $06, $FE | |
| db $06, $06, $FE, $FF, $83, $FF, $81, $7F, $40, $7F, $40, $7F | |
| db $40, $3F, $20, $3F, $20, $10, $1F, $1F, $11, $9F, $91, $CF | |
| db $C9, $C7, $C5, $E3, $63, $F3, $33, $F9, $19, $08, $F8, $80 | |
| db $80, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80 | |
| db $80, $80, $80, $5F, $7F, $78, $78, $60, $60, $50, $70, $50 | |
| db $70, $48, $78, $44, $7C, $7E, $7E, $01, $01, $01, $01, $01 | |
| db $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $06 | |
| db $FE, $06, $FE, $06, $FE, $06, $FE, $06, $FE, $06, $FE, $06 | |
| db $FE, $FE, $FE, $08, $0F, $44, $47, $64, $67, $72, $73, $51 | |
| db $71, $59, $79, $4C, $7C, $7E, $7E, $0C, $FC, $06, $FE, $03 | |
| db $FF, $01, $FF, $01, $FF, $00, $FF, $80, $FF, $7F, $7F, $00 | |
| db $00, $00, $00, $00, $00, $80, $80, $80, $80, $C0, $C0, $C0 | |
| db $C0, $E0, $E0, $7E, $7E, $7F, $7F, $7F, $7F, $7F, $7F, $7F | |
| db $7F, $7F, $7F, $7F, $7F, $7F, $7F, $00, $00, $03, $03, $02 | |
| db $02, $02, $02, $02, $02, $02, $02, $02, $02, $03, $02, $00 | |
| db $00, $FB, $FB, $0A, $0A, $12, $12, $22, $22, $22, $22, $42 | |
| db $42, $C3, $42, $00, $00, $FD, $FD, $0D, $0D, $0C, $0C, $0C | |
| db $0C, $0C, $0C, $0C, $0C, $FC, $0C, $00, $00, $FC, $FC, $0C | |
| db $0C, $8C, $8C, $4C, $4C, $4C, $4C, $2C, $2C, $3C, $2C, $03 | |
| db $02, $03, $02, $03, $03, $03, $03, $02, $02, $00, $00, $00 | |
| db $00, $00, $00, $83, $82, $83, $82, $03, $02, $03, $02, $03 | |
| db $02, $03, $02, $03, $02, $02, $03, $FC, $0C, $FC, $0C, $FC | |
| db $0C, $FC, $0C, $FC, $0C, $FC, $0C, $FC, $0C, $0C, $FC, $1C | |
| db $1C, $1C, $1C, $0C, $0C, $0C, $0C, $04, $04, $00, $00, $00 | |
| db $00, $00, $00, $02, $03, $02, $03, $02, $03, $02, $03, $02 | |
| db $03, $02, $03, $02, $03, $03, $03, $0C, $FC, $0C, $FC, $0C | |
| db $FC, $0C, $FC, $0C, $FC, $0C, $FC, $0C, $FC, $FC, $FC, $03 | |
| db $03, $03, $03, $03, $03, $03, $03, $03, $03, $03, $03, $03 | |
| db $03, $03, $03, $FC, $FC, $FC, $FC, $FC, $FC, $FC, $FC, $FC | |
| db $FC, $FC, $FC, $FC, $FC, $FC, $FC, $FF, $00, $FF, $00, $FF | |
| db $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $00 | |
| db $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00 | |
| db $FF, $00, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF | |
| db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $00, $00, $01, $01, $03 | |
| db $03, $07, $07, $0F, $0F, $1F, $1F, $3F, $3F, $7F, $7F, $00 | |
| db $00, $FF, $FF, $83, $83, $83, $83, $83, $83, $83, $83, $83 | |
| db $83, $FF, $83, $00, $00, $7F, $7F, $20, $20, $10, $10, $08 | |
| db $08, $04, $04, $02, $02, $01, $01, $00, $00, $F3, $F3, $32 | |
| db $32, $32, $32, $32, $32, $32, $32, $32, $32, $F3, $32, $FF | |
| db $83, $FF, $83, $FF, $83, $FF, $83, $FF, $83, $FF, $83, $FF | |
| db $83, $83, $FF, $00, $00, $00, $00, $01, $01, $03, $03, $07 | |
| db $07, $0F, $0B, $1F, $13, $23, $3F, $F3, $B2, $73, $72, $33 | |
| db $33, $13, $13, $02, $02, $00, $00, $00, $00, $00, $00, $83 | |
| db $FF, $83, $FF, $83, $FF, $83, $FF, $83, $FF, $83, $FF, $83 | |
| db $FF, $FF, $FF, $43, $7F, $23, $3F, $13, $1F, $0B, $0F, $07 | |
| db $07, $03, $03, $01, $01, $00, $00, $00, $00, $00, $00, $00 | |
| db $00, $00, $00, $00, $00, $10, $10, $30, $30, $70, $70, $00 | |
| db $00, $78, $78, $9C, $9C, $1C, $1C, $78, $78, $E0, $E0, $FC | |
| db $FC, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00 | |
| db $00, $00, $00, $00, $00, $00, $00, $1B, $1B, $1B, $1B, $09 | |
| db $09, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 | |
| db $00, $00, $00, $00, $00, $00, $00, $60, $60, $60, $60, $20 | |
| db $20, $00, $00, $1B, $1B, $1B, $1B, $09, $09, $00, $00, $00 | |
| db $00, $60, $60, $60, $60, $00, $00, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $9B, $1D, $16, $2F, $0A, $17, $0D, $2F, $33 | |
| db $01, $09, $08, $07, $2F, $0E, $15, $18, $1B, $10, $9C, $2F | |
| db $1D, $0E, $1D, $1B, $12, $1C, $2F, $15, $12, $0C, $0E, $17 | |
| db $1C, $0E, $0D, $2F, $1D, $18, $2F, $2F, $2F, $2F, $2F, $0B | |
| db $1E, $15, $15, $0E, $1D, $25, $19, $1B, $18, $18, $0F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $2F, $1C, $18, $0F, $1D, $20 | |
| db $0A, $1B, $0E, $2F, $0A, $17, $0D, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $1C, $1E, $0B, $25, $15, $12, $0C, $0E, $17, $1C | |
| db $0E, $0D, $2F, $1D, $18, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $17, $12, $17, $1D, $0E, $17, $0D, $18, $24, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $33, $01, $09, $08, $09, $2F, $0B, $1E, $15, $15, $0E, $1D | |
| db $25, $19, $1B, $18, $18, $0F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $1C, $18, $0F, $1D, $20, $0A, $1B, $0E, $24, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $33, $30, $31, $32, $31, $2F | |
| db $34, $35, $36, $37, $38, $39, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $2F, $0A, $15, $15, $2F, $1B | |
| db $12, $10, $11, $1D, $1C, $2F, $1B, $0E, $1C, $0E, $1B, $1F | |
| db $0E, $0D, $24, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $18, $1B, $12, $10, $12, $17, $0A, $15, $2F, $0C, $18 | |
| db $17, $0C, $0E, $19, $1D, $9C, $2F, $2F, $0D, $0E, $1C, $12 | |
| db $10, $17, $2F, $0A, $17, $0D, $2F, $19, $1B, $18, $10, $1B | |
| db $0A, $16, $2F, $0B, $22, $2F, $0A, $15, $0E, $21, $0E, $22 | |
| db $2F, $19, $0A, $23, $11, $12, $1D, $17, $18, $1F, $9D, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $2F, $8E, $8E, $8E, $8E, $8E | |
| db $8E, $8E, $8E, $8E, $8E, $8E, $8E, $8E, $8E, $8E, $8E, $8E | |
| db $8E, $8E, $8E, $5A, $5B, $5B, $5B, $5B, $5B, $5B, $5B, $5B | |
| db $5B, $5B, $5B, $5B, $5B, $5B, $5B, $5B, $5B, $5B, $5C, $5D | |
| db $80, $81, $82, $83, $90, $91, $92, $81, $82, $83, $90, $6C | |
| db $6D, $6E, $6F, $70, $71, $72, $5E, $5D, $84, $85, $86, $87 | |
| db $93, $94, $95, $85, $86, $87, $93, $73, $74, $75, $76, $77 | |
| db $78, $2F, $5E, $5D, $2F, $88, $89, $2F, $96, $97, $98, $88 | |
| db $89, $2F, $96, $79, $7A, $7B, $7C, $7D, $7E, $2F, $5E, $5D | |
| db $2F, $8A, $8B, $2F, $8E, $8F, $6B, $8A, $8B, $2F, $8E, $7F | |
| db $66, $67, $68, $69, $6A, $2F, $5E, $5F, $60, $60, $60, $60 | |
| db $60, $60, $60, $60, $60, $60, $60, $60, $60, $60, $60, $60 | |
| db $60, $60, $61, $8E, $3C, $3C, $3C, $3C, $3C, $3C, $3C, $3C | |
| db $3C, $3C, $3C, $3C, $3C, $3D, $3E, $3C, $3C, $3C, $8E, $8E | |
| db $8C, $8C, $62, $63, $8C, $8C, $3A, $8C, $8C, $8C, $8C, $8C | |
| db $3A, $42, $43, $3B, $8C, $8C, $8E, $8E, $3A, $8C, $64, $65 | |
| db $8C, $8C, $8C, $8C, $3B, $8C, $8C, $8C, $8C, $44, $45, $8C | |
| db $8C, $8C, $8E, $8E, $8C, $8C, $8C, $8C, $8C, $8C, $8C, $8C | |
| db $8C, $8C, $8C, $8C, $46, $47, $48, $49, $3F, $40, $8E, $8E | |
| db $8C, $8C, $8C, $8C, $3A, $8C, $8C, $8C, $8C, $53, $54, $8C | |
| db $4A, $4B, $4C, $4D, $42, $43, $8E, $8E, $8C, $8C, $8C, $8C | |
| db $8C, $8C, $8C, $8C, $54, $55, $56, $57, $4E, $4F, $50, $51 | |
| db $52, $45, $8E, $41, $41, $41, $41, $41, $41, $41, $41, $41 | |
| db $41, $41, $41, $41, $41, $41, $41, $41, $41, $41, $41, $2F | |
| db $2F, $59, $19, $15, $0A, $22, $0E, $1B, $2F, $2F, $2F, $99 | |
| db $19, $15, $0A, $22, $0E, $1B, $2F, $2F, $2F, $9A, $9A, $9A | |
| db $9A, $9A, $9A, $9A, $2F, $2F, $2F, $9A, $9A, $9A, $9A, $9A | |
| db $9A, $9A, $2F, $2F, $2F, $2F, $2F, $33, $30, $31, $32, $31 | |
| db $2F, $34, $35, $36, $37, $38, $39, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $2F, $47, $48, $48, $48, $48 | |
| db $48, $48, $48, $48, $48, $48, $48, $48, $48, $48, $48, $48 | |
| db $48, $48, $49, $4A, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C | |
| db $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $4B, $4A | |
| db $2C, $2C, $2C, $50, $51, $51, $51, $51, $51, $51, $51, $51 | |
| db $51, $52, $2C, $2C, $2C, $2C, $4B, $4A, $2C, $2C, $2C, $53 | |
| db $10, $0A, $16, $0E, $2F, $1D, $22, $19, $0E, $54, $2C, $2C | |
| db $2C, $2C, $4B, $4A, $2C, $55, $56, $6D, $58, $58, $58, $58 | |
| db $58, $A9, $58, $58, $58, $6E, $56, $56, $5A, $2C, $4B, $4A | |
| db $2C, $5B, $78, $77, $7E, $7F, $9A, $9B, $2F, $AA, $79, $77 | |
| db $7E, $7F, $9A, $9B, $5C, $2C, $4B, $4A, $2C, $2D, $4F, $4F | |
| db $4F, $4F, $4F, $4F, $4F, $AC, $4F, $4F, $4F, $4F, $4F, $4F | |
| db $2E, $2C, $4B, $4A, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C | |
| db $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $4B, $4A | |
| db $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C | |
| db $2C, $2C, $2C, $2C, $2C, $2C, $4B, $4A, $2C, $2C, $2C, $50 | |
| db $51, $51, $51, $51, $51, $51, $51, $51, $51, $51, $52, $2C | |
| db $2C, $2C, $4B, $4A, $2C, $2C, $2C, $53, $16, $1E, $1C, $12 | |
| db $0C, $2F, $1D, $22, $19, $0E, $54, $2C, $2C, $2C, $4B, $4A | |
| db $2C, $55, $56, $6D, $58, $58, $58, $58, $58, $A9, $58, $58 | |
| db $58, $58, $6E, $56, $5A, $2C, $4B, $4A, $2C, $5B, $78, $77 | |
| db $7E, $7F, $9A, $9B, $2F, $AA, $79, $77, $7E, $7F, $9A, $9B | |
| db $5C, $2C, $4B, $4A, $2C, $71, $72, $72, $72, $72, $72, $72 | |
| db $72, $AB, $72, $72, $72, $72, $72, $72, $74, $2C, $4B, $4A | |
| db $2C, $5B, $7A, $77, $7E, $7F, $9A, $9B, $2F, $AA, $2F, $9D | |
| db $9C, $9C, $2F, $2F, $5C, $2C, $4B, $4A, $2C, $2D, $4F, $4F | |
| db $4F, $4F, $4F, $4F, $4F, $AC, $4F, $4F, $4F, $4F, $4F, $4F | |
| db $2E, $2C, $4B, $4A, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C | |
| db $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $4B, $4C | |
| db $4D, $4D, $4D, $4D, $4D, $4D, $4D, $4D, $4D, $4D, $4D, $4D | |
| db $4D, $4D, $4D, $4D, $4D, $4D, $4E, $47, $48, $48, $48, $48 | |
| db $48, $48, $48, $48, $48, $48, $48, $48, $48, $48, $48, $48 | |
| db $48, $48, $49, $4A, $2F, $0A, $25, $1D, $22, $19, $0E, $2F | |
| db $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $4B, $4A | |
| db $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C | |
| db $2C, $2C, $2C, $2C, $2C, $2C, $4B, $4A, $2C, $2C, $2C, $2C | |
| db $2C, $50, $51, $51, $51, $51, $51, $52, $2C, $2C, $2C, $2C | |
| db $2C, $2C, $4B, $4A, $2C, $2C, $2C, $2C, $2C, $53, $15, $0E | |
| db $1F, $0E, $15, $54, $2C, $2C, $2C, $2C, $2C, $2C, $4B, $4A | |
| db $2C, $2C, $2C, $55, $56, $57, $58, $6C, $58, $6C, $58, $59 | |
| db $56, $5A, $2C, $2C, $2C, $2C, $4B, $4A, $2C, $2C, $2C, $5B | |
| db $90, $6F, $91, $6F, $92, $6F, $93, $6F, $94, $5C, $2C, $2C | |
| db $2C, $2C, $4B, $4A, $2C, $2C, $2C, $71, $72, $73, $72, $73 | |
| db $72, $73, $72, $73, $72, $74, $2C, $2C, $2C, $2C, $4B, $4A | |
| db $2C, $2C, $2C, $5B, $95, $6F, $96, $6F, $97, $6F, $98, $6F | |
| db $99, $5C, $2C, $2C, $2C, $2C, $4B, $4A, $2C, $2C, $2C, $2D | |
| db $4F, $6B, $4F, $6B, $4F, $6B, $4F, $6B, $4F, $2E, $2C, $2C | |
| db $2C, $2C, $4B, $4A, $2C, $2C, $2C, $50, $51, $51, $51, $51 | |
| db $51, $51, $51, $51, $51, $52, $2C, $2C, $2C, $2C, $4B, $4A | |
| db $2C, $2C, $2C, $53, $1D, $18, $19, $25, $1C, $0C, $18, $1B | |
| db $0E, $54, $2C, $2C, $2C, $2C, $4B, $4A, $55, $56, $70, $6D | |
| db $58, $58, $58, $58, $58, $58, $58, $58, $58, $6E, $56, $56 | |
| db $56, $5A, $4B, $4A, $5B, $01, $6F, $60, $60, $60, $60, $60 | |
| db $60, $2F, $2F, $60, $60, $60, $60, $60, $60, $5C, $4B, $4A | |
| db $5B, $02, $6F, $60, $60, $60, $60, $60, $60, $2F, $2F, $60 | |
| db $60, $60, $60, $60, $60, $5C, $4B, $4A, $5B, $03, $6F, $60 | |
| db $60, $60, $60, $60, $60, $2F, $2F, $60, $60, $60, $60, $60 | |
| db $60, $5C, $4B, $4A, $2D, $4F, $6B, $4F, $4F, $4F, $4F, $4F | |
| db $4F, $4F, $4F, $4F, $4F, $4F, $4F, $4F, $4F, $2E, $4B, $4C | |
| db $4D, $4D, $4D, $4D, $4D, $4D, $4D, $4D, $4D, $4D, $4D, $4D | |
| db $4D, $4D, $4D, $4D, $4D, $4D, $4E, $47, $48, $48, $48, $48 | |
| db $48, $48, $48, $48, $48, $48, $48, $48, $48, $48, $48, $48 | |
| db $48, $48, $49, $4A, $2F, $0B, $25, $1D, $22, $19, $0E, $2F | |
| db $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $4B, $4A | |
| db $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C | |
| db $2C, $2C, $2C, $2C, $2C, $2C, $4B, $4A, $2C, $2C, $50, $51 | |
| db $51, $51, $51, $51, $52, $2C, $2C, $50, $51, $51, $51, $51 | |
| db $52, $2C, $4B, $4A, $2C, $2C, $53, $15, $0E, $1F, $0E, $15 | |
| db $54, $2C, $2C, $53, $11, $12, $10, $11, $54, $2C, $4B, $4A | |
| db $55, $56, $57, $58, $6C, $58, $6C, $58, $59, $56, $5A, $75 | |
| db $58, $6C, $58, $6C, $6E, $5A, $4B, $4A, $5B, $90, $6F, $91 | |
| db $6F, $92, $6F, $93, $6F, $94, $5C, $5B, $90, $6F, $91, $6F | |
| db $92, $5C, $4B, $4A, $71, $72, $73, $72, $73, $72, $73, $72 | |
| db $73, $72, $74, $71, $72, $73, $72, $73, $72, $74, $4B, $4A | |
| db $5B, $95, $6F, $96, $6F, $97, $6F, $98, $6F, $99, $5C, $5B | |
| db $93, $6F, $94, $6F, $95, $5C, $4B, $4A, $2D, $4F, $6B, $4F | |
| db $6B, $4F, $6B, $4F, $6B, $4F, $2E, $2D, $4F, $6B, $4F, $6B | |
| db $4F, $2E, $4B, $4A, $2C, $2C, $2C, $50, $51, $51, $51, $51 | |
| db $51, $51, $51, $51, $51, $52, $2C, $2C, $2C, $2C, $4B, $4A | |
| db $2C, $2C, $2C, $53, $1D, $18, $19, $25, $1C, $0C, $18, $1B | |
| db $0E, $54, $2C, $2C, $2C, $2C, $4B, $4A, $55, $56, $70, $6D | |
| db $58, $58, $58, $58, $58, $58, $58, $58, $58, $6E, $56, $56 | |
| db $56, $5A, $4B, $4A, $5B, $01, $6F, $60, $60, $60, $60, $60 | |
| db $60, $2F, $2F, $60, $60, $60, $60, $60, $60, $5C, $4B, $4A | |
| db $5B, $02, $6F, $60, $60, $60, $60, $60, $60, $2F, $2F, $60 | |
| db $60, $60, $60, $60, $60, $5C, $4B, $4A, $5B, $03, $6F, $60 | |
| db $60, $60, $60, $60, $60, $2F, $2F, $60, $60, $60, $60, $60 | |
| db $60, $5C, $4B, $4A, $2D, $4F, $6B, $4F, $4F, $4F, $4F, $4F | |
| db $4F, $4F, $4F, $4F, $4F, $4F, $4F, $4F, $4F, $2E, $4B, $4C | |
| db $4D, $4D, $4D, $4D, $4D, $4D, $4D, $4D, $4D, $4D, $4D, $4D | |
| db $4D, $4D, $4D, $4D, $4D, $4D, $4E, $CD, $CD, $CD, $CD, $CD | |
| db $CD, $CD, $CD, $CD, $CD, $8C, $C9, $CA, $8C, $8C, $8C, $8C | |
| db $8C, $8C, $8C, $8C, $CB, $CC, $8C, $8C, $8C, $8C, $8C, $8C | |
| db $CE, $D7, $D7, $D7, $D7, $D7, $D7, $D7, $D7, $D7, $CF, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $D0, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $D1, $D2, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $D3, $D4, $7C, $7C, $7C, $7C, $7C, $7C, $2F | |
| db $2F, $D5, $D6, $7D, $7D, $7D, $7D, $2F, $2F, $2F, $2F, $D8 | |
| db $2F, $7B, $7B, $7B, $7B, $2F, $2F, $2F, $2F, $D8, $2F, $7C | |
| db $7C, $7C, $7C, $2F, $2F, $2F, $2F, $D8, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $D8, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $7C, $7C, $7C, $7C, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $7C, $7D, $7D, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $7D, $2F, $2F, $2F, $D9, $2F, $2F, $2F, $2F, $2F, $7B, $B7 | |
| db $B8, $D9, $B7, $2F, $7C, $7C, $7C, $7C, $7C, $7D, $7D, $7D | |
| db $7D, $7D, $7D, $7D, $7D, $7D, $7D, $FF, $4A, $4A, $4A, $4A | |
| db $4A, $4A, $59, $69, $69, $69, $69, $69, $69, $49, $4A, $4A | |
| db $4A, $4A, $4A, $4A, $5A, $5A, $5A, $5A, $5A, $5A, $85, $85 | |
| db $85, $85, $85, $85, $85, $85, $5A, $5A, $38, $39, $38, $5A | |
| db $6A, $6A, $6A, $6A, $6A, $6A, $6A, $6A, $6A, $6A, $6A, $6A | |
| db $6A, $6A, $6A, $6A, $6A, $6A, $6A, $6A, $07, $07, $07, $07 | |
| db $07, $07, $07, $07, $07, $07, $07, $07, $07, $07, $07, $07 | |
| db $07, $07, $07, $07, $47, $48, $48, $48, $48, $48, $48, $48 | |
| db $48, $48, $48, $48, $48, $48, $48, $48, $48, $48, $48, $49 | |
| db $4A, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C | |
| db $2C, $2C, $2C, $2C, $2C, $2C, $2C, $4B, $4A, $2C, $2C, $16 | |
| db $0A, $1B, $12, $18, $2F, $1F, $1C, $24, $15, $1E, $12, $10 | |
| db $12, $2C, $2C, $4B, $4A, $2C, $2C, $2C, $2C, $2C, $2C, $2C | |
| db $2C, $2C, $50, $51, $51, $51, $51, $52, $2C, $2C, $2C, $4B | |
| db $4A, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $53, $11 | |
| db $12, $10, $11, $54, $2C, $2C, $2C, $4B, $4A, $2C, $2C, $55 | |
| db $56, $56, $5A, $2C, $2C, $2C, $75, $58, $6C, $58, $6C, $6E | |
| db $5A, $2C, $2C, $4B, $4A, $2C, $2C, $5B, $2F, $2F, $5C, $2C | |
| db $2C, $2C, $5B, $90, $6F, $91, $6F, $92, $5C, $2C, $2C, $4B | |
| db $4A, $2C, $2C, $5B, $2F, $2F, $5C, $2C, $2C, $2C, $71, $72 | |
| db $73, $72, $73, $72, $74, $2C, $2C, $4B, $4A, $2C, $2C, $2D | |
| db $4F, $4F, $2E, $2C, $2C, $2C, $5B, $93, $6F, $94, $6F, $95 | |
| db $5C, $2C, $2C, $4B, $4A, $2C, $2C, $16, $0A, $1B, $12, $18 | |
| db $2C, $2C, $2D, $4F, $6B, $4F, $6B, $4F, $2E, $2C, $2C, $4B | |
| db $4A, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $2C, $50, $51 | |
| db $51, $51, $51, $52, $2C, $2C, $2C, $4B, $4A, $2C, $2C, $2C | |
| db $2C, $2C, $2C, $2C, $2C, $2C, $53, $11, $12, $10, $11, $54 | |
| db $2C, $2C, $2C, $4B, $4A, $2C, $2C, $55, $56, $56, $5A, $2C | |
| db $2C, $2C, $75, $58, $6C, $58, $6C, $6E, $5A, $2C, $2C, $4B | |
| db $4A, $2C, $2C, $5B, $2F, $2F, $5C, $2C, $2C, $2C, $5B, $90 | |
| db $6F, $91, $6F, $92, $5C, $2C, $2C, $4B, $4A, $2C, $2C, $5B | |
| db $2F, $2F, $5C, $2C, $2C, $2C, $71, $72, $73, $72, $73, $72 | |
| db $74, $2C, $2C, $4B, $4A, $2C, $2C, $2D, $4F, $4F, $2E, $2C | |
| db $2C, $2C, $5B, $93, $6F, $94, $6F, $95, $5C, $2C, $2C, $4B | |
| db $4A, $2C, $2C, $15, $1E, $12, $10, $12, $2C, $2C, $2D, $4F | |
| db $6B, $4F, $6B, $4F, $2E, $2C, $2C, $4B, $4C, $4D, $4D, $4D | |
| db $4D, $4D, $4D, $4D, $4D, $4D, $4D, $4D, $4D, $4D, $4D, $4D | |
| db $4D, $4D, $4D, $4E, $8E, $B2, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $B3, $30, $31, $31, $31, $31, $31, $32 | |
| db $8E, $B0, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $B5, $36, $2F, $2F, $2F, $2F, $2F, $37, $8E, $B0, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $B5, $36, $2F, $2F | |
| db $2F, $2F, $2F, $37, $8E, $B0, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $B5, $40, $42, $42, $42, $42, $42, $41 | |
| db $8E, $B0, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $B5, $36, $11, $12, $10, $11, $2F, $37, $8E, $B0, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $B5, $36, $2F, $2F | |
| db $2F, $2F, $2F, $37, $8E, $B0, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $B5, $33, $34, $34, $34, $34, $34, $35 | |
| db $8E, $B0, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $B5, $2B, $8E, $8E, $8E, $8E, $8E, $8E, $8E, $B0, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $B5, $30, $31, $31 | |
| db $31, $31, $31, $32, $8E, $B0, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $B5, $36, $15, $12, $17, $0E, $1C, $37 | |
| db $8E, $B0, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $B5, $36, $2F, $2F, $2F, $2F, $2F, $37, $8E, $B0, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $B5, $33, $34, $34 | |
| db $34, $34, $34, $35, $8E, $B0, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $B5, $2B, $38, $39, $39, $39, $39, $3A | |
| db $8E, $B0, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $B5, $2B, $3B, $2F, $2F, $2F, $2F, $3C, $8E, $B0, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $B5, $2B, $3B, $2F | |
| db $2F, $2F, $2F, $3C, $8E, $B0, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $B5, $2B, $3B, $2F, $2F, $2F, $2F, $3C | |
| db $8E, $B0, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F | |
| db $B5, $2B, $3B, $2F, $2F, $2F, $2F, $3C, $8E, $B1, $2F, $2F | |
| db $2F, $2F, $2F, $2F, $2F, $2F, $2F, $2F, $B4, $2B, $3D, $3E | |
| db $3E, $3E, $3E, $3F, $07, $07, $07, $07, $07, $07, $84, $87 | |
| db $87, $8C, $87, $87, $8C, $87, $87, $8C, $87, $87, $86, $07 | |
| db $07, $1E, $1E, $1E, $1E, $1E, $79, $2F, $2F, $8D, $2F, $2F | |
| db $8D, $2F, $2F, $8D, $2F, $2F, $88, $07, $07, $B4, $B5, $BB | |
| db $2E, $BC, $79, $2F, $2F, $8D, $2F, $2F, $8D, $2F, $2F, $8D | |
| db $2F, $2F, $88, $07, $07, $BF, $BF, $BF, $BF, $BF, $89, $8A | |
| db $8A, $8E, $8A, $8A, $8E, $8A, $8A, $8E, $8A, $8A, $8B, $07 | |
| db $06, $06, $06, $06, $06, $06, $06, $06, $06, $06, $06, $06 | |
| db $06, $06, $06, $06, $06, $06, $06, $06, $16, $16, $16, $16 | |
| db $16, $16, $16, $16, $16, $16, $16, $16, $16, $16, $16, $16 | |
| db $16, $16, $16, $16, $07, $07, $07, $07, $07, $07, $84, $87 | |
| db $87, $8C, $87, $87, $8C, $87, $87, $8C, $87, $87, $86, $07 | |
| db $07, $1E, $1E, $1E, $1E, $1E, $79, $2F, $2F, $8D, $2F, $2F | |
| db $8D, $2F, $2F, $8D, $2F, $2F, $88, $07, $07, $BD, $B2, $2E | |
| db $BE, $2E, $79, $2F, $2F, $8D, $2F, $2F, $8D, $2F, $2F, $8D | |
| db $2F, $2F, $88, $07, $07, $BF, $BF, $BF, $BF, $BF, $89, $8A | |
| db $8A, $8E, $8A, $8A, $8E, $8A, $8A, $8E, $8A, $8A, $8B, $07 | |
| db $01, $01, $01, $01, $01, $01, $02, $02, $03, $03, $01, $01 | |
| db $01, $01, $02, $02, $00, $00, $00, $00, $00, $00, $00, $00 | |
| db $07, $07, $18, $1F, $21, $3E, $47, $7F, $F2, $FE, $12, $1E | |
| db $12, $1E, $12, $1E, $7E, $7E, $FF, $83, $FF, $81, $FF, $FF | |
| db $00, $00, $00, $00, $00, $00, $00, $00, $07, $07, $18, $1F | |
| db $21, $3E, $47, $7F, $04, $FC, $02, $FE, $02, $FE, $07, $FD | |
| db $07, $FD, $1F, $FF, $FF, $FF, $FF, $FA, $00, $00, $00, $00 | |
| db $00, $00, $00, $00, $00, $00, $00, $00, $07, $07, $18, $1F | |
| db $FF, $FF, $77, $11, $FF, $11, $FF, $FF, $DD, $44, $FF, $44 | |
| db $FF, $FF, $77, $11, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF | |
| db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $00, $00, $03, $03 | |
| db $05, $04, $03, $03, $00, $00, $18, $18, $2C, $24, $1A, $1A | |
| db $08, $08, $40, $40, $07, $07, $18, $1F, $A0, $BF, $3B, $3F | |
| db $7C, $44, $7C, $44, $10, $10, $02, $02, $E0, $E0, $18, $F8 | |
| db $05, $FD, $8C, $FC, $78, $48, $6C, $74, $00, $00, $07, $07 | |
| db $18, $1F, $20, $3F, $30, $3F, $1F, $1D, $3E, $22, $3E, $22 | |
| db $80, $80, $80, $80, $80, $80, $80, $80, $00, $00, $C0, $C0 | |
| db $E0, $E0, $E0, $E0, $00, $00, $7C, $7C, $66, $66, $66, $66 | |
| db $7C, $7C, $60, $60, $60, $60, $00, $00, $00, $00, $3C, $3C | |
| db $60, $60, $3C, $3C, $0E, $0E, $4E, $4E, $3C, $3C, $00, $00 | |
| db $07, $07, $1F, $18, $3E, $20, $7F, $4F, $7F, $5F, $70, $70 | |
| db $A2, $A2, $B0, $B0, $04, $04, $07, $04, $04, $04, $04, $0D | |
| db $04, $0D, $04, $04, $04, $04, $03, $02, $5F, $7F, $39, $30 | |
| db $7B, $62, $FB, $B2, $FF, $A0, $FF, $C2, $7F, $54, $7F, $5C | |
| db $00, $00, $00, $00, $00, $00, $03, $03, $04, $04, $08, $08 | |
| db $09, $09, $04, $04, $5F, $7F, $39, $30, $7B, $62, $FB, $B2 | |
| db $FF, $A0, $FF, $C2, $7F, $54, $7F, $5C, $18, $F8, $04, $FC | |
| db $02, $FE, $02, $FE, $07, $FD, $07, $FD, $FF, $FF, $FF, $FA | |
| db $20, $3F, $40, $7F, $40, $7F, $E0, $BF, $E0, $BF, $F8, $FF | |
| db $7F, $7F, $7F, $5F, $FF, $11, $FF, $FF, $DD, $44, $FF, $44 | |
| db $FF, $FF, $77, $11, $FF, $11, $FF, $FF, $00, $00, $00, $00 | |
| db $00, $00, $00, $00, $00, $00, $00, $00, $80, $80, $C0, $40 | |
| db $00, $00, $00, $00, $00, $00, $04, $04, $08, $08, $1C, $14 | |
| db $14, $14, $08, $08, $18, $1F, $20, $3F, $40, $7F, $40, $7F | |
| db $E0, $BF, $E0, $BF, $7F, $7F, $7F, $5F, $DD, $44, $FF, $44 | |
| db $FF, $FF, $77, $11, $FF, $11, $FF, $FF, $DD, $44, $FF, $44 | |
| db $00, $00, $00, $00, $00, $00, $20, $20, $10, $10, $38, $28 | |
| db $28, $28, $90, $90, $00, $00, $46, $46, $46, $46, $7E, $7E | |
| db $46, $46, $46, $46, $46, $46, $00, $00, $00, $00, $7E, $7E | |
| db $18, $18, $18, $18, $18, $18, $18, $18, $18, $18, $00, $00 | |
| db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF | |
| db $00, $00, $00, $EE, $B4, $B4, $64, $64, $3C, $3C, $2E, $2E | |
| db $27, $27, $70, $70, $FC, $9C, $F7, $9F, $00, $00, $00, $00 | |
| db $00, $00, $01, $01, $01, $01, $02, $02, $02, $02, $02, $02 | |
| db $3F, $2E, $7F, $63, $FF, $98, $F7, $1F, $F7, $1C, $F7, $D7 | |
| db $34, $3F, $AC, $BF, $03, $03, $01, $01, $01, $01, $00, $00 | |
| db $00, $00, $06, $06, $05, $05, $07, $07, $FF, $AE, $FF, $23 | |
| db $FF, $18, $F7, $9F, $F7, $9C, $77, $57, $34, $3F, $6C, $7F | |
| db $00, $00, $00, $00, $00, $00, $01, $01, $01, $01, $02, $02 | |
| db $02, $02, $02, $02, $3F, $2F, $7F, $7C, $F7, $9C, $F3, $1F | |
| db $F0, $1F, $F0, $DF, $30, $3F, $A0, $BF, $FF, $F4, $FF, $3E | |
| db $EF, $38, $CF, $F8, $0F, $FB, $0E, $FA, $0C, $FC, $04, $FC | |
| db $E0, $20, $E0, $20, $E0, $20, $C0, $40, $80, $80, $00, $00 | |
| db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 | |
| db $01, $01, $01, $01, $02, $02, $02, $02, $3F, $2F, $3F, $3C | |
| db $77, $5C, $F3, $9F, $F0, $1F, $F0, $1F, $F0, $FF, $20, $3F | |
| db $FF, $F4, $FF, $3E, $EF, $38, $CF, $F9, $0E, $FA, $0E, $FA | |
| db $0C, $FC, $04, $FC, $C0, $40, $C0, $40, $C0, $40, $80, $80 | |
| db $00, $00, $00, $00, $00, $00, $00, $00, $F7, $1C, $F7, $34 | |
| db $F7, $BF, $6C, $7F, $10, $1F, $50, $5F, $32, $3F, $F1, $FF | |
| db $00, $00, $46, $46, $46, $46, $56, $56, $7E, $7E, $6E, $6E | |
| db $46, $46, $00, $00, $00, $00, $3C, $3C, $18, $18, $18, $18 | |
| db $18, $18, $18, $18, $3C, $3C, $00, $00, $00, $00, $00, $00 | |
| db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 | |
| db $02, $02, $01, $01, $00, $00, $00, $00, $00, $00, $00, $00 | |
| db $00, $00, $00, $00, $40, $7F, $C0, $FF, $20, $3F, $22, $3F | |
| db $11, $1F, $72, $7E, $BF, $BF, $FF, $FF, $07, $07, $06, $07 | |
| db $06, $07, $06, $07, $07, $07, $00, $00, $00, $00, $00, $00 | |
| db $C0, $FF, $00, $FF, $00, $FF, $02, $FF, $FF, $FF, $00, $00 | |
| db $00, $00, $00, $00, $02, $02, $01, $01, $00, $00, $00, $00 | |
| db $00, $00, $00, $00, $00, $00, $00, $00, $40, $7F, $C0, $FF | |
| db $20, $3F, $20, $3F, $11, $1F, $72, $7E, $FF, $FF, $FF, $FF | |
| db $02, $FE, $02, $FE, $04, $FC, $04, $FC, $88, $F8, $4E, $7E | |
| db $FF, $FF, $FF, $FF, $00, $00, $00, $00, $80, $80, $40, $40 | |
| db $00, $00, $00, $00, $00, $00, $07, $07, $00, $00, $00, $00 | |
| db $FF, $00, $FD, $02, $CD, $32, $09, $F6, $08, $F7, $00, $FF | |
| db $00, $00, $00, $00, $FF, $00, $FF, $00, $FF, $00, $FC, $03 | |
| db $CC, $33, $08, $F7, $7C, $44, $3F, $3F, $10, $1F, $10, $1F | |
| db $12, $1F, $19, $1F, $3F, $3F, $3E, $3E, $CE, $F2, $8E, $DA | |
| db $09, $F9, $09, $F9, $4E, $FE, $98, $F8, $FC, $FC, $7C, $7C | |
| db $07, $07, $1F, $18, $3E, $20, $7F, $4F, $7F, $5F, $70, $70 | |
| db $A2, $A2, $B0, $B0, $00, $00, $46, $46, $66, $66, $76, $76 | |
| db $5E, $5E, $4E, $4E, $46, $46, $00, $00, $00, $00, $18, $18 | |
| db $18, $18, $18, $18, $18, $18, $00, $00, $18, $18, $00, $00 | |
| db $12, $1E, $12, $1E, $12, $1E, $12, $1E, $7E, $7E, $BF, $83 | |
| db $FF, $81, $FF, $FF, $00, $00, $E0, $E0, $18, $F8, $04, $FC | |
| db $0C, $FC, $F8, $C8, $2C, $34, $2E, $32, $00, $00, $46, $46 | |
| db $46, $46, $46, $46, $46, $46, $2C, $2C, $18, $18, $00, $00 | |
| db $00, $00, $36, $36, $5F, $49, $5F, $41, $7F, $41, $3E, $22 | |
| db $1C, $14, $08, $08, $FE, $02, $FD, $05, $FD, $05, $FF, $1F | |
| db $FF, $FC, $FF, $FE, $EF, $38, $EF, $39, $00, $04, $00, $04 | |
| db $00, $04, $01, $05, $01, $05, $03, $07, $06, $06, $0C, $0C | |
| db $CA, $C0, $C8, $C0, $CA, $C0, $88, $80, $88, $87, $08, $00 | |
| db $0A, $00, $08, $00, $6F, $13, $2F, $13, $6F, $13, $2F, $11 | |
| db $2D, $D1, $2C, $10, $6C, $10, $2C, $10, $A0, $20, $A0, $20 | |
| db $A0, $20, $A0, $A0, $A0, $A0, $E0, $E0, $60, $60, $30, $30 | |
| db $08, $A8, $08, $18, $08, $A8, $08, $48, $08, $A8, $08, $18 | |
| db $08, $A8, $08, $48, $00, $FE, $00, $FF, $7F, $FF, $7F, $C1 | |
| db $7F, $C1, $7F, $EB, $7F, $C1, $01, $FF, $00, $00, $00, $00 | |
| db $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00 | |
| db $10, $10, $0B, $0B, $07, $04, $07, $04, $03, $02, $01, $01 | |
| db $00, $00, $00, $00, $B4, $B4, $E4, $E4, $BC, $BC, $EE, $6E | |
| db $E7, $27, $F0, $10, $FC, $9C, $77, $5F, $00, $00, $00, $00 | |
| db $07, $07, $1F, $18, $3F, $20, $7F, $40, $7F, $40, $7F, $40 | |
| db $00, $00, $00, $00, $00, $00, $80, $80, $C0, $40, $C0, $40 | |
| db $C0, $40, $80, $80, $02, $03, $05, $04, $07, $04, $04, $07 | |
| db $04, $07, $04, $06, $04, $05, $04, $07, $CE, $FA, $0C, $FC | |
| db $08, $F8, $08, $F8, $08, $F8, $08, $F8, $08, $F8, $88, $F8 | |
| db $00, $3C, $00, $7E, $10, $67, $24, $C3, $24, $C3, $24, $C3 | |
| db $24, $C3, $34, $C3, $00, $3C, $00, $66, $00, $E7, $2C, $C3 | |
| db $3C, $C3, $3C, $C3, $3C, $42, $18, $66, $00, $00, $00, $00 | |
| db $00, $00, $20, $20, $90, $90, $B8, $A8, $A8, $A8, $10, $10 | |
| db $0A, $10, $06, $08, $02, $04, $00, $04, $00, $04, $00, $04 | |
| db $00, $04, $00, $04, $17, $50, $28, $60, $2A, $60, $28, $60 | |
| db $2A, $60, $28, $60, $28, $67, $68, $60, $DE, $2B, $2E, $17 | |
| db $6E, $17, $2E, $17, $6E, $17, $2E, $17, $2E, $D7, $2E, $17 | |
| db $98, $48, $B0, $50, $A0, $60, $A0, $20, $A0, $20, $A0, $20 | |
| db $A0, $20, $A0, $20, $08, $A8, $08, $18, $08, $A8, $08, $48 | |
| db $08, $B8, $08, $3F, $08, $BF, $09, $7F, $00, $7F, $00, $FF | |
| db $7E, $FF, $7E, $C1, $7E, $C1, $7E, $EB, $7E, $C1, $00, $FF | |
| db $00, $00, $00, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00 | |
| db $FF, $00, $FF, $00, $00, $00, $38, $38, $34, $24, $3C, $24 | |
| db $3F, $27, $3C, $27, $3C, $27, $3F, $2F, $37, $3C, $17, $14 | |
| db $17, $1F, $1C, $1F, $F0, $FF, $00, $FF, $02, $FF, $FF, $FF | |
| db $BF, $A0, $BF, $A0, $BF, $B8, $7F, $7F, $2F, $2F, $7F, $7F | |
| db $F7, $9C, $F7, $9C, $FD, $05, $FD, $05, $FD, $1D, $FF, $FF | |
| db $F7, $F4, $FF, $FE, $EF, $38, $EF, $38, $01, $01, $01, $01 | |
| db $01, $01, $02, $02, $02, $02, $02, $02, $01, $01, $00, $00 | |
| db $02, $02, $02, $02, $01, $01, $00, $00, $00, $00, $00, $00 | |
| db $00, $00, $00, $00, $34, $C3, $3C, $43, $3C, $43, $18, $66 | |
| db $18, $66, $08, $76, $08, $36, $08, $34, $18, $26, $18, $24 | |
| db $18, $24, $08, $34, $00, $18, $00, $08, $00, $08, $00, $08 | |
| db $00, $00, $0F, $0F, $1F, $10, $3C, $20, $70, $40, $73, $43 | |
| db $67, $4C, $3F, $28, $00, $00, $80, $80, $DC, $5C, $3E, $22 | |
| db $32, $E2, $B1, $C1, $C3, $4B, $27, $7C, $00, $00, $00, $00 | |
| db $00, $00, $00, $00, $E0, $E0, $D0, $10, $D0, $D0, $E0, $20 | |
| db $5C, $50, $7C, $50, $39, $30, $7C, $4C, $EE, $82, $C0, $84 | |
| db $60, $43, $31, $26, $1F, $3C, $BB, $62, $F1, $41, $61, $41 | |
| db $C3, $03, $F7, $04, $EE, $08, $9C, $60, $90, $10, $08, $08 | |
| db $18, $18, $3C, $64, $F2, $C2, $E3, $60, $39, $20, $F2, $00 | |
| db $00, $FF, $00, $FF, $FF, $FF, $FF, $00, $FF, $00, $FF, $00 | |
| db $00, $FF, $00, $FF, $FF, $FF, $FF, $00, $FF, $FF, $00, $FF | |
| db $00, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $38, $38, $00, $00 | |
| db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 | |
| db $00, $00, $00, $00, $00, $00, $00, $00, $0E, $0E, $11, $11 | |
| db $11, $11, $12, $12, $F3, $1F, $F0, $3F, $F0, $BF, $60, $7F | |
| db $10, $1F, $50, $5F, $30, $3F, $F1, $FF, $CF, $FB, $0C, $FC | |
| db $08, $F8, $08, $F8, $08, $F8, $08, $F8, $08, $F8, $88, $F8 | |
| db $4E, $7A, $C9, $D9, $09, $F9, $0E, $FE, $48, $F8, $98, $F8 | |
| db $FC, $FC, $7C, $7C, $A0, $BF, $40, $7F, $E0, $FF, $20, $3F | |
| db $11, $1F, $72, $7E, $FF, $FF, $FF, $FF, $00, $3C, $00, $1C | |
| db $00, $1C, $00, $18, $00, $08, $00, $00, $00, $00, $00, $00 | |
| db $00, $FF, $00, $AB, $00, $55, $00, $FF, $00, $00, $00, $00 | |
| db $00, $00, $00, $00, $00, $15, $00, $18, $00, $15, $00, $12 | |
| db $00, $15, $00, $18, $00, $15, $00, $12, $40, $40, $40, $C0 | |
| db $40, $40, $40, $40, $40, $40, $40, $C0, $40, $40, $40, $40 | |
| db $0E, $32, $0E, $32, $0E, $32, $0E, $32, $0F, $33, $8F, $B3 | |
| db $CE, $F3, $EE, $73, $00, $00, $00, $00, $00, $00, $00, $00 | |
| db $00, $00, $00, $00, $80, $80, $C0, $40, $00, $00, $00, $00 | |
| db $80, $80, $47, $47, $1F, $18, $3F, $20, $7F, $40, $7F, $40 | |
| db $7F, $40, $BF, $A0, $BF, $A0, $BF, $B8, $7F, $7F, $3F, $3F | |
| db $77, $7C, $F7, $9C, $F2, $E6, $F2, $E6, $F2, $E6, $F2, $E6 | |
| db $F2, $E6, $F2, $E6, $F2, $E6, $F2, $E6, $00, $00, $01, $01 | |
| db $01, $01, $01, $01, $02, $02, $02, $02, $02, $02, $01, $01 | |
| db $F3, $9F, $F0, $1F, $F0, $3F, $E0, $BF, $70, $7F, $10, $1F | |
| db $50, $5F, $31, $3F, $3E, $22, $1F, $1F, $10, $1F, $10, $1F | |
| db $12, $1F, $19, $1F, $3F, $3F, $3E, $3E, $12, $1E, $12, $1E | |
| db $12, $1E, $12, $1E, $7E, $7E, $FF, $83, $FF, $81, $FF, $FF | |
| db $01, $01, $01, $01, $01, $01, $02, $02, $02, $02, $02, $02 | |
| db $01, $01, $00, $00, $60, $E0, $80, $80, $80, $80, $80, $80 | |
| db $80, $80, $80, $80, $80, $80, $80, $80, $07, $04, $07, $04 | |
| db $07, $04, $07, $04, $07, $04, $07, $04, $07, $04, $07, $04 | |
| db $0B, $09, $0B, $0A, $0F, $0A, $17, $12, $17, $1C, $14, $17 | |
| db $17, $14, $2F, $24, $00, $00, $70, $70, $8F, $8F, $98, $9F | |
| db $E0, $FF, $F0, $9F, $78, $57, $7F, $4C, $3B, $2F, $D0, $DF | |
| db $F0, $FF, $C0, $FF, $C0, $FF, $FF, $FF, $00, $00, $00, $00 | |
| db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $F8, $F8, $F0, $F2, $E1 | |
| db $F5, $E3, $F2, $E6, $FF, $FF, $FF, $81, $C3, $81, $DF, $85 | |
| db $DF, $85, $FF, $BD, $FF, $81, $FF, $FF, $FF, $FF, $FF, $FF | |
| db $FF, $FF, $FF, $1F, $1F, $0F, $4F, $87, $AF, $C7, $4F, $67 | |
| db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $00, $00, $00, $00, $FF | |
| db $FF, $FF, $00, $00, $4F, $67, $4F, $67, $4F, $67, $4F, $67 | |
| db $4F, $67, $4F, $67, $4F, $67, $4F, $67, $F2, $E6, $F5, $E3 | |
| db $F2, $E1, $F8, $F0, $FF, $F8, $FF, $FF, $FF, $FF, $FF, $FF | |
| db $00, $00, $FF, $FF, $00, $FF, $00, $00, $FF, $00, $FF, $FF | |
| db $FF, $FF, $FF, $FF, $4F, $67, $AF, $C7, $4F, $87, $1F, $0F | |
| db $FF, $1F, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF | |
| db $FF, $FF, $FF, $00, $00, $00, $00, $EF, $E7, $CF, $24, $0C | |
| db $24, $0C, $24, $0C, $24, $0C, $24, $0C, $24, $0C, $24, $0C | |
| db $24, $0C, $24, $0C, $24, $0C, $E7, $CF, $00, $EF, $00, $00 | |
| db $FF, $00, $FF, $FF, $FF, $FF, $FF, $FF, $07, $07, $18, $1F | |
| db $21, $3E, $47, $7F, $5F, $7F, $39, $30, $7B, $62, $FB, $B2 | |
| db $E0, $E0, $18, $F8, $84, $7C, $E2, $FE, $FA, $FE, $9C, $0C | |
| db $DE, $46, $DF, $4D, $FF, $A0, $FF, $C2, $7F, $54, $7F, $5C | |
| db $3F, $2E, $3F, $23, $1F, $18, $07, $07, $FF, $05, $FF, $43 | |
| db $FE, $2A, $FE, $3A, $FC, $74, $FC, $C4, $F8, $18, $E0, $E0 | |
| db $07, $07, $1F, $18, $3E, $20, $7F, $4F, $7F, $5F, $70, $70 | |
| db $A2, $A2, $B0, $B0, $E0, $E0, $F8, $18, $7C, $04, $FE, $F2 | |
| db $FE, $FA, $0E, $0E, $45, $45, $0D, $0D, $B4, $B4, $64, $64 | |
| db $3C, $3C, $2E, $2E, $27, $27, $10, $10, $0C, $0C, $03, $03 | |
| db $2D, $2D, $26, $26, $3C, $3C, $74, $74, $E4, $E4, $08, $08 | |
| db $30, $30, $C0, $C0, $2F, $24, $2F, $24, $2F, $24, $2F, $24 | |
| db $67, $7C, $BC, $A7, $FF, $E4, $1B, $1B, $00, $00, $00, $00 | |
| db $01, $01, $01, $01, $03, $03, $03, $03, $03, $02, $07, $04 | |
| db $04, $07, $07, $04, $07, $04, $04, $04, $06, $06, $05, $05 | |
| db $05, $05, $06, $06, $07, $04, $07, $04, $04, $07, $04, $04 | |
| db $04, $04, $07, $07, $07, $07, $06, $06, $06, $06, $06, $06 | |
| db $04, $04, $07, $07, $05, $05, $03, $03, $05, $05, $0E, $0E | |
| db $0F, $1F, $01, $10, $01, $10, $01, $10, $01, $08, $01, $07 | |
| db $04, $09, $00, $0F, $08, $01, $F8, $F1, $4E, $C1, $02, $C7 | |
| db $8C, $BD, $84, $AD, $62, $CF, $7E, $FE, $EC, $90, $EF, $9F | |
| db $FA, $F7, $DA, $E7, $BD, $BD, $B5, $AD, $D2, $EF, $7F, $7F | |
| db $F8, $F8, $18, $E8, $38, $88, $B8, $08, $B0, $10, $E0, $E0 | |
| db $D0, $30, $F0, $F0, $18, $18, $30, $30, $60, $60, $C0, $C0 | |
| db $C0, $C0, $FF, $FF, $83, $83, $60, $62, $0A, $00, $08, $00 | |
| db $08, $07, $08, $00, $08, $01, $F8, $F1, $F8, $F1, $08, $01 | |
| db $6C, $10, $2C, $10, $2C, $D1, $2C, $11, $AC, $90, $EF, $9F | |
| db $EF, $9F, $EC, $90, $18, $18, $0C, $0C, $06, $C6, $03, $C3 | |
| db $03, $03, $FF, $FF, $C1, $C1, $06, $46, $00, $04, $00, $0C | |
| db $02, $10, $02, $10, $02, $10, $02, $10, $02, $10, $02, $10 | |
| db $0C, $4C, $0C, $4C, $09, $49, $0B, $4B, $0A, $4A, $10, $50 | |
| db $12, $52, $10, $50, $7E, $33, $7E, $33, $BE, $93, $FE, $D3 | |
| db $7E, $53, $3E, $0B, $7E, $4B, $3E, $0B, $A0, $20, $90, $30 | |
| db $98, $48, $98, $48, $98, $48, $98, $48, $98, $48, $98, $48 | |
| db $00, $00, $00, $00, $00, $00, $00, $00, $01, $01, $01, $01 | |
| db $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $00, $01 | |
| db $02, $02, $02, $02, $02, $02, $02, $03, $02, $03, $02, $02 | |
| db $02, $02, $02, $03, $02, $02, $06, $06, $0E, $0A, $0E, $0A | |
| db $0B, $0A, $0B, $0A, $0F, $0A, $0A, $0A, $06, $06, $0A, $0A | |
| db $1A, $12, $1F, $1F, $00, $00, $00, $00, $1F, $1F, $3F, $20 | |
| db $7F, $47, $7C, $4C, $7C, $4C, $7C, $4C, $00, $00, $00, $00 | |
| db $E0, $E0, $F0, $30, $F8, $18, $F8, $98, $F8, $98, $F8, $98 | |
| db $7F, $4F, $7F, $40, $7F, $4F, $7C, $4C, $7C, $4C, $7C, $7C | |
| db $00, $00, $00, $00, $F8, $98, $F8, $18, $F8, $98, $F8, $98 | |
| db $F8, $98, $F8, $F8, $00, $00, $00, $00, $00, $00, $7C, $7C | |
| db $4E, $4E, $4E, $4E, $4E, $4E, $4E, $4E, $7C, $7C, $00, $00 | |
| db $00, $00, $7E, $7E, $60, $60, $7C, $7C, $60, $60, $60, $60 | |
| db $7E, $7E, $00, $00, $00, $00, $46, $46, $46, $46, $46, $46 | |
| db $46, $46, $4E, $4E, $3C, $3C, $00, $00, $00, $00, $3C, $3C | |
| db $66, $66, $60, $60, $60, $60, $66, $66, $3C, $3C, $00, $00 | |
| db $00, $00, $46, $46, $6E, $6E, $7E, $7E, $56, $56, $46, $46 | |
| db $46, $46, $00, $00, $00, $00, $3C, $3C, $4E, $4E, $4E, $4E | |
| db $7E, $7E, $4E, $4E, $4E, $4E, $00, $00, $FF, $00, $00, $00 | |
| db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 | |
| db $00, $00, $00, $00, $00, $00, $00, $00, $01, $01, $FF, $01 | |
| db $01, $FF, $FF, $FF, $00, $00, $00, $00, $00, $00, $00, $00 | |
| db $F0, $F0, $F0, $B0, $F0, $B0, $F0, $F0, $00, $00, $00, $00 | |
| db $07, $07, $18, $1F, $20, $3F, $30, $3F, $18, $17, $3F, $2C | |
| db $7B, $4F, $70, $5F, $90, $9F, $90, $9F, $70, $7F, $11, $1F | |
| db $3E, $3E, $3E, $3E, $00, $00, $7C, $7C, $66, $66, $66, $66 | |
| db $7C, $7C, $68, $68, $66, $66, $00, $00, $00, $00, $3C, $3C | |
| db $66, $66, $66, $66, $66, $66, $66, $66, $3C, $3C, $00, $00 | |
| db $00, $00, $60, $60, $60, $60, $60, $60, $60, $60, $60, $60 | |
| db $7E, $7E, $00, $00, $00, $00, $3C, $3C, $66, $66, $60, $60 | |
| db $6E, $6E, $66, $66, $3E, $3E, $00, $00, $00, $EE, $00, $00 | |
| db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF | |
| db $00, $01, $00, $02, $00, $02, $00, $04, $00, $08, $00, $08 | |
| db $00, $10, $00, $10, $80, $80, $C0, $40, $C0, $40, $E0, $20 | |
| db $30, $50, $30, $50, $38, $48, $18, $28, $00, $00, $00, $00 | |
| db $00, $00, $00, $00, $00, $03, $00, $03, $00, $02, $00, $02 | |
| db $00, $00, $00, $00, $00, $00, $00, $00, $08, $F8, $08, $18 | |
| db $08, $A8, $08, $48, $00, $80, $00, $80, $00, $80, $00, $80 | |
| db $00, $00, $00, $00, $00, $00, $00, $00, $00, $20, $00, $20 | |
| db $00, $20, $1F, $20, $00, $40, $00, $40, $00, $40, $00, $40 | |
| db $1C, $24, $0C, $34, $0C, $34, $04, $FC, $0E, $32, $0E, $32 | |
| db $0E, $32, $0E, $32, $00, $00, $00, $00, $00, $00, $00, $00 | |
| db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 | |
| db $00, $00, $00, $00, $00, $1F, $00, $18, $00, $15, $00, $12 | |
| db $00, $00, $00, $00, $00, $00, $00, $00, $40, $C0, $40, $C0 | |
| db $40, $40, $40, $40, $00, $02, $00, $03, $00, $02, $00, $02 | |
| db $00, $02, $00, $03, $00, $02, $00, $02, $08, $AF, $08, $1A | |
| db $08, $AD, $08, $4F, $08, $A8, $08, $18, $08, $A8, $08, $48 | |
| db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 | |
| db $00, $01, $00, $02, $00, $40, $15, $40, $15, $40, $15, $40 | |
| db $15, $C0, $15, $C1, $17, $43, $16, $46, $24, $0C, $34, $0C | |
| db $34, $04, $FC, $0E, $32, $0E, $32, $0E, $32, $0E, $32, $00 | |
| db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 | |
| db $00, $00, $00, $00, $00, $00, $00, $00, $00, $2A, $20, $01 | |
| db $00, $1D, $01, $09, $00, $07, $01, $0B, $00, $03, $20, $04 | |
| db $00, $20, $20, $06, $00, $0A, $80, $17, $00, $06, $01, $06 | |
| db $00, $04, $01, $05, $00, $1E, $80, $0B, $00, $06, $80, $1C | |
| db $00, $0A, $10, $08, $11, $04, $01, $02, $00, $04, $01, $06 | |
| db $00, $00, $10, $06, $00, $04, $10, $05, $00, $1A, $80, $24 | |
| db $00, $15, $01, $07, $00, $20, $10, $04, $00, $05, $10, $03 | |
| db $00, $0D, $10, $06, $00, $03, $10, $05, $00, $25, $80, $15 | |
| db $00, $1B, $10, $04, $00, $13, $80, $03, $00, $1C, $80, $19 | |
| db $00, $1A, $01, $06, $00, $0A, $20, $01, $00, $09, $20, $02 | |
| db $00, $14, $10, $03, $00, $0E, $80, $16, $00, $0A, $10, $0A | |
| db $11, $06, $10, $16, $00, $13, $80, $25, $00, $1C, $01, $06 | |
| db $00, $03, $20, $02, $00, $0E, $20, $03, $00, $04, $20, $02 | |
| db $00, $03, $20, $05, $00, $0D, $80, $21, $00, $13, $01, $07 | |
| db $00, $05, $01, $06, $00, $04, $01, $05, $00, $06, $20, $03 | |
| db $00, $05, $20, $02, $00, $1C, $20, $03, $00, $0E, $80, $12 | |
| db $00, $0C, $10, $04, $00, $02, $01, $08, $00, $10, $01, $08 | |
| db $00, $1E, $80, $19, $00, $10, $10, $03, $00, $04, $10, $05 | |
| db $00, $24, $80, $1C, $00, $05, $01, $05, $00, $11, $20, $03 | |
| db $00, $12, $80, $20, $00, $0A, $10, $01, $11, $06, $01, $00 | |
| db $00, $04, $10, $04, $00, $04, $10, $03, $00, $02, $10, $19 | |
| db $00, $04, $10, $07, $00, $0A, $00, $00, $00, $00, $00, $00 | |
| db $00, $4D, $20, $08, $21, $06, $20, $0B, $00, $07, $20, $06 | |
| db $00, $64, $10, $00, $11, $06, $10, $05, $00, $2F, $80, $16 | |
| db $00, $17, $20, $05, $00, $06, $20, $06, $00, $10, $80, $18 | |
| db $00, $34, $01, $05, $00, $01, $10, $0E, $11, $06, $10, $20 | |
| db $00, $0A, $80, $0A, $00, $2B, $20, $06, $00, $06, $20, $05 | |
| db $00, $05, $20, $06, $00, $0A, $80, $0C, $00, $0A, $01, $07 | |
| db $00, $02, $10, $0B, $00, $05, $10, $04, $00, $0D, $80, $1C | |
| db $00, $75, $01, $06, $00, $0E, $80, $1F, $00, $1A, $01, $06 | |
| db $00, $00, $10, $07, $00, $05, $10, $06, $00, $04, $10, $08 | |
| db $00, $03, $10, $08, $00, $0C, $80, $0F, $00, $0A, $01, $07 | |
| db $00, $00, $10, $3D, $00, $05, $80, $1F, $00, $00, $00, $00 | |
| db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 | |
| db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 | |
| db $00, $00, $00, $00, $10, $18, $00, $04, $08, $00, $04, $08 | |
| db $08, $00, $04, $14, $10, $08, $10, $10, $14, $18, $14, $00 | |
| db $0C, $04, $18, $00, $14, $14, $08, $04, $04, $0C, $00, $18 | |
| db $04, $00, $08, $0C, $0C, $18, $00, $0C, $08, $00, $18, $10 | |
| db $14, $14, $18, $08, $AA, $65, $C6, $65, $FC, $66, $28, $66 | |
| db $34, $67, $AF, $66, $F1, $65, $54, $66, $B2, $65, $CE, $65 | |
| db $14, $67, $CE, $65, $CE, $65, $C3, $66, $F7, $65, $60, $66 | |
| db $D4, $67, $DC, $67, $9D, $67, $A5, $67, $E4, $67, $E4, $67 | |
| db $E4, $67, $AD, $67, $3F, $6F, $4A, $6F, $55, $6F, $60, $6F | |
| db $6B, $6F, $76, $6F, $81, $6F, $8C, $6F, $97, $6F, $A2, $6F | |
| db $AD, $6F, $B8, $6F, $C3, $6F, $CE, $6F, $D9, $6F, $E4, $6F | |
| db $EF, $6F, $C9 | |
| l_64d3: | |
| db $F5, $C5, $D5, $E5, $FA, $7F, $DF, $FE, $01 | |
| db $28, $46, $FE, $02, $28, $7B, $FA, $7E, $DF, $A7, $20, $7B | |
| db $F0, $E4, $A7, $28, $0D, $AF, $EA, $E0, $DF, $EA, $E8, $DF | |
| db $EA, $F0, $DF, $EA, $F8, $DF, $CD, $D2, $64, $CD, $DD, $69 | |
| db $CD, $FD, $69, $CD, $3C, $68, $CD, $21, $6A, $CD, $44, $6C | |
| db $CD, $65, $6A, $AF, $EA, $E0, $DF, $EA, $E8, $DF, $EA, $F0 | |
| db $DF, $EA, $F8, $DF, $EA, $7F, $DF, $E1, $D1, $C1, $F1, $C9 | |
| db $CD, $C7, $69, $AF, $EA, $E1, $DF, $EA, $F1, $DF, $EA, $F9 | |
| db $DF, $21, $BF, $DF, $CB, $BE, $21, $9F, $DF, $CB, $BE, $21 | |
| db $AF, $DF, $CB, $BE, $21, $CF, $DF, $CB, $BE, $21, $E9, $6E | |
| db $CD, $98, $69, $3E, $30, $EA, $7E, $DF, $21, $7B, $65, $CD | |
| db $5D, $69, $18, $B7, $21, $7F, $65, $18, $F6, $AF, $EA, $7E | |
| db $DF, $18, $85, $21, $7E, $DF, $35, $7E, $FE, $28, $28, $EC | |
| db $FE, $20, $28, $E0, $FE, $18, $28, $E4, $FE, $10, $20, $97 | |
| db $34, $18, $94, $B2, $E3, $83, $C7, $B2, $E3, $C1, $C7, $FA | |
| db $F1, $DF, $FE, $01, $C9, $FA, $E1, $DF, $FE, $05, $C9, $FA | |
| db $E1, $DF, $FE, $07, $C9, $FA, $E1, $DF, $FE, $08, $C9, $00 | |
| db $B5, $D0, $40, $C7, $00, $B5, $20, $40, $C7, $00, $B6, $A1 | |
| db $80, $C7, $3E, $05, $21, $9B, $65, $C3, $36, $69, $CD, $8B | |
| db $69, $A7, $C0, $21, $E4, $DF, $34, $7E, $FE, $02, $28, $13 | |
| db $21, $A0, $65, $C3, $56, $69, $3E, $03, $21, $A5, $65, $C3 | |
| db $36, $69, $CD, $8B, $69, $A7, $C0, $AF, $EA, $E1, $DF, $E0 | |
| db $10, $3E, $08, $E0, $12, $3E, $80, $E0, $14, $21, $9F, $DF | |
| db $CB, $BE, $C9, $00, $80, $E1, $C1, $87, $00, $80, $E1, $AC | |
| db $87, $21, $E7, $65, $C3, $36, $69, $21, $E4, $DF, $34, $7E | |
| db $FE, $04, $28, $17, $FE, $0B, $28, $19, $FE, $0F, $28, $0F | |
| db $FE, $18, $CA, $0E, $66, $C9, $3E, $01, $21, $F0, $DF, $77 | |
| db $C3, $D3, $65, $21, $EC, $65, $C3, $56, $69, $21, $E7, $65 | |
| db $C3, $56, $69, $48, $BC, $42, $66, $87, $CD, $83, $65, $C8 | |
| db $CD, $95, $65, $C8, $CD, $8F, $65, $C8, $CD, $89, $65, $C8 | |
| db $3E, $02, $21, $23, $66, $C3, $36, $69, $00, $B0, $F1, $B6 | |
| db $C7, $00, $B0, $F1, $C4, $C7, $00, $B0, $F1, $CE, $C7, $00 | |
| db $B0, $F1, $DB, $C7, $CD, $8F, $65, $C8, $3E, $07, $21, $40 | |
| db $66, $C3, $36, $69, $CD, $8B, $69, $A7, $C0, $21, $E4, $DF | |
| db $34, $7E, $FE, $01, $28, $12, $FE, $02, $28, $13, $FE, $03 | |
| db $28, $14, $FE, $04, $28, $15, $FE, $05, $CA, $D3, $65, $C9 | |
| db $21, $45, $66, $18, $0D, $21, $4A, $66, $18, $08, $21, $4F | |
| db $66, $18, $03, $21, $40, $66, $C3, $56, $69, $3E, $80, $E3 | |
| db $00, $C4, $93, $83, $83, $73, $63, $53, $43, $33, $23, $13 | |
| db $00, $00, $23, $43, $63, $83, $A3, $C3, $D3, $E3, $FF, $CD | |
| db $83, $65, $C8, $CD, $95, $65, $C8, $CD, $8F, $65, $C8, $3E | |
| db $06, $21, $95, $66, $C3, $36, $69, $CD, $8B, $69, $A7, $C0 | |
| db $21, $E4, $DF, $4E, $34, $06, $00, $21, $9A, $66, $09, $7E | |
| db $A7, $CA, $D3, $65, $5F, $21, $A5, $66, $09, $7E, $57, $06 | |
| db $86, $0E, $12, $7B, $E2, $0C, $7A, $E2, $0C, $78, $E2, $C9 | |
| db $3B, $80, $B2, $87, $87, $A2, $93, $62, $43, $23, $00, $80 | |
| db $40, $80, $40, $80, $CD, $83, $65, $C8, $CD, $95, $65, $C8 | |
| db $CD, $8F, $65, $C8, $CD, $89, $65, $C8, $3E, $03, $21, $EC | |
| db $66, $C3, $36, $69, $CD, $8B, $69, $A7, $C0, $21, $E4, $DF | |
| db $4E, $34, $06, $00, $21, $F1, $66, $09, $7E, $A7, $CA, $D3 | |
| db $65, $5F, $21, $F7, $66, $09, $7E, $57, $06, $87, $18, $AD | |
| db $CD, $8F, $65, $C8, $3E, $28, $21, $40, $67, $C3, $36, $69 | |
| db $B7, $80, $90, $FF, $83, $00, $D1, $45, $80, $00, $F1, $54 | |
| db $80, $00, $D5, $65, $80, $00, $70, $66, $80, $65, $65, $65 | |
| db $64, $57, $56, $55, $54, $54, $54, $54, $54, $47, $46, $46 | |
| db $45, $45, $45, $44, $44, $44, $34, $34, $34, $34, $34, $34 | |
| db $34, $34, $34, $34, $34, $34, $34, $34, $34, $70, $60, $70 | |
| db $70, $70, $80, $90, $A0, $D0, $F0, $E0, $D0, $C0, $B0, $A0 | |
| db $90, $80, $70, $60, $50, $40, $30, $30, $20, $20, $20, $20 | |
| db $20, $20, $20, $20, $20, $20, $20, $10, $10, $3E, $30, $21 | |
| db $4D, $67, $C3, $36, $69, $3E, $30, $21, $51, $67, $C3, $36 | |
| db $69, $CD, $8B, $69, $A7, $C0, $21, $FC, $DF, $7E, $4F, $FE | |
| db $24, $CA, $E9, $67, $34, $06, $00, $C5, $21, $55, $67, $09 | |
| db $7E, $E0, $22, $C1, $21, $79, $67, $09, $7E, $E0, $21, $3E | |
| db $80, $E0, $23, $C9, $3E, $20, $21, $49, $67, $C3, $36, $69 | |
| db $3E, $12, $21, $45, $67, $C3, $36, $69, $CD, $8B, $69, $A7 | |
| db $C0, $AF, $EA, $F9, $DF, $3E, $08, $E0, $21, $3E, $80, $E0 | |
| db $23, $21, $CF, $DF, $CB, $BE, $C9, $80, $3A, $20, $60, $C6 | |
| db $21, $D9, $6E, $CD, $0D, $69, $F0, $04, $E6, $1F, $47, $3E | |
| db $D0, $80, $EA, $F5, $DF, $21, $FB, $67, $C3, $64, $69, $F0 | |
| db $04, $E6, $0F, $47, $21, $F4, $DF, $34, $7E, $21, $F5, $DF | |
| db $FE, $0E, $30, $0A, $34, $34, $7E, $E6, $F0, $B0, $0E, $1D | |
| db $E2, $C9, $FE, $1E, $CA, $E2, $68, $35, $35, $35, $18, $EE | |
| db $FA, $F0, $DF, $FE, $01, $CA, $6B, $68, $FE, $02, $CA, $00 | |
| db $68, $FA, $F1, $DF, $FE, $01, $CA, $B6, $68, $FE, $02, $CA | |
| db $17, $68, $C9, $80, $80, $20, $9D, $87, $80, $F8, $20, $98 | |
| db $87, $80, $FB, $20, $96, $87, $80, $F6, $20, $95, $87, $21 | |
| db $A9, $6E, $CD, $0D, $69, $21, $5A, $68, $7E, $EA, $F6, $DF | |
| db $3E, $01, $EA, $F5, $DF, $21, $57, $68, $C3, $64, $69, $3E | |
| db $00, $EA, $F5, $DF, $21, $5F, $68, $7E, $EA, $F6, $DF, $21 | |
| db $5C, $68, $18, $EC, $3E, $01, $EA, $F5, $DF, $21, $64, $68 | |
| db $7E, $EA, $F6, $DF, $21, $61, $68, $18, $DB, $3E, $02, $EA | |
| db $F5, $DF, $21, $69, $68, $7E, $EA, $F6, $DF, $21, $66, $68 | |
| db $18, $CA, $21, $F4, $DF, $34, $2A, $FE, $09, $28, $C4, $FE | |
| db $13, $28, $D1, $FE, $17, $28, $DE, $FE, $20, $28, $17, $2A | |
| db $FE, $00, $C8, $FE, $01, $28, $05, $FE, $02, $28, $05, $C9 | |
| db $34, $34, $18, $02, $35, $35, $7E, $E0, $1D, $C9, $AF, $EA | |
| db $F1, $DF, $E0, $1A, $21, $BF, $DF, $CB, $BE, $21, $9F, $DF | |
| db $CB, $BE, $21, $AF, $DF, $CB, $BE, $21, $CF, $DF, $CB, $BE | |
| db $FA, $E9, $DF, $FE, $05, $28, $05, $21, $E9, $6E, $18, $2A | |
| db $21, $C9, $6E, $18, $25, $E5, $EA, $F1, $DF, $21, $BF, $DF | |
| db $CB, $FE, $AF, $EA, $F4, $DF, $EA, $F5, $DF, $EA, $F6, $DF | |
| db $E0, $1A, $21, $9F, $DF, $CB, $FE, $21, $AF, $DF, $CB, $FE | |
| db $21, $CF, $DF, $CB, $FE, $E1, $CD, $98, $69, $C9, $F5, $1D | |
| db $FA, $71, $DF, $12, $1C, $F1, $1C, $12, $1D, $AF, $12, $1C | |
| db $1C, $12, $1C, $12, $7B, $FE, $E5, $28, $09, $FE, $F5, $28 | |
| db $13, $FE, $FD, $28, $16, $C9, $C5, $0E, $10, $06, $05, $18 | |
| db $13, $C5, $0E, $16, $06, $04, $18, $0C, $C5, $0E, $1A, $06 | |
| db $05, $18, $05, $C5, $0E, $20, $06, $04, $2A, $E2, $0C, $05 | |
| db $20, $FA, $C1, $C9, $1C, $EA, $71, $DF, $1C, $3D, $CB, $27 | |
| db $4F, $06, $00, $09, $4E, $23, $46, $69, $60, $7C, $C9, $D5 | |
| db $6B, $62, $34, $2A, $BE, $20, $03, $2D, $AF, $77, $D1, $C9 | |
| db $C5, $0E, $30, $2A, $E2, $0C, $79, $FE, $40, $20, $F8, $C1 | |
| db $C9, $AF, $EA, $E1, $DF, $EA, $E9, $DF, $EA, $F1, $DF, $EA | |
| db $F9, $DF, $EA, $9F, $DF, $EA, $AF, $DF, $EA, $BF, $DF, $EA | |
| db $CF, $DF, $3E, $FF, $E0, $25, $3E, $03, $EA, $78, $DF, $3E | |
| db $08, $E0, $12, $E0, $17, $E0, $21, $3E, $80, $E0, $14, $E0 | |
| db $19, $E0, $23, $AF, $E0, $10, $E0, $1A, $C9, $11, $E0, $DF | |
| db $1A, $A7, $28, $0C, $21, $9F, $DF, $CB, $FE, $21, $80, $64 | |
| db $CD, $78, $69, $E9, $1C, $1A, $A7, $28, $07, $21, $90, $64 | |
| db $CD, $7C, $69, $E9, $C9, $11, $F8, $DF, $1A, $A7, $28, $0C | |
| db $21, $CF, $DF, $CB, $FE, $21, $A0, $64, $CD, $78, $69, $E9 | |
| db $1C, $1A, $A7, $28, $07, $21, $A8, $64, $CD, $7C, $69, $E9 | |
| db $C9, $CD, $A5, $69, $C9, $21, $E8, $DF, $2A, $A7, $C8, $FE | |
| db $FF, $28, $F2, $77, $47, $21, $B0, $64, $E6, $1F, $CD, $7C | |
| db $69, $CD, $13, $6B, $CD, $3C, $6A, $C9, $FA, $E9, $DF, $A7 | |
| db $C8, $21, $BE, $6A, $3D, $28, $06, $23, $23, $23, $23, $18 | |
| db $F7, $2A, $EA, $78, $DF, $2A, $EA, $76, $DF, $2A, $EA, $79 | |
| db $DF, $2A, $EA, $7A, $DF, $AF, $EA, $75, $DF, $EA, $77, $DF | |
| db $C9, $FA, $E9, $DF, $A7, $28, $3D, $21, $75, $DF, $FA, $78 | |
| db $DF, $FE, $01, $28, $37, $FE, $03, $28, $2F, $34, $2A, $BE | |
| db $20, $33, $2D, $36, $00, $2C, $2C, $34, $FA, $79, $DF, $CB | |
| db $46, $CA, $8F, $6A, $FA, $7A, $DF, $47, $FA, $F1, $DF, $A7 | |
| db $28, $04, $CB, $D0, $CB, $F0, $FA, $F9, $DF, $A7, $28, $04 | |
| db $CB, $D8, $CB, $F8, $78, $E0, $25, $C9, $3E, $FF, $18, $F9 | |
| db $FA, $79, $DF, $18, $DE, $FA, $F9, $DF, $A7, $20, $F1, $FA | |
| db $F1, $DF, $A7, $20, $EB, $C9, $01, $24, $EF, $56, $01, $00 | |
| db $E5, $00, $01, $20, $FD, $00, $01, $20, $DE, $F7, $03, $18 | |
| db $7F, $F7, $03, $18, $F7, $7F, $03, $48, $DF, $5B, $01, $18 | |
| db $DB, $E7, $01, $00, $FD, $F7, $03, $20, $7F, $F7, $01, $20 | |
| db $ED, $F7, $01, $20, $ED, $F7, $01, $20, $ED, $F7, $01, $20 | |
| db $ED, $F7, $01, $20, $ED, $F7, $01, $20, $EF, $F7, $01, $20 | |
| db $EF, $F7, $2A, $4F, $7E, $47, $0A, $12, $1C, $03, $0A, $12 | |
| db $C9, $2A, $12, $1C, $2A, $12, $C9, $CD, $C7, $69, $AF, $EA | |
| db $75, $DF, $EA, $77, $DF, $11, $80, $DF, $06, $00, $2A, $12 | |
| db $1C, $CD, $0D, $6B, $11, $90, $DF, $CD, $0D, $6B, $11, $A0 | |
| db $DF, $CD, $0D, $6B, $11, $B0, $DF, $CD, $0D, $6B, $11, $C0 | |
| db $DF, $CD, $0D, $6B, $21, $90, $DF, $11, $94, $DF, $CD, $02 | |
| db $6B, $21, $A0, $DF, $11, $A4, $DF, $CD, $02, $6B, $21, $B0 | |
| db $DF, $11, $B4, $DF, $CD, $02, $6B, $21, $C0, $DF, $11, $C4 | |
| db $DF, $CD, $02, $6B, $01, $10, $04, $21, $92, $DF, $36, $01 | |
| db $79, $85, $6F, $05, $20, $F8, $AF, $EA, $9E, $DF, $EA, $AE | |
| db $DF, $EA, $BE, $DF, $C9, $E5, $AF, $E0, $1A, $6B, $62, $CD | |
| db $98, $69, $E1, $18, $2A, $CD, $B9, $6B, $CD, $CE, $6B, $5F | |
| db $CD, $B9, $6B, $CD, $CE, $6B, $57, $CD, $B9, $6B, $CD, $CE | |
| db $6B, $4F, $2C, $2C, $73, $2C, $72, $2C, $71, $2D, $2D, $2D | |
| db $2D, $E5, $21, $70, $DF, $7E, $E1, $FE, $03, $28, $CA, $CD | |
| db $B9, $6B, $C3, $5E, $6C, $D5, $2A, $5F, $3A, $57, $13, $7B | |
| db $22, $7A, $32, $D1, $C9, $D5, $2A, $5F, $3A, $57, $13, $13 | |
| db $18, $F1, $2A, $4F, $3A, $47, $0A, $47, $C9, $E1, $18, $2C | |
| db $FA, $70, $DF, $FE, $03, $20, $10, $FA, $B8, $DF, $CB, $7F | |
| db $28, $09, $7E, $FE, $06, $20, $04, $3E, $40, $E0, $1C, $E5 | |
| db $7D, $C6, $09, $6F, $7E, $A7, $20, $DD, $7D, $C6, $04, $6F | |
| db $CB, $7E, $20, $D5, $E1, $CD, $67, $6D, $2D, $2D, $C3, $39 | |
| db $6D, $2D, $2D, $2D, $2D, $CD, $C5, $6B, $7D, $C6, $04, $5F | |
| db $54, $CD, $02, $6B, $FE, $00, $28, $1F, $FE, $FF, $28, $04 | |
| db $2C, $C3, $5C, $6C, $2D, $E5, $CD, $C5, $6B, $CD, $CE, $6B | |
| db $5F, $CD, $B9, $6B, $CD, $CE, $6B, $57, $E1, $7B, $22, $7A | |
| db $32, $18, $D5, $21, $E9, $DF, $36, $00, $CD, $A5, $69, $C9 | |
| db $21, $E9, $DF, $7E, $A7, $C8, $3E, $01, $EA, $70, $DF, $21 | |
| db $90, $DF, $2C, $2A, $A7, $CA, $04, $6C, $35, $C2, $D8, $6B | |
| db $2C, $2C, $CD, $CE, $6B, $FE, $00, $CA, $09, $6C, $FE, $9D | |
| db $CA, $89, $6B, $E6, $F0, $FE, $A0, $20, $1A, $78, $E6, $0F | |
| db $4F, $06, $00, $E5, $11, $81, $DF, $1A, $6F, $13, $1A, $67 | |
| db $09, $7E, $E1, $2D, $22, $CD, $B9, $6B, $CD, $CE, $6B, $78 | |
| db $4F, $06, $00, $CD, $B9, $6B, $FA, $70, $DF, $FE, $04, $CA | |
| db $BC, $6C, $E5, $7D, $C6, $05, $6F, $5D, $54, $2C, $2C, $79 | |
| db $FE, $01, $28, $0F, $36, $00, $21, $02, $6E, $09, $2A, $12 | |
| db $1C, $7E, $12, $E1, $C3, $D3, $6C, $36, $01, $E1, $18, $17 | |
| db $E5, $11, $C6, $DF, $21, $94, $6E, $09, $2A, $12, $1C, $7B | |
| db $FE, $CB, $20, $F8, $0E, $20, $21, $C4, $DF, $18, $2E, $E5 | |
| db $FA, $70, $DF, $FE, $01, $28, $21, $FE, $02, $28, $19, $0E | |
| db $1A, $FA, $BF, $DF, $CB, $7F, $20, $05, $AF, $E2, $3E, $80 | |
| db $E2, $0C, $2C, $2C, $2C, $2C, $2A, $5F, $16, $00, $18, $15 | |
| db $0E, $16, $18, $05, $0E, $10, $3E, $00, $0C, $2C, $2C, $2C | |
| db $3A, $A7, $20, $4F, $2A, $5F, $2C, $2A, $57, $E5, $2C, $2C | |
| db $2A, $A7, $28, $02, $1E, $01, $2C, $2C, $36, $00, $2C, $7E | |
| db $E1, $CB, $7F, $20, $13, $7A, $E2, $0C, $7B, $E2, $0C, $2A | |
| db $E2, $0C, $7E, $F6, $80, $E2, $7D, $F6, $05, $6F, $CB, $86 | |
| db $E1, $2D, $3A, $32, $2D, $11, $70, $DF, $1A, $FE, $04, $28 | |
| db $09, $3C, $12, $11, $10, $00, $19, $C3, $52, $6C, $21, $9E | |
| db $DF, $34, $21, $AE, $DF, $34, $21, $BE, $DF, $34, $C9, $06 | |
| db $00, $E5, $E1, $2C, $18, $AC, $78, $CB, $3F, $6F, $26, $00 | |
| db $19, $5E, $C9, $E5, $7D, $C6, $06, $6F, $7E, $E6, $0F, $28 | |
| db $18, $EA, $71, $DF, $FA, $70, $DF, $0E, $13, $FE, $01, $28 | |
| db $0E, $0E, $18, $FE, $02, $28, $08, $0E, $1D, $FE, $03, $28 | |
| db $02, $E1, $C9, $2C, $2A, $5F, $7E, $57, $D5, $7D, $C6, $04 | |
| db $6F, $46, $FA, $71, $DF, $FE, $01, $18, $09, $FE, $03, $18 | |
| db $00, $21, $FF, $FF, $18, $1C, $11, $CB, $6D, $CD, $5E, $6D | |
| db $CB, $40, $20, $02, $CB, $33, $7B, $E6, $0F, $CB, $5F, $28 | |
| db $06, $26, $FF, $F6, $F0, $18, $02, $26, $00, $6F, $D1, $19 | |
| db $7D, $E2, $0C, $7C, $E2, $18, $BE, $00, $00, $00, $00, $00 | |
| db $00, $10, $00, $0F, $00, $00, $11, $00, $0F, $F0, $01, $12 | |
| db $10, $FF, $EF, $01, $12, $10, $FF, $EF, $01, $12, $10, $FF | |
| db $EF, $01, $12, $10, $FF, $EF, $01, $12, $10, $FF, $EF, $01 | |
| db $12, $10, $FF, $EF, $01, $12, $10, $FF, $EF, $01, $12, $10 | |
| db $FF, $EF, $00, $0F, $2C, $00, $9C, $00, $06, $01, $6B, $01 | |
| db $C9, $01, $23, $02, $77, $02, $C6, $02, $12, $03, $56, $03 | |
| db $9B, $03, $DA, $03, $16, $04, $4E, $04, $83, $04, $B5, $04 | |
| db $E5, $04, $11, $05, $3B, $05, $63, $05, $89, $05, $AC, $05 | |
| db $CE, $05, $ED, $05, $0A, $06, $27, $06, $42, $06, $5B, $06 | |
| db $72, $06, $89, $06, $9E, $06, $B2, $06, $C4, $06, $D6, $06 | |
| db $E7, $06, $F7, $06, $06, $07, $14, $07, $21, $07, $2D, $07 | |
| db $39, $07, $44, $07, $4F, $07, $59, $07, $62, $07, $6B, $07 | |
| db $73, $07, $7B, $07, $83, $07, $8A, $07, $90, $07, $97, $07 | |
| db $9D, $07, $A2, $07, $A7, $07, $AC, $07, $B1, $07, $B6, $07 | |
| db $BA, $07, $BE, $07, $C1, $07, $C4, $07, $C8, $07, $CB, $07 | |
| db $CE, $07, $D1, $07, $D4, $07, $D6, $07, $D9, $07, $DB, $07 | |
| db $DD, $07, $DF, $07, $00, $00, $00, $00, $00, $C0, $A1, $00 | |
| db $3A, $00, $C0, $B1, $00, $29, $01, $C0, $61, $00, $3A, $00 | |
| db $C0, $12, $34, $45, $67, $9A, $BC, $DE, $FE, $98, $7A, $B7 | |
| db $BE, $A8, $76, $54, $31, $01, $23, $44, $55, $67, $88, $9A | |
| db $BB, $A9, $88, $76, $55, $44, $33, $22, $11, $01, $23, $45 | |
| db $67, $89, $AB, $CD, $EF, $FE, $DC, $BA, $98, $76, $54, $32 | |
| db $10, $A1, $82, $23, $34, $45, $56, $67, $78, $89, $9A, $AB | |
| db $BC, $CD, $64, $32, $10, $11, $23, $56, $78, $99, $98, $76 | |
| db $67, $9A, $DF, $FE, $C9, $85, $42, $11, $31, $02, $04, $08 | |
| db $10, $20, $40, $0C, $18, $30, $05, $00, $01, $03, $05, $0A | |
| db $14, $28, $50, $0F, $1E, $3C, $03, $06, $0C, $18, $30, $60 | |
| db $12, $24, $48, $08, $10, $00, $07, $0E, $1C, $38, $70, $15 | |
| db $2A, $54, $04, $08, $10, $20, $40, $80, $18, $30, $60, $04 | |
| db $09, $12, $24, $48, $90, $1B, $36, $6C, $0C, $18, $04, $0A | |
| db $14, $28, $50, $A0, $1E, $3C, $78, $00, $0E, $6F, $F9, $7C | |
| db $FF, $7C, $11, $7D, $21, $7D, $00, $05, $6F, $48, $7E, $44 | |
| db $7E, $4A, $7E, $4C, $7E, $00, $0E, $6F, $3B, $76, $33, $76 | |
| db $41, $76, $63, $76, $00, $F9, $6E, $00, $76, $FC, $75, $02 | |
| db $76, $00, $00, $00, $0E, $6F, $4C, $71, $42, $71, $56, $71 | |
| db $62, $71, $00, $0E, $6F, $C6, $72, $B8, $72, $D4, $72, $02 | |
| db $73, $00, $0E, $6F, $08, $70, $FA, $6F, $00, $00, $00, $00 | |
| db $00, $05, $6F, $9D, $7E, $91, $7E, $A9, $7E, $B5, $7E, $00 | |
| db $0E, $6F, $28, $7C, $24, $7C, $2A, $7C, $2C, $7C, $00, $0E | |
| db $6F, $00, $00, $00, $7A, $00, $00, $00, $00, $00, $0E, $6F | |
| db $00, $00, $26, $7A, $2A, $7A, $00, $00, $00, $0E, $6F, $73 | |
| db $7A, $6F, $7A, $75, $7A, $00, $00, $00, $0E, $6F, $DF, $7A | |
| db $E3, $7A, $E5, $7A, $E7, $7A, $00, $0E, $6F, $65, $7B, $6B | |
| db $7B, $6F, $7B, $73, $7B, $00, $0E, $6F, $6C, $78, $76, $78 | |
| db $7E, $78, $86, $78, $00, $2B, $6F, $43, $75, $4B, $75, $51 | |
| db $75, $00, $00, $00, $0E, $6F, $8D, $75, $95, $75, $9B, $75 | |
| db $00, $00, $16, $70, $34, $70, $16, $70, $4D, $70, $93, $70 | |
| db $FF, $FF, $FA, $6F, $62, $70, $74, $70, $62, $70, $85, $70 | |
| db $F4, $70, $FF, $FF, $08, $70, $9D, $74, $00, $41, $A2, $44 | |
| db $4C, $56, $4C, $42, $4C, $44, $4C, $3E, $4C, $3C, $4C, $44 | |
| db $4C, $56, $4C, $42, $4C, $44, $4C, $3E, $4C, $3C, $4C, $00 | |
| db $44, $4C, $44, $3E, $4E, $48, $42, $48, $42, $3A, $4C, $44 | |
| db $3E, $4C, $48, $44, $42, $3E, $3C, $34, $3C, $42, $4C, $48 | |
| db $00, $44, $4C, $44, $3E, $4E, $48, $42, $48, $42, $3A, $52 | |
| db $48, $4C, $52, $4C, $44, $3A, $42, $A8, $44, $00, $9D, $64 | |
| db $00, $41, $A3, $26, $3E, $3C, $26, $2C, $34, $3E, $36, $34 | |
| db $3E, $2C, $34, $00, $26, $3E, $30, $22, $3A, $2C, $1E, $36 | |
| db $30, $A2, $34, $36, $34, $30, $2C, $2A, $00, $A3, $26, $3E | |
| db $30, $22, $3A, $2A, $2C, $34, $34, $2C, $22, $14, $00, $A2 | |
| db $52, $4E, $4C, $48, $44, $42, $44, $48, $4C, $44, $48, $4E | |
| db $4C, $4E, $A3, $52, $42, $A2, $44, $48, $A3, $4C, $48, $4C | |
| db $56, $50, $A2, $56, $5A, $A3, $5C, $5A, $A2, $56, $52, $50 | |
| db $4C, $50, $4A, $A8, $4C, $A7, $52, $A1, $56, $58, $A3, $56 | |
| db $A2, $52, $4E, $52, $4C, $4E, $48, $A7, $56, $A1, $5A, $5C | |
| db $A3, $5A, $A2, $56, $54, $56, $50, $54, $4C, $5A, $54, $4C | |
| db $54, $5A, $60, $66, $54, $64, $54, $60, $54, $A3, $5C, $A2 | |
| db $60, $5C, $5A, $5C, $A1, $56, $5A, $A4, $56, $A2, $01, $00 | |
| db $A2, $34, $3A, $44, $3A, $30, $3A, $34, $3A, $2C, $3A, $2A | |
| db $3A, $2C, $3A, $44, $3A, $30, $3A, $34, $3A, $2C, $3A, $2A | |
| db $3A, $2C, $34, $2C, $26, $3E, $38, $32, $38, $2A, $38, $32 | |
| db $38, $A3, $34, $42, $2A, $A2, $34, $3A, $42, $3A, $30, $3A | |
| db $2E, $34, $26, $34, $2E, $34, $A8, $30, $A2, $32, $38, $2A | |
| db $38, $32, $38, $A8, $34, $A3, $34, $2A, $24, $1C, $20, $24 | |
| db $2C, $30, $34, $A8, $26, $00, $68, $71, $68, $71, $AE, $71 | |
| db $FF, $FF, $42, $71, $CB, $71, $CB, $71, $1D, $72, $FF, $FF | |
| db $4C, $71, $3A, $72, $3A, $72, $7F, $72, $7F, $72, $FF, $FF | |
| db $56, $71, $A3, $72, $FF, $FF, $62, $71, $9D, $84, $00, $81 | |
| db $A3, $52, $A2, $48, $4A, $A3, $4E, $A2, $4A, $48, $A3, $44 | |
| db $A2, $44, $4A, $A3, $52, $A2, $4E, $4A, $A7, $48, $A2, $4A | |
| db $A3, $4E, $52, $A3, $4A, $44, $44, $01, $A2, $01, $A3, $4E | |
| db $A2, $54, $A3, $5C, $A2, $58, $54, $A7, $52, $A2, $4A, $A3 | |
| db $52, $A2, $4E, $4A, $A3, $48, $A2, $48, $4A, $A3, $4E, $52 | |
| db $A3, $4A, $44, $44, $01, $00, $9D, $50, $00, $81, $A4, $3A | |
| db $32, $36, $30, $A4, $32, $2C, $A8, $2A, $A3, $01, $A4, $3A | |
| db $32, $36, $30, $A3, $32, $3A, $A4, $44, $42, $01, $00, $9D | |
| db $43, $00, $81, $A3, $48, $A2, $42, $44, $48, $A1, $52, $4E | |
| db $A2, $44, $42, $A7, $3A, $A2, $44, $4A, $01, $A2, $48, $44 | |
| db $A1, $42, $42, $A2, $3A, $42, $44, $A3, $48, $4A, $A3, $44 | |
| db $3A, $3A, $01, $A2, $1E, $A3, $3C, $A2, $44, $4A, $A1, $4A | |
| db $4A, $A2, $48, $44, $A7, $40, $A2, $3A, $40, $A1, $44, $40 | |
| db $A2, $3C, $3A, $42, $3A, $42, $44, $48, $42, $4A, $42, $A1 | |
| db $44, $4A, $3A, $01, $A3, $3A, $3A, $01, $00, $9D, $30, $00 | |
| db $81, $A4, $32, $2C, $30, $2A, $2C, $22, $A4, $22, $A3, $30 | |
| db $01, $A4, $32, $2C, $30, $2A, $A3, $2C, $32, $A4, $3A, $36 | |
| db $01, $00, $9D, $C9, $6E, $20, $A2, $22, $3A, $22, $3A, $22 | |
| db $3A, $22, $3A, $2C, $44, $2C, $44, $2C, $44, $2C, $44, $2A | |
| db $42, $2A, $42, $22, $3A, $22, $3A, $2C, $44, $2C, $44, $2C | |
| db $44, $30, $32, $36, $1E, $01, $1E, $01, $1E, $2C, $24, $1A | |
| db $32, $01, $32, $1A, $28, $28, $01, $30, $48, $01, $48, $01 | |
| db $3A, $01, $42, $2C, $3A, $2C, $3A, $A3, $2C, $01, $00, $9D | |
| db $C9, $6E, $20, $A2, $44, $52, $44, $52, $44, $52, $44, $52 | |
| db $42, $52, $42, $52, $42, $52, $42, $52, $44, $52, $44, $52 | |
| db $44, $52, $44, $52, $42, $52, $42, $52, $A4, $01, $00, $A2 | |
| db $01, $06, $01, $06, $01, $A1, $06, $06, $A2, $01, $06, $01 | |
| db $06, $01, $06, $01, $06, $06, $06, $00, $0B, $73, $3F, $73 | |
| db $67, $73, $67, $73, $C9, $73, $FF, $FF, $B8, $72, $08, $73 | |
| db $3C, $73, $8E, $73, $8E, $73, $4B, $74, $FF, $FF, $C6, $72 | |
| db $1F, $73, $53, $73, $B5, $73, $B5, $73, $B5, $73, $B5, $73 | |
| db $B5, $73, $B5, $73, $C0, $74, $DE, $74, $DE, $74, $DE, $74 | |
| db $EE, $74, $FE, $74, $FE, $74, $0E, $75, $0E, $75, $1E, $75 | |
| db $1E, $75, $0E, $75, $2E, $75, $FF, $FF, $D4, $72, $33, $73 | |
| db $FF, $FF, $02, $73, $A5, $01, $00, $9D, $62, $00, $80, $A2 | |
| db $3A, $A1, $3A, $3A, $A2, $30, $30, $3A, $A1, $3A, $3A, $A2 | |
| db $30, $30, $00, $9D, $E9, $6E, $A0, $A2, $3A, $A1, $3A, $3A | |
| db $A2, $30, $30, $3A, $A1, $3A, $3A, $A2, $30, $30, $00, $A2 | |
| db $06, $A1, $06, $06, $A2, $06, $06, $00, $A5, $01, $00, $9D | |
| db $32, $00, $80, $A2, $3A, $A1, $3A, $3A, $A2, $30, $30, $3A | |
| db $A1, $3A, $3A, $A2, $30, $30, $00, $9D, $E9, $6E, $A0, $A2 | |
| db $3A, $A1, $3A, $3A, $A2, $30, $30, $3A, $A1, $3A, $3A, $A2 | |
| db $30, $30, $00, $9D, $82, $00, $80, $A2, $3A, $48, $52, $50 | |
| db $52, $A1, $48, $48, $A2, $4A, $44, $48, $A1, $40, $40, $A2 | |
| db $44, $3E, $40, $A1, $3A, $3A, $A2, $3E, $38, $3A, $30, $32 | |
| db $38, $3A, $30, $32, $3E, $00, $9D, $53, $00, $40, $A2, $30 | |
| db $40, $40, $44, $40, $A1, $3E, $40, $A2, $44, $3E, $40, $A1 | |
| db $38, $3A, $A2, $3E, $38, $3A, $A1, $2E, $30, $A2, $38, $30 | |
| db $30, $28, $2C, $2C, $30, $28, $2C, $38, $00, $9D, $E9, $6E | |
| db $A0, $A2, $3A, $A1, $3A, $3A, $A2, $30, $30, $3A, $A1, $3A | |
| db $3A, $A2, $30, $30, $00, $A8, $3A, $A2, $3E, $38, $A8, $3A | |
| db $A3, $3E, $A2, $40, $A1, $40, $40, $A2, $44, $3E, $40, $A1 | |
| db $40, $40, $A2, $44, $3E, $A8, $40, $A3, $44, $A2, $48, $A1 | |
| db $48, $48, $A2, $4A, $44, $48, $A1, $48, $48, $A2, $4A, $44 | |
| db $A8, $48, $A3, $4C, $A2, $4E, $A1, $4E, $4E, $A2, $4E, $4E | |
| db $52, $4E, $4E, $4C, $4E, $A1, $4E, $4E, $A2, $4E, $4E, $52 | |
| db $4E, $4E, $4C, $4E, $A1, $4E, $4E, $A2, $4E, $4E, $4C, $A1 | |
| db $4C, $4C, $A2, $4C, $4C, $4A, $A1, $4A, $4A, $A2, $4A, $44 | |
| db $3E, $40, $44, $36, $44, $A1, $40, $40, $A2, $36, $A3, $40 | |
| db $A1, $36, $3A, $A2, $36, $30, $44, $A1, $40, $40, $A2, $36 | |
| db $A3, $40, $A1, $36, $3A, $A2, $36, $2E, $A5, $36, $A8, $01 | |
| db $A3, $38, $00, $A8, $30, $A2, $30, $30, $A8, $30, $A3, $36 | |
| db $A5, $01, $A8, $01, $A3, $3E, $A2, $40, $A1, $40, $40, $A2 | |
| db $44, $3E, $40, $A1, $40, $40, $A2, $44, $3E, $A8, $36, $A3 | |
| db $3A, $A2, $3E, $A1, $40, $44, $A2, $3E, $44, $48, $48, $48 | |
| db $3A, $3E, $A1, $40, $44, $A2, $3E, $44, $46, $46, $46, $3A | |
| db $3E, $A1, $40, $44, $A2, $3E, $44, $3A, $A1, $3E, $40, $A2 | |
| db $3A, $40, $3A, $A1, $3E, $40, $A2, $3E, $3E, $2C, $3A, $3E | |
| db $26, $30, $A1, $30, $30, $A2, $30, $A3, $30, $A1, $30, $34 | |
| db $A2, $30, $28, $2E, $A1, $2E, $2E, $A2, $2E, $A3, $2E, $A1 | |
| db $2E, $32, $A2, $2E, $28, $A5, $26, $A8, $01, $A3, $2C, $00 | |
| db $A2, $3A, $A1, $3A, $3A, $A2, $32, $2C, $3A, $A1, $3A, $3A | |
| db $A2, $38, $30, $3A, $A1, $3A, $3A, $A2, $32, $2C, $3A, $A1 | |
| db $3A, $3A, $A2, $2C, $1E, $00, $A2, $28, $A1, $40, $28, $A2 | |
| db $1E, $36, $28, $A1, $40, $28, $A2, $1E, $36, $00, $A2, $28 | |
| db $A1, $40, $28, $A2, $1E, $36, $28, $A1, $40, $28, $A2, $2C | |
| db $44, $00, $A2, $1E, $A1, $36, $1E, $A2, $1E, $36, $28, $A1 | |
| db $40, $28, $A2, $28, $40, $00, $A2, $1E, $A1, $36, $1E, $A2 | |
| db $1E, $36, $1E, $A1, $36, $1E, $A2, $1E, $36, $00, $A2, $22 | |
| db $A1, $3A, $22, $A2, $22, $3A, $22, $A1, $3A, $22, $A2, $22 | |
| db $3A, $00, $A2, $1E, $A1, $36, $1E, $A2, $1E, $36, $1E, $A1 | |
| db $36, $1E, $A2, $A4, $3E, $00, $36, $3E, $44, $A4, $44, $57 | |
| db $75, $62, $75, $FF, $FF, $45, $75, $5E, $75, $FF, $FF, $4B | |
| db $75, $7C, $75, $FF, $FF, $51, $75, $9D, $20, $00, $81, $AA | |
| db $01, $00, $9D, $70, $00, $81, $A2, $42, $32, $38, $42, $46 | |
| db $34, $3C, $46, $4A, $38, $42, $4A, $4C, $3C, $42, $4C, $46 | |
| db $34, $3C, $46, $40, $2E, $34, $40, $00, $9D, $E9, $6E, $21 | |
| db $A8, $42, $A3, $2A, $A8, $42, $A3, $2A, $A8, $42, $A3, $2A | |
| db $00, $A1, $75, $AC, $75, $FF, $FF, $8F, $75, $A8, $75, $FF | |
| db $FF, $95, $75, $EE, $75, $FF, $FF, $9B, $75, $9D, $20, $00 | |
| db $81, $AA, $01, $00, $9D, $70, $00, $81, $A2, $4C, $42, $50 | |
| db $42, $54, $42, $50, $42, $56, $42, $54, $42, $50, $42, $54 | |
| db $42, $4C, $42, $50, $42, $54, $42, $50, $42, $56, $42, $54 | |
| db $42, $50, $42, $54, $42, $5A, $46, $56, $46, $54, $46, $50 | |
| db $46, $4E, $46, $50, $46, $54, $46, $50, $46, $50, $3E, $4C | |
| db $3E, $4C, $3E, $4A, $3E, $4A, $3E, $46, $3E, $4A, $3E, $50 | |
| db $3E, $00, $9D, $E9, $6E, $21, $A5, $4C, $4A, $46, $42, $38 | |
| db $3E, $42, $42, $00, $04, $76, $00, $00, $14, $76, $23, $76 | |
| db $9D, $B2, $00, $80, $A2, $60, $5C, $60, $5C, $60, $62, $60 | |
| db $5C, $A4, $60, $00, $9D, $92, $00, $80, $A2, $52, $4E, $52 | |
| db $4E, $52, $54, $52, $4E, $A4, $52, $9D, $E9, $6E, $20, $A2 | |
| db $62, $60, $62, $60, $62, $66, $62, $60, $A3, $62, $01, $6F | |
| db $76, $69, $77, $69, $77, $00, $00, $BF, $76, $AA, $77, $3C | |
| db $78, $0C, $77, $EB, $77, $EB, $77, $F5, $77, $EB, $77, $EB | |
| db $77, $FE, $77, $F5, $77, $EB, $77, $EB, $77, $FE, $77, $F5 | |
| db $77, $07, $78, $11, $78, $FE, $77, $F5, $77, $EB, $77, $5B | |
| db $77, $5B, $77, $1A, $78, $1A, $78, $1A, $78, $1A, $78, $9D | |
| db $C3, $00, $80, $A2, $3C, $3E, $3C, $3E, $38, $50, $A3, $01 | |
| db $A2, $3C, $3E, $3C, $3E, $38, $50, $A3, $01, $A2, $01, $48 | |
| db $01, $46, $01, $42, $01, $46, $A1, $42, $46, $A2, $42, $42 | |
| db $38, $A3, $3C, $01, $A2, $3E, $42, $3E, $42, $3C, $54, $A3 | |
| db $01, $A2, $3E, $42, $3E, $42, $3C, $54, $A3, $01, $A2, $01 | |
| db $56, $01, $54, $01, $54, $01, $50, $A2, $01, $A1, $50, $54 | |
| db $A2, $50, $4E, $A3, $50, $01, $00, $9D, $74, $00, $80, $A2 | |
| db $36, $38, $36, $38, $2E, $3E, $A3, $01, $A2, $36, $38, $36 | |
| db $38, $2E, $3E, $A3, $01, $A2, $01, $36, $01, $36, $01, $32 | |
| db $01, $36, $36, $32, $32, $30, $A3, $36, $01, $A2, $38, $3C | |
| db $38, $3C, $36, $4E, $A3, $01, $A2, $38, $3C, $38, $3C, $36 | |
| db $4E, $A3, $01, $A2, $01, $50, $01, $4E, $01, $46, $01, $46 | |
| db $A2, $01, $A1, $48, $4E, $A2, $48, $46, $A3, $40, $01, $00 | |
| db $9D, $E9, $6E, $20, $A2, $48, $46, $48, $46, $3E, $20, $A3 | |
| db $01, $A2, $48, $46, $48, $46, $3E, $20, $A3, $01, $A2, $2E | |
| db $3C, $2E, $24, $24, $24, $24, $3C, $2A, $3E, $2A, $3E, $A6 | |
| db $2E, $A3, $01, $A1, $01, $A2, $48, $46, $48, $46, $2E, $2E | |
| db $A3, $01, $A2, $48, $46, $48, $46, $2E, $2E, $A3, $01, $A2 | |
| db $2A, $3C, $2A, $3C, $2E, $3E, $2E, $3E, $2E, $42, $2E, $42 | |
| db $A6, $38, $A3, $01, $A1, $01, $00, $A8, $01, $A2, $06, $0B | |
| db $A8, $01, $A2, $06, $0B, $A5, $01, $01, $00, $9D, $C5, $00 | |
| db $80, $A1, $46, $4A, $A4, $46, $A2, $01, $A3, $50, $A8, $4A | |
| db $A3, $01, $A1, $42, $46, $A4, $42, $A2, $01, $A3, $4E, $A1 | |
| db $4E, $50, $A4, $46, $A7, $01, $A1, $40, $46, $A4, $40, $A2 | |
| db $01, $A3, $46, $A1, $46, $4A, $A4, $42, $A7, $01, $A1, $36 | |
| db $38, $A4, $36, $A2, $01, $A3, $3C, $A7, $42, $A4, $40, $A2 | |
| db $01, $00, $9D, $84, $00, $41, $A1, $40, $42, $A4, $40, $A2 | |
| db $01, $A3, $40, $A8, $42, $A3, $01, $A1, $3C, $40, $A4, $3C | |
| db $A2, $01, $A3, $3C, $A1, $3C, $40, $A4, $40, $A7, $01, $A1 | |
| db $36, $32, $A4, $2E, $A2, $01, $A3, $40, $A1, $36, $38, $A4 | |
| db $32, $A7, $01, $A1, $2E, $32, $A4, $2E, $A2, $01, $A3, $2A | |
| db $A7, $30, $A4, $2E, $A2, $01, $00, $A2, $38, $38, $01, $38 | |
| db $38, $38, $01, $38, $00, $2E, $2E, $01, $2E, $2E, $2E, $01 | |
| db $2E, $00, $2A, $2A, $01, $2A, $2A, $2A, $01, $2A, $00, $A2 | |
| db $38, $38, $01, $38, $36, $36, $01, $36, $00, $32, $32, $01 | |
| db $32, $2E, $2E, $01, $2E, $00, $A2, $06, $0B, $01, $06, $06 | |
| db $0B, $01, $06, $06, $0B, $01, $06, $06, $0B, $01, $06, $06 | |
| db $0B, $01, $06, $06, $0B, $01, $06, $06, $0B, $01, $06, $01 | |
| db $0B, $01, $0B, $00, $9D, $66, $00, $81, $A7, $58, $5A, $A3 | |
| db $58, $A7, $5E, $A4, $5A, $A2, $01, $A7, $50, $54, $A3, $58 | |
| db $A7, $5A, $A4, $58, $A2, $01, $A7, $50, $A3, $4E, $A7, $4E | |
| db $58, $54, $A3, $4A, $A7, $5A, $5E, $A3, $5A, $A7, $54, $A4 | |
| db $50, $A2, $01, $00, $8E, $78, $11, $79, $8E, $78, $96, $79 | |
| db $00, $00, $AD, $78, $38, $79, $AD, $78, $BA, $79, $D5, $78 | |
| db $5E, $79, $D5, $78, $DD, $79, $FE, $78, $84, $79, $FE, $78 | |
| db $84, $79, $9D, $D1, $00, $80, $A2, $5C, $A1, $5C, $5A, $A2 | |
| db $5C, $5C, $56, $52, $4E, $56, $A2, $52, $A1, $52, $50, $A2 | |
| db $52, $52, $4C, $48, $44, $A1, $4C, $52, $00, $9D, $B2, $00 | |
| db $80, $A2, $52, $A1, $52, $52, $A2, $52, $A1, $52, $52, $A2 | |
| db $44, $A1, $44, $44, $A2, $44, $01, $4C, $A1, $4C, $4C, $A2 | |
| db $4C, $A1, $4C, $4C, $A2, $3A, $A1, $3A, $3A, $A2, $3A, $01 | |
| db $00, $9D, $E9, $6E, $20, $A2, $5C, $A1, $5C, $5C, $A2, $5C | |
| db $A1, $5C, $5C, $A2, $4E, $A1, $52, $52, $A2, $56, $01, $A2 | |
| db $5C, $A1, $5C, $5C, $A2, $5C, $A1, $5C, $5C, $A2, $44, $A1 | |
| db $48, $48, $A2, $4C, $01, $00, $A2, $06, $A7, $01, $A2, $0B | |
| db $0B, $0B, $01, $A2, $06, $A7, $01, $A2, $0B, $0B, $0B, $01 | |
| db $00, $A2, $48, $A1, $48, $52, $A2, $44, $A1, $44, $52, $A2 | |
| db $42, $A1, $42, $52, $A2, $48, $A1, $48, $52, $A2, $4C, $A1 | |
| db $4C, $52, $A2, $44, $A1, $44, $52, $A2, $48, $44, $A1, $48 | |
| db $52, $56, $5A, $00, $3A, $A1, $3A, $3A, $A2, $3A, $A1, $3A | |
| db $3A, $A2, $3A, $A1, $3A, $3A, $A2, $3A, $A1, $3A, $3A, $A2 | |
| db $3A, $A1, $3A, $3A, $A2, $3A, $A1, $3A, $3A, $A2, $36, $A1 | |
| db $36, $36, $A2, $36, $01, $00, $48, $A1, $48, $48, $A2, $48 | |
| db $A1, $48, $48, $A2, $48, $A1, $48, $48, $A2, $48, $A1, $48 | |
| db $48, $A2, $44, $A1, $44, $44, $A2, $44, $A1, $44, $44, $A2 | |
| db $42, $A1, $42, $42, $A2, $42, $01, $00, $A2, $01, $0B, $01 | |
| db $0B, $01, $0B, $01, $0B, $01, $0B, $01, $0B, $01, $0B, $0B | |
| db $01, $00, $A2, $48, $A1, $48, $52, $A2, $44, $A1, $44, $52 | |
| db $A2, $42, $A1, $42, $52, $A2, $48, $A1, $48, $52, $A2, $4C | |
| db $A1, $4C, $52, $A2, $48, $A1, $48, $52, $A2, $44, $52, $A3 | |
| db $5C, $00, $3A, $A1, $3A, $3A, $A2, $3A, $A1, $3A, $3A, $A2 | |
| db $3A, $A1, $3A, $3A, $A2, $3A, $A1, $3A, $3A, $A2, $3A, $A1 | |
| db $3A, $3A, $A2, $3A, $A1, $3A, $3A, $A2, $01, $3A, $A3, $4C | |
| db $00, $48, $A1, $48, $48, $A2, $48, $A1, $48, $48, $A2, $48 | |
| db $A1, $48, $48, $A2, $48, $A1, $48, $48, $A2, $44, $A1, $44 | |
| db $44, $A2, $44, $A1, $44, $44, $A2, $01, $4C, $A3, $44, $00 | |
| db $04, $7A, $00, $00, $9D, $C2, $00, $40, $A2, $5C, $A1, $5C | |
| db $5A, $A2, $5C, $5C, $56, $52, $4E, $56, $A2, $52, $A1, $52 | |
| db $50, $A2, $52, $52, $4C, $48, $A1, $44, $42, $A2, $44, $A4 | |
| db $01, $00, $2C, $7A, $00, $00, $4B, $7A, $9D, $C2, $00, $80 | |
| db $A2, $5C, $A1, $5C, $5A, $A2, $5C, $5C, $56, $52, $4E, $56 | |
| db $A2, $52, $A1, $52, $50, $A2, $52, $4C, $44, $52, $A3, $5C | |
| db $A4, $01, $00, $9D, $E9, $6E, $20, $A2, $5C, $A1, $5C, $5C | |
| db $A2, $5C, $A1, $5C, $5C, $A2, $4E, $52, $56, $01, $A2, $5C | |
| db $A1, $5C, $5C, $A2, $5C, $A1, $5C, $5C, $A2, $52, $4C, $44 | |
| db $01, $A5, $01, $77, $7A, $00, $00, $96, $7A, $B4, $7A, $9D | |
| db $C2, $00, $80, $A2, $5C, $A1, $5C, $5A, $A2, $5C, $5C, $56 | |
| db $52, $4E, $56, $A2, $52, $A1, $52, $50, $A2, $52, $4C, $44 | |
| db $52, $A3, $5C, $A4, $01, $00, $9D, $C2, $00, $40, $A2, $4E | |
| db $A1, $4E, $52, $A2, $56, $4E, $A3, $48, $48, $A2, $4C, $A1 | |
| db $4C, $4A, $A2, $4C, $44, $34, $4C, $A3, $4C, $A5, $01, $00 | |
| db $9D, $E9, $6E, $20, $A2, $5C, $A1, $5C, $5C, $A2, $5C, $A1 | |
| db $5C, $5C, $A2, $4E, $52, $A1, $56, $56, $A2, $56, $A2, $5C | |
| db $A1, $5C, $5C, $A2, $5C, $A1, $5C, $5C, $A2, $52, $4C, $A1 | |
| db $44, $44, $A2, $01, $A5, $01, $00, $E9, $7A, $00, $00, $08 | |
| db $7B, $25, $7B, $4F, $7B, $9D, $C2, $00, $80, $A2, $5C, $A1 | |
| db $5C, $5A, $A2, $5C, $5C, $56, $52, $4E, $56, $A2, $52, $A1 | |
| db $52, $50, $A2, $52, $4C, $44, $52, $A3, $5C, $A4, $01, $00 | |
| db $9D, $B2, $00, $80, $A2, $4E, $A1, $4E, $52, $A2, $56, $4E | |
| db $A3, $48, $48, $A2, $4C, $A1, $4C, $4A, $A2, $4C, $44, $34 | |
| db $4C, $A3, $4C, $A5, $01, $9D, $E9, $6E, $20, $A2, $5C, $A1 | |
| db $5C, $5C, $A2, $5C, $A1, $5C, $5C, $4E, $56, $5C, $56, $4E | |
| db $44, $3E, $44, $A2, $5C, $A1, $5C, $5C, $A2, $5C, $A1, $5C | |
| db $5C, $52, $4C, $44, $4C, $5C, $01, $A2, $01, $A5, $01, $A2 | |
| db $0B, $0B, $0B, $0B, $A2, $0B, $0B, $0B, $01, $A2, $0B, $0B | |
| db $0B, $0B, $A2, $0B, $0B, $0B, $01, $A5, $01, $77, $7B, $CE | |
| db $7B, $00, $00, $96, $7B, $F2, $7B, $A8, $7B, $02, $7C, $BB | |
| db $7B, $12, $7C, $9D, $D1, $00, $80, $A2, $5C, $A1, $5C, $5A | |
| db $A2, $5C, $5C, $56, $52, $4E, $56, $A2, $52, $A1, $52, $50 | |
| db $A2, $52, $52, $4C, $48, $44, $A1, $4C, $52, $00, $A2, $52 | |
| db $A7, $01, $A2, $44, $44, $44, $01, $4C, $A7, $01, $A2, $3A | |
| db $3A, $3A, $01, $00, $A2, $5C, $A7, $01, $A2, $4E, $52, $56 | |
| db $01, $A2, $5C, $A7, $01, $A2, $44, $48, $4C, $01, $00, $A2 | |
| db $06, $A7, $01, $A2, $0B, $0B, $0B, $01, $A2, $06, $A7, $01 | |
| db $A2, $0B, $0B, $0B, $01, $00, $A2, $48, $A1, $48, $52, $A2 | |
| db $44, $A1, $44, $52, $A2, $42, $A1, $42, $52, $A2, $48, $A1 | |
| db $48, $52, $A2, $4C, $A1, $4C, $52, $A2, $48, $A1, $48, $52 | |
| db $A2, $5C, $52, $A3, $5C, $00, $01, $3A, $01, $3A, $01, $3A | |
| db $01, $3A, $01, $3A, $01, $3A, $01, $3A, $A3, $34, $01, $48 | |
| db $01, $48, $01, $48, $01, $48, $01, $44, $01, $44, $01, $4C | |
| db $A3, $44, $A2, $01, $0B, $01, $0B, $01, $0B, $01, $0B, $01 | |
| db $0B, $01, $0B, $A2, $01, $0B, $0B, $01, $2E, $7C, $00, $00 | |
| db $63, $7C, $97, $7C, $CB, $7C, $9D, $B3, $00, $80, $A6, $52 | |
| db $A1, $50, $A6, $52, $A1, $50, $A6, $52, $A1, $48, $A3, $01 | |
| db $A6, $4C, $A1, $4A, $A6, $4C, $A1, $4A, $A6, $4C, $A1, $42 | |
| db $A3, $01, $A6, $3E, $A1, $42, $A6, $44, $A1, $48, $A6, $4C | |
| db $A1, $50, $A6, $52, $A1, $56, $A6, $52, $A1, $6A, $00, $9D | |
| db $93, $00, $C0, $A6, $42, $A1, $40, $A6, $42, $A1, $40, $A6 | |
| db $42, $A1, $42, $A3, $01, $A6, $3A, $A1, $38, $A6, $3A, $A1 | |
| db $38, $A6, $3A, $A1, $3A, $A3, $01, $A6, $38, $A1, $38, $A6 | |
| db $3A, $A1, $3E, $A6, $42, $A1, $44, $A6, $48, $A1, $4C, $A6 | |
| db $42, $A1, $42, $9D, $E9, $6E, $A0, $A6, $48, $A1, $46, $A6 | |
| db $48, $A1, $46, $A6, $48, $A1, $52, $A3, $01, $A6, $44, $A1 | |
| db $42, $A6, $44, $A1, $42, $A6, $44, $A1, $4C, $A3, $01, $A6 | |
| db $48, $A1, $3A, $A6, $3E, $A1, $42, $A6, $44, $A1, $48, $A6 | |
| db $4C, $A1, $50, $A6, $52, $A1, $3A, $A6, $0B, $A1, $06, $A6 | |
| db $0B, $A1, $06, $A6, $0B, $A1, $06, $A3, $01, $A6, $0B, $A1 | |
| db $06, $A6, $0B, $A1, $06, $A6, $0B, $A1, $06, $A3, $01, $A6 | |
| db $0B, $A1, $06, $A6, $0B, $A1, $06, $A6, $0B, $A1, $06, $A3 | |
| db $01, $A6, $0B, $A1, $06, $2E, $7D, $FF, $FF, $01, $7D, $29 | |
| db $7D, $35, $7D, $5B, $7D, $82, $7D, $5B, $7D, $A4, $7D, $C6 | |
| db $7D, $FF, $FF, $03, $7D, $3B, $7D, $6C, $7D, $93, $7D, $6C | |
| db $7D, $B5, $7D, $07, $7E, $FF, $FF, $13, $7D, $3E, $7D, $41 | |
| db $7D, $FF, $FF, $23, $7D, $9D, $60, $00, $81, $00, $9D, $20 | |
| db $00, $81, $AA, $01, $00, $A3, $01, $50, $54, $58, $00, $A5 | |
| db $01, $00, $A5, $01, $00, $A3, $01, $06, $01, $06, $01, $A2 | |
| db $06, $06, $A3, $01, $06, $A3, $01, $06, $01, $06, $01, $A2 | |
| db $06, $06, $01, $01, $06, $06, $00, $A7, $5A, $A2, $5E, $A7 | |
| db $5A, $A2, $58, $A7, $58, $A2, $54, $A7, $58, $A2, $54, $00 | |
| db $9D, $C9, $6E, $20, $A2, $5A, $62, $68, $70, $5A, $62, $68 | |
| db $70, $5A, $64, $66, $6C, $5A, $64, $66, $6C, $00, $A7, $54 | |
| db $A2, $50, $A7, $54, $A2, $50, $A7, $50, $A2, $4C, $A7, $4A | |
| db $A2, $50, $00, $58, $5E, $64, $6C, $58, $5E, $64, $6C, $50 | |
| db $54, $58, $5E, $50, $58, $5E, $64, $00, $A7, $54, $A2, $50 | |
| db $A7, $54, $A2, $50, $A7, $50, $A2, $4C, $A7, $4A, $A2, $46 | |
| db $00, $58, $5E, $64, $6C, $58, $5E, $64, $6C, $50, $54, $58 | |
| db $5E, $50, $58, $5E, $64, $00, $A7, $4A, $A2, $4C, $A7, $4A | |
| db $A2, $46, $A7, $46, $A2, $44, $A7, $46, $A2, $4A, $A7, $4C | |
| db $A2, $50, $A7, $4C, $A2, $4A, $A7, $4A, $A2, $46, $A7, $4A | |
| db $A2, $4C, $A7, $50, $A2, $4E, $A7, $50, $A2, $52, $A7, $58 | |
| db $A2, $54, $A7, $5A, $A2, $54, $A7, $52, $A2, $50, $A7, $4C | |
| db $A2, $4A, $A2, $42, $38, $3C, $4A, $A3, $42, $01, $00, $4A | |
| db $52, $58, $5E, $4A, $58, $5E, $62, $54, $62, $68, $6C, $54 | |
| db $62, $68, $6C, $46, $4C, $54, $5E, $46, $4C, $54, $5A, $50 | |
| db $58, $5E, $64, $50, $5E, $64, $6C, $4A, $50, $58, $5E, $4A | |
| db $58, $5E, $62, $4E, $54, $5A, $62, $4E, $54, $5A, $66, $50 | |
| db $58, $5E, $64, $50, $5E, $64, $68, $A8, $5A, $A3, $01, $00 | |
| db $4E, $7E, $00, $00, $5E, $7E, $6D, $7E, $7D, $7E, $9D, $B1 | |
| db $00, $80, $A7, $01, $A1, $5E, $5E, $A6, $68, $A1, $5E, $A4 | |
| db $68, $00, $9D, $91, $00, $80, $A7, $01, $A1, $54, $54, $A6 | |
| db $5E, $A1, $58, $A4, $5E, $9D, $E9, $6E, $20, $A7, $01, $A1 | |
| db $4E, $4E, $A6, $58, $A1, $50, $A3, $58, $01, $A7, $01, $A1 | |
| db $06, $06, $A6, $0B, $A1, $06, $A0, $06, $06, $06, $06, $06 | |
| db $06, $06, $06, $A3, $01, $BB, $7E, $28, $7F, $BB, $7E, $73 | |
| db $7F, $FF, $FF, $91, $7E, $E5, $7E, $4F, $7F, $E5, $7E, $96 | |
| db $7F, $FF, $FF, $9D, $7E, $FB, $7E, $61, $7F, $FB, $7E, $AE | |
| db $7F, $FF, $FF, $A9, $7E, $11, $7F, $FF, $FF, $B5, $7E, $9D | |
| db $82, $00, $80, $A2, $54, $A1, $54, $54, $54, $4A, $46, $4A | |
| db $A2, $54, $A1, $54, $54, $54, $58, $5C, $58, $A2, $54, $A1 | |
| db $54, $54, $58, $54, $52, $54, $A1, $58, $5C, $58, $5C, $A2 | |
| db $58, $A1, $56, $58, $00, $9D, $62, $00, $80, $A2, $01, $44 | |
| db $01, $40, $01, $44, $01, $46, $01, $44, $01, $44, $01, $40 | |
| db $01, $40, $00, $9D, $E9, $6E, $20, $A2, $54, $54, $4A, $52 | |
| db $54, $54, $4A, $58, $54, $54, $52, $54, $4E, $54, $4A, $52 | |
| db $00, $A2, $06, $0B, $06, $0B, $06, $0B, $06, $0B, $06, $0B | |
| db $06, $0B, $06, $A1, $0B, $0B, $06, $A2, $0B, $A1, $06, $00 | |
| db $A2, $5E, $A1, $5E, $5E, $5E, $54, $50, $54, $A2, $5E, $A1 | |
| db $5E, $5E, $5E, $62, $66, $62, $A2, $5E, $A1, $5E, $5C, $A2 | |
| db $58, $A1, $58, $54, $A1, $52, $54, $52, $54, $A2, $52, $A1 | |
| db $4E, $52, $00, $A2, $01, $46, $01, $4A, $01, $46, $01, $4A | |
| db $01, $46, $01, $46, $01, $46, $01, $46, $00, $A2, $46, $54 | |
| db $54, $54, $46, $54, $54, $54, $46, $54, $52, $58, $44, $52 | |
| db $4A, $58, $00, $A2, $62, $A1, $62, $62, $62, $5E, $5A, $5E | |
| db $A2, $62, $A1, $62, $62, $62, $5E, $5A, $5E, $A2, $62, $A1 | |
| db $4A, $4E, $A2, $52, $A1, $4A, $5C, $A3, $58, $A1, $54, $A6 | |
| db $6C, $00, $A2, $01, $4A, $01, $4A, $01, $4A, $01, $4A, $01 | |
| db $A1, $46, $46, $A2, $46, $A1, $46, $46, $A3, $46, $A2, $44 | |
| db $01, $00, $A2, $42, $5A, $50, $5A, $42, $5A, $50, $5A, $4A | |
| db $A1, $52, $52, $A2, $52, $A1, $52, $52, $A3, $52, $A2, $54 | |
| db $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 | |
| db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 | |
| db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 | |
| db $00, $00, $00, $00, $00, $00, $00, $00 | |
| func_7ff0: | |
| jp l_64d3 | |
| Sound_Init:: | |
| jp $69a5 | |
| db $00, $00, $00, $00, $00, $00, $00, $00, $00 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| DEF PALETTE_1 EQU %11100100 ;00 = white, 01 = light grey, 10 = dark grey, 11 = black (read RTL) | |
| DEF PALETTE_2 EQU %11000100 ;white, light grey, white, black |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment