1580 lines
103 KiB
NASM
1580 lines
103 KiB
NASM
; Contra US Disassembly - v1.3
|
|
; https://github.com/vermiceli/nes-contra-us
|
|
; Bank 3 starts with the data that specifies which pattern table tiles comprises
|
|
; super-tiles along with the color palettes. This bank also has the routines
|
|
; to manage the end of levels.
|
|
|
|
.segment "BANK_3"
|
|
|
|
.include "constants.asm"
|
|
|
|
; import labels from bank 7
|
|
.import run_routine_from_tbl_below, set_graphics_zero_mode, set_a_as_current_level_routine
|
|
|
|
; export labels used by bank 2
|
|
.export level_4_supertile_data, level_6_supertile_data
|
|
.export level_7_supertile_data
|
|
|
|
; export labels used by bank 7
|
|
.export level_1_nametable_update_supertile_data, level_1_nametable_update_palette_data
|
|
.export level_2_nametable_update_supertile_data, level_2_nametable_update_palette_data
|
|
.export level_3_nametable_update_supertile_data, level_3_nametable_update_palette_data
|
|
.export level_4_nametable_update_supertile_data, level_4_nametable_update_palette_data
|
|
.export level_5_nametable_update_supertile_data, level_5_nametable_update_palette_data
|
|
.export level_6_nametable_update_supertile_data, level_6_nametable_update_palette_data
|
|
.export level_7_nametable_update_supertile_data, level_7_nametable_update_palette_data
|
|
.export level_8_nametable_update_supertile_data, level_8_nametable_update_palette_data
|
|
.export level_2_4_nametable_update_supertile_data, level_2_4_boss_nametable_update_palette_data
|
|
.export level_2_4_boss_palette_data, run_end_level_sequence_routine
|
|
.export level_2_4_boss_supertile_data, level_2_4_tile_animation
|
|
.export level_6_tile_animation, level_7_tile_animation
|
|
|
|
; export labels used by bank 2 and bank 7
|
|
.export level_1_supertile_data, level_2_supertile_data
|
|
.export level_3_supertile_data, level_5_supertile_data
|
|
.export level_8_supertile_data
|
|
|
|
.export level_1_palette_data, level_2_palette_data
|
|
.export level_3_palette_data, level_4_palette_data
|
|
.export level_5_palette_data, level_6_palette_data
|
|
.export level_7_palette_data, level_8_palette_data
|
|
|
|
; Every PRG ROM bank starts with a single byte specifying which number it is
|
|
.byte $03 ; The PRG ROM bank number (3)
|
|
|
|
; level 1 super-tiles (#$3b * #$10 = #$3b0 bytes)
|
|
; background nametable data for level 1
|
|
; #$10 bytes per super-tile
|
|
; each entry is a pattern table tile
|
|
; CPU address $8001
|
|
level_1_supertile_data:
|
|
.byte $02,$03,$04,$05,$12,$13,$14,$15,$58,$59,$5a,$5b,$1c,$1d,$1e,$1f
|
|
.byte $4c,$4d,$c4,$b5,$4c,$4d,$c4,$b3,$4c,$4d,$d4,$c6,$4c,$4d,$d5,$d6
|
|
.byte $00,$00,$00,$00,$c7,$c8,$c8,$c8,$d7,$e7,$d8,$e7,$d7,$e7,$e8,$e7
|
|
.byte $01,$01,$01,$01,$bf,$f1,$f8,$bf,$16,$17,$c0,$33,$f6,$f7,$bd,$be
|
|
.byte $08,$09,$0a,$0b,$18,$19,$1a,$1b,$02,$03,$04,$05,$12,$13,$14,$15
|
|
.byte $c3,$c4,$b8,$c9,$d3,$d4,$b8,$c9,$e3,$e4,$e5,$c9,$b7,$ae,$af,$c9
|
|
.byte $d7,$e7,$e8,$e7,$d7,$e7,$e8,$e7,$d7,$e7,$e8,$e7,$d7,$e7,$e8,$e7
|
|
.byte $48,$49,$4a,$4b,$18,$19,$1a,$1b,$0c,$0d,$0e,$0f,$1c,$1d,$1e,$1f
|
|
.byte $08,$09,$0a,$0b,$18,$19,$1a,$1b,$ca,$eb,$ec,$ed,$ef,$c3,$c3,$c3
|
|
.byte $08,$09,$0a,$0b,$18,$19,$1a,$1b,$ea,$eb,$ec,$ed,$c3,$c3,$c3,$c3
|
|
.byte $08,$09,$0a,$0b,$18,$19,$1a,$1b,$ea,$eb,$ec,$c9,$c3,$c3,$c3,$d8
|
|
.byte $08,$09,$0a,$0b,$18,$19,$1a,$1b,$ca,$eb,$ec,$c9,$ef,$c3,$c3,$d8
|
|
.byte $c3,$c3,$c3,$c3,$c3,$c3,$c3,$c3,$c3,$c3,$c3,$c3,$c3,$c3,$c3,$c3
|
|
.byte $c3,$c3,$c3,$cd,$c3,$c3,$c3,$d8,$c3,$c3,$c3,$e9,$c3,$c3,$c3,$c3
|
|
.byte $ce,$c3,$c3,$c3,$ef,$c3,$c3,$c3,$ee,$c3,$c3,$c3,$c3,$c3,$c3,$c3
|
|
.byte $c3,$c3,$c3,$c3,$c3,$c3,$c3,$c3,$c3,$c3,$c3,$cd,$c3,$c3,$c3,$d8
|
|
.byte $fe,$fe,$fe,$fe,$fe,$fe,$fe,$fe,$c3,$c3,$c3,$c3,$c3,$c3,$c3,$c3
|
|
.byte $fe,$fe,$fe,$ff,$fe,$fe,$fe,$fe,$c3,$c3,$c3,$c3,$c3,$c3,$c3,$c3
|
|
.byte $f9,$fa,$fb,$fc,$fe,$fe,$fe,$fe,$c3,$c3,$c3,$c3,$c3,$c3,$c3,$c3
|
|
.byte $fd,$fe,$fe,$fe,$fe,$fe,$fe,$fe,$c3,$c3,$c3,$c3,$c3,$c3,$c3,$c3
|
|
.byte $fd,$fe,$fe,$ff,$fe,$fe,$fe,$fe,$c3,$c3,$c3,$c3,$c3,$c3,$c3,$c3
|
|
.byte $02,$03,$c7,$c8,$12,$13,$d7,$e7,$58,$59,$d7,$e7,$1c,$1d,$d7,$e7
|
|
.byte $f9,$fa,$fb,$fc,$ce,$fe,$fe,$fe,$fd,$fe,$fe,$fe,$fe,$fe,$fe,$fe
|
|
.byte $f9,$fa,$fb,$fc,$fe,$fe,$fe,$cd,$fe,$fe,$fe,$ff,$fe,$fe,$fe,$fe
|
|
.byte $02,$03,$04,$05,$12,$13,$14,$15,$ed,$c9,$5a,$5b,$c3,$d8,$1e,$1f
|
|
.byte $36,$00,$00,$00,$34,$35,$ff,$ba,$3a,$34,$b4,$b5,$5c,$5d,$c4,$b5
|
|
.byte $00,$da,$a8,$a9,$ca,$c4,$b8,$b9,$b6,$c4,$b8,$c9,$b6,$c4,$b8,$c9
|
|
.byte $00,$00,$00,$00,$c8,$c8,$c8,$c8,$d8,$e7,$d8,$e7,$e8,$e7,$e8,$e7
|
|
.byte $06,$34,$35,$34,$37,$38,$39,$38,$3b,$3c,$3d,$3d,$5e,$5f,$32,$5f
|
|
.byte $35,$34,$35,$34,$39,$38,$39,$3a,$3d,$3c,$3d,$3b,$32,$32,$5f,$32
|
|
.byte $35,$34,$35,$36,$39,$38,$39,$3a,$3d,$3c,$3d,$3e,$32,$5f,$5e,$5f
|
|
.byte $c3,$c3,$c3,$c3,$c3,$c3,$c3,$c3,$ce,$c3,$c3,$c3,$ef,$c3,$c3,$c3
|
|
.byte $00,$00,$00,$4f,$00,$4f,$00,$00,$4f,$00,$00,$00,$00,$00,$00,$4f
|
|
.byte $00,$00,$00,$00,$00,$4f,$00,$4f,$4f,$00,$4f,$00,$00,$00,$00,$4f ; first super-tile of level 1 (stars in sky)
|
|
.byte $4f,$00,$00,$00,$00,$00,$4f,$00,$00,$00,$00,$00,$10,$00,$c6,$c7
|
|
.byte $4f,$00,$00,$00,$00,$4f,$00,$00,$00,$00,$cb,$cc,$d9,$da,$db,$dc
|
|
.byte $40,$41,$42,$43,$50,$51,$52,$53,$44,$45,$46,$47,$54,$55,$56,$57
|
|
.byte $36,$00,$00,$00,$57,$36,$00,$00,$45,$57,$3a,$00,$55,$55,$57,$36
|
|
.byte $e0,$00,$d6,$d7,$f0,$e5,$e6,$e7,$e1,$e2,$e3,$e4,$00,$00,$f2,$00
|
|
.byte $f4,$dd,$de,$df,$e8,$c8,$e2,$cf,$f3,$00,$f2,$f3,$00,$00,$00,$00
|
|
.byte $4c,$4d,$4e,$4d,$4c,$4d,$4e,$4d,$4c,$4d,$4e,$4d,$4c,$4d,$4e,$4d
|
|
.byte $01,$01,$01,$01,$bf,$f1,$f8,$bf,$c0,$33,$c0,$33,$bd,$be,$bd,$be
|
|
.byte $00,$00,$00,$00,$00,$00,$4f,$00,$00,$00,$00,$00,$10,$00,$00,$4f
|
|
.byte $00,$4f,$00,$00,$00,$00,$4f,$00,$4f,$00,$00,$00,$00,$00,$c6,$c7
|
|
.byte $40,$41,$42,$43,$50,$51,$52,$53,$44,$45,$46,$47,$5c,$5d,$3f,$4d
|
|
.byte $11,$41,$42,$43,$06,$51,$52,$53,$07,$45,$46,$47,$5c,$5d,$3f,$4d
|
|
.byte $e0,$00,$00,$00,$f0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $00,$00,$d6,$d7,$00,$e5,$e6,$e7,$e1,$e2,$e3,$e4,$00,$00,$00,$00
|
|
.byte $4c,$4d,$ab,$ac,$4c,$4d,$bb,$bc,$4c,$4d,$bb,$b0,$4c,$4d,$bb,$c0
|
|
.byte $ac,$ac,$ad,$b9,$bc,$bc,$bd,$d9,$b1,$b2,$bd,$aa,$c1,$c2,$bd,$b9
|
|
.byte $e8,$e7,$e8,$e7,$e8,$e7,$e8,$e7,$e8,$e7,$e8,$e7,$e8,$e7,$e8,$e7
|
|
.byte $c7,$c8,$c8,$c8,$d7,$e7,$d8,$e7,$d7,$e7,$e8,$e7,$d7,$e7,$e8,$e7
|
|
.byte $4c,$4d,$bb,$d0,$4c,$4d,$bb,$e0,$4c,$4d,$bb,$bc,$5e,$5f,$e9,$ea
|
|
.byte $d1,$d2,$bd,$d9,$e1,$e2,$bd,$aa,$bc,$bc,$bd,$b9,$eb,$ec,$bd,$d9
|
|
.byte $c8,$c8,$c8,$c8,$d8,$e7,$d8,$e7,$e8,$e7,$e8,$e7,$e8,$e7,$e8,$e7
|
|
.byte $01,$01,$01,$01,$bf,$f1,$f8,$bf,$c0,$33,$c0,$c1,$bd,$be,$d0,$d1
|
|
.byte $3a,$41,$42,$43,$4c,$51,$52,$53,$4c,$37,$46,$47,$4c,$4d,$4e,$4d
|
|
.byte $02,$03,$04,$05,$12,$13,$14,$15,$f9,$fa,$fb,$fc,$c3,$c3,$c3,$c3
|
|
.byte $c8,$e7,$e8,$e7,$d8,$e7,$e8,$e7,$e8,$e7,$e8,$e7,$e8,$e7,$e8,$e7
|
|
|
|
; level 1 enemy super-tiles (#$2c * #$10 = #$2c0 bytes)
|
|
; rotating gun, pill box sensor, and gulcan (buried surfacing cannon) super-tiles
|
|
; #$10 tiles for each super-tile, each byte is an offset into pattern table
|
|
; background nametable data for enemies in level 1
|
|
level_1_nametable_update_supertile_data:
|
|
.byte $20,$21,$21,$22,$26,$30,$31,$27,$26,$30,$31,$27,$23,$24,$24,$25 ; #$00 - pill box sensor closed
|
|
.byte $20,$21,$21,$22,$26,$2c,$2d,$27,$26,$2e,$2f,$27,$23,$24,$24,$25 ; #$01 - pill box sensor partially open
|
|
.byte $20,$21,$21,$22,$26,$28,$29,$27,$26,$2a,$2b,$27,$23,$24,$24,$25 ; #$02 - pill box sensor open
|
|
.byte $20,$21,$21,$22,$26,$96,$97,$27,$26,$97,$96,$27,$23,$24,$24,$25 ; #$03 - rotating gun closed
|
|
.byte $20,$21,$21,$22,$26,$94,$95,$27,$26,$95,$94,$27,$23,$24,$24,$25 ; #$04 - rotating gun opening
|
|
.byte $20,$21,$21,$22,$8d,$8e,$8f,$27,$9d,$9e,$9f,$27,$23,$24,$24,$25 ; #$05 - rotating gun facing left
|
|
.byte $20,$21,$21,$22,$8a,$8b,$8c,$27,$26,$9b,$9c,$27,$23,$24,$24,$25 ; #$06 - rotating gun facing left-up
|
|
.byte $20,$82,$21,$22,$26,$92,$93,$27,$26,$a2,$a3,$27,$23,$24,$24,$25 ; #$07 - rotating gun facing left-up (closer to up)
|
|
.byte $20,$66,$67,$22,$26,$76,$77,$27,$26,$86,$87,$27,$23,$24,$24,$25 ; #$08 - rotating gun facing up
|
|
.byte $20,$21,$81,$22,$26,$90,$91,$27,$26,$a0,$a1,$27,$23,$24,$24,$25 ; #$09 - rotating gun facing up up right (closer to up)
|
|
.byte $20,$21,$21,$22,$26,$68,$69,$6a,$26,$78,$79,$27,$23,$24,$24,$25 ; #$0a - rotating gun facing up right
|
|
.byte $20,$21,$21,$22,$26,$6d,$6e,$6f,$26,$7d,$7e,$7f,$23,$24,$24,$25 ; #$0b - rotating gun facing right
|
|
.byte $20,$21,$21,$22,$26,$88,$89,$27,$26,$98,$99,$9a,$23,$24,$24,$25 ; #$0c - rotating gun facing right down
|
|
.byte $20,$21,$21,$22,$26,$62,$63,$27,$26,$72,$73,$27,$23,$24,$83,$25 ; #$0d - rotating gun facing right down down (closer to down)
|
|
.byte $20,$21,$21,$22,$26,$64,$65,$27,$26,$74,$75,$27,$23,$84,$85,$25 ; #$0e - rotating gun facing down
|
|
.byte $20,$21,$21,$22,$26,$60,$61,$27,$26,$70,$71,$27,$23,$80,$24,$25 ; #$0f - rotating gun facing down left
|
|
.byte $20,$21,$21,$22,$26,$6b,$6c,$27,$7a,$7b,$7c,$27,$23,$24,$24,$25 ; #$10 - rotating gun facing down left left (closer to left)
|
|
.byte $a4,$a5,$a6,$a7,$b4,$b5,$b6,$b7,$b0,$b1,$b2,$b3,$ac,$ad,$ae,$af ; #$11 - red turret facing left
|
|
.byte $bc,$a5,$a6,$a7,$a8,$a9,$b6,$b7,$b8,$b9,$b2,$b3,$ac,$ad,$ae,$af ; #$12 - red turret facing up left
|
|
.byte $aa,$ab,$a6,$a7,$ba,$bb,$b6,$b7,$b8,$b9,$b2,$b3,$ac,$ad,$ae,$af ; #$13 - red turret facing up up left (almost straight up)
|
|
.byte $08,$09,$0a,$0b,$18,$19,$1a,$1b,$a4,$a5,$a6,$a7,$b4,$b5,$b6,$b7 ; #$14 - red turret 1/2 rising from ground rocky background
|
|
.byte $4c,$4d,$4e,$4d,$4c,$4d,$4e,$4d,$a4,$a5,$a6,$a7,$b4,$b5,$b6,$b7 ; #$15 - red turret 1/2 rising from ground metal background
|
|
.byte $08,$09,$0a,$0b,$18,$19,$1a,$1b,$0c,$0d,$0e,$0f,$1c,$1d,$1e,$1f ; #$16 - red turret and rotating gun rock background
|
|
.byte $4c,$4d,$4e,$4d,$4c,$4d,$4e,$4d,$4c,$4d,$4e,$4d,$5e,$5f,$32,$5f ; #$17 - red turret metal background, green grass
|
|
.byte $00,$00,$00,$00,$a4,$a5,$a6,$a7,$b4,$b5,$b6,$b7,$b0,$b1,$b2,$b3 ; #$18 - red turret 3/4 rising from ground black background
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; #$19 - blank super-tile, used for destroyed bridges
|
|
.byte $c2,$00,$00,$c4,$d2,$00,$00,$d4,$00,$00,$00,$c5,$d3,$00,$00,$d5 ; #$1a - exploding bridge partially destroyed both ends still exist
|
|
.byte $c2,$00,$00,$00,$d2,$00,$00,$00,$00,$00,$00,$00,$d3,$00,$00,$00 ; #$1b - exploding bridge partially destroyed left only
|
|
.byte $00,$00,$00,$c4,$00,$00,$00,$d4,$00,$00,$00,$c5,$00,$00,$00,$d5 ; #$1c - exploding bridge partially destroyed right only
|
|
.byte $00,$00,$00,$c4,$00,$00,$00,$d4,$00,$00,$00,$00,$00,$00,$00,$00 ; #$1d - exploding bridge partially destroyed right only (more destroyed)
|
|
.byte $4c,$4d,$ab,$ac,$4c,$4d,$bb,$bc,$4c,$4d,$bb,$f4,$4c,$4d,$f3,$00
|
|
.byte $ac,$ac,$ad,$b9,$bc,$bc,$bd,$d9,$f5,$f6,$f7,$f8,$00,$00,$00,$00
|
|
.byte $c7,$c8,$c8,$c8,$d7,$e7,$d8,$e7,$f8,$f8,$f8,$f8,$00,$00,$00,$00
|
|
.byte $c8,$c8,$c8,$c8,$d8,$e7,$d8,$e7,$f8,$f8,$f8,$f8,$00,$00,$00,$00
|
|
.byte $4c,$4d,$fb,$00,$4c,$4d,$fa,$f2,$4c,$4d,$bb,$bc,$5e,$5f,$e9,$ea
|
|
.byte $00,$00,$00,$00,$f9,$f9,$f9,$f9,$fc,$f2,$fd,$fe,$eb,$ec,$bd,$d9
|
|
.byte $00,$00,$00,$00,$f9,$f9,$f9,$f9,$fe,$fe,$fe,$fe,$d7,$e7,$e8,$e7
|
|
.byte $00,$00,$00,$00,$f9,$f9,$f9,$f9,$fe,$fe,$fe,$fe,$e8,$e7,$e8,$e7
|
|
.byte $4c,$4d,$fb,$e6,$4c,$4d,$fb,$e6,$4c,$4d,$cb,$cc,$4c,$4d,$fb,$db ; jungle bg boss bomb turret frame #$00 (boss_bomb_turret_supertile_tbl)
|
|
.byte $4c,$4d,$fb,$e6,$4c,$4d,$fb,$e6,$4c,$4d,$ed,$ee,$4c,$4d,$fb,$db ; jungle bg boss bomb turret frame #$01 (boss_bomb_turret_supertile_tbl)
|
|
.byte $4c,$4d,$fb,$e6,$4c,$4d,$fb,$e6,$4c,$4d,$fb,$f0,$4c,$4d,$fb,$db ; jungle bg boss bomb turret destroy (boss_bomb_turret_supertile_tbl)
|
|
.byte $b7,$be,$bf,$c9,$b7,$be,$bf,$d9,$b7,$cd,$ce,$cf,$dc,$dd,$de,$df ; wall bg boss bomb turret frame #$00 (boss_bomb_turret_supertile_tbl)
|
|
.byte $b7,$be,$bf,$c9,$b7,$be,$bf,$d9,$b7,$cb,$ef,$cf,$dc,$dd,$de,$df ; wall bg boss bomb turret frame #$01 (boss_bomb_turret_supertile_tbl)
|
|
.byte $b7,$be,$bf,$c9,$b7,$be,$bf,$d9,$b7,$be,$f1,$f2,$dc,$dd,$de,$df ; wall bg boss bomb turret destroy (boss_bomb_turret_supertile_tbl)
|
|
|
|
; palette data - level 1 (#$70 bytes)
|
|
; 1 byte per super-tile
|
|
; xx.. .... color for lower-right corner
|
|
; ..xx .... color for lower-left corner
|
|
; .... xx.. color for upper-right corner
|
|
; .... ..xx color for upper-left corner
|
|
level_1_palette_data:
|
|
.byte $50,$cc,$ff,$aa,$05,$ff,$ff,$55,$f5,$f5,$f5,$f5,$ff,$ff,$ff,$ff
|
|
.byte $ff,$ff,$ff,$ff,$ff,$dc,$ff,$ff,$70,$cc,$ff,$ff,$00,$00,$00,$ff
|
|
.byte $ff,$ff,$af,$ab,$00,$08,$aa,$aa,$00,$aa,$ee,$bf,$00,$00,$aa,$aa
|
|
.byte $8c,$ef,$ff,$ff,$c8,$fe,$ff,$aa,$00,$f0,$ff
|
|
|
|
; each byte is the palette for an entire super-tile
|
|
; updates values in the attribute table
|
|
level_1_nametable_update_palette_data:
|
|
.byte $aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa
|
|
.byte $aa,$aa,$aa,$aa,$a5,$a0,$55,$00,$aa,$aa,$aa,$aa,$aa,$aa,$cc,$ff
|
|
.byte $ff,$ff,$cc,$ff,$ff,$ff,$cc,$cc,$cc,$ff,$ff,$ff,$aa,$aa,$aa,$aa
|
|
.byte $aa,$aa,$aa,$aa,$aa
|
|
|
|
; nametable animation pattern table tiles - level 2/4 (#$b * #$5 = #$37 bytes)
|
|
; byte 0 clear specifies to use the default of #$02 rows of #$02 pattern table tiles each row
|
|
; bytes 1 - 4 are the pattern table tiles to draw
|
|
; CPU address $86e1
|
|
level_2_4_tile_animation:
|
|
.byte $00,$e2,$e3,$e4,$e5 ; #$80 core plating
|
|
.byte $00,$e6,$e7,$e8,$e9 ; #$81 core plating - cracked
|
|
.byte $00,$ea,$eb,$ec,$ed ; #$82 core plating - more cracks
|
|
.byte $00,$de,$df,$e0,$e1 ; #$83 core - destroyed
|
|
.byte $00,$ee,$ef,$f0,$f1 ; #$84 wall turret / core - closed
|
|
.byte $00,$f2,$f3,$f4,$f5 ; #$85 wall turret / core - opening frame 1
|
|
.byte $00,$f6,$f7,$f8,$f9 ; #$86 core - opening frame 2
|
|
.byte $00,$ca,$cb,$cc,$cd ; #$87 core - open
|
|
.byte $00,$fa,$fb,$53,$54 ; #$88 wall turret - opening frame 2
|
|
.byte $00,$ce,$cf,$d0,$d1 ; #$89 wall turret - open
|
|
.byte $00,$d2,$d3,$d4,$d5 ; #$8a big core
|
|
|
|
; super-tile data - level 2/4 (#$76 * #$10 = #$760 bytes)
|
|
level_2_supertile_data:
|
|
level_4_supertile_data:
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; blank super-tile
|
|
.byte $00,$00,$00,$00,$0a,$0a,$0a,$0a,$0b,$00,$68,$60,$69,$60,$7f,$01
|
|
.byte $00,$00,$68,$61,$68,$60,$01,$62,$01,$01,$01,$62,$13,$14,$15,$16
|
|
.byte $17,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
|
|
.byte $11,$18,$00,$00,$12,$01,$10,$18,$12,$01,$01,$01,$66,$65,$64,$63
|
|
.byte $00,$00,$00,$00,$0a,$0a,$0a,$0a,$10,$18,$00,$0b,$01,$2f,$10,$19
|
|
.byte $00,$00,$00,$3b,$0a,$0a,$0a,$3c,$0b,$0b,$0b,$3d,$0d,$0d,$0d,$3e
|
|
.byte $8b,$00,$00,$00,$8c,$0a,$0a,$0a,$8d,$0b,$0b,$0b,$8e,$0d,$0d,$0d
|
|
.byte $01,$01,$01,$67,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
|
|
.byte $66,$1d,$1e,$1f,$01,$2e,$01,$31,$01,$30,$01,$31,$01,$30,$01,$31
|
|
.byte $02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02
|
|
.byte $6f,$6e,$6d,$16,$81,$01,$7e,$01,$81,$01,$80,$01,$81,$01,$80,$01
|
|
.byte $02,$02,$02,$02,$a2,$a7,$02,$02,$02,$a9,$02,$02,$02,$a9,$02,$02
|
|
.byte $01,$30,$01,$31,$01,$30,$77,$70,$01,$72,$78,$35,$74,$73,$33,$02
|
|
.byte $02,$02,$02,$02,$06,$06,$06,$06,$03,$03,$03,$03,$02,$02,$02,$02
|
|
.byte $81,$01,$80,$01,$20,$27,$80,$01,$85,$28,$22,$01,$02,$83,$23,$24
|
|
.byte $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
|
|
.byte $02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$09,$09,$09,$09
|
|
.byte $04,$04,$83,$01,$fd,$fd,$fd,$ff,$05,$05,$05,$05,$fd,$fd,$fd,$fd
|
|
.byte $26,$27,$01,$01,$fc,$40,$90,$01,$84,$01,$89,$24,$fd,$40,$90,$62
|
|
.byte $04,$04,$04,$04,$fd,$fd,$fd,$fd,$05,$05,$05,$05,$fd,$fd,$fd,$fd
|
|
.byte $01,$01,$77,$76,$01,$40,$90,$fc,$74,$39,$01,$34,$12,$40,$90,$fd
|
|
.byte $01,$33,$04,$04,$fe,$fd,$fd,$fd,$05,$05,$05,$05,$fd,$fd,$fd,$fd
|
|
.byte $02,$02,$8a,$62,$02,$02,$02,$86,$02,$02,$02,$02,$09,$09,$09,$09
|
|
.byte $12,$3a,$02,$02,$36,$02,$02,$02,$02,$02,$02,$02,$09,$09,$09,$09
|
|
|
|
level_2_nametable_update_supertile_data:
|
|
level_4_nametable_update_supertile_data:
|
|
.byte $5a,$5b,$5b,$5b,$5d,$00,$00,$00,$5d,$00,$00,$00,$5d,$00,$00,$00 ; #$00 - top left back wall destroyed
|
|
.byte $5b,$5b,$5b,$5c,$00,$00,$00,$5e,$00,$00,$00,$5e,$00,$00,$00,$5e ; #$01 - top right back wall destroyed
|
|
.byte $5d,$00,$00,$00,$4b,$5f,$5f,$5f,$03,$03,$03,$03,$02,$02,$02,$02 ; #$02 - bottom left back wall destroyed
|
|
.byte $00,$00,$00,$5e,$5f,$5f,$5f,$9b,$03,$03,$03,$03,$02,$02,$02,$02 ; #$03 - bottom right back wall destroyed
|
|
.byte $0a,$0a,$0a,$0a,$00,$00,$00,$00,$1b,$18,$0c,$0c,$2f,$01,$10,$0e
|
|
.byte $0a,$0a,$0a,$3b,$00,$00,$00,$3c,$0c,$0c,$0c,$3d,$0e,$0e,$0e,$3f
|
|
.byte $8b,$0a,$0a,$0a,$8c,$00,$00,$00,$8d,$0c,$0c,$0c,$8f,$0e,$0e,$0e
|
|
.byte $0a,$0a,$0a,$0a,$00,$00,$00,$00,$0c,$0c,$68,$6b,$0e,$60,$01,$7f
|
|
.byte $1c,$65,$64,$4c,$2e,$01,$01,$4c,$30,$01,$01,$4c,$30,$01,$01,$4c
|
|
.byte $59,$59,$59,$59,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $02,$02,$83,$62,$02,$02,$02,$86,$04,$04,$04,$04,$09,$09,$09,$09
|
|
.byte $9c,$14,$15,$6c,$9c,$01,$01,$7e,$9c,$01,$01,$80,$9c,$01,$01,$80
|
|
.byte $30,$01,$01,$4c,$30,$01,$77,$4c,$30,$79,$78,$4d,$7b,$7a,$34,$05
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$ac,$ac,$ac,$ac,$05,$05,$05,$05
|
|
.byte $9c,$01,$01,$80,$9c,$27,$01,$80,$9d,$28,$29,$80,$05,$84,$2a,$2b
|
|
.byte $01,$01,$77,$76,$01,$79,$78,$01,$74,$7a,$01,$33,$12,$01,$33,$02
|
|
.byte $2f,$33,$02,$02,$33,$04,$04,$04,$02,$02,$02,$02,$02,$02,$02,$02
|
|
.byte $02,$02,$02,$02,$04,$04,$04,$04,$02,$02,$02,$02,$02,$02,$02,$02
|
|
.byte $02,$02,$83,$7f,$04,$04,$04,$83,$02,$02,$02,$02,$02,$02,$02,$02
|
|
.byte $26,$27,$01,$01,$01,$28,$29,$01,$83,$01,$2a,$24,$02,$83,$01,$62
|
|
.byte $12,$33,$02,$02,$36,$02,$02,$02,$04,$04,$04,$04,$09,$09,$09,$09
|
|
.byte $02,$02,$02,$02,$02,$02,$02,$02,$04,$04,$04,$04,$09,$09,$09,$09
|
|
.byte $11,$18,$00,$00,$12,$01,$1b,$18,$12,$01,$2f,$01,$66,$65,$1a,$63
|
|
.byte $00,$00,$00,$00,$00,$0b,$0b,$0b,$10,$18,$00,$00,$01,$01,$02,$ae
|
|
.byte $00,$00,$00,$3b,$0b,$0b,$0b,$3c,$00,$00,$00,$3d,$ad,$ae,$ad,$ae
|
|
.byte $8b,$00,$00,$00,$8c,$0b,$0b,$0b,$8d,$00,$00,$00,$ad,$ae,$ad,$ae
|
|
.byte $00,$00,$00,$00,$0b,$0b,$0b,$00,$00,$00,$68,$60,$ae,$02,$01,$01
|
|
.byte $00,$00,$68,$61,$68,$6b,$01,$62,$01,$7f,$01,$62,$13,$6a,$15,$16
|
|
.byte $01,$01,$2e,$67,$01,$01,$2e,$01,$01,$01,$30,$01,$01,$01,$30,$01
|
|
.byte $66,$65,$4e,$00,$01,$01,$4f,$00,$01,$01,$4e,$00,$01,$01,$4f,$00
|
|
.byte $00,$41,$00,$00,$00,$00,$43,$52,$00,$00,$45,$00,$00,$00,$44,$58
|
|
.byte $00,$00,$91,$00,$52,$93,$00,$00,$00,$95,$00,$00,$58,$94,$00,$00
|
|
.byte $00,$9e,$15,$16,$00,$9e,$01,$01,$00,$9f,$01,$01,$00,$9f,$01,$01
|
|
.byte $17,$7e,$01,$01,$01,$7e,$01,$01,$01,$80,$01,$01,$01,$80,$01,$01
|
|
.byte $01,$01,$30,$01,$01,$01,$30,$01,$01,$01,$30,$01,$01,$01,$30,$01
|
|
.byte $01,$01,$4e,$00,$01,$01,$4f,$00,$01,$79,$4e,$00,$74,$7a,$02,$b1
|
|
.byte $00,$42,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$b0,$b1,$b0,$b2
|
|
.byte $00,$00,$92,$00,$00,$00,$00,$00,$00,$00,$00,$00,$b0,$b1,$b0,$b2
|
|
.byte $00,$9e,$01,$01,$00,$9f,$01,$01,$00,$9e,$29,$01,$b1,$02,$2a,$24
|
|
.byte $01,$80,$01,$01,$01,$80,$01,$01,$01,$80,$01,$01,$01,$80,$01,$01
|
|
.byte $01,$01,$7d,$76,$01,$79,$7c,$01,$74,$7a,$2f,$34,$12,$01,$33,$02
|
|
.byte $01,$33,$07,$07,$33,$02,$02,$02,$05,$05,$05,$05,$02,$02,$02,$02
|
|
.byte $07,$07,$07,$07,$02,$02,$02,$02,$05,$05,$05,$05,$02,$02,$02,$02
|
|
.byte $07,$07,$83,$01,$02,$02,$02,$83,$05,$05,$05,$05,$02,$02,$02,$02
|
|
.byte $26,$2d,$01,$01,$01,$2c,$29,$01,$84,$7f,$2a,$24,$02,$83,$01,$62
|
|
.byte $12,$33,$02,$02,$36,$02,$02,$02,$02,$02,$02,$02,$09,$09,$09,$09
|
|
.byte $02,$02,$83,$62,$02,$02,$02,$86,$02,$02,$02,$02,$09,$09,$09,$09
|
|
.byte $11,$18,$00,$00,$12,$01,$10,$37,$12,$01,$01,$38,$66,$65,$64,$38
|
|
.byte $00,$00,$00,$3b,$0f,$0f,$0f,$3c,$b3,$b4,$b5,$b3,$00,$00,$00,$00
|
|
.byte $8b,$00,$00,$00,$8c,$0f,$0f,$0f,$b3,$b4,$b5,$b3,$00,$00,$00,$00
|
|
.byte $01,$01,$01,$38,$01,$01,$01,$38,$01,$01,$01,$38,$01,$01,$01,$38
|
|
.byte $51,$00,$00,$00,$50,$00,$00,$00,$25,$00,$00,$00,$51,$00,$00,$00
|
|
.byte $46,$47,$57,$57,$48,$49,$00,$00,$48,$49,$00,$00,$48,$49,$00,$00
|
|
.byte $57,$57,$97,$96,$00,$00,$99,$98,$00,$00,$99,$98,$00,$00,$99,$98
|
|
.byte $00,$00,$00,$a1,$00,$00,$00,$a0,$00,$00,$00,$75,$00,$00,$00,$a1
|
|
.byte $88,$01,$01,$01,$88,$01,$01,$01,$88,$01,$01,$01,$88,$01,$01,$01
|
|
.byte $48,$4a,$52,$52,$4a,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $52,$52,$9a,$98,$00,$00,$00,$9a,$00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $01,$01,$77,$38,$01,$79,$71,$38,$74,$7a,$01,$32,$12,$01,$33,$02
|
|
.byte $51,$00,$00,$00,$02,$b7,$b8,$b6,$08,$08,$08,$08,$02,$02,$02,$02
|
|
.byte $00,$00,$00,$00,$b8,$b6,$b7,$b8,$08,$08,$08,$08,$02,$02,$02,$02
|
|
.byte $00,$00,$00,$a1,$b6,$b7,$b8,$02,$08,$08,$08,$08,$02,$02,$02,$02
|
|
.byte $88,$27,$01,$01,$88,$21,$29,$01,$82,$01,$2a,$24,$02,$83,$01,$62
|
|
.byte $00,$00,$00,$00,$0f,$0f,$0f,$0f,$02,$b3,$b3,$b4,$50,$00,$00,$00
|
|
.byte $00,$00,$00,$00,$0f,$0f,$0f,$0f,$b4,$b5,$b5,$02,$00,$00,$00,$a0
|
|
.byte $00,$00,$68,$61,$87,$60,$01,$62,$88,$01,$01,$62,$88,$14,$15,$16
|
|
.byte $0a,$0a,$68,$61,$68,$60,$01,$62,$01,$01,$01,$62,$13,$14,$15,$16
|
|
.byte $11,$18,$0a,$0a,$12,$01,$10,$18,$12,$01,$01,$01,$66,$65,$64,$63
|
|
.byte $bf,$b9,$ba,$bb,$c0,$bc,$bd,$be,$bf,$c0,$c1,$c6,$c0,$ba,$bd,$c0
|
|
.byte $c8,$bc,$bd,$be,$c8,$c0,$c1,$bb,$c9,$ba,$bd,$ba,$c8,$c0,$bf,$c0
|
|
.byte $c4,$b9,$c5,$c4,$c0,$bc,$bd,$be,$bf,$c0,$c1,$c6,$c1,$ba,$bd,$c0
|
|
.byte $bf,$b9,$ba,$c6,$c5,$bc,$bd,$c7,$bb,$c0,$c1,$c6,$c0,$ba,$bd,$c7
|
|
.byte $bf,$b9,$ba,$bb,$c0,$bc,$bd,$be,$bf,$c0,$c1,$bb,$c3,$c2,$c3,$c2
|
|
.byte $bf,$b9,$ba,$bb,$c0,$bc,$bd,$be,$bf,$c0,$c1,$bb,$c0,$ba,$bd,$c1
|
|
.byte $bf,$b9,$ba,$bb,$c0,$bc,$bd,$be,$bf,$c0,$b9,$c1,$c9,$bf,$bc,$bb
|
|
.byte $b9,$be,$c8,$c9,$bd,$00,$c2,$bd,$c6,$c7,$bf,$bd,$c8,$c9,$bf,$be
|
|
.byte $bd,$be,$be,$bc,$bb,$be,$be,$bf,$c8,$c9,$c5,$c0,$c1,$c1,$c1,$c1
|
|
.byte $c0,$bd,$bf,$b9,$c9,$bd,$bf,$bd,$c0,$bb,$be,$bc,$c1,$c1,$c1,$c1
|
|
.byte $c7,$c0,$c0,$c4,$c5,$bd,$00,$c4,$c9,$c0,$c0,$c4,$00,$bb,$be,$c4
|
|
.byte $be,$ba,$00,$c4,$c2,$bd,$c0,$c4,$bf,$bd,$c0,$c4,$bf,$bd,$00,$c4
|
|
.byte $02,$02,$02,$02,$02,$02,$a6,$a2,$02,$02,$a8,$02,$02,$02,$a8,$02
|
|
.byte $02,$02,$a8,$02,$06,$06,$aa,$06,$03,$03,$03,$03,$02,$02,$02,$02
|
|
.byte $02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$d6,$02,$02,$da,$d2
|
|
.byte $02,$02,$db,$d4,$06,$06,$06,$d8,$03,$03,$03,$03,$02,$02,$02,$02
|
|
.byte $d5,$dd,$02,$02,$d9,$06,$06,$06,$03,$03,$03,$03,$02,$02,$02,$02
|
|
.byte $02,$02,$02,$02,$02,$02,$02,$02,$d7,$02,$02,$02,$d3,$dc,$02,$02
|
|
.byte $02,$a9,$02,$02,$06,$ab,$06,$06,$03,$03,$03,$03,$02,$02,$02,$02
|
|
.byte $06,$06,$aa,$06,$55,$a4,$56,$a3,$03,$03,$03,$03,$02,$02,$02,$02
|
|
.byte $06,$ab,$06,$06,$a4,$56,$a3,$a5,$03,$03,$03,$03,$02,$02,$02,$02
|
|
.byte $c1,$c1,$c1,$c1,$b9,$be,$ba,$be,$c6,$c7,$bd,$c2,$c8,$c9,$bb,$bf
|
|
.byte $c1,$c1,$c1,$c1,$be,$ba,$c5,$00,$c0,$bd,$c0,$c0,$be,$bb,$be,$be
|
|
.byte $c3,$c6,$c7,$c0,$c3,$c8,$c9,$c5,$c3,$be,$be,$ba,$c3,$00,$c2,$bd
|
|
.byte $c3,$c5,$bf,$bb,$c3,$be,$bf,$be,$c3,$00,$bf,$bf,$c3,$c0,$c0,$c0
|
|
|
|
; palette data - level 2/4 (#$76 bytes)
|
|
; 1 byte per block
|
|
; xx.. .... color for lower-right corner
|
|
; ..xx .... color for lower-left corner
|
|
; .... xx.. color for upper-right corner
|
|
; .... ..xx color for upper-left corner
|
|
level_2_palette_data:
|
|
level_4_palette_data:
|
|
.byte $55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$ff,$55,$55,$55
|
|
.byte $55,$55,$55,$55,$55,$55,$55,$55,$55
|
|
|
|
; each byte is the palette for an entire super-tile
|
|
; updates values in the attribute table
|
|
level_2_nametable_update_palette_data:
|
|
level_4_nametable_update_palette_data:
|
|
.byte $55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55
|
|
.byte $55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55
|
|
.byte $55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55
|
|
.byte $55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55
|
|
.byte $55,$55,$55,$55,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $ff,$5f,$ff,$5f,$5f,$ff,$5f,$5f,$5f,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $00,$00,$00,$00,$00,$00,$00
|
|
|
|
; CPU address $8ef8
|
|
level_3_supertile_data:
|
|
.byte $01,$02,$01,$02,$11,$12,$11,$12,$44,$45,$46,$47,$54,$55,$56,$57
|
|
.byte $40,$41,$42,$43,$50,$51,$52,$53,$01,$02,$01,$02,$11,$12,$11,$12
|
|
.byte $00,$00,$7c,$7d,$00,$8b,$8c,$00,$8b,$9b,$9c,$00,$aa,$ab,$00,$8b
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$7c,$7d,$00,$00,$8c,$00,$00,$00
|
|
.byte $01,$02,$01,$02,$11,$12,$11,$12,$0c,$0d,$0e,$0f,$1c,$1d,$1e,$1f
|
|
.byte $08,$09,$0a,$0b,$18,$19,$1a,$1b,$01,$02,$01,$02,$11,$12,$11,$12
|
|
.byte $08,$09,$0a,$0b,$18,$19,$1a,$1b,$0c,$0d,$0e,$0f,$1c,$1d,$1e,$1f
|
|
.byte $03,$04,$04,$04,$d1,$d2,$d2,$d2,$be,$3f,$3e,$3f,$d4,$5f,$5e,$5f
|
|
.byte $04,$05,$05,$04,$d2,$32,$32,$d2,$3e,$3f,$3e,$3f,$5e,$5f,$5e,$5f
|
|
.byte $04,$04,$04,$06,$d2,$d2,$d2,$33,$3e,$3f,$3e,$bd,$5e,$5f,$5f,$c3
|
|
.byte $10,$00,$07,$38,$00,$00,$00,$00,$00,$00,$00,$3a,$39,$00,$00,$d5
|
|
.byte $be,$35,$36,$37,$d4,$5f,$5e,$5f,$d3,$4f,$4e,$4f,$d4,$5f,$5e,$5f
|
|
.byte $34,$35,$36,$37,$5e,$5f,$5e,$5f,$4e,$4f,$4e,$4f,$5e,$5f,$5e,$5f
|
|
.byte $34,$35,$36,$bd,$5e,$5f,$5e,$c3,$4e,$4f,$4e,$c9,$5e,$5f,$5e,$c3
|
|
.byte $4e,$4f,$4e,$c9,$5e,$5f,$5e,$c3,$4e,$4f,$4e,$c9,$5e,$5f,$5e,$c3
|
|
.byte $d3,$4f,$4e,$4f,$d4,$5f,$5e,$5f,$d3,$4f,$4e,$4f,$d4,$5f,$5e,$5f
|
|
.byte $ea,$eb,$aa,$ab,$ff,$98,$da,$d6,$fc,$70,$ea,$eb,$c6,$dc,$ff,$98
|
|
.byte $d3,$4f,$4e,$4f,$d4,$5f,$5e,$5f,$01,$02,$01,$02,$11,$12,$11,$12
|
|
.byte $4e,$4f,$4e,$4f,$5e,$5f,$5e,$5f,$01,$02,$01,$02,$11,$12,$11,$12
|
|
.byte $4a,$4b,$4c,$4d,$5a,$5b,$5c,$5d,$d0,$bf,$cc,$cd,$ca,$cb,$ce,$cf
|
|
.byte $49,$4b,$4c,$4d,$59,$5b,$5c,$5d,$48,$bf,$cc,$cd,$58,$cb,$ce,$cf
|
|
.byte $34,$35,$36,$37,$5e,$5f,$5e,$5f,$d3,$4f,$4e,$4f,$d4,$5f,$5e,$5f
|
|
.byte $40,$41,$42,$43,$3b,$51,$52,$53,$c4,$00,$3c,$47,$5e,$c5,$3d,$57
|
|
.byte $d3,$4f,$4e,$c9,$d4,$5f,$5e,$c3,$4e,$4f,$4e,$c9,$5e,$5f,$5e,$c3
|
|
.byte $40,$41,$42,$43,$50,$51,$52,$c2,$44,$c1,$00,$c8,$54,$c0,$c7,$5f
|
|
.byte $4e,$4f,$4e,$c9,$5e,$5f,$5e,$c3,$01,$02,$01,$02,$11,$12,$11,$12
|
|
.byte $4e,$4f,$4e,$4f,$5e,$5f,$5e,$5f,$d3,$4f,$4e,$4f,$d4,$5f,$5e,$5f
|
|
.byte $3e,$3f,$3e,$3f,$5e,$5f,$5e,$5f,$4e,$4f,$4e,$4f,$5e,$5f,$5e,$5f
|
|
.byte $4e,$4f,$4e,$4f,$5e,$5f,$5e,$5f,$4e,$4f,$4e,$c9,$5e,$5f,$5e,$c3
|
|
.byte $3e,$3f,$3e,$3f,$5e,$5f,$5e,$5f,$01,$02,$01,$02,$11,$12,$11,$12
|
|
.byte $08,$09,$0a,$0b,$18,$19,$1a,$15,$0c,$0d,$14,$00,$1c,$13,$00,$00
|
|
.byte $08,$09,$0a,$0b,$00,$19,$1a,$1b,$00,$16,$17,$0f,$00,$00,$00,$1f
|
|
.byte $08,$09,$00,$00,$18,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $40,$41,$42,$43,$50,$51,$52,$c2,$01,$02,$01,$02,$11,$12,$11,$12
|
|
.byte $e6,$e7,$e8,$e9,$f7,$f7,$f6,$d9,$f7,$f7,$fa,$fb,$62,$f7,$f7,$9f
|
|
.byte $01,$02,$01,$02,$11,$12,$11,$12,$00,$16,$17,$0f,$00,$00,$00,$1f
|
|
.byte $3e,$3f,$3e,$3f,$5e,$5f,$5e,$5f,$d3,$4f,$4e,$4f,$d4,$5f,$5e,$5f
|
|
.byte $d3,$4f,$4e,$4f,$d4,$5f,$5e,$5f,$d3,$4f,$4e,$c9,$d4,$5f,$5e,$c3
|
|
.byte $4e,$4f,$c4,$c6,$5e,$5f,$5e,$c3,$4e,$4f,$4e,$c9,$5e,$5f,$5e,$c3
|
|
.byte $d3,$4f,$4e,$c9,$d4,$5f,$5e,$c3,$d3,$4f,$4e,$c9,$d4,$5f,$5e,$c3
|
|
.byte $4e,$4f,$4e,$c9,$5e,$5f,$5e,$c3,$4e,$4f,$4e,$4f,$5e,$5f,$5e,$5f
|
|
.byte $40,$41,$42,$43,$50,$51,$52,$c2,$34,$35,$36,$37,$5e,$5f,$5e,$5f
|
|
.byte $d3,$4f,$4e,$4f,$d4,$5f,$5e,$5f,$4e,$4f,$4e,$4f,$5e,$5f,$5e,$5f
|
|
.byte $40,$41,$42,$43,$50,$51,$52,$53,$be,$35,$36,$37,$d4,$5f,$5e,$5f
|
|
.byte $40,$41,$42,$43,$50,$51,$52,$53,$34,$35,$36,$bd,$5e,$5f,$5e,$c3
|
|
.byte $4e,$4f,$c4,$c6,$5e,$5f,$5e,$5f,$4e,$4f,$4e,$4f,$5e,$5f,$5e,$5f
|
|
.byte $c4,$c6,$4e,$4f,$5e,$5f,$5e,$5f,$4e,$4f,$4e,$4f,$5e,$5f,$5e,$5f
|
|
.byte $c4,$c6,$4e,$4f,$d4,$5f,$5e,$5f,$d3,$4f,$4e,$4f,$d4,$5f,$5e,$5f
|
|
.byte $08,$09,$dc,$c3,$18,$19,$dc,$c3,$0c,$0d,$dc,$c3,$1c,$1d,$dc,$c3
|
|
.byte $b8,$f7,$f7,$62,$b8,$f7,$f7,$f7,$4c,$4d,$f7,$72,$fa,$70,$70,$82
|
|
.byte $62,$f7,$f7,$9f,$f7,$f7,$f7,$9f,$79,$f7,$4e,$4f,$89,$70,$70,$f3
|
|
.byte $c6,$dc,$0a,$0b,$c6,$dc,$1a,$1b,$c6,$dc,$0e,$0f,$c6,$dc,$1e,$1f
|
|
.byte $f7,$dc,$dc,$92,$f7,$dc,$dc,$69,$f7,$dc,$dc,$f7,$f7,$dc,$dc,$f7
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$91,$9a,$00,$00,$50,$5a
|
|
.byte $00,$f4,$f5,$51,$c8,$c5,$c5,$55,$51,$cd,$93,$6d,$52,$53,$54,$55
|
|
.byte $49,$f8,$f9,$00,$56,$6e,$6e,$6f,$46,$47,$48,$49,$56,$57,$58,$59
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$4a,$4b,$00,$00,$5a,$5b,$00,$00
|
|
.byte $00,$00,$00,$00,$60,$61,$00,$00,$00,$71,$80,$00,$00,$81,$90,$80
|
|
.byte $f0,$63,$64,$65,$00,$f0,$74,$75,$00,$00,$84,$85,$00,$c8,$94,$95
|
|
.byte $66,$67,$63,$98,$76,$77,$98,$00,$86,$87,$00,$00,$96,$97,$6f,$00
|
|
.byte $00,$00,$00,$00,$00,$00,$7c,$7d,$00,$8b,$8c,$00,$8b,$9b,$9c,$00
|
|
.byte $00,$00,$00,$00,$00,$00,$60,$61,$00,$00,$00,$71,$00,$00,$00,$81
|
|
.byte $73,$b0,$b1,$a1,$83,$c0,$c1,$db,$80,$00,$ea,$eb,$90,$80,$d5,$d1
|
|
.byte $08,$09,$0a,$0b,$18,$19,$1a,$1b,$0c,$0d,$0e,$0f,$1c,$1d,$1e,$1f
|
|
.byte $08,$09,$fd,$fe,$18,$19,$1a,$1b,$0c,$0d,$0e,$0f,$1c,$1d,$1e,$1f
|
|
.byte $aa,$ba,$b0,$bb,$d0,$ca,$c0,$cb,$e0,$e1,$00,$8b,$da,$d6,$8b,$9b
|
|
.byte $00,$00,$00,$00,$7c,$7d,$00,$00,$8c,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$60,$61,$00,$00,$00,$71
|
|
.byte $60,$61,$00,$00,$00,$71,$80,$00,$00,$81,$90,$80,$80,$00,$a0,$a1
|
|
.byte $a0,$a1,$e0,$e1,$d5,$d1,$f0,$5c,$e0,$e1,$70,$f1,$f0,$5c,$dc,$c3
|
|
.byte $e2,$e3,$e4,$e5,$b3,$68,$f7,$f7,$f2,$f3,$f7,$f7,$b8,$f7,$f7,$62
|
|
|
|
level_3_nametable_update_supertile_data:
|
|
.byte $20,$21,$21,$22,$26,$30,$31,$27,$26,$30,$31,$27,$23,$24,$24,$25 ; #$00 - pill box sensor closed
|
|
.byte $20,$21,$21,$22,$26,$2c,$2d,$27,$26,$2e,$2f,$27,$23,$24,$24,$25 ; #$01 - pill box sensor partially open
|
|
.byte $20,$21,$21,$22,$26,$28,$29,$27,$26,$2a,$2b,$27,$23,$24,$24,$25 ; #$02 - pill box sensor open
|
|
.byte $20,$21,$21,$22,$26,$96,$97,$27,$26,$97,$96,$27,$23,$24,$24,$25 ; #$03 - rotating gun closed
|
|
.byte $20,$21,$21,$22,$26,$94,$95,$27,$26,$95,$94,$27,$23,$24,$24,$25 ; #$04 - rotating gun opening
|
|
.byte $20,$21,$21,$22,$8d,$8e,$8f,$27,$9d,$9e,$9f,$27,$23,$24,$24,$25 ; #$05 - rotating gun facing left
|
|
.byte $20,$21,$21,$22,$8a,$8b,$8c,$27,$26,$9b,$9c,$27,$23,$24,$24,$25 ; #$06 - rotating gun facing left-up
|
|
.byte $20,$82,$21,$22,$26,$92,$93,$27,$26,$a2,$a3,$27,$23,$24,$24,$25 ; #$07 - rotating gun facing left-up (closer to up)
|
|
.byte $20,$66,$67,$22,$26,$76,$77,$27,$26,$86,$87,$27,$23,$24,$24,$25 ; #$08 - rotating gun facing up
|
|
.byte $20,$21,$81,$22,$26,$90,$91,$27,$26,$a0,$a1,$27,$23,$24,$24,$25 ; #$09 - rotating gun facing up up right (closer to up)
|
|
.byte $20,$21,$21,$22,$26,$68,$69,$6a,$26,$78,$79,$27,$23,$24,$24,$25 ; #$0a - rotating gun facing up right
|
|
.byte $20,$21,$21,$22,$26,$6d,$6e,$6f,$26,$7d,$7e,$7f,$23,$24,$24,$25 ; #$0b - rotating gun facing right
|
|
.byte $20,$21,$21,$22,$26,$88,$89,$27,$26,$98,$99,$9a,$23,$24,$24,$25 ; #$0c - rotating gun facing right down
|
|
.byte $20,$21,$21,$22,$26,$62,$63,$27,$26,$72,$73,$27,$23,$24,$83,$25 ; #$0d - rotating gun facing right down down (closer to down)
|
|
.byte $20,$21,$21,$22,$26,$64,$65,$27,$26,$74,$75,$27,$23,$84,$85,$25 ; #$0e - rotating gun facing down
|
|
.byte $20,$21,$21,$22,$26,$60,$61,$27,$26,$70,$71,$27,$23,$80,$24,$25 ; #$0f - rotating gun facing down left
|
|
.byte $20,$21,$21,$22,$26,$6b,$6c,$27,$7a,$7b,$7c,$27,$23,$24,$24,$25 ; #$10 - rotating gun facing down left left (closer to left)
|
|
.byte $a4,$a5,$a6,$a7,$b4,$b5,$b6,$b7,$b0,$b1,$b2,$b3,$ac,$ad,$ae,$af ; #$11 - red turret facing left
|
|
.byte $bc,$a5,$a6,$a7,$a8,$a9,$b6,$b7,$b8,$b9,$b2,$b3,$ac,$ad,$ae,$af ; #$12 - red turret facing up left
|
|
.byte $aa,$ab,$a6,$a7,$ba,$bb,$b6,$b7,$b8,$b9,$b2,$b3,$ac,$ad,$ae,$af ; #$13 - red turret facing up up left (almost straight up)
|
|
.byte $40,$41,$42,$43,$50,$51,$52,$53,$a4,$a5,$a6,$a7,$b4,$b5,$b6,$b7 ; #$14 - red turret 1/2 rising from ground rocky background
|
|
.byte $4e,$4f,$4e,$4f,$5e,$5f,$5e,$5f,$a4,$a5,$a6,$a7,$b4,$b5,$b6,$b7 ; #$15 - red turret 1/2 rising from ground waterfall background
|
|
.byte $40,$41,$42,$43,$50,$51,$52,$53,$44,$45,$46,$47,$54,$55,$56,$57 ; #$16 - red turret and rotating gun rock background
|
|
.byte $4e,$4f,$4e,$4f,$5e,$5f,$5e,$5f,$4e,$4f,$4e,$4f,$5e,$5f,$5e,$5f ; #$17 - red turret waterfall background
|
|
.byte $00,$00,$00,$00,$a4,$a5,$a6,$a7,$b4,$b5,$b6,$b7,$b0,$b1,$b2,$b3 ; #$18 - red turret 3/4 rising from ground black background
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; #$19 - blank super-tile
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$be,$00,$00,$be,$dd,$00,$00,$ec,$ed
|
|
.byte $be,$00,$00,$00,$ce,$00,$00,$00,$de,$df,$00,$00,$ee,$ef,$00,$00
|
|
.byte $e2,$e3,$5d,$00,$b3,$8f,$5f,$00,$f2,$8f,$5d,$00,$b8,$af,$00,$00
|
|
.byte $5d,$5e,$e8,$e9,$00,$8f,$5f,$d9,$00,$7f,$5f,$fb,$00,$00,$7f,$9f
|
|
.byte $b8,$5d,$00,$00,$b8,$00,$00,$00,$4c,$5e,$00,$00,$fa,$70,$6c,$00
|
|
.byte $00,$00,$5f,$9f,$00,$00,$00,$9f,$00,$00,$5d,$4f,$00,$00,$6c,$f3
|
|
.byte $64,$65,$66,$67,$74,$75,$76,$77,$84,$85,$86,$87,$94,$95,$96,$97 ; #$20 - boss mouth closed (top half)
|
|
.byte $a4,$a5,$a6,$a7,$b4,$b5,$b6,$b7,$c4,$b5,$b6,$c7,$d4,$a6,$a5,$d7 ; #$21 - boss mouth closed (bottom half)
|
|
.byte $64,$6a,$6b,$67,$74,$7a,$7b,$77,$78,$00,$00,$7e,$88,$8a,$8d,$8e ; #$22 - boss mouth partially open (top half)
|
|
.byte $9d,$9e,$ad,$ae,$b4,$b5,$b6,$b7,$c4,$b5,$b6,$c7,$d4,$a6,$a5,$d7 ; #$23 - boss mouth partially open (bottom half)
|
|
.byte $64,$bc,$bd,$67,$74,$7a,$7b,$77,$78,$00,$00,$7e,$ac,$00,$00,$bf ; #$24 - boss mouth fully open (top half)
|
|
.byte $88,$8a,$8d,$8e,$cc,$9e,$ad,$cf,$c4,$b5,$b6,$c7,$d4,$a6,$a5,$d7 ; #$25 - boss mouth fully open (bottom half)
|
|
.byte $f7,$dc,$dc,$af,$f7,$dc,$dc,$69,$f7,$dc,$dc,$f7,$f7,$dc,$dc,$f7
|
|
.byte $6c,$6c,$dc,$f7,$69,$dc,$dc,$f7,$f7,$dc,$dc,$f7,$f7,$dc,$dc,$f7
|
|
.byte $99,$dc,$dc,$f7,$69,$dc,$dc,$f7,$f7,$dc,$dc,$f7,$f7,$dc,$dc,$f7
|
|
.byte $a2,$a3,$a4,$a5,$b2,$a4,$b4,$b5,$c2,$b4,$c4,$b5,$d2,$d3,$d4,$a6
|
|
.byte $a6,$a7,$a8,$a9,$b6,$b7,$a7,$b9,$b6,$c7,$b7,$c9,$a5,$d7,$d8,$d2
|
|
|
|
level_3_palette_data:
|
|
.byte $50,$05,$aa,$20,$00,$00,$00,$fa,$fa,$fa,$55,$ff,$ff,$ff,$ff,$ff
|
|
.byte $9a,$0f,$0f,$ff,$ff,$ff,$75,$ff,$d5,$0f,$ff,$ff,$ff,$0f,$00,$00
|
|
.byte $00,$05,$55,$00,$ff,$ff,$ff,$ff,$ff,$f5,$ff,$f5,$f5,$ff,$ff,$ff
|
|
.byte $55,$55,$55,$55,$55,$aa,$ba,$ea,$aa,$aa,$aa,$aa,$aa,$aa,$aa,$55
|
|
.byte $55,$aa,$aa,$aa,$aa,$6a,$55
|
|
|
|
; each byte is the palette for an entire super-tile
|
|
; updates values in the attribute table
|
|
level_3_nametable_update_palette_data:
|
|
.byte $aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa
|
|
.byte $aa,$aa,$aa,$aa,$a5,$af,$55,$ff,$aa,$00,$88,$22,$55,$55,$51,$44
|
|
.byte $aa,$aa,$aa,$aa,$aa,$aa,$55,$55,$55,$aa,$aa,$00,$00,$00,$00,$00
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00
|
|
|
|
; CPU address $9698
|
|
level_5_supertile_data:
|
|
.byte $69,$69,$69,$69,$69,$69,$69,$69,$69,$69,$69,$69,$69,$69,$69,$69
|
|
.byte $02,$03,$03,$12,$0c,$0d,$0e,$0f,$42,$43,$44,$45,$46,$47,$48,$49
|
|
.byte $05,$12,$04,$0b,$0c,$0d,$0e,$0f,$42,$43,$44,$45,$46,$47,$48,$49
|
|
.byte $4a,$4b,$4c,$4d,$4e,$4f,$50,$51,$4d,$52,$4c,$4f,$49,$4d,$4e,$48
|
|
.byte $48,$4c,$4e,$4f,$aa,$a9,$aa,$a9,$05,$12,$04,$0b,$0c,$0d,$0e,$0f
|
|
.byte $69,$69,$69,$69,$69,$69,$69,$b6,$69,$bb,$5e,$b7,$5f,$bc,$60,$b8
|
|
.byte $61,$be,$62,$b9,$bf,$b0,$b2,$b3,$61,$be,$62,$b9,$bf,$b0,$b2,$b3
|
|
.byte $69,$b4,$67,$ac,$00,$ab,$67,$ac,$69,$ab,$67,$ac,$00,$ab,$00,$ac
|
|
.byte $a9,$aa,$69,$b6,$69,$69,$69,$b7,$69,$bb,$5e,$b8,$5f,$bc,$60,$b9
|
|
.byte $69,$00,$69,$00,$00,$00,$00,$00,$02,$03,$03,$12,$0c,$0d,$0e,$0f
|
|
.byte $42,$43,$4e,$5d,$46,$47,$50,$5b,$4a,$4b,$4a,$a8,$a9,$aa,$aa,$00
|
|
.byte $4a,$4b,$4c,$4d,$a9,$aa,$a9,$aa,$02,$03,$03,$12,$0c,$0d,$0e,$0f
|
|
.byte $58,$4b,$4c,$4d,$69,$a9,$a9,$aa,$05,$03,$03,$12,$0c,$0d,$0e,$0f
|
|
.byte $42,$43,$44,$45,$46,$47,$48,$49,$4a,$4b,$4c,$4d,$4e,$4f,$50,$51
|
|
.byte $69,$b4,$67,$ac,$69,$ab,$67,$ac,$05,$12,$04,$0b,$0c,$0d,$0e,$0f
|
|
.byte $03,$57,$69,$69,$0e,$0f,$69,$69,$44,$59,$69,$69,$4c,$5a,$69,$69
|
|
.byte $f5,$5d,$69,$b6,$50,$5b,$bb,$b8,$f3,$5c,$66,$64,$52,$59,$65,$62
|
|
.byte $42,$43,$44,$49,$46,$47,$4c,$5a,$4a,$4b,$4e,$5d,$a9,$aa,$a9,$a8
|
|
.byte $69,$69,$54,$4d,$69,$69,$55,$4f,$69,$69,$56,$52,$69,$69,$a9,$aa
|
|
.byte $4c,$5d,$69,$69,$a9,$a8,$69,$69,$02,$03,$03,$12,$0c,$0d,$0e,$0f
|
|
.byte $4e,$5d,$00,$00,$50,$5b,$00,$00,$4a,$5c,$00,$00,$52,$59,$00,$00
|
|
.byte $06,$06,$06,$1a,$11,$11,$11,$11,$f2,$f2,$f2,$f2,$f2,$f2,$f2,$f2
|
|
.byte $42,$43,$44,$45,$46,$47,$48,$49,$4a,$4b,$4c,$4d,$a9,$aa,$a9,$aa
|
|
.byte $69,$00,$69,$00,$00,$00,$00,$00,$69,$00,$01,$03,$00,$00,$0c,$0d
|
|
.byte $69,$00,$69,$00,$63,$00,$00,$b6,$64,$bb,$5e,$b7,$65,$bc,$60,$b8
|
|
.byte $66,$be,$62,$b9,$ba,$b0,$b2,$b3,$66,$be,$62,$b9,$ba,$b0,$b2,$b3
|
|
.byte $06,$06,$06,$06,$11,$11,$11,$11,$f2,$f2,$f2,$f2,$f2,$f2,$f2,$f2
|
|
.byte $17,$1b,$16,$1c,$11,$11,$d8,$d9,$f2,$f2,$f2,$f2,$f2,$f2,$f2,$f2
|
|
.byte $00,$6a,$6a,$6a,$7b,$7c,$6b,$6c,$6d,$7f,$6e,$80,$84,$85,$86,$87
|
|
.byte $6a,$6a,$69,$00,$6b,$6c,$7d,$00,$6f,$81,$70,$00,$6f,$88,$89,$00
|
|
.byte $71,$8a,$72,$85,$71,$8a,$8d,$8e,$71,$8a,$75,$94,$71,$8a,$00,$95
|
|
.byte $15,$19,$14,$13,$1d,$18,$18,$18,$f2,$f2,$f2,$f2,$f2,$f2,$f2,$f2
|
|
.byte $13,$e4,$13,$e4,$18,$18,$18,$18,$f2,$f2,$f2,$f2,$f2,$f2,$f2,$f2
|
|
.byte $4a,$4b,$4c,$4d,$a9,$aa,$50,$51,$03,$57,$58,$4f,$0e,$0f,$00,$a9
|
|
.byte $01,$03,$03,$12,$0c,$0d,$0e,$0f,$f0,$0d,$f1,$0f,$50,$4c,$48,$49
|
|
.byte $4a,$4b,$4c,$4d,$4e,$4f,$50,$51,$4d,$52,$4c,$4f,$aa,$a9,$aa,$a9
|
|
.byte $f3,$4b,$f5,$5d,$4b,$4c,$50,$5b,$4c,$4d,$f4,$5c,$a9,$aa,$52,$59
|
|
.byte $54,$4b,$4c,$4d,$55,$4f,$4d,$51,$58,$52,$4a,$4f,$00,$a9,$aa,$a9
|
|
.byte $f0,$43,$f1,$45,$46,$47,$48,$49,$f3,$4b,$f4,$4d,$4e,$4f,$50,$51
|
|
.byte $f0,$43,$f1,$5d,$55,$47,$48,$5b,$58,$4b,$f4,$5a,$00,$a9,$aa,$aa
|
|
.byte $01,$12,$04,$0b,$0c,$0d,$0e,$0f,$55,$43,$44,$45,$50,$4c,$48,$49
|
|
.byte $42,$43,$44,$45,$46,$47,$48,$49,$58,$4b,$4c,$4d,$00,$a9,$a9,$aa
|
|
.byte $54,$4b,$4c,$4d,$55,$4f,$50,$51,$56,$52,$4c,$4f,$55,$4d,$4e,$48
|
|
.byte $02,$03,$03,$57,$0c,$0d,$0e,$0f,$42,$43,$44,$59,$46,$47,$4c,$5a
|
|
.byte $4a,$4b,$4e,$5d,$4e,$4f,$50,$5b,$4d,$52,$4a,$a8,$aa,$a9,$aa,$00
|
|
.byte $4a,$4b,$4e,$5d,$4e,$4f,$50,$5b,$4d,$52,$4c,$5c,$49,$4d,$52,$59
|
|
.byte $4a,$4b,$4e,$a8,$a9,$aa,$aa,$00,$02,$03,$03,$12,$0c,$0d,$0e,$0f
|
|
.byte $69,$00,$69,$00,$00,$00,$00,$00,$01,$12,$04,$0b,$0c,$0d,$0e,$0f
|
|
.byte $69,$00,$69,$00,$00,$00,$00,$00,$02,$03,$03,$57,$0c,$0d,$0e,$0f
|
|
.byte $c6,$d7,$c0,$c0,$c6,$d7,$c0,$c0,$c6,$d7,$c0,$c0,$c6,$d7,$c0,$c0
|
|
.byte $48,$4c,$4e,$4f,$aa,$a9,$aa,$a9,$02,$03,$03,$57,$0c,$0d,$0e,$0f
|
|
.byte $42,$43,$44,$59,$46,$47,$4c,$5a,$4a,$4b,$4e,$5d,$4e,$4f,$50,$5b
|
|
.byte $48,$4c,$47,$4d,$4a,$4a,$4b,$4c,$4e,$4b,$4c,$50,$a9,$aa,$a9,$aa
|
|
.byte $c0,$c1,$c1,$c0,$c1,$c1,$c0,$c1,$c0,$c1,$c0,$c0,$c0,$c0,$c0,$c0
|
|
.byte $c2,$c2,$c2,$c2,$c8,$c8,$c8,$c8,$c0,$c0,$c0,$c0,$c0,$c1,$c0,$c1
|
|
.byte $ed,$ec,$ed,$ec,$c0,$c0,$c0,$c1,$c1,$c0,$c0,$c0,$c0,$c0,$c1,$c0
|
|
.byte $63,$00,$00,$bb,$64,$bb,$5e,$b7,$65,$bc,$60,$b8,$66,$be,$64,$b0
|
|
.byte $69,$bb,$5e,$00,$5f,$bc,$60,$bd,$61,$be,$62,$b1,$61,$b0,$b2,$b1
|
|
.byte $c0,$c0,$c0,$c0,$ee,$af,$ef,$c0,$c0,$c0,$c0,$c1,$c1,$c0,$c0,$c0
|
|
.byte $69,$00,$69,$68,$00,$ae,$00,$00,$69,$00,$69,$00,$00,$00,$00,$00
|
|
.byte $68,$00,$69,$00,$00,$00,$00,$68,$69,$68,$69,$00,$00,$00,$00,$ae
|
|
.byte $f3,$4b,$f5,$5d,$4e,$4f,$50,$5b,$4d,$52,$f4,$5c,$49,$4d,$52,$59
|
|
.byte $05,$03,$03,$57,$0c,$0d,$0e,$0f,$f0,$0d,$f1,$0f,$46,$47,$48,$59
|
|
.byte $ee,$af,$ef,$c0,$c1,$c0,$c0,$c0,$c0,$c0,$c1,$c0,$c0,$c0,$c0,$c0
|
|
.byte $01,$03,$03,$57,$0c,$0d,$0e,$0f,$f0,$43,$f1,$45,$46,$47,$48,$49
|
|
.byte $00,$00,$69,$b6,$00,$bb,$5e,$b7,$ba,$b0,$5e,$b8,$61,$b0,$60,$b9
|
|
.byte $63,$00,$a9,$aa,$64,$bd,$00,$00,$62,$bb,$5e,$00,$b2,$bc,$60,$bd
|
|
.byte $69,$b4,$69,$00,$00,$ab,$b5,$00,$69,$ab,$69,$00,$00,$ab,$b5,$00
|
|
.byte $69,$00,$69,$00,$63,$00,$00,$00,$64,$bb,$5e,$00,$65,$bc,$60,$bd
|
|
.byte $66,$be,$62,$b1,$ba,$b0,$b2,$b3,$66,$be,$62,$b1,$ba,$b0,$b2,$b3
|
|
.byte $f6,$4b,$f4,$4d,$55,$4f,$50,$51,$f7,$52,$f4,$4f,$55,$4d,$4e,$48
|
|
.byte $69,$ac,$69,$00,$00,$ac,$00,$00,$05,$12,$04,$0b,$0c,$0d,$0e,$0f
|
|
.byte $ea,$c6,$c5,$c0,$ea,$c6,$c5,$c0,$ea,$c6,$c5,$c0,$ea,$c6,$e3,$c0
|
|
.byte $c7,$e8,$c0,$c0,$c3,$e7,$c7,$e8,$c0,$e4,$c3,$e7,$c0,$e4,$c0,$e4
|
|
.byte $69,$d4,$cd,$ce,$de,$d3,$0a,$eb,$cc,$d6,$09,$eb,$c6,$d7,$c0,$c0
|
|
.byte $ce,$ce,$cf,$db,$eb,$1f,$e0,$e1,$e9,$cc,$ca,$c0,$ea,$c6,$e3,$c0
|
|
.byte $fa,$c4,$fe,$69,$e6,$fb,$c4,$fe,$c0,$e6,$fb,$c4,$c0,$c0,$e6,$fb
|
|
.byte $69,$00,$69,$00,$00,$00,$00,$00,$69,$69,$f8,$e2,$00,$d1,$d2,$d2
|
|
.byte $69,$00,$69,$00,$00,$00,$00,$00,$f9,$f9,$f9,$f9,$d2,$d2,$d2,$da
|
|
.byte $69,$00,$69,$00,$00,$00,$00,$00,$c9,$69,$69,$69,$e5,$fe,$69,$69
|
|
.byte $63,$69,$00,$00,$64,$b6,$63,$00,$65,$be,$62,$b1,$65,$bc,$b2,$b3
|
|
|
|
level_5_nametable_update_supertile_data:
|
|
.byte $20,$21,$21,$22,$26,$30,$31,$27,$26,$30,$31,$27,$23,$24,$24,$25 ; #$00 - pill box sensor closed
|
|
.byte $20,$21,$21,$22,$26,$2c,$2d,$27,$26,$2e,$2f,$27,$23,$24,$24,$25 ; #$01 - pill box sensor partially open
|
|
.byte $20,$21,$21,$22,$26,$28,$29,$27,$26,$2a,$2b,$27,$23,$24,$24,$25 ; #$02 - pill box sensor open
|
|
.byte $6c,$6d,$69,$69,$71,$72,$73,$69,$78,$76,$97,$95,$78,$99,$98,$96 ; #$03 - boss ufo top closing (right) (boss_ufo_supertile_update_ptr_tbl_2)
|
|
.byte $6c,$6d,$69,$69,$71,$72,$73,$69,$78,$76,$9a,$69,$78,$9b,$98,$96 ; #$04 - boss ufo top closing (right) (boss_ufo_supertile_update_ptr_tbl_2)
|
|
.byte $6c,$6d,$69,$69,$71,$72,$9c,$69,$78,$9d,$69,$69,$78,$9e,$98,$96 ; #$05 - boss ufo top closing (right) (boss_ufo_supertile_update_ptr_tbl_2)
|
|
.byte $7f,$7e,$7e,$80,$84,$82,$81,$69,$a1,$9f,$85,$69,$a3,$69,$69,$69 ; #$06 - boss ufo - bottom thruster half throttle (right) (boss_ufo_supertile_update_ptr_tbl_3)
|
|
.byte $7d,$7e,$7e,$7f,$69,$81,$82,$83,$69,$85,$86,$87,$69,$69,$69,$89 ; #$07 - boss ufo - bottom thruster full throttle (left) (boss_ufo_supertile_update_ptr_tbl/boss_ufo_supertile_update_ptr_tbl_3)
|
|
.byte $7f,$7e,$7e,$80,$84,$82,$81,$69,$88,$86,$85,$69,$8a,$69,$69,$69 ; #$08 - boss ufo - bottom thruster full throttle (right) (boss_ufo_supertile_update_ptr_tbl/boss_ufo_supertile_update_ptr_tbl_3)
|
|
.byte $69,$69,$6a,$6b,$69,$6e,$6f,$70,$8b,$8d,$76,$77,$8c,$8e,$8f,$77 ; #$09 - boss ufo top closing (left) (boss_ufo_supertile_update_ptr_tbl_2)
|
|
.byte $69,$69,$6a,$6b,$69,$6e,$6f,$70,$69,$90,$76,$77,$8c,$8e,$91,$77 ; #$0a - boss ufo top closing (left) (boss_ufo_supertile_update_ptr_tbl_2)
|
|
.byte $69,$69,$6a,$6b,$69,$92,$6f,$70,$69,$69,$93,$77,$8c,$8e,$94,$77 ; #$0b - boss ufo top closing (left) (boss_ufo_supertile_update_ptr_tbl_2)
|
|
.byte $7d,$7e,$7e,$7f,$69,$81,$82,$83,$69,$85,$9f,$a0,$69,$69,$69,$a2 ; #$0c - boss ufo - bottom thruster half throttle (left) (boss_ufo_supertile_update_ptr_tbl_3)
|
|
.byte $69,$69,$6a,$6b,$69,$6e,$6f,$70,$74,$75,$76,$77,$74,$7b,$7c,$77 ; #$0d - boss ufo - blue top fully open (left) (boss_ufo_supertile_update_ptr_tbl/boss_ufo_supertile_update_ptr_tbl_2)
|
|
.byte $6c,$6d,$69,$69,$71,$72,$73,$69,$78,$76,$79,$7a,$78,$7c,$7b,$7a ; #$0e - boss ufo - blue top fully open (right) (boss_ufo_supertile_update_ptr_tbl/boss_ufo_supertile_update_ptr_tbl_2)
|
|
.byte $69,$00,$69,$00,$9a,$9b,$9c,$7b,$69,$00,$69,$7e,$00,$00,$82,$83 ; #$0f - tank turret aim code #$0c (straight left)
|
|
.byte $73,$8b,$69,$87,$91,$92,$8f,$87,$76,$77,$78,$6c,$96,$97,$98,$99 ; #$10 - tank wheel
|
|
.byte $74,$8c,$6c,$00,$90,$91,$92,$93,$6b,$76,$77,$78,$99,$96,$97,$98 ; #$11 - tank wheel
|
|
.byte $69,$00,$69,$00,$00,$00,$9f,$7b,$9d,$9e,$a0,$7e,$00,$00,$82,$83 ; #$12 - tank turret aim code #$0b (down to the left)
|
|
.byte $69,$00,$69,$00,$00,$00,$a1,$7b,$69,$a2,$a3,$7e,$00,$a4,$82,$83 ; #$13 - tank turret aim code #$0a (far down as possible)
|
|
.byte $73,$8b,$69,$87,$91,$92,$8f,$87,$79,$77,$7a,$6c,$a5,$a6,$a7,$99 ; #$14 - tank wheel
|
|
.byte $74,$8c,$6c,$00,$90,$91,$92,$93,$6b,$79,$77,$7a,$99,$a5,$a6,$a7 ; #$15 - tank wheel
|
|
.byte $cd,$ce,$ce,$ce,$d5,$dc,$dd,$de,$cb,$69,$69,$cc,$69,$69,$00,$c6 ; #$16 - boss screen open door top
|
|
.byte $69,$69,$69,$c6,$69,$69,$69,$c6,$69,$69,$69,$c6,$69,$69,$69,$c6 ; #$17 - boss screen open door
|
|
.byte $07,$19,$14,$14,$1d,$18,$18,$18,$f2,$f2,$f2,$f2,$f2,$f2,$f2,$f2 ; #$18 - boss screen open door bottom
|
|
.byte $4a,$4b,$4c,$4d,$4e,$4f,$50,$51,$4d,$52,$4c,$4f,$49,$4d,$4e,$48 ; #$19 - snowy rock tile
|
|
.byte $42,$43,$44,$45,$46,$47,$48,$49,$4a,$4b,$4c,$4d,$4e,$4f,$50,$51 ; #$1a - snowy rock tile
|
|
.byte $69,$69,$69,$69,$69,$69,$69,$69,$69,$69,$69,$69,$69,$69,$69,$69 ; #$1b - all black (used to make boss ufo invisible, and tank)
|
|
|
|
level_5_palette_data:
|
|
.byte $55,$00,$00,$00,$00,$55,$55,$55,$54,$00,$00,$00,$00,$00,$05,$00
|
|
.byte $44,$00,$00,$00,$00,$00,$00,$00,$55,$55,$00,$00,$ea,$ba,$ea,$00
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $00,$00,$00,$00,$00,$ff,$ff,$ff,$55,$55,$ff,$00,$00,$00,$00,$ff
|
|
.byte $00,$55,$51,$55,$55,$55,$00,$05,$00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $55
|
|
|
|
; each byte is the palette for an entire super-tile
|
|
; updates values in the attribute table
|
|
level_5_nametable_update_palette_data:
|
|
.byte $aa,$aa,$aa,$aa,$aa,$aa,$ff,$ff,$ff,$aa,$aa,$aa,$ff,$aa,$aa,$8a
|
|
.byte $ae,$ab,$a8,$a8,$ae,$ab,$00,$11,$00,$00,$00,$00,$00,$00,$00
|
|
|
|
; nametable animation pattern table tiles - level 6 (#$e * #$5 = #$46 bytes)
|
|
; bytes 1 - 4 are the pattern table tiles to draw
|
|
; byte 0 specifies to use the default of #$02 rows of #$02 pattern table tiles each row
|
|
; byte 0 specifies only #$01 row of #$02 tiles is updated instead of the default of #$02
|
|
; CPU address $9dd8
|
|
level_6_tile_animation:
|
|
.byte $01,$00,$00,$00,$00 ; 80 beam - nothing (black tiles)
|
|
.byte $01,$1a,$0c,$1b,$1c ; 81 beam right - beam origin
|
|
.byte $01,$0e,$0c,$1e,$1c ; 82 beam right - beam middle
|
|
.byte $01,$0c,$00,$1c,$00 ; 83 beam right - beam end
|
|
.byte $01,$0d,$0f,$1d,$1f ; 84 beam left - beam origin
|
|
.byte $01,$0d,$0e,$1d,$1e ; 85 beam left - beam middle
|
|
.byte $01,$00,$0d,$00,$1d ; 86 beam left - beam end
|
|
.byte $01,$18,$19,$14,$15 ; 87 beam down - beam origin
|
|
.byte $01,$16,$17,$14,$15 ; 88 beam down - beam middle
|
|
.byte $01,$14,$15,$00,$00 ; 89 beam down - beam end
|
|
.byte $01,$01,$a8,$76,$77 ; 8a boss screen door opening bottom (blank opening and floor)
|
|
.byte $01,$c9,$f8,$c9,$a9 ; 8b boss screen door
|
|
.byte $01,$c9,$a9,$c9,$00 ; 8c boss screen door (blank opening and top of door)
|
|
.byte $01,$c9,$00,$c9,$00 ; 8d boss screen door (side wall and blank opening)
|
|
|
|
; super-tile data - level 6 (#$750 bytes)
|
|
level_6_supertile_data:
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; #$00 - blank super-tile
|
|
.byte $02,$02,$02,$02,$62,$63,$63,$63,$90,$90,$90,$90,$63,$63,$62,$63
|
|
.byte $70,$43,$02,$02,$7a,$7b,$7c,$7d,$72,$73,$e9,$6a,$67,$74,$7e,$48
|
|
.byte $02,$02,$02,$02,$75,$76,$76,$77,$41,$5c,$5d,$5e,$4b,$4d,$4e,$4f
|
|
.byte $02,$02,$02,$02,$75,$76,$76,$77,$41,$5c,$5d,$5e,$4b,$b9,$3e,$3f
|
|
.byte $e5,$85,$00,$00,$e5,$85,$00,$00,$e5,$85,$00,$00,$e5,$85,$00,$00
|
|
.byte $01,$79,$40,$48,$75,$76,$76,$77,$41,$5c,$5d,$5e,$4b,$4d,$4e,$4f
|
|
.byte $71,$00,$00,$00,$00,$00,$00,$00,$02,$02,$02,$02,$75,$76,$76,$77
|
|
.byte $00,$00,$70,$43,$00,$00,$7a,$7b,$00,$00,$72,$84,$00,$00,$00,$78
|
|
.byte $72,$84,$58,$6a,$00,$78,$40,$48,$00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$02,$02,$02,$02,$63,$63,$63,$63
|
|
.byte $01,$04,$00,$00,$75,$77,$00,$00,$e0,$57,$00,$00,$e5,$85,$00,$00
|
|
.byte $02,$02,$02,$02,$7c,$7d,$75,$76,$58,$6a,$41,$5c,$40,$48,$4b,$4d
|
|
.byte $02,$02,$02,$02,$63,$63,$63,$63,$00,$00,$e4,$54,$00,$00,$82,$64
|
|
.byte $5b,$5b,$71,$00,$6b,$6b,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $70,$43,$02,$02,$7a,$7b,$7c,$7d,$72,$84,$58,$6a,$00,$78,$40,$48
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$02,$02,$02,$02,$75,$76,$76,$77
|
|
.byte $4a,$5b,$5b,$5b,$44,$6b,$6b,$6b,$00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$70,$43,$02,$02,$7a,$7b,$7c,$7d
|
|
.byte $41,$5c,$5d,$5e,$4b,$b9,$3e,$3f,$71,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $01,$79,$40,$48,$62,$63,$63,$63,$90,$90,$90,$90,$63,$63,$62,$63
|
|
.byte $00,$00,$4a,$5b,$00,$00,$44,$6b,$00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $02,$02,$01,$04,$62,$63,$63,$63,$90,$90,$90,$90,$63,$63,$62,$63
|
|
.byte $41,$5c,$5d,$5e,$4b,$4d,$4e,$4f,$4a,$5b,$5b,$5b,$44,$6b,$6b,$6b
|
|
.byte $4a,$5b,$5b,$5b,$44,$6b,$6b,$6b,$02,$02,$02,$02,$75,$76,$76,$77
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$aa,$ae,$ab,$ac,$ad,$f8
|
|
.byte $02,$02,$e1,$80,$63,$63,$63,$63,$00,$00,$e4,$54,$00,$00,$82,$64
|
|
.byte $00,$00,$e3,$54,$00,$00,$e3,$64,$00,$00,$e3,$64,$00,$00,$e3,$64
|
|
.byte $02,$02,$02,$02,$63,$63,$63,$63,$00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $64,$60,$63,$63,$63,$63,$51,$63,$64,$64,$64,$00,$64,$64,$54,$00
|
|
.byte $02,$02,$e1,$80,$62,$63,$63,$63,$90,$90,$90,$90,$63,$63,$62,$63
|
|
.byte $00,$00,$e3,$54,$00,$00,$e3,$64,$02,$02,$e1,$80,$63,$63,$63,$63
|
|
.byte $00,$00,$e4,$54,$00,$00,$82,$64,$00,$00,$e3,$64,$00,$00,$e3,$64
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$03,$42,$00,$00,$49,$53
|
|
.byte $96,$00,$68,$69,$63,$63,$63,$6f,$90,$90,$90,$90,$63,$63,$62,$63
|
|
.byte $41,$57,$00,$00,$4b,$85,$00,$00,$71,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $96,$97,$02,$02,$62,$63,$63,$63,$90,$90,$90,$90,$63,$63,$62,$63
|
|
.byte $4b,$5b,$5b,$5b,$4b,$6b,$6b,$6b,$90,$90,$90,$90,$63,$63,$62,$63
|
|
.byte $4a,$5b,$5b,$5b,$44,$6b,$6b,$6b,$70,$43,$02,$02,$7a,$7b,$7c,$7d
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$ae,$af,$b0,$b1,$b2,$b3,$b4,$b5
|
|
.byte $00,$00,$00,$00,$63,$63,$62,$63,$00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $66,$66,$66,$66,$5f,$5f,$5f,$5f,$54,$00,$64,$00,$64,$63,$63,$62
|
|
.byte $4c,$56,$66,$66,$4c,$56,$5f,$5f,$4c,$56,$00,$00,$4c,$56,$63,$63
|
|
.byte $00,$00,$03,$42,$00,$00,$49,$53,$00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $02,$02,$e1,$80,$75,$76,$76,$77,$41,$5c,$5d,$5e,$4b,$4d,$4e,$4f
|
|
.byte $f7,$8e,$f0,$8f,$e8,$ed,$ee,$ef,$f3,$f4,$f4,$8a,$62,$63,$63,$63
|
|
.byte $f1,$f2,$f2,$89,$f3,$f4,$f4,$8a,$f5,$f6,$f6,$93,$94,$87,$88,$92
|
|
.byte $00,$00,$e3,$54,$00,$00,$e3,$64,$00,$00,$e3,$64,$00,$00,$45,$80
|
|
.byte $64,$64,$64,$00,$63,$50,$64,$62,$64,$00,$64,$00,$64,$00,$64,$00
|
|
.byte $64,$00,$64,$00,$64,$63,$50,$63,$64,$00,$00,$00,$64,$00,$00,$00
|
|
.byte $54,$00,$00,$00,$64,$00,$00,$00,$64,$00,$00,$00,$64,$00,$00,$00
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$01,$04,$00,$00,$75,$77,$00,$00
|
|
.byte $02,$02,$02,$02,$75,$76,$76,$77,$41,$5c,$5d,$5e,$6e,$3e,$3e,$3f
|
|
.byte $41,$5c,$5d,$5e,$6e,$3e,$3e,$3f,$00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $4c,$56,$64,$00,$4c,$56,$64,$00,$4c,$56,$64,$00,$4c,$56,$64,$00
|
|
.byte $4c,$56,$4a,$5b,$4c,$56,$44,$6b,$02,$02,$02,$02,$75,$76,$76,$77
|
|
.byte $02,$02,$01,$04,$76,$77,$75,$77,$5d,$5e,$41,$57,$4e,$4f,$4b,$85
|
|
.byte $4c,$56,$00,$00,$4c,$56,$00,$00,$4c,$56,$00,$00,$4c,$56,$00,$00
|
|
.byte $b6,$b7,$b8,$f8,$b6,$ba,$bb,$bc,$c3,$c4,$c5,$c6,$c7,$e2,$c9,$f8
|
|
.byte $41,$5c,$5d,$5e,$6e,$3e,$3e,$3f,$4c,$56,$00,$00,$4c,$56,$00,$00
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$02,$02,$01,$04,$63,$63,$63,$63
|
|
.byte $54,$00,$64,$00,$64,$00,$64,$00,$64,$00,$64,$00,$00,$00,$64,$00
|
|
.byte $64,$00,$00,$00,$61,$63,$63,$63,$00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $64,$64,$64,$00,$63,$52,$64,$00,$54,$00,$54,$00,$00,$00,$64,$00
|
|
.byte $62,$63,$63,$63,$62,$63,$63,$63,$00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $63,$52,$64,$00,$62,$63,$52,$00,$00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $f5,$f6,$f6,$93,$62,$63,$63,$63,$90,$90,$90,$90,$63,$63,$62,$63
|
|
.byte $66,$66,$e3,$54,$5f,$5f,$e3,$64,$00,$00,$e3,$64,$00,$00,$e3,$64
|
|
.byte $4c,$56,$00,$00,$4c,$56,$00,$00,$4c,$55,$00,$00,$4c,$65,$00,$00
|
|
.byte $4c,$55,$00,$00,$4c,$65,$00,$00,$4c,$56,$00,$00,$4c,$56,$00,$00
|
|
.byte $71,$00,$00,$00,$00,$00,$00,$00,$01,$04,$00,$00,$75,$77,$00,$00
|
|
.byte $01,$04,$00,$00,$75,$77,$00,$00,$41,$57,$00,$00,$4b,$85,$00,$00
|
|
.byte $41,$5c,$5d,$5e,$6e,$3e,$3e,$3f,$4c,$55,$00,$00,$4c,$65,$00,$00
|
|
.byte $54,$00,$00,$00,$63,$63,$63,$63,$64,$00,$00,$00,$64,$00,$00,$00
|
|
.byte $66,$66,$66,$66,$5f,$5f,$5f,$5f,$64,$00,$00,$64,$64,$63,$63,$52
|
|
.byte $66,$66,$66,$66,$5f,$5f,$6c,$6d,$00,$00,$00,$00,$63,$62,$00,$00
|
|
.byte $4b,$3a,$3a,$3a,$4b,$3b,$3b,$3b,$4b,$3b,$3b,$3b,$4b,$3b,$3b,$3b
|
|
.byte $54,$63,$51,$63,$64,$60,$64,$63,$64,$64,$64,$00,$64,$64,$64,$00
|
|
.byte $eb,$ea,$ea,$8b,$8c,$ec,$ec,$8d,$f5,$f6,$f6,$93,$f1,$f2,$f2,$89
|
|
.byte $02,$02,$01,$04,$63,$63,$63,$63,$e6,$95,$e7,$91,$f1,$f2,$f2,$89
|
|
.byte $03,$42,$02,$02,$81,$9a,$63,$63,$83,$86,$90,$90,$98,$99,$63,$63
|
|
.byte $02,$02,$02,$02,$76,$77,$75,$76,$5d,$5e,$41,$5c,$4e,$4f,$4b,$b9
|
|
.byte $71,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $00,$00,$4a,$5b,$00,$00,$44,$6b,$02,$02,$02,$02,$75,$76,$76,$77
|
|
.byte $5b,$5b,$71,$00,$6b,$6b,$00,$00,$02,$02,$02,$02,$75,$76,$76,$77
|
|
.byte $bd,$be,$bf,$c0,$c1,$c2,$f8,$b6,$ca,$cb,$f8,$b6,$cc,$b6,$f8,$b6
|
|
.byte $cd,$cf,$c9,$f8,$b6,$cc,$c9,$f8,$d4,$cc,$c9,$f8,$c7,$e2,$c9,$f8
|
|
.byte $5a,$00,$00,$00,$00,$00,$00,$5a,$00,$00,$00,$00,$00,$59,$00,$00
|
|
.byte $02,$02,$02,$02,$76,$77,$75,$76,$5d,$5e,$41,$5c,$3e,$3f,$6e,$3e
|
|
.byte $02,$02,$02,$02,$76,$77,$75,$76,$5d,$5e,$41,$5c,$3e,$3f,$4b,$4d
|
|
.byte $e2,$d4,$f8,$b6,$cf,$c7,$a3,$a4,$cc,$cd,$c8,$a0,$cc,$b6,$a1,$a2
|
|
.byte $e2,$d0,$d1,$d2,$cf,$c7,$d3,$a0,$cc,$cd,$c8,$a0,$cc,$b6,$a1,$a2
|
|
.byte $a5,$a6,$f8,$b6,$11,$9b,$a5,$a7,$90,$90,$90,$90,$63,$63,$62,$63
|
|
.byte $02,$02,$e1,$80,$63,$63,$63,$63,$00,$00,$e3,$64,$00,$00,$e3,$64
|
|
.byte $00,$00,$e3,$64,$00,$00,$e3,$64,$00,$00,$e4,$54,$00,$00,$82,$64
|
|
.byte $02,$02,$01,$ce,$75,$76,$76,$77,$41,$5c,$5d,$5e,$4b,$4d,$4e,$4f
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$5a,$00,$00,$00,$00,$00,$00
|
|
.byte $4b,$3a,$3a,$60,$4b,$3b,$3b,$64,$4b,$3b,$3b,$64,$4b,$3b,$3b,$64
|
|
.byte $62,$63,$63,$63,$4b,$3b,$3b,$3b,$4b,$3b,$3b,$3b,$4b,$3b,$3b,$3b
|
|
.byte $13,$3a,$3a,$3a,$64,$3b,$3b,$3b,$64,$3b,$3b,$3b,$64,$3b,$3b,$3b
|
|
.byte $52,$3a,$3a,$3a,$4b,$3b,$3b,$3b,$4b,$3b,$3b,$3b,$4b,$3b,$3b,$3b
|
|
.byte $4b,$3a,$3a,$61,$4b,$3b,$3b,$3b,$4b,$3b,$3b,$3b,$4b,$3b,$3b,$3b
|
|
.byte $e6,$95,$e7,$91,$f1,$f2,$f2,$89,$f3,$f4,$f4,$8a,$f5,$f6,$f6,$93
|
|
.byte $00,$00,$e3,$64,$00,$00,$e3,$64,$59,$00,$e3,$64,$00,$00,$e3,$64
|
|
.byte $01,$04,$00,$00,$62,$63,$00,$00,$90,$90,$00,$00,$63,$63,$00,$00
|
|
|
|
level_6_nametable_update_supertile_data:
|
|
.byte $20,$21,$21,$22,$26,$30,$31,$27,$26,$30,$31,$27,$23,$24,$24,$25 ; pill box sensor closed
|
|
.byte $20,$21,$21,$22,$26,$2c,$2d,$27,$26,$2e,$2f,$27,$23,$24,$24,$25 ; pill box sensor partially open
|
|
.byte $20,$21,$21,$22,$26,$28,$29,$27,$26,$2a,$2b,$27,$23,$24,$24,$25 ; pill box sensor open
|
|
.byte $12,$60,$63,$51,$60,$64,$62,$64,$64,$10,$00,$64,$54,$63,$63,$52
|
|
.byte $00,$60,$63,$12,$60,$51,$13,$00,$64,$64,$64,$00,$54,$64,$64,$00
|
|
|
|
level_6_palette_data:
|
|
.byte $ff,$00,$00,$a0,$a0,$22,$a0,$01,$00,$00,$05,$20,$80,$30,$05,$00
|
|
.byte $0f,$05,$00,$1a,$00,$04,$00,$5a,$05,$ff,$30,$00,$f0,$55,$00,$00
|
|
.byte $03,$00,$00,$de,$00,$05,$05,$ff,$05,$55,$55,$00,$a0,$55,$55,$00
|
|
.byte $55,$55,$55,$0f,$a0,$fa,$55,$05,$a0,$11,$ff,$1a,$0f,$55,$55,$55
|
|
.byte $55,$f5,$05,$01,$d5,$1d,$cd,$ec,$da,$15,$55,$d5,$55,$55,$55,$50
|
|
.byte $00,$a0,$cd,$04,$05,$ff,$ff,$d0,$a0,$a0,$ff,$ff,$0f,$00,$30,$a0
|
|
.byte $00,$55,$55,$55,$55,$55,$55,$10,$00
|
|
|
|
; each byte is the palette for an entire super-tile
|
|
; updates values in the attribute table
|
|
level_6_nametable_update_palette_data:
|
|
.byte $aa,$aa,$aa,$55,$55,$00,$00
|
|
|
|
; nametable animation tiles codes - level 7 (#$c * #$5 = #$3c bytes)
|
|
; first byte is number of groups of length 2 to update of data being written
|
|
; e.g. byte 0 (#$83) means to draw three rows of two tiles each
|
|
; $0c $0d store the ppu write address
|
|
; CPU address $a56e
|
|
level_7_tile_animation:
|
|
.byte $83,$de,$df,$ee,$ef ; 80 mechanical claw
|
|
.byte $00,$00,$00,$00,$00 ; 81 mechanical claw - nothing (black tiles)
|
|
.byte $83,$de,$df,$ee,$ef ; 82 mechanical claw
|
|
.byte $47,$48,$00,$00,$00 ; 83 safety rail - top
|
|
.byte $83,$de,$df,$ee,$ef ; 84 mechanical claw
|
|
.byte $57,$58,$00,$00,$00 ; 85 safety rail - bottom
|
|
.byte $83,$ce,$cf,$de,$df ; 86 mechanical claw - top
|
|
.byte $ee,$ef,$00,$00,$00 ; 87 mechanical claw - bottom
|
|
.byte $00,$30,$31,$30,$31 ; 88 mortar launcher - frame 0 (closed)
|
|
.byte $00,$c5,$c6,$c7,$c8 ; 89 mortar launcher - frame 1 (partially open/partially closed)
|
|
.byte $00,$ea,$eb,$ec,$ed ; 8a mortar launcher - frame 2 (opened)
|
|
.byte $00,$4a,$4f,$4a,$52 ; 8b mortar launcher - destroyed
|
|
|
|
; super-tile data - level 7
|
|
level_7_supertile_data:
|
|
.byte $04,$05,$70,$70,$cd,$dd,$61,$61,$af,$af,$0e,$0f,$b1,$b2,$72,$73
|
|
.byte $74,$75,$f9,$a7,$66,$67,$f8,$a7,$76,$89,$f8,$a7,$76,$89,$f8,$a7
|
|
.byte $76,$89,$f7,$a7,$76,$89,$f7,$a7,$af,$53,$f7,$a7,$b1,$b2,$f7,$a7
|
|
.byte $74,$75,$74,$75,$66,$67,$66,$67,$76,$89,$76,$89,$76,$89,$76,$89
|
|
.byte $5c,$5d,$5c,$5d,$6c,$6d,$6c,$6d,$00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $00,$42,$43,$00,$42,$43,$00,$42,$00,$00,$43,$42,$42,$43,$00,$43
|
|
.byte $af,$af,$af,$53,$a1,$a1,$a1,$a3,$a1,$a1,$a1,$a2,$a1,$a2,$69,$b3
|
|
.byte $af,$af,$af,$53,$89,$89,$a0,$a1,$a1,$a1,$a2,$a3,$89,$89,$b0,$b3
|
|
.byte $a1,$a1,$a1,$a2,$00,$00,$00,$00,$62,$63,$0e,$0f,$72,$73,$72,$73
|
|
.byte $a4,$a5,$f7,$a7,$a4,$a5,$f7,$a7,$a4,$a5,$f7,$a7,$a4,$a5,$f7,$a7
|
|
.byte $a1,$a1,$89,$a2,$00,$00,$98,$75,$62,$63,$0e,$0f,$72,$73,$72,$73
|
|
.byte $a3,$a0,$a2,$a2,$4d,$4d,$4d,$4d,$5c,$5d,$5c,$5d,$44,$45,$44,$45
|
|
.byte $0b,$0c,$70,$70,$bd,$be,$61,$61,$af,$af,$0e,$0f,$b1,$b2,$72,$73
|
|
.byte $a4,$a5,$f7,$a7,$a4,$b5,$b6,$b7,$a4,$a7,$00,$00,$a4,$a7,$00,$00
|
|
.byte $76,$89,$76,$89,$76,$89,$76,$89,$af,$53,$af,$af,$b1,$b2,$b1,$b2
|
|
.byte $5c,$5d,$5c,$5d,$44,$45,$44,$45,$de,$df,$de,$df,$ee,$ef,$ee,$ef
|
|
.byte $06,$07,$08,$08,$7f,$9e,$be,$bd,$7f,$00,$af,$53,$ad,$ae,$b1,$b2
|
|
.byte $08,$08,$08,$08,$bd,$bd,$bd,$bd,$af,$af,$af,$53,$b1,$b2,$b1,$b2
|
|
.byte $08,$08,$0b,$0c,$bd,$bd,$bd,$be,$af,$af,$af,$53,$b1,$b2,$b1,$b2
|
|
.byte $09,$0a,$08,$08,$bd,$bd,$bd,$bd,$af,$af,$af,$53,$b1,$b2,$b1,$b2
|
|
.byte $af,$af,$af,$53,$a1,$a3,$a0,$a1,$00,$a0,$a3,$00,$a0,$b0,$b3,$a3
|
|
.byte $af,$af,$af,$53,$a1,$a3,$89,$89,$a0,$a2,$a1,$a1,$b0,$b3,$89,$89
|
|
.byte $af,$af,$af,$53,$a0,$a1,$a1,$a2,$a2,$a1,$a1,$a2,$b0,$68,$a2,$a2
|
|
.byte $af,$af,$f8,$a7,$9c,$7a,$f8,$a7,$9c,$8a,$f9,$a7,$9c,$9b,$9f,$a7
|
|
.byte $a3,$b0,$b3,$a0,$4d,$4d,$4d,$4d,$5c,$5d,$5c,$5d,$44,$45,$44,$45
|
|
.byte $a2,$a2,$a3,$a0,$4d,$4d,$4d,$4d,$5c,$5d,$5c,$5d,$44,$45,$44,$45
|
|
.byte $a2,$89,$a1,$a2,$af,$99,$00,$00,$62,$63,$0e,$0f,$72,$73,$72,$73
|
|
.byte $9c,$9a,$f7,$a7,$a4,$a5,$f7,$a7,$a4,$a5,$f7,$a7,$a4,$a5,$f7,$a7
|
|
.byte $09,$f0,$f7,$a7,$bd,$be,$f7,$a7,$af,$af,$f7,$a7,$b1,$b2,$f7,$a7
|
|
.byte $76,$89,$f7,$cc,$76,$89,$f7,$cc,$af,$53,$f7,$cc,$b1,$b2,$f7,$cc
|
|
.byte $01,$02,$03,$03,$7f,$9e,$dd,$cd,$fe,$00,$af,$53,$bf,$ae,$b1,$b2
|
|
.byte $a4,$a5,$f7,$a7,$a4,$a5,$f7,$a7,$a4,$a5,$f7,$a7,$a4,$b5,$b6,$b7
|
|
.byte $03,$03,$03,$03,$cd,$cd,$cd,$cd,$af,$af,$af,$53,$b1,$b2,$b1,$b2
|
|
.byte $5c,$5d,$5c,$5d,$6c,$6d,$6c,$6d,$62,$63,$4b,$4c,$72,$5a,$5b,$00
|
|
.byte $5c,$5d,$5c,$5d,$44,$45,$44,$45,$54,$55,$54,$55,$00,$00,$00,$00
|
|
.byte $5c,$5d,$5c,$5d,$6c,$6d,$6c,$6d,$62,$63,$0e,$0f,$72,$73,$72,$73
|
|
.byte $60,$70,$6e,$6f,$70,$71,$7f,$74,$62,$63,$bf,$67,$72,$73,$7f,$89
|
|
.byte $6f,$6f,$6f,$6f,$af,$75,$74,$75,$66,$67,$66,$67,$76,$89,$76,$89
|
|
.byte $6f,$7e,$70,$70,$74,$75,$61,$61,$66,$67,$0e,$0f,$76,$89,$72,$73
|
|
.byte $60,$70,$70,$70,$70,$71,$61,$61,$62,$63,$4b,$4c,$72,$5a,$5b,$00
|
|
.byte $60,$70,$bf,$89,$70,$71,$ad,$4d,$62,$63,$0e,$0f,$72,$73,$72,$73
|
|
.byte $76,$89,$76,$89,$4d,$4d,$4d,$4d,$62,$63,$0e,$0f,$72,$73,$72,$73
|
|
.byte $76,$89,$70,$70,$4d,$4d,$61,$61,$62,$63,$0e,$0f,$72,$73,$72,$73
|
|
.byte $60,$70,$70,$70,$70,$71,$61,$61,$4c,$4e,$0e,$0f,$00,$5e,$5f,$73
|
|
.byte $5c,$5d,$5c,$5d,$44,$45,$6c,$6d,$54,$55,$00,$00,$00,$00,$00,$00
|
|
.byte $5c,$5d,$5c,$5d,$6c,$6d,$6c,$6d,$4c,$4e,$0e,$0f,$00,$5e,$5f,$73
|
|
.byte $60,$6a,$00,$00,$70,$6a,$00,$00,$62,$6a,$00,$00,$72,$6a,$8c,$8c
|
|
.byte $00,$00,$6a,$70,$00,$00,$6a,$61,$00,$00,$6a,$0f,$8c,$8d,$6a,$73
|
|
.byte $a4,$a5,$f7,$a7,$a4,$b5,$b6,$b7,$a4,$a7,$0e,$0f,$a4,$a7,$72,$73
|
|
.byte $0b,$0c,$89,$10,$bd,$be,$88,$b4,$af,$af,$99,$11,$b1,$b2,$b1,$b2
|
|
.byte $12,$12,$fa,$89,$b4,$b4,$b4,$88,$13,$13,$fb,$98,$b1,$b2,$b1,$b2
|
|
.byte $60,$70,$70,$70,$70,$71,$61,$61,$47,$48,$47,$48,$57,$58,$57,$58
|
|
.byte $a4,$a7,$70,$70,$a4,$a7,$61,$61,$a4,$a7,$0e,$0f,$a4,$a7,$72,$73
|
|
.byte $5c,$5d,$f7,$a7,$6c,$6d,$f7,$a7,$a4,$a5,$f7,$a7,$a4,$a5,$f7,$a7
|
|
.byte $a4,$a7,$70,$70,$a4,$a7,$61,$61,$a4,$a7,$47,$48,$a4,$a7,$57,$58
|
|
.byte $12,$12,$fa,$89,$b4,$b4,$b4,$88,$13,$13,$fb,$89,$b1,$b2,$b1,$89
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$46,$48,$47,$48,$56,$58,$57,$58
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$48,$49,$00,$00,$58,$59,$00,$00
|
|
.byte $08,$da,$0d,$cc,$bd,$bd,$bd,$bd,$af,$af,$af,$53,$b1,$b2,$b1,$b2
|
|
.byte $b9,$ba,$fd,$cc,$b9,$ba,$fd,$cc,$b8,$ba,$fd,$cc,$c9,$ca,$fd,$cc
|
|
.byte $60,$70,$70,$70,$70,$71,$61,$61,$46,$48,$47,$48,$56,$58,$57,$58
|
|
.byte $5c,$5d,$5c,$5d,$44,$45,$44,$45,$54,$55,$de,$df,$00,$00,$ee,$ef
|
|
.byte $00,$00,$5c,$5d,$00,$00,$6c,$6d,$00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $00,$42,$00,$00,$00,$00,$00,$43,$00,$00,$00,$00,$42,$00,$00,$00
|
|
.byte $06,$07,$08,$08,$7f,$9e,$be,$bd,$fe,$00,$78,$53,$bf,$ae,$89,$b2
|
|
.byte $60,$70,$bf,$89,$70,$71,$ad,$4d,$48,$49,$0e,$0f,$58,$59,$72,$73
|
|
.byte $08,$08,$08,$08,$bd,$bd,$bd,$bd,$af,$af,$af,$53,$b1,$20,$21,$21
|
|
.byte $43,$42,$00,$00,$00,$00,$43,$00,$00,$42,$00,$00,$00,$00,$42,$00
|
|
.byte $af,$af,$af,$53,$a1,$a1,$a1,$a2,$a1,$a1,$a1,$a2,$a1,$a1,$a1,$a2
|
|
.byte $12,$12,$12,$10,$b4,$b4,$b4,$b4,$13,$13,$13,$11,$b1,$b2,$b1,$b2
|
|
.byte $08,$08,$08,$08,$bd,$bd,$bd,$bd,$af,$af,$af,$53,$22,$b2,$b1,$b2
|
|
.byte $08,$08,$0b,$0c,$bd,$bd,$bd,$be,$af,$af,$fc,$79,$b1,$b2,$b1,$89
|
|
.byte $04,$05,$89,$10,$cd,$dd,$88,$b4,$af,$af,$99,$11,$b1,$b2,$b1,$b2
|
|
.byte $14,$15,$15,$15,$15,$a6,$12,$10,$16,$16,$13,$11,$b1,$b2,$b1,$b2
|
|
.byte $17,$18,$19,$10,$1a,$1b,$1c,$b4,$1d,$32,$33,$11,$b1,$b2,$b1,$b2
|
|
.byte $27,$15,$15,$15,$27,$a6,$12,$10,$25,$16,$13,$11,$b1,$b2,$b1,$b2
|
|
.byte $14,$26,$30,$31,$15,$26,$30,$31,$16,$23,$24,$24,$b1,$b2,$b1,$b2
|
|
.byte $a4,$a7,$00,$00,$a4,$a7,$00,$00,$a4,$a7,$47,$48,$a4,$a7,$57,$58
|
|
.byte $00,$a0,$40,$89,$00,$b0,$b0,$89,$00,$41,$41,$88,$a0,$40,$40,$89
|
|
.byte $ce,$cf,$ce,$cf,$ce,$cf,$ce,$cf,$de,$df,$de,$df,$ee,$ef,$ee,$ef
|
|
.byte $b9,$ba,$fd,$cc,$b9,$ba,$fd,$cc,$b9,$ba,$fd,$cc,$b9,$ba,$fd,$cc
|
|
.byte $00,$87,$8b,$00,$00,$80,$81,$00,$00,$97,$8b,$00,$00,$87,$8b,$00
|
|
.byte $f6,$b4,$b4,$88,$f5,$35,$36,$88,$f6,$b4,$b4,$88,$f6,$b4,$b4,$88
|
|
.byte $87,$7c,$7c,$8b,$87,$7b,$7c,$8b,$97,$7c,$7b,$8b,$97,$7c,$ff,$8b
|
|
.byte $60,$70,$70,$70,$70,$71,$61,$61,$48,$49,$0e,$0f,$58,$59,$72,$73
|
|
.byte $a0,$97,$8b,$00,$b0,$87,$8b,$00,$41,$90,$91,$00,$b0,$97,$8b,$00
|
|
.byte $f6,$b4,$b4,$88,$f6,$b4,$b4,$88,$f4,$36,$37,$88,$f6,$b4,$b4,$88
|
|
.byte $87,$7b,$7c,$d6,$90,$d4,$d5,$e6,$97,$7c,$7b,$8b,$87,$7c,$7c,$8b
|
|
.byte $00,$00,$00,$78,$00,$00,$00,$88,$00,$00,$00,$89,$00,$00,$00,$89
|
|
.byte $af,$97,$8b,$00,$41,$87,$8b,$00,$b0,$82,$84,$00,$b0,$92,$94,$00
|
|
.byte $f6,$b4,$b4,$88,$f6,$b4,$b4,$88,$7d,$53,$53,$99,$b1,$b1,$b1,$b1
|
|
.byte $87,$ff,$7c,$8b,$87,$7c,$7b,$8b,$82,$83,$83,$84,$92,$93,$93,$94
|
|
.byte $00,$00,$00,$88,$00,$00,$00,$89,$00,$00,$a0,$89,$00,$00,$41,$88
|
|
.byte $41,$87,$8b,$00,$b0,$97,$8b,$00,$40,$87,$8b,$00,$41,$85,$86,$00
|
|
.byte $f2,$34,$38,$39,$3a,$3b,$3c,$3d,$f3,$3e,$3f,$cb,$e0,$e1,$e2,$e3
|
|
.byte $87,$7b,$7c,$8b,$87,$7c,$7b,$8b,$97,$7c,$7c,$8b,$87,$7b,$ff,$8b
|
|
.byte $40,$97,$8b,$00,$b0,$87,$8b,$00,$41,$87,$8b,$00,$40,$95,$96,$00
|
|
.byte $85,$e7,$e8,$e9,$87,$7c,$7c,$8b,$97,$7c,$7b,$8b,$87,$7b,$7c,$8b
|
|
.byte $f1,$7c,$ff,$8b,$95,$e4,$e5,$8b,$97,$7b,$d7,$d8,$87,$7b,$7c,$8b
|
|
.byte $87,$7c,$7b,$8b,$97,$7c,$ff,$8b,$97,$7b,$7c,$8b,$87,$7c,$7c,$8b
|
|
|
|
level_7_nametable_update_supertile_data:
|
|
.byte $20,$21,$21,$22,$26,$30,$31,$27,$26,$30,$31,$27,$23,$24,$24,$25 ; #$00 - pill box sensor closed
|
|
.byte $20,$21,$21,$22,$26,$2c,$2d,$27,$26,$2e,$2f,$27,$23,$24,$24,$25 ; #$01 - pill box sensor partially open
|
|
.byte $20,$21,$21,$22,$26,$28,$29,$27,$26,$2a,$2b,$27,$23,$24,$24,$25 ; #$02 - pill box sensor open
|
|
.byte $f6,$30,$31,$27,$f6,$30,$31,$27,$f6,$30,$31,$27,$f6,$30,$31,$27 ; #$03 - closed armored door (boss_soldier_nametable_update_tbl)
|
|
.byte $50,$51,$51,$52,$bd,$9d,$9d,$9d,$af,$af,$af,$53,$b1,$b2,$b1,$b2 ; #$04 - spiked wall destroyed floor
|
|
.byte $4a,$4f,$4f,$4f,$4a,$00,$00,$00,$4a,$00,$00,$00,$4a,$00,$00,$00
|
|
.byte $00,$d9,$db,$dc,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; #$06 - tall spiked wall destroyed top (parting hanging from ceiling)
|
|
.byte $f6,$00,$00,$27,$f6,$00,$00,$27,$f6,$00,$00,$27,$f6,$00,$00,$27 ; #$07 - open armored door (see #$12) (boss_soldier_nametable_update_tbl)
|
|
.byte $4a,$00,$00,$00,$4a,$00,$00,$00,$4a,$00,$00,$00,$4a,$00,$00,$00
|
|
.byte $60,$70,$70,$70,$70,$71,$61,$61,$62,$63,$0e,$0f,$72,$73,$72,$73
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; #$0a - blank super-tile
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$47,$48,$47,$48,$57,$58,$57,$58 ; #$0b - fence
|
|
.byte $47,$48,$47,$48,$c0,$c1,$57,$58,$08,$c2,$c3,$c4,$bd,$bd,$bd,$bd ; #$0c - rising wall (frame 0) (barely out of ground)
|
|
.byte $47,$48,$47,$48,$d0,$d1,$d2,$8f,$08,$da,$d3,$bc,$bd,$bd,$bd,$bd ; #$0d - rising wall (frame 1) (slightly out of ground)
|
|
.byte $a8,$aa,$ab,$8e,$c9,$ca,$bb,$bc,$08,$da,$0d,$cc,$bd,$bd,$bd,$bd ; #$0e - rising wall (frame 2) (first row of spikes visible)
|
|
.byte $00,$00,$00,$00,$a9,$aa,$ab,$ac,$b8,$ba,$bb,$bc,$c9,$ca,$fd,$cc ; #$0f - rising wall (frame 3) (two rows of spikes visible)
|
|
.byte $a9,$aa,$ab,$ac,$b9,$ba,$bb,$bc,$b8,$ba,$fd,$cc,$c9,$ca,$fd,$cc ; #$10 - rising wall (frame 4) (three rows of spikes visible)
|
|
.byte $a9,$aa,$ab,$ac,$b9,$ba,$bb,$bc,$b9,$ba,$fd,$cc,$b9,$ba,$fd,$cc ; #$11 - rising wall (frame 5) (four rows of spikes visible)
|
|
.byte $08,$1e,$1f,$27,$bd,$bd,$bd,$bd,$af,$af,$af,$53,$b1,$b2,$b1,$b2 ; #$12 - closed armored door floor (boss_soldier_nametable_update_tbl)
|
|
.byte $f6,$64,$65,$27,$f6,$64,$65,$27,$f6,$64,$65,$27,$f6,$64,$65,$27 ; #$13 - partial open armored door (boss_soldier_nametable_update_tbl)
|
|
.byte $08,$08,$6b,$27,$bd,$bd,$bd,$bd,$af,$af,$af,$53,$b1,$b2,$b1,$b2 ; #$14 - partial open armored door floor (boss_soldier_nametable_update_tbl)
|
|
.byte $08,$08,$08,$27,$bd,$bd,$bd,$bd,$af,$af,$af,$53,$b1,$b2,$b1,$b2 ; #$15 - open armored door floor (boss_soldier_nametable_update_tbl)
|
|
|
|
level_7_palette_data:
|
|
.byte $de,$11,$01,$55,$05,$ff,$00,$00,$f0,$00,$f0,$00,$dc,$00,$05,$00
|
|
.byte $40,$50,$50,$50,$00,$00,$00,$00,$00,$00,$f0,$00,$10,$01,$5a,$00
|
|
.byte $5a,$f5,$55,$f5,$77,$55,$dd,$ff,$f7,$f5,$fd,$ff,$55,$f5,$ff,$ff
|
|
.byte $c0,$54,$55,$0f,$cc,$01,$0c,$55,$00,$00,$50,$00,$0f,$11,$04,$ff
|
|
.byte $40,$c7,$50,$ff,$00,$55,$50,$50,$56,$55,$55,$55,$59,$00,$55,$00
|
|
.byte $00,$55,$aa,$55,$cf,$55,$aa,$55,$55,$55,$aa,$55,$55,$55,$ff,$55
|
|
.byte $55,$55,$55,$55
|
|
|
|
; each byte is the palette for an entire super-tile
|
|
; updates values in the attribute table
|
|
level_7_nametable_update_palette_data:
|
|
.byte $aa,$aa,$aa,$00,$50,$00,$00,$00,$00,$ff,$00,$00,$00,$00,$00,$00
|
|
.byte $00,$00,$50,$00,$50,$50,$00,$00,$00,$00,$00,$00
|
|
|
|
; CPU address $adca
|
|
level_8_supertile_data:
|
|
.byte $01,$03,$02,$03,$11,$13,$12,$13,$2c,$2d,$2e,$2f,$3c,$3d,$3e,$3f
|
|
.byte $02,$03,$02,$03,$12,$13,$12,$13,$2c,$2d,$2e,$2f,$3c,$3d,$3e,$3f
|
|
.byte $02,$03,$02,$04,$12,$13,$12,$14,$2c,$2d,$2e,$2f,$3c,$3d,$3e,$4c
|
|
.byte $01,$03,$02,$04,$11,$13,$12,$14,$2c,$2d,$2e,$2f,$3c,$3d,$3e,$4c
|
|
.byte $9b,$9b,$89,$89,$00,$00,$00,$00,$01,$03,$02,$03,$11,$13,$12,$13
|
|
.byte $00,$9c,$9b,$89,$00,$00,$00,$00,$02,$03,$02,$03,$12,$13,$12,$13
|
|
.byte $00,$9c,$9c,$9c,$00,$00,$00,$00,$02,$03,$02,$04,$12,$13,$12,$14
|
|
.byte $9b,$89,$9c,$9c,$00,$00,$00,$00,$01,$03,$02,$04,$11,$13,$12,$14
|
|
.byte $9b,$00,$01,$03,$a8,$00,$11,$13,$a8,$00,$2e,$2f,$a8,$00,$3e,$3f
|
|
.byte $02,$04,$00,$9c,$12,$14,$00,$a9,$2c,$2d,$00,$a9,$3c,$3d,$00,$a9
|
|
.byte $8e,$8f,$9b,$89,$9e,$9b,$00,$00,$9b,$00,$01,$03,$00,$00,$11,$13
|
|
.byte $89,$9c,$8e,$8f,$00,$00,$9c,$9f,$02,$04,$00,$9c,$12,$14,$00,$ac
|
|
.byte $a8,$00,$0e,$0f,$ab,$00,$10,$1f,$ae,$ab,$00,$00,$8c,$8d,$99,$99
|
|
.byte $0c,$0d,$00,$a9,$1c,$1d,$00,$a9,$00,$00,$00,$ac,$99,$ac,$ac,$8d
|
|
.byte $ab,$00,$0e,$0f,$9b,$00,$10,$1f,$a8,$00,$2e,$2f,$ab,$00,$90,$3f
|
|
.byte $0c,$0d,$00,$9c,$1c,$1d,$00,$a9,$2c,$2d,$00,$a9,$3c,$b1,$00,$ac
|
|
.byte $0c,$0d,$0e,$0f,$1c,$1d,$10,$1f,$00,$00,$00,$00,$99,$99,$99,$99
|
|
.byte $0c,$0d,$0e,$0f,$1c,$1d,$1e,$1f,$2c,$2d,$2e,$2f,$3c,$3d,$3e,$3f
|
|
.byte $0c,$0d,$0e,$0f,$1c,$1d,$10,$1f,$02,$03,$02,$03,$12,$13,$12,$13
|
|
.byte $0c,$0d,$0e,$0f,$1c,$1d,$1e,$1f,$00,$00,$01,$03,$ab,$00,$11,$13
|
|
.byte $0c,$0d,$0e,$0f,$1c,$1d,$10,$1f,$01,$03,$02,$03,$11,$13,$12,$13
|
|
.byte $0c,$0d,$0e,$0f,$1c,$1d,$1e,$1f,$02,$03,$02,$04,$12,$13,$12,$14
|
|
.byte $9b,$00,$0e,$0f,$00,$00,$10,$1f,$02,$03,$02,$03,$12,$13,$12,$13
|
|
.byte $fb,$81,$a3,$a0,$00,$91,$b2,$b0,$fb,$a1,$82,$81,$b0,$00,$92,$93
|
|
.byte $f2,$41,$f1,$43,$50,$51,$52,$53,$f0,$61,$ef,$63,$70,$71,$72,$73
|
|
.byte $00,$82,$00,$92,$00,$92,$93,$a0,$00,$00,$91,$b0,$00,$a0,$a1,$a3
|
|
.byte $00,$00,$00,$a0,$00,$00,$b0,$b0,$00,$a0,$a1,$81,$00,$a3,$00,$91
|
|
.byte $83,$83,$83,$85,$83,$83,$83,$85,$83,$83,$84,$85,$84,$83,$94,$95
|
|
.byte $00,$00,$83,$85,$ab,$00,$84,$85,$ae,$a8,$94,$95,$8c,$a8,$a4,$a5
|
|
.byte $00,$00,$00,$81,$00,$00,$00,$92,$00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $00,$b2,$a0,$a1,$00,$82,$b0,$00,$02,$03,$02,$03,$12,$13,$12,$13
|
|
.byte $94,$83,$a4,$a5,$a4,$84,$85,$00,$00,$94,$95,$00,$00,$a4,$a5,$00
|
|
.byte $0c,$0d,$0e,$0f,$1c,$1d,$1e,$1f,$00,$80,$2e,$2f,$00,$00,$90,$3f
|
|
.byte $0c,$0d,$0e,$0f,$1c,$1d,$1e,$1f,$2c,$2d,$a2,$00,$3c,$b1,$00,$00
|
|
.byte $0c,$0d,$0e,$0f,$1c,$1d,$1e,$1f,$2c,$2d,$2e,$2f,$3c,$3d,$3e,$4c
|
|
.byte $8e,$8f,$8e,$8f,$9e,$9f,$9e,$9f,$ae,$af,$9b,$89,$8c,$8d,$a8,$00
|
|
.byte $f7,$0d,$f9,$0f,$1c,$1d,$1e,$1f,$f8,$2d,$fa,$2f,$3c,$3d,$3e,$3f
|
|
.byte $0c,$0d,$0e,$0f,$1c,$1d,$10,$1f,$2c,$2d,$a2,$00,$3c,$b1,$00,$00
|
|
.byte $8e,$8f,$8e,$8f,$9e,$9f,$9e,$9f,$ae,$af,$ae,$af,$8c,$8d,$8c,$8d
|
|
.byte $00,$00,$00,$00,$99,$ac,$ab,$99,$ae,$af,$ae,$af,$8c,$8d,$8c,$8d
|
|
.byte $00,$00,$00,$ac,$99,$99,$ac,$9f,$ae,$9b,$89,$89,$9b,$00,$00,$00
|
|
.byte $ab,$00,$00,$00,$9e,$ab,$99,$99,$ae,$af,$ae,$af,$8c,$8d,$8c,$8d
|
|
.byte $00,$00,$00,$ac,$99,$99,$ac,$9f,$ae,$af,$ae,$af,$9c,$8d,$8c,$8d
|
|
.byte $00,$00,$00,$00,$00,$00,$ac,$99,$00,$ac,$ae,$af,$00,$ac,$8c,$8d
|
|
.byte $00,$00,$00,$00,$99,$00,$00,$00,$ae,$ab,$99,$00,$8c,$8d,$8c,$ab
|
|
.byte $9b,$00,$0e,$0f,$00,$00,$10,$1f,$00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $8e,$8f,$a8,$00,$9e,$9f,$a8,$00,$ae,$af,$9b,$00,$8c,$9b,$00,$00
|
|
.byte $8e,$8f,$a8,$00,$9e,$9f,$ab,$00,$ae,$af,$ae,$ab,$8c,$8d,$8c,$ab
|
|
.byte $00,$00,$00,$00,$ac,$ab,$00,$00,$a9,$af,$ab,$00,$8c,$8d,$a8,$00
|
|
.byte $00,$00,$84,$85,$00,$00,$94,$95,$ac,$00,$a4,$a5,$8c,$ab,$00,$00
|
|
.byte $8e,$8f,$8e,$8f,$9e,$9f,$9e,$9f,$9b,$89,$89,$9c,$00,$00,$00,$00
|
|
.byte $83,$85,$94,$95,$84,$85,$a4,$a5,$94,$95,$00,$00,$a4,$a5,$00,$00
|
|
.byte $00,$00,$ac,$8f,$00,$00,$9c,$9f,$02,$04,$00,$9c,$12,$14,$00,$a9
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$02,$03,$02,$03,$12,$13,$12,$13
|
|
.byte $0c,$0d,$00,$00,$1c,$1d,$00,$00,$2c,$2d,$9d,$9d,$3c,$3d,$ad,$ad
|
|
.byte $00,$00,$0e,$0f,$00,$00,$10,$1f,$9d,$9d,$2e,$2f,$ad,$ad,$90,$3f
|
|
.byte $02,$04,$00,$00,$12,$14,$00,$00,$2c,$2d,$9d,$9d,$3c,$3d,$ad,$ad
|
|
.byte $00,$00,$01,$03,$00,$00,$11,$13,$9d,$9d,$2e,$2f,$ad,$ad,$90,$3f
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$9d,$9d,$9d,$9d,$ad,$ad,$ad,$ad
|
|
.byte $ef,$63,$f0,$61,$72,$73,$70,$71,$02,$03,$02,$03,$12,$13,$12,$13
|
|
.ifdef Probotector
|
|
; Probotector's super-tiles match the Japanese version of the game
|
|
.byte $ef,$63,$f0,$61,$72,$73,$70,$71,$f1,$43,$f2,$86,$52,$53,$50,$96 ; alien guardian wall shells
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$f1,$43,$fc,$86,$52,$53,$50,$96 ; alien guardian wall shells
|
|
.else
|
|
; Contra modified the shells to be more decrepit
|
|
.byte $ef,$63,$f0,$61,$72,$73,$70,$71,$f1,$43,$f2,$fd,$52,$53,$50,$fe ; alien guardian wall shells
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$f1,$43,$fc,$fd,$52,$53,$50,$fe ; alien guardian wall shells
|
|
.endif
|
|
.byte $00,$ac,$8e,$8f,$00,$9c,$9e,$9f,$00,$a9,$ae,$af,$00,$ac,$8c,$8d
|
|
.ifdef Probotector
|
|
; Probotector's super-tiles match the Japanese version of the game
|
|
.byte $00,$00,$f0,$61,$00,$00,$70,$71,$02,$03,$f2,$41,$12,$13,$50,$51 ; alien guardian wall shells
|
|
.else
|
|
; Contra modified the shells to be more decrepit
|
|
.byte $00,$00,$f0,$61,$00,$00,$70,$71,$02,$03,$f2,$fd,$12,$13,$50,$fe ; alien guardian wall shells
|
|
.endif
|
|
.byte $00,$00,$f0,$61,$00,$00,$70,$71,$00,$00,$f2,$41,$00,$00,$50,$51
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$fc,$41,$00,$00,$50,$51
|
|
.byte $8e,$8f,$8e,$8f,$9e,$9f,$9e,$9f,$9c,$9c,$ae,$af,$00,$a9,$8c,$8d
|
|
.byte $8e,$8f,$a8,$00,$9e,$9f,$9b,$00,$89,$a8,$00,$00,$00,$00,$00,$00
|
|
.byte $8e,$8f,$8e,$8f,$9e,$9f,$9e,$9f,$ae,$9b,$89,$89,$9b,$00,$00,$00
|
|
.byte $ab,$00,$00,$ac,$9e,$ab,$ac,$9f,$89,$89,$89,$89,$00,$00,$00,$00
|
|
.byte $00,$a9,$8e,$8f,$00,$ac,$9e,$9f,$99,$af,$ae,$af,$8c,$8d,$8c,$8d
|
|
.byte $00,$9c,$8e,$8f,$00,$a9,$9e,$9f,$00,$00,$89,$9c,$00,$00,$00,$00
|
|
.byte $0c,$0d,$0e,$0f,$1c,$1d,$10,$1f,$00,$00,$00,$00,$00,$00,$00,$00
|
|
|
|
level_8_nametable_update_supertile_data:
|
|
.byte $44,$45,$46,$47,$54,$55,$56,$57,$64,$65,$66,$67,$74,$75,$76,$77 ; #$00 - alien mouth (wadder) closed
|
|
.byte $48,$49,$4a,$4b,$58,$59,$5a,$5b,$68,$69,$6a,$6b,$78,$79,$7a,$7b ; #$01 - alien mouth (wadder) open
|
|
.byte $8e,$8f,$8e,$8f,$9e,$9b,$9c,$9f,$8e,$ab,$ac,$8f,$9e,$9f,$9e,$9f ; #$02 - alien mouth (wadder) destroyed
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; #$03 - blank super-tile
|
|
.byte $cc,$a3,$ce,$cf,$dc,$dd,$de,$00,$ec,$ed,$ee,$b6,$bc,$bd,$be,$bf
|
|
.byte $f3,$a3,$b0,$d9,$93,$d9,$da,$e9,$fb,$e9,$ea,$eb,$00,$c2,$c3,$bb
|
|
.byte $d5,$d6,$d7,$00,$d6,$e6,$e7,$e8,$fe,$ff,$c0,$c1,$91,$92,$b9,$bf
|
|
.byte $f3,$d2,$d3,$d4,$a0,$e2,$bb,$bc,$fb,$b9,$fe,$fd,$91,$92,$93,$00
|
|
.byte $cc,$a3,$ce,$cf,$dc,$dd,$de,$00,$ec,$ed,$ee,$b6,$bc,$bd,$c8,$bf
|
|
.byte $f3,$81,$b0,$d0,$93,$d0,$da,$e0,$fb,$e0,$ea,$eb,$00,$b7,$ba,$bb
|
|
.byte $e5,$d6,$d8,$00,$d6,$e6,$c9,$e8,$c4,$c6,$c7,$c1,$91,$92,$b9,$bf
|
|
.byte $f3,$d1,$e3,$e4,$a0,$e1,$bb,$bc,$fb,$b8,$c4,$c5,$82,$92,$a3,$00
|
|
.byte $f3,$a3,$ce,$cf,$f3,$f3,$ca,$f3,$f3,$f3,$cb,$b6,$f3,$f3,$db,$bf
|
|
.byte $f3,$a3,$b0,$f3,$93,$81,$f3,$f3,$fb,$f3,$f3,$f3,$f3,$f3,$f3,$f3
|
|
.byte $f3,$f3,$f3,$f3,$f3,$f3,$cd,$e8,$f3,$f3,$df,$c1,$91,$92,$b9,$bf
|
|
.byte $f3,$f3,$f3,$f3,$a0,$f3,$f3,$f3,$fb,$b0,$f3,$f3,$91,$92,$93,$f3
|
|
.byte $e3,$d4,$d5,$c4,$aa,$e4,$e5,$cd,$b3,$b4,$b5,$b6,$c3,$db,$dc,$00 ; #$10 - alien guardian jaw mouth closed (top right)
|
|
.byte $00,$e0,$e1,$e1,$00,$60,$40,$40,$00,$00,$8a,$8b,$00,$00,$c1,$c2 ; #$11 - alien guardian top teeth and lower left jaw mouth closed (top-left)
|
|
.byte $e3,$d4,$d5,$c4,$df,$00,$62,$cd,$00,$dd,$de,$b6,$ec,$ed,$ee,$d2 ; #$12 - alien guardian jaw mouth open (top right)
|
|
.byte $00,$e0,$e1,$e1,$00,$60,$40,$40,$00,$00,$00,$00,$00,$00,$00,$00 ; #$13 - alien guardian top teeth mouth open (top left)
|
|
.byte $5c,$6c,$4d,$08,$bc,$bd,$be,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; #$14 - alien guardian lower jaw mouth open
|
|
.byte $ca,$cb,$cc,$cd,$cb,$cc,$cd,$c5,$a7,$b9,$c5,$c6,$00,$00,$00,$00 ; #$15 - alien guardian body destroyed
|
|
.byte $00,$c7,$c8,$c9,$00,$d6,$c9,$ca,$00,$00,$e6,$98,$00,$00,$00,$00 ; #$16 - alien guardian body destroyed
|
|
.byte $b9,$bf,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; #$17 - alien guardian body destroyed
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$c7,$00,$da,$c7,$c8
|
|
.byte $00,$c7,$c8,$c9,$c7,$c8,$c9,$ca,$c8,$c9,$ca,$cb,$c9,$d8,$d9,$cc ; #$19 - alien guardian body
|
|
.byte $ca,$cb,$cc,$cd,$cb,$cc,$cd,$c5,$cc,$cd,$c5,$c6,$cd,$c5,$c6,$00
|
|
.byte $ce,$cf,$cd,$0f,$c6,$c6,$d7,$1f,$00,$00,$e7,$2f,$00,$e7,$c3,$3f
|
|
.byte $00,$ea,$eb,$c9,$00,$97,$87,$ca,$00,$ba,$bb,$bb,$00,$d0,$d1,$d1
|
|
.byte $ca,$e8,$e9,$cd,$d8,$b7,$00,$c5,$b7,$b8,$00,$c6,$d3,$c4,$c6,$00
|
|
.byte $c5,$c6,$00,$00,$c6,$00,$00,$e7,$00,$00,$e7,$bf,$00,$e7,$d2,$00
|
|
.byte $e7,$bf,$00,$00,$bf,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $e7,$c0,$e2,$00,$c0,$c3,$9a,$00,$dc,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $20,$21,$22,$23,$30,$31,$32,$33,$fb,$00,$92,$91,$92,$93,$a0,$a1 ; #$21 - alien spider spawn on ceiling closed (frame 1)
|
|
.byte $24,$25,$26,$27,$34,$35,$36,$37,$fb,$f3,$92,$91,$92,$93,$a0,$a1 ; #$22 - alien spider spawn on ceiling open (frame 2)
|
|
.byte $28,$29,$2a,$2b,$38,$39,$3a,$3b,$fb,$f3,$92,$91,$92,$93,$a0,$a1 ; #$23 - alien spider spawn on ceiling open (frame 3)
|
|
.byte $20,$4e,$4f,$23,$00,$00,$00,$00,$fb,$f3,$92,$91,$92,$93,$a0,$a1 ; #$24 - destroyed alien spider spawn on ceiling
|
|
.byte $f6,$09,$0a,$0b,$18,$19,$1a,$1b,$02,$03,$02,$03,$12,$13,$12,$13 ; #$25 - alien spider spawn on ground closed (frame 1)
|
|
.byte $f5,$05,$06,$07,$5d,$15,$16,$17,$02,$03,$02,$03,$12,$13,$12,$13 ; #$26 - alien spider spawn on ground open (frame 2)
|
|
.byte $f4,$6d,$6e,$6f,$7c,$7d,$7e,$7f,$02,$03,$02,$03,$12,$13,$12,$13 ; #$27 - alien spider spawn on ground open (frame 3)
|
|
.byte $00,$00,$00,$00,$18,$5e,$5f,$1b,$02,$03,$02,$03,$12,$13,$12,$13 ; #$28 - destroyed alien spider spawn on ground
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$02,$03,$02,$03,$12,$13,$12,$13 ; #$29 - empty ground
|
|
|
|
; palette data - level 8 (#$73 bytes) ?? (not #$80 bytes)
|
|
level_8_palette_data:
|
|
.byte $05,$05,$05,$05,$5f,$5f,$5f,$5f,$37,$cd,$7f,$df,$f3,$fc,$33,$cc
|
|
.byte $f0,$00,$50,$70,$50,$50,$53,$ff,$00,$ff,$ff,$00,$33,$ff,$5f,$00
|
|
.byte $00,$00,$00,$ff,$00,$00,$ff,$ff,$ff,$ff,$ff,$fc,$f3,$03,$ff,$ff
|
|
.byte $f3,$30,$ff,$00,$dc,$50,$c0,$30,$c1,$34,$f0,$50,$00,$00,$ff,$10
|
|
.byte $00,$00,$ff,$3f,$ff,$ff,$ff,$cf,$00
|
|
|
|
; each byte is the palette for an entire super-tile
|
|
; updates values in the attribute table
|
|
level_8_nametable_update_palette_data:
|
|
.byte $aa,$aa,$00,$55,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$cf,$3f,$fc,$f3
|
|
.byte $55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55
|
|
.byte $55,$fa,$fa,$fa,$fa,$5a,$5a,$5a,$5a,$50,$00,$00,$00,$00,$00,$00
|
|
.byte $00,$00,$00,$00,$00,$00,$00
|
|
|
|
; super-tile data - level 2/4 boss room
|
|
; CPU address $b57a
|
|
level_2_4_boss_supertile_data:
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; #$00 - blank super-tile
|
|
.byte $33,$07,$00,$00,$34,$07,$00,$09,$35,$07,$36,$00,$00,$07,$37,$00
|
|
.byte $00,$20,$21,$01,$09,$20,$21,$01,$00,$20,$21,$01,$00,$20,$21,$02
|
|
.byte $00,$08,$00,$a3,$a2,$a3,$a3,$a2,$00,$a3,$a2,$08,$30,$04,$04,$04
|
|
.byte $00,$07,$38,$33,$00,$07,$00,$34,$00,$07,$00,$35,$00,$07,$00,$00
|
|
.byte $00,$20,$21,$05,$00,$20,$21,$06,$00,$20,$21,$01,$00,$20,$21,$01
|
|
.byte $31,$00,$00,$00,$31,$00,$00,$00,$31,$00,$00,$00,$31,$00,$00,$00
|
|
.byte $00,$07,$00,$00,$00,$07,$00,$00,$00,$07,$00,$00,$00,$07,$00,$00
|
|
.byte $00,$20,$21,$02,$00,$20,$21,$01,$0a,$20,$21,$01,$00,$20,$21,$02
|
|
.byte $a2,$a3,$08,$a3,$00,$a3,$a3,$a2,$08,$a2,$a3,$00,$04,$04,$04,$04
|
|
.byte $00,$00,$07,$00,$00,$00,$07,$00,$00,$00,$07,$00,$00,$00,$07,$00
|
|
.byte $05,$51,$50,$00,$06,$51,$50,$00,$01,$51,$50,$00,$01,$51,$50,$00
|
|
.byte $00,$00,$07,$00,$09,$00,$07,$00,$00,$00,$07,$00,$00,$00,$07,$00
|
|
.byte $02,$51,$50,$00,$01,$51,$50,$09,$01,$51,$50,$00,$02,$51,$50,$00
|
|
.byte $00,$08,$a2,$08,$a3,$a3,$00,$a3,$a3,$a2,$08,$a3,$04,$04,$04,$04
|
|
.byte $a2,$a3,$00,$a2,$a3,$08,$a3,$08,$a2,$a3,$08,$00,$04,$04,$04,$60
|
|
.byte $01,$51,$50,$00,$01,$51,$50,$00,$01,$51,$50,$00,$02,$51,$50,$00
|
|
.byte $00,$00,$07,$63,$00,$00,$07,$64,$00,$66,$07,$65,$00,$67,$07,$00
|
|
.byte $00,$00,$00,$61,$00,$00,$00,$61,$00,$00,$00,$61,$00,$00,$00,$61
|
|
.byte $63,$68,$07,$00,$64,$00,$07,$00,$65,$00,$07,$00,$00,$00,$07,$00
|
|
.byte $00,$20,$21,$01,$22,$23,$24,$02,$25,$26,$27,$9a,$28,$29,$2a,$9b
|
|
.byte $2b,$2c,$2d,$10,$0c,$2e,$2f,$10,$0d,$0d,$0d,$0d,$0e,$0e,$0e,$0e
|
|
.byte $00,$07,$00,$00,$0c,$07,$0c,$0c,$0d,$07,$0d,$0d,$0e,$07,$0e,$0e
|
|
.byte $10,$10,$10,$10,$10,$10,$10,$10,$0d,$0d,$0d,$0d,$0e,$0e,$0e,$4a
|
|
.byte $10,$10,$10,$10,$10,$10,$10,$10,$0d,$0d,$0d,$0d,$7a,$0e,$0e,$0e
|
|
.byte $10,$10,$10,$10,$32,$03,$03,$03,$4b,$4d,$98,$98,$80,$81,$82,$83
|
|
.byte $0f,$07,$0f,$0f,$0f,$07,$0f,$0f,$0f,$0f,$0f,$0f,$11,$11,$11,$11
|
|
.byte $0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$11,$11,$11,$11
|
|
.byte $10,$10,$10,$10,$03,$03,$03,$62,$98,$98,$7d,$7b,$84,$85,$85,$86
|
|
.byte $01,$51,$50,$00,$02,$54,$53,$52,$9a,$57,$56,$55,$9b,$5a,$59,$58
|
|
.byte $10,$5d,$5c,$5b,$10,$5f,$5e,$0c,$0d,$0d,$0d,$0d,$0e,$0e,$0e,$0e
|
|
.byte $00,$00,$07,$00,$0c,$0c,$07,$0c,$0d,$0d,$07,$0d,$0e,$0e,$07,$0e
|
|
.byte $0f,$0f,$07,$0f,$0f,$0f,$07,$0f,$0f,$0f,$0f,$0f,$11,$11,$11,$11
|
|
.byte $0f,$0f,$49,$87,$0f,$49,$4d,$98,$49,$4d,$98,$98,$11,$11,$11,$11
|
|
.byte $88,$89,$8a,$8b,$98,$98,$90,$91,$98,$98,$94,$95,$11,$11,$11,$11
|
|
.byte $8c,$8d,$8e,$8f,$92,$93,$98,$98,$95,$96,$98,$98,$11,$11,$11,$11
|
|
.byte $7d,$79,$0f,$0f,$98,$7d,$79,$0f,$98,$98,$7d,$79,$11,$11,$11,$11
|
|
.byte $0f,$7c,$07,$00,$0f,$0f,$07,$00,$0f,$0f,$0f,$7c,$0f,$0f,$0f,$0f
|
|
.byte $9d,$00,$07,$00,$9d,$00,$07,$00,$9d,$00,$07,$00,$6d,$00,$07,$00
|
|
.byte $97,$97,$7e,$7f,$a0,$9e,$9e,$6c,$09,$09,$09,$9d,$9e,$9e,$9e,$9f
|
|
.byte $a4,$a5,$a4,$a5,$a6,$a7,$a6,$a7,$a4,$a5,$a4,$a5,$a1,$45,$a1,$a1
|
|
.byte $00,$07,$00,$9d,$00,$07,$00,$9d,$00,$07,$00,$9d,$00,$07,$00,$3d
|
|
.byte $7e,$7f,$97,$97,$3c,$9e,$9e,$a0,$9d,$09,$09,$09,$9f,$9e,$9e,$9e
|
|
.byte $05,$97,$3c,$a0,$06,$97,$9d,$7e,$09,$09,$9d,$97,$9e,$9e,$9f,$9e
|
|
.byte $00,$07,$00,$3c,$00,$07,$00,$9d,$00,$07,$00,$9d,$00,$07,$00,$9d
|
|
.byte $9e,$9e,$9e,$9e,$97,$39,$3a,$3a,$97,$3b,$00,$00,$97,$3b,$00,$00
|
|
.byte $4f,$4e,$9e,$a0,$3a,$3a,$3a,$3a,$00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $a0,$9e,$9e,$a0,$3a,$3a,$3a,$9c,$00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $00,$07,$00,$9d,$00,$07,$00,$9d,$00,$07,$00,$9d,$00,$07,$00,$9d
|
|
.byte $97,$3b,$00,$00,$97,$3b,$00,$00,$39,$3a,$3a,$3a,$3b,$00,$00,$00
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$3a,$3a,$3a,$3a,$00,$00,$00,$00
|
|
.byte $a0,$6c,$97,$05,$9e,$9f,$97,$06,$7e,$7f,$09,$09,$9e,$9e,$9e,$9e
|
|
.byte $46,$00,$a4,$a5,$43,$00,$a6,$a7,$43,$00,$a4,$a5,$43,$00,$a6,$a7
|
|
.byte $a4,$a5,$a4,$a5,$a6,$a7,$a6,$a7,$a4,$a5,$a4,$a5,$a6,$a7,$a6,$a7
|
|
.byte $9e,$9e,$a0,$9e,$a0,$3c,$9e,$9e,$09,$9d,$7e,$7f,$9e,$6d,$97,$a0
|
|
.byte $00,$07,$00,$3e,$00,$07,$00,$9d,$00,$07,$00,$9d,$00,$07,$00,$9d
|
|
.byte $9e,$9e,$9e,$47,$3f,$48,$48,$40,$42,$00,$00,$41,$43,$00,$00,$00
|
|
.byte $a4,$a5,$a4,$a5,$a6,$a7,$a6,$a7,$a4,$a5,$a4,$a5,$a1,$a1,$75,$a1
|
|
.byte $a4,$a5,$00,$73,$a6,$a7,$00,$73,$a4,$a5,$00,$73,$a1,$a1,$a1,$74
|
|
.byte $a0,$9e,$9e,$a0,$9c,$6a,$6a,$6a,$00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $a0,$9e,$4f,$4e,$6a,$6a,$6a,$6a,$00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $9e,$9e,$9e,$9e,$6a,$6a,$69,$97,$00,$00,$6b,$97,$00,$00,$6b,$97
|
|
.byte $6c,$00,$07,$00,$9d,$00,$07,$00,$9d,$00,$07,$00,$9d,$00,$07,$00
|
|
.byte $0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$6a,$6a,$6a,$6a,$00,$00,$00,$00
|
|
.byte $00,$00,$6b,$97,$00,$00,$6b,$97,$6a,$6a,$6a,$69,$00,$00,$00,$6b
|
|
.byte $9d,$00,$07,$00,$9d,$00,$07,$00,$9d,$00,$07,$00,$9d,$00,$07,$00
|
|
.byte $00,$07,$4c,$0f,$00,$07,$0f,$0f,$4c,$0f,$0f,$0f,$0f,$0f,$0f,$0f
|
|
.byte $a4,$a5,$00,$76,$a6,$a7,$00,$73,$a4,$a5,$00,$73,$a6,$a7,$00,$73
|
|
.byte $9e,$a0,$9e,$9e,$7f,$97,$a0,$9d,$7e,$7f,$09,$9d,$a0,$97,$9e,$9f
|
|
.byte $77,$9e,$9e,$9e,$70,$78,$78,$6f,$71,$00,$00,$76,$00,$00,$00,$73
|
|
.byte $6e,$00,$07,$00,$9d,$00,$07,$00,$9d,$00,$07,$00,$9d,$00,$07,$00
|
|
.byte $43,$00,$a4,$a5,$43,$00,$a6,$a7,$43,$00,$a4,$a5,$44,$a1,$a1,$a1
|
|
.byte $a4,$a5,$a4,$a5,$a6,$a7,$a6,$a7,$a4,$a5,$a4,$a5,$a1,$45,$a1,$a1
|
|
|
|
level_2_4_nametable_update_supertile_data:
|
|
.byte $12,$13,$14,$15,$16,$17,$18,$19,$1a,$1b,$1c,$1d,$1e,$1f,$a8,$a9 ; closed wall cannon
|
|
.byte $12,$aa,$ab,$15,$c1,$ae,$af,$c2,$b2,$b3,$b4,$b5,$b9,$ba,$bb,$bc ; partial open wall cannon
|
|
.byte $12,$ac,$ad,$15,$c1,$b0,$b1,$c2,$b2,$b6,$b7,$b8,$bd,$be,$bf,$c0 ; fully open wall cannon
|
|
.byte $12,$aa,$ab,$15,$c1,$c3,$c4,$c2,$c7,$c8,$c9,$ca,$b9,$ba,$bb,$bc ; wall plating #$01
|
|
.byte $12,$ac,$ad,$15,$c1,$c5,$c6,$c2,$c7,$cb,$cc,$cd,$bd,$be,$bf,$c0 ; wall plating #$02
|
|
.byte $ce,$cf,$d0,$d1,$d2,$00,$00,$d3,$d4,$d5,$d6,$d7,$d8,$d9,$da,$db ; destroyed wall plating
|
|
.byte $a4,$a5,$1a,$1b,$a6,$a7,$1e,$1f,$a4,$a5,$a4,$a5,$a6,$a7,$a6,$a7
|
|
.byte $a4,$a5,$b2,$b3,$a6,$a7,$b9,$ba,$a4,$a5,$a4,$a5,$a6,$a7,$a6,$a7
|
|
.byte $a4,$a5,$b2,$b6,$a6,$a7,$bd,$be,$a4,$a5,$a4,$a5,$a6,$a7,$a6,$a7
|
|
.byte $9e,$9e,$12,$13,$9e,$47,$16,$17,$48,$40,$1a,$1b,$00,$41,$1e,$1f
|
|
.byte $9e,$9e,$12,$aa,$9e,$47,$c1,$c3,$48,$40,$c7,$c8,$00,$41,$b9,$ba
|
|
.byte $9e,$9e,$12,$ac,$9e,$47,$c1,$c5,$48,$40,$c7,$cb,$00,$41,$bd,$be
|
|
.byte $14,$15,$9e,$9e,$18,$19,$77,$9e,$1c,$1d,$70,$78,$a8,$a9,$71,$00
|
|
.byte $ab,$15,$9e,$9e,$c4,$c2,$77,$9e,$c9,$ca,$70,$78,$bb,$bc,$71,$00
|
|
.byte $ad,$15,$9e,$9e,$c6,$c2,$77,$9e,$cc,$cd,$70,$78,$bf,$c0,$71,$00
|
|
.byte $0b,$0b,$0b,$0b,$09,$09,$09,$09,$12,$13,$14,$15,$16,$17,$18,$19
|
|
.byte $0b,$0b,$0b,$0b,$09,$09,$09,$09,$12,$aa,$ab,$15,$c1,$c3,$c4,$c2
|
|
.byte $0b,$0b,$0b,$0b,$09,$09,$09,$09,$12,$ac,$ad,$15,$c1,$c5,$c6,$c2
|
|
.byte $1a,$1b,$1c,$1d,$1e,$1f,$a8,$a9,$9a,$9a,$9a,$9a,$9b,$9b,$9b,$9b
|
|
.byte $c7,$c8,$c9,$ca,$b9,$ba,$bb,$bc,$9a,$9a,$9a,$9a,$9b,$9b,$9b,$9b
|
|
.byte $c7,$cb,$cc,$cd,$bd,$be,$bf,$c0,$9a,$9a,$9a,$9a,$9b,$9b,$9b,$9b
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$14,$15,$6a,$6a,$18,$19,$00,$00
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$ab,$15,$6a,$6a,$af,$19,$00,$00
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$ad,$15,$6a,$6a,$b1,$19,$00,$00
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$3a,$3a,$12,$13,$00,$00,$16,$17
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$3a,$3a,$12,$aa,$00,$00,$16,$ae
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$3a,$3a,$12,$ac,$00,$00,$16,$b0
|
|
.byte $0b,$0b,$0b,$0b,$09,$09,$7e,$7f,$14,$15,$9e,$9e,$18,$19,$01,$01
|
|
.byte $0b,$0b,$0b,$0b,$09,$09,$7e,$7f,$ab,$15,$9e,$9e,$c4,$c2,$01,$01
|
|
.byte $0b,$0b,$0b,$0b,$09,$09,$7e,$7f,$ad,$15,$9e,$9e,$c6,$c2,$01,$01
|
|
.byte $1c,$1d,$a4,$a5,$a8,$a9,$a6,$a7,$a4,$a5,$a4,$a5,$a6,$a7,$a6,$a7
|
|
.byte $b4,$b5,$a4,$a5,$bb,$bc,$a6,$a7,$a4,$a5,$a4,$a5,$a6,$a7,$a6,$a7
|
|
.byte $b7,$b8,$a4,$a5,$bf,$c0,$a6,$a7,$a4,$a5,$a4,$a5,$a6,$a7,$a6,$a7
|
|
.byte $1c,$1d,$a0,$a0,$a8,$a9,$0a,$0a,$9a,$9a,$9a,$9a,$9b,$9b,$9b,$9b
|
|
.byte $c9,$ca,$a0,$a0,$bb,$bc,$0a,$0a,$9a,$9a,$9a,$9a,$9b,$9b,$9b,$9b
|
|
.byte $cc,$cd,$a0,$a0,$bf,$c0,$0a,$0a,$9a,$9a,$9a,$9a,$9b,$9b,$9b,$9b
|
|
.byte $a0,$a0,$1a,$1b,$0a,$0a,$1e,$1f,$9a,$9a,$9a,$9a,$9b,$9b,$9b,$9b
|
|
.byte $a0,$a0,$c7,$c8,$0a,$0a,$b9,$ba,$9a,$9a,$9a,$9a,$9b,$9b,$9b,$9b
|
|
.byte $a0,$a0,$c7,$cb,$0a,$0a,$bd,$be,$9a,$9a,$9a,$9a,$9b,$9b,$9b,$9b
|
|
.byte $0b,$0b,$0b,$0b,$7e,$7f,$09,$09,$9e,$9e,$12,$13,$01,$01,$16,$17
|
|
.byte $0b,$0b,$0b,$0b,$7e,$7f,$09,$09,$9e,$9e,$12,$aa,$00,$00,$c1,$c3
|
|
.byte $0b,$0b,$0b,$0b,$7e,$7f,$09,$09,$9e,$9e,$12,$ac,$00,$00,$c1,$c5
|
|
.byte $a4,$a5,$d4,$d5,$a6,$a7,$d8,$d9,$a4,$a5,$a4,$a5,$a6,$a7,$a6,$a7
|
|
.byte $9e,$9e,$ce,$cf,$9e,$47,$d2,$00,$48,$40,$d4,$d5,$00,$41,$d8,$d9
|
|
.byte $d0,$d1,$9e,$9e,$00,$d3,$77,$9e,$d6,$d7,$70,$00,$da,$db,$71,$00
|
|
.byte $0b,$0b,$0b,$0b,$09,$09,$09,$09,$ce,$cf,$d0,$d1,$d2,$00,$00,$d3
|
|
.byte $d4,$d5,$d6,$d7,$d8,$d9,$da,$db,$9a,$9a,$9a,$9a,$9b,$9b,$9b,$9b
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$d0,$d1,$6a,$6a,$00,$d3,$00,$00
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00,$3a,$3a,$ce,$cf,$00,$00,$d2,$00
|
|
.byte $0b,$0b,$0b,$0b,$09,$09,$7e,$7f,$d0,$d1,$9e,$9e,$00,$d3,$01,$01
|
|
.byte $d6,$d7,$a4,$a5,$da,$db,$a6,$a7,$a4,$a5,$a4,$a5,$a6,$a7,$a6,$a7
|
|
.byte $d6,$d7,$a0,$a0,$da,$db,$0a,$0a,$9a,$9a,$9a,$9a,$9b,$9b,$9b,$9b
|
|
.byte $a0,$a0,$d4,$d5,$0a,$0a,$d8,$d9,$9a,$9a,$9a,$9a,$9b,$9b,$9b,$9b
|
|
.byte $0b,$0b,$0b,$0b,$7e,$7f,$09,$09,$9e,$9e,$ce,$cf,$01,$01,$d2,$00
|
|
|
|
; color data for level 2 boss room (#$80 bytes)
|
|
level_2_4_boss_palette_data:
|
|
.byte $00,$04,$55,$5f,$11,$55,$11,$11,$55,$5e,$44,$55,$45,$55,$5e,$5b
|
|
.byte $55,$00,$44,$44,$55,$04,$00,$05,$05,$45,$00,$00,$15,$55,$01,$00
|
|
.byte $00,$00,$05,$05,$00,$04,$55,$55,$00,$55,$55,$55,$55,$15,$05,$05
|
|
.byte $55,$55,$50,$55,$11,$00,$55,$55,$55,$00,$00,$05,$05,$45,$55,$00
|
|
.byte $50,$54,$55,$01,$44,$55,$55,$55,$01,$00
|
|
|
|
; each byte is the palette for an entire super-tile
|
|
; updates values in the attribute table
|
|
level_2_4_boss_nametable_update_palette_data:
|
|
.byte $af,$af,$af,$af,$af,$55,$08,$08,$08,$9d,$9d,$9d,$67,$67,$67,$f5
|
|
.byte $f5,$f5,$5a,$5a,$5a,$70,$70,$70,$d0,$d0,$d0,$75,$75,$75,$02,$02
|
|
.byte $02,$56,$56,$56,$59,$59,$59,$d5,$d5,$d5,$04,$55,$55,$55,$55,$50
|
|
.byte $50,$55,$01,$55,$55,$55
|
|
|
|
run_end_level_sequence_routine:
|
|
lda #$00 ; a = #$00
|
|
sta CONTROLLER_STATE ; clear player 1 input
|
|
sta CONTROLLER_STATE+1 ; clear player 2 input
|
|
sta CONTROLLER_STATE_DIFF ; clear player 1 input difference
|
|
sta CONTROLLER_STATE_DIFF+1 ; clear player 2 input difference
|
|
lda END_LEVEL_ROUTINE_INDEX ; load end_level_sequence_ptr_tbl index to jump to
|
|
jsr run_routine_from_tbl_below ; run routine a in the following table (end_level_sequence_ptr_tbl)
|
|
|
|
; pointer table for end of level sequences (#$3 * #$2 = #$6 bytes)
|
|
; CPU address $be09
|
|
end_level_sequence_ptr_tbl:
|
|
.addr end_level_sequence_00 ; CPU address $be0f
|
|
.addr end_level_sequence_01 ; CPU address $be3c
|
|
.addr end_level_sequence_02 ; CPU address $bf78
|
|
|
|
; wait for both players to land from jumping to initiate sequence
|
|
end_level_sequence_00:
|
|
lda #$00 ; a = #$00
|
|
sta $08 ; initialize jump status check
|
|
ldx #$01 ; start with player 2
|
|
|
|
@player_loop:
|
|
lda #$00 ; a = #$00
|
|
ldy P1_GAME_OVER_STATUS,x ; game over state (1 = game over)
|
|
bne @move_next_player ; skip player if in game over state
|
|
lda PLAYER_JUMP_STATUS,x ; low nibble 1 = jumping, 0 not jumping; high nibble = facing direction
|
|
ora $08 ; merge players' jump status
|
|
sta $08 ; update with merged jump status
|
|
lda #$01 ; a = #$01
|
|
|
|
@move_next_player:
|
|
sta LEVEL_END_LVL_ROUTINE_STATE,x ; set to #$01
|
|
dex ; decrement player index
|
|
bpl @player_loop ; if not already on player 1, move to player 1
|
|
lda $08 ; load merged jump status
|
|
beq @continue ; if 0, neither player is jumping, branch
|
|
rts ; one of the players is jumping, don't begin ending sequence
|
|
|
|
; players are on the ground, move to end_level_sequence_01
|
|
@continue:
|
|
lda #$81 ; a = #$81
|
|
sta BOSS_DEFEATED_FLAG
|
|
lda #$f0 ; a = #$f0
|
|
sta LEVEL_END_SQ_1_TIMER
|
|
lda #$20 ; a = #$20
|
|
jmp set_delay_adv_routine ; set LEVEL_END_DELAY_TIMER to #$20 and advance to end_level_sequence_01
|
|
|
|
; CPU address $be3c
|
|
end_level_sequence_01:
|
|
lda LEVEL_END_DELAY_TIMER ; load level ending sequence delay timer
|
|
beq @continue ; continue if elapsed
|
|
dec LEVEL_END_DELAY_TIMER ; timer hasn't elapsed, decrement and exit
|
|
rts
|
|
|
|
@continue:
|
|
ldx #$01 ; x = #$01
|
|
|
|
@player_lvl_routine_loop:
|
|
ldy LEVEL_END_LVL_ROUTINE_STATE,x
|
|
beq @continue2
|
|
dey ; decrement level routine state index
|
|
sty $08 ; store LEVEL_END_LVL_ROUTINE_STATE in $08
|
|
jsr run_end_of_lvl_lvl_routine
|
|
jsr make_off_screen_player_invisible_exit ; make invisible if necessary and exit
|
|
|
|
@continue2:
|
|
dex
|
|
bpl @player_lvl_routine_loop
|
|
lda FRAME_COUNTER ; load frame counter
|
|
lsr
|
|
bcc @set_0192_exit
|
|
dec LEVEL_END_SQ_1_TIMER
|
|
beq @set_level_delay_adv_routine
|
|
|
|
@set_0192_exit:
|
|
lda LEVEL_END_LVL_ROUTINE_STATE
|
|
ora LEVEL_END_LVL_ROUTINE_STATE+1 ; set player 2 value
|
|
bne end_level_sequence_01_exit
|
|
|
|
@set_level_delay_adv_routine:
|
|
ldy CURRENT_LEVEL ; current level
|
|
lda level_end_level_delay_timer_tbl,y
|
|
|
|
set_delay_adv_routine:
|
|
sta LEVEL_END_DELAY_TIMER
|
|
inc END_LEVEL_ROUTINE_INDEX ; go to next method in end_level_sequence_ptr_tbl
|
|
|
|
end_level_sequence_01_exit:
|
|
rts
|
|
|
|
; table for delay timer used in level-specif ending routines (#$8 bytes)
|
|
; waterfall is the only different value at #$e0
|
|
level_end_level_delay_timer_tbl:
|
|
.byte $a0,$a0,$e0,$a0,$a0,$a0,$a0,$a0
|
|
|
|
; runs the routines for handling end of level
|
|
; input
|
|
; * $08 - LEVEL_END_LVL_ROUTINE_STATE
|
|
run_end_of_lvl_lvl_routine:
|
|
lda CURRENT_LEVEL ; current level
|
|
jsr run_routine_from_tbl_below ; run routine a in the following table (end_of_lvl_lvl_routine_ptr_tbl)
|
|
|
|
; end of level routines (#$8 * #$2 = #$10 bytes)
|
|
end_of_lvl_lvl_routine_ptr_tbl:
|
|
.addr end_of_lvl_routine_lvl_1 ; CPU address $be92
|
|
.addr end_of_lvl_routine_indoor ; CPU address $bec4
|
|
.addr end_of_lvl_routine_lvl_3 ; CPU address $bf13
|
|
.addr end_of_lvl_routine_indoor ; CPU address $bec4
|
|
.addr end_of_lvl_routine_lvl_5 ; CPU address $bf4c
|
|
.addr end_of_lvl_routine_lvl_6 ; CPU address $bf63
|
|
.addr end_of_lvl_routine_lvl_7 ; CPU address $bf67
|
|
.addr end_of_lvl_routine_lvl_8 ; CPU address $bf6b
|
|
|
|
; end of level 1
|
|
; animate moving player right until enter tunnel
|
|
; 3 states
|
|
; * #$00 - walk to the right
|
|
; * #$01 - jump to the right
|
|
; * #$02 - walk to the right
|
|
end_of_lvl_routine_lvl_1:
|
|
lda SPRITE_X_POS,x ; player x position on screen
|
|
cmp #$98 ; see where the player is at horizontally
|
|
lda #$00 ; a = #$00
|
|
bcc @continue ; branch if player is in the left 60% of the screen
|
|
lda #$80 ; player close to right edge, set background priority for player sprite
|
|
|
|
@continue:
|
|
sta PLAYER_BG_FLAG_EDGE_DETECT,x ; set player sprite attribute so background takes priority
|
|
ldy $08 ; load LEVEL_END_LVL_ROUTINE_STATE
|
|
bne end_of_lvl_routine_lvl_1_01 ; branch if player should jump into the tunnel (state #$01)
|
|
jsr press_d_pad_right ; press the d-pad right button to move the player to the right
|
|
lda SPRITE_X_POS,x ; player x position on screen
|
|
cmp #$90 ; trigger point to jump into tunnel
|
|
bcc routine_lvl_1_exit ; branch if not yet reached jump trigger point
|
|
|
|
routine_lvl_1_adv_lvl_state_exit:
|
|
inc LEVEL_END_LVL_ROUTINE_STATE,x
|
|
|
|
routine_lvl_1_exit:
|
|
rts
|
|
|
|
end_of_lvl_routine_lvl_1_01:
|
|
dey
|
|
bne press_d_pad_right ; branch to press the d-pad right button to move the player to the right (state #$02)
|
|
lda PLAYER_JUMP_STATUS,x ; low nibble 1 = jumping, 0 not jumping; high nibble = facing direction
|
|
bne routine_lvl_1_adv_lvl_state_exit ; exit if jump already started
|
|
lda #$81 ; need to jump, set controller input A button and right arrow button pressed
|
|
sta CONTROLLER_STATE,x ; store this value into player input
|
|
sta $f5,x ; store this value into player input
|
|
rts
|
|
|
|
; press the d-pad right button to move the player to the right
|
|
press_d_pad_right:
|
|
lda #$01 ; controller input D-pad right arrow
|
|
sta CONTROLLER_STATE,x ; store this value into player input
|
|
rts
|
|
|
|
; indoor/base (level 2 and 4) end of level routine
|
|
end_of_lvl_routine_indoor:
|
|
ldy $08 ; load current LEVEL_END_LVL_ROUTINE_STATE
|
|
bne end_of_lvl_routine_indoor_01 ; see if in state #$01
|
|
lda indoor_lvl_end_input_tbl,x ; state #$00 - load the appropriate d-pad input based on current player (left or right)
|
|
sta CONTROLLER_STATE,x ; controller buttons held
|
|
lda SPRITE_X_POS,x ; player x position on screen
|
|
sec ; set carry flag in preparation for subtraction
|
|
sbc indoor_lvl_elevator_pos_tbl,x ; subtract elevator x position from player x position
|
|
bcs @cmp_elevator_distance ; branch if player to the right of the elevator
|
|
eor #$ff ; to the left of the elevator (negative result), flip all bits and add 1 (two's complement)
|
|
adc #$01 ; to get a positive number (the distance to the elevator)
|
|
|
|
@cmp_elevator_distance:
|
|
cmp #$02 ; see if within 2 pixels of elevator
|
|
bcs routine_indoor_lvl_exit ; not near elevator, exit
|
|
|
|
routine_indoor_lvl_adv_lvl_state_exit:
|
|
inc LEVEL_END_LVL_ROUTINE_STATE,x
|
|
|
|
routine_indoor_lvl_exit:
|
|
rts
|
|
|
|
end_of_lvl_routine_indoor_01:
|
|
dey ; test next LEVEL_END_LVL_ROUTINE_STATE
|
|
bne end_of_lvl_routine_indoor_02 ; branch if not in state #$01
|
|
lda #$03 ; state #$01 - load a = #$03
|
|
sta PLAYER_STATE,x ; set player can't move state
|
|
lda indoor_lvl_elevator_attr_tbl,x ; load the correct sprite attribute (color) for the player
|
|
sta SPRITE_ATTR,x ; set the sprite attribute in the sprite cpu buffer
|
|
jsr set_player_on_elevator_sprite ; set the elevator sprite code in the sprite cpu buffer
|
|
bne routine_indoor_lvl_adv_lvl_state_exit ; always jump, move to next level state and then exit
|
|
|
|
; wait for other player to get on elevator
|
|
end_of_lvl_routine_indoor_02:
|
|
dey ; test next LEVEL_END_LVL_ROUTINE_STATE
|
|
bne end_of_lvl_routine_indoor_03 ; branch if not in state #$02
|
|
stx $10 ; state #$02, see which LEVEL_END_LVL_ROUTINE_STATE the other player is in, backup current x
|
|
txa ; move x to a so can flip bit 0
|
|
eor #$01 ; swap to other player's state
|
|
tax ; move other player offset to x
|
|
lda LEVEL_END_LVL_ROUTINE_STATE,x ; load other player's LEVEL_END_LVL_ROUTINE_STATE
|
|
ldx $10 ; restore player offset back to original player
|
|
tay ; move other player LEVEL_END_LVL_ROUTINE_STATE to y
|
|
beq routine_indoor_lvl_adv_lvl_state_exit ; branch if other player is in state #$00, i.e. player 2 not playing
|
|
cmp #$03 ; compare other player's state to #$03
|
|
bcs routine_indoor_lvl_adv_lvl_state_exit ; branch and move to state #$03 if other player is also on elevator (in state #$02)
|
|
rts
|
|
|
|
; ride the elevator up
|
|
end_of_lvl_routine_indoor_03:
|
|
dec SPRITE_Y_POS,x ; move player and elevator up
|
|
|
|
; set player on elevator sprite in cpu sprite memory
|
|
set_player_on_elevator_sprite:
|
|
lda #$91 ; player on elevator sprite code sprite_91
|
|
sta CPU_SPRITE_BUFFER,x ; ensure sprite code is set
|
|
rts
|
|
|
|
; end of level 3
|
|
; 2 states
|
|
; * walk to middle of screen (dragon gate)
|
|
; * jump into gate
|
|
end_of_lvl_routine_lvl_3:
|
|
ldy $08 ; load current LEVEL_END_LVL_ROUTINE_STATE
|
|
bne end_of_lvl_routine_lvl_3_01
|
|
lda #$01 ; controller input D-pad right arrow
|
|
ldy SPRITE_X_POS,x ; load player horizontal position
|
|
cpy #$80 ; see where player is in relation to middle of screen
|
|
bcc @continue ; branch if player to the left of the middle
|
|
lda #$02 ; player to the right or in middle of screen, set controller input D-pad left arrow
|
|
|
|
@continue:
|
|
sta CONTROLLER_STATE,x ; set controller input (eight left or right)
|
|
tya ; move player x position to a
|
|
sec ; set carry flag in preparation for subtraction
|
|
sbc #$80 ; subtract #$80 to get distance from middle of screen
|
|
bcs @cmp_dist ; result is not negative, continue to compare distance to middle of screen
|
|
eor #$ff ; player to left of middle, (negative result), flip all bits and add 1 (two's complement)
|
|
adc #$01 ; to get a positive number (the distance to the middle)
|
|
|
|
@cmp_dist:
|
|
cmp #$08 ; see if within 8 pixels of the middle of the screen horizontally
|
|
bcs routine_lvl_3_exit ; not yet close to center, exit
|
|
inc LEVEL_END_LVL_ROUTINE_STATE,x ; can now jump into dragon gate
|
|
|
|
routine_lvl_3_exit:
|
|
rts
|
|
|
|
; jump into dragon gate
|
|
end_of_lvl_routine_lvl_3_01:
|
|
lda #$80 ; controller A button pressed (jump)
|
|
sta CONTROLLER_STATE_DIFF,x ; store as new input
|
|
lda PLAYER_JUMP_STATUS,x ; low nibble 1 = jumping, 0 not jumping; high nibble = facing direction
|
|
beq routine_lvl_3_exit ; exit if just starting the jump
|
|
lda PLAYER_Y_FAST_VELOCITY,x ; get current jump velocity
|
|
bmi routine_lvl_3_exit ; exit if still jumping up (not falling back down)
|
|
lda SPRITE_Y_POS,x ; falling back down, see if should hide player behind wall yet
|
|
cmp #$b0 ; compare to height of wall below dragon gate
|
|
bcc routine_lvl_3_exit ; exit if not yet fallen down to the top of the wall
|
|
jmp make_player_invisible ; falling 'behind' wall, make player invisible to simulate effect
|
|
|
|
; end of level 5
|
|
end_of_lvl_routine_lvl_5:
|
|
ldy #$00 ; y = #$00
|
|
|
|
; move the player right and set PLAYER_BG_FLAG_EDGE_DETECT appropriate based on x position
|
|
; x trigger position based on x_pos_bg_priority_trigger_tbl,y
|
|
; input
|
|
; * y - offset into x_pos_bg_priority_trigger_tbl
|
|
move_right_set_bg_priority:
|
|
jsr press_d_pad_right ; press the d-pad right button to move the player to the right
|
|
lda SPRITE_X_POS,x ; load player's x position
|
|
cmp x_pos_bg_priority_trigger_tbl,y ; see if player has crossed trigger point to put player in background
|
|
lda #$01 ; always set bit 0 (player continues walking off horizontally off ledge)
|
|
bcc @set_bg_priority_exit ; branch if player x position is to left of x_pos_bg_priority_trigger_tbl position
|
|
ora #$80 ; set bit 7 to specify sprite draws behind background
|
|
|
|
@set_bg_priority_exit:
|
|
sta PLAYER_BG_FLAG_EDGE_DETECT,x
|
|
rts
|
|
|
|
; table for horizontal trigger points for setting PLAYER_BG_FLAG_EDGE_DETECT (#$3 bytes)
|
|
; byte 0 - level 5 (snow field)
|
|
; byte 1 - level 6 (energy zone)
|
|
; byte 2 - level 7 (hangar)
|
|
x_pos_bg_priority_trigger_tbl:
|
|
.byte $b8,$d0,$d0
|
|
|
|
; end of level 6
|
|
end_of_lvl_routine_lvl_6:
|
|
ldy #$01 ; y = #$01
|
|
bne move_right_set_bg_priority
|
|
|
|
; end of level 7
|
|
end_of_lvl_routine_lvl_7:
|
|
ldy #$02 ; y = #$02
|
|
bne move_right_set_bg_priority
|
|
|
|
; end of level 8
|
|
end_of_lvl_routine_lvl_8:
|
|
ldy $08
|
|
bne @exit
|
|
lda #$40 ; a = #$40
|
|
sta LEVEL_END_SQ_1_TIMER
|
|
inc LEVEL_END_LVL_ROUTINE_STATE,x
|
|
|
|
@exit:
|
|
rts
|
|
|
|
; mark end of level routines as complete and move to level_routine_05
|
|
end_level_sequence_02:
|
|
lda #$02 ; a = #$02
|
|
sta BOSS_DEFEATED_FLAG
|
|
dec LEVEL_END_DELAY_TIMER
|
|
bne @exit ; exit if level end delay timer hasn't elapsed
|
|
jsr set_graphics_zero_mode ; set GRAPHICS_BUFFER_MODE to #$00 to prepare writing text to screen (write_text_palette_to_mem)
|
|
lda #$05 ; a = #$05
|
|
jmp set_a_as_current_level_routine ; set current level_routine to level_routine_05
|
|
|
|
@exit:
|
|
rts
|
|
|
|
; make the player invisible if off the screen to the right, or off screen to the top
|
|
make_off_screen_player_invisible_exit:
|
|
lda SPRITE_Y_POS,x
|
|
cmp #$08
|
|
bcc make_player_invisible ; branch if player at top of screen
|
|
lda SPRITE_X_POS,x
|
|
cmp #$f8
|
|
bcs make_player_invisible ; branch if player at right edge of screen
|
|
cmp #$04
|
|
bcs end_level_sequence_02_exit ; exit if player not at left edge of screen
|
|
|
|
make_player_invisible:
|
|
lda #$ff ; a = #$ff
|
|
sta PLAYER_HIDDEN,x ; set player to be invisible
|
|
lda #$00
|
|
sta LEVEL_END_LVL_ROUTINE_STATE,x
|
|
sta PLAYER_SPRITES,x ; clear player sprite
|
|
|
|
end_level_sequence_02_exit:
|
|
rts
|
|
|
|
; tables for end of indoor/base level 2/4
|
|
; player 1 walks to the left elevator - d-pad left (#$02)
|
|
; player 2 walks to the right elevator - d-pad right right (#$01)
|
|
; controller input - player 1/2 (#$2 bytes)
|
|
indoor_lvl_end_input_tbl:
|
|
.byte $02,$01
|
|
|
|
; x position for elevator (#$02 bytes)
|
|
indoor_lvl_elevator_pos_tbl:
|
|
.byte $0c,$f4
|
|
|
|
; table for sprite attribute for being on elevator (#$2 bytes)
|
|
; sprite_91 - indoor boss defeated elevator with player on top
|
|
; byte 0 is for player 1, byte 1 is for player 2
|
|
indoor_lvl_elevator_attr_tbl:
|
|
.byte $00,$45
|
|
|
|
; unused #$51 bytes out of #$4,000 bytes total (99.51% full)
|
|
; unused 81 bytes out of 16,384 bytes total (99.51% full)
|
|
; filled with 81 #$ff bytes by contra.cfg configuration
|
|
bank_3_unused_space: |