Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .inesprg 1 ; 1 PRG bank
- .ineschr 1 ; 1 CHR bank
- .inesmap 4 ; No mapper
- .inesmir 1 ; Vertical mirroring
- .rsset $0000 ; Zero page variables
- pointerLo0 .rs 1 ; 16 bit poiner low bits for first nametable
- pointerHi0 .rs 1 ; 16 bit poiner high bits for first nametable
- pointerLo1 .rs 1 ; 16 bit poiner low bits for second nametable
- pointerHi1 .rs 1 ; 16 bit poiner high bits for second nametable
- counterLo .rs 1 ; 16 bit counter low bits
- counterHi .rs 1 ; 16 bit counter high bits
- updateBg0 .rs 1 ; Flag for triggering nametable 0 update in NMI
- updateBg1 .rs 1 ; Flag for triggering nametable 1 update in NMI
- updateSpr .rs 1 ; Flag for triggering sprite update in NMI
- updatePal .rs 1 ; Flag for triggering palette update in NMI
- mainWait .rs 1 ; Flag for waiting for NMI to finish
- scrollX .rs 1 ; Scroll position in X axis
- scrollY .rs 1 ; Scroll position in Y axis
- input1 .rs 1 ; Joypad 1 input data
- input1Temp .rs 1 ; Temporary joypad 1 data for comparsion
- input2 .rs 1 ; Joypad 2 input data
- input2Temp .rs 1 ; Temporary joypad 2 data for comparsion
- joy2Flag .rs 1 ; Check if joypad 2 is used in debug mode
- lives .rs 1 ; Lives display
- livesCounter .rs 1 ; Lives counter
- bombs .rs 1 ; Bombs display
- bombsCounter .rs 1 ; Bombs counter
- weapon .rs 1 ; Weapon type
- scr0 .rs 1 ; Score 1s
- scr1 .rs 1 ; Score 10s
- scr2 .rs 1 ; Score 100s
- scr3 .rs 1 ; Score 1000s
- scr4 .rs 1 ; Score 10000s
- scr5 .rs 1 ; Score 100000s
- scr6 .rs 1 ; Score 1000000s
- scr7 .rs 1 ; Score 10000000s
- hiScr0 .rs 1 ; High score 1s
- hiScr1 .rs 1 ; High score 10s
- hiScr2 .rs 1 ; High score 100s
- hiScr3 .rs 1 ; High score 1000s
- hiScr4 .rs 1 ; High score 10000s
- hiScr5 .rs 1 ; High score 100000s
- hiScr6 .rs 1 ; High score 1000000s
- hiScr7 .rs 1 ; High score 10000000s
- timer0 .rs 1 ; Timer for background scolling speed
- timer1 .rs 1 ; Global timer 1
- timer2 .rs 1 ; Global timer 2
- timer3 .rs 1 ; Global timer 3
- timer4 .rs 1 ; Global timer 4
- timer5 .rs 1 ; Global timer 5
- timer6 .rs 1 ; Global timer 6
- timer7 .rs 1 ; Global timer 7
- timer8 .rs 1 ; Global timer 8
- timer9 .rs 1 ; Global timer 9
- timerA .rs 1 ; Global timer A
- timerB .rs 1 ; Global timer B
- timerC .rs 1 ; Global timer C
- timerD .rs 1 ; Global timer D
- timerE .rs 1 ; Global timer E
- timerF .rs 1 ; Global timer F
- .rsset $0300 ; Sound engine variables
- soundDisableFlag .rs 1 ; Flag for disabling sound
- SQ1StreamCurrSnd .rs 6 ; Current sound in stream
- SQ1StreamChan .rs 6 ; Channel stream uses
- SQ1StreamVol .rs 6 ; Volume and duty settings in stream
- SQ1StreamLo .rs 6 ; Low bytes of current period in stream
- SQ1StreamHi .rs 6 ; High bytes of current period in stream
- PPUCtrl = $2000 ; PPU control port
- PPUMask = $2001 ; PPU mask
- PPUStatus = $2002 ; PPU status
- OAMAddr = $2003 ; Object attribute memory address
- OAMData = $2004 ; Object attribute memory data
- PPUScroll = $2005 ; PPU scolling registers
- PPUAddr = $2006 ; PPU address
- PPUData = $2007 ; PPU data
- PAL00 = $3F00 ; Background palette 0 colour 0
- PAL01 = $3F01 ; Background palette 0 colour 1
- PAL02 = $3F02 ; Background palette 0 colour 2
- PAL03 = $3F03 ; Background palette 0 colour 3
- PAL04 = $3F04 ; Background palette 1 colour 0
- PAL05 = $3F05 ; Background palette 1 colour 1
- PAL06 = $3F06 ; Background palette 1 colour 2
- PAL07 = $3F07 ; Background palette 1 colour 3
- PAL08 = $3F08 ; Background palette 2 colour 0
- PAL09 = $3F09 ; Background palette 2 colour 1
- PAL0A = $3F0A ; Background palette 2 colour 2
- PAL0B = $3F0B ; Background palette 2 colour 3
- PAL0C = $3F0C ; Background palette 3 colour 0
- PAL0D = $3F0D ; Background palette 3 colour 1
- PAL0E = $3F0E ; Background palette 3 colour 2
- PAL0F = $3F0F ; Background palette 3 colour 3
- PAL10 = $3F10 ; Sprite palette 0 colour 0
- PAL11 = $3F11 ; Sprite palette 0 colour 1
- PAL12 = $3F12 ; Sprite palette 0 colour 2
- PAL13 = $3F13 ; Sprite palette 0 colour 3
- PAL14 = $3F14 ; Sprite palette 1 colour 0
- PAL15 = $3F15 ; Sprite palette 1 colour 1
- PAL16 = $3F16 ; Sprite palette 1 colour 2
- PAL17 = $3F17 ; Sprite palette 1 colour 3
- PAL18 = $3F18 ; Sprite palette 2 colour 0
- PAL19 = $3F19 ; Sprite palette 2 colour 1
- PAL1A = $3F1A ; Sprite palette 2 colour 2
- PAL1B = $3F1B ; Sprite palette 2 colour 3
- PAL1C = $3F1C ; Sprite palette 3 colour 0
- PAL1D = $3F1D ; Sprite palette 3 colour 1
- PAL1E = $3F1E ; Sprite palette 3 colour 2
- PAL1F = $3F1F ; Sprite palette 3 colour 3
- SQ1Vol = $4000 ; Pulse 1 volume
- SQ1Sweep = $4001 ; Pulse 1 sweep
- SQ1Lo = $4002 ; Pulse 1 counter low bits
- SQ1Hi = $4003 ; Pulse 1 counter high bits
- SQ2Vol = $4004 ; Pulse 2 volume
- SQ2Sweep = $4005 ; Pulse 2 sweep
- SQ2Lo = $4006 ; Pulse 2 counter low bits
- SQ2Hi = $4007 ; Pulse 2 counter high bits
- TriLinear = $4008 ; Triangle
- TriLo = $400A ; Triangle counter low bits
- TriHi = $400B ; Triangle counter high bits
- NoiseVol = $400C ; Noise volume
- NoiseLo = $400E ; Noise counter low bits
- NoiseHi = $400F ; Noise counter high bits
- DMCFreq = $4010 ; DMC sample frequency
- DMCLoad = $4011 ; DMC sample load counter
- DMCStart = $4012 ; DMC sample start address
- DMCLen = $4013 ; DMC sample length
- OAMDMA = $4014 ; Object attribute memory DMA
- APUStatus = $4015 ; APU channel control
- Joy1 = $4016 ; Joypad 1 port (A, B Select, Start, Up, Down, Left, Right)
- Joy2 = $4017 ; Joypad 2 port (A, B Select, Start, Up, Down, Left, Right)
- MusicSQ1 = $00
- MusicSQ2 = $01
- MusicTri = $02
- MusicNoise = $03
- SFX1 = $04
- SFX2 = $05
- IRQLacth = $C000
- IRQReload = $C001
- IRQDisable = $E000
- IRQEnable = $E001
- ; Octave 0
- A_0 = $00
- As0 = $01
- Bb0 = $01
- B_0 = $02
- C_0 = $03
- Cs0 = $04
- Db0 = $04
- D_0 = $05
- Ds0 = $06
- Eb0 = $06
- E_0 = $07
- F_0 = $08
- Fs0 = $09
- Gb0 = $09
- G_0 = $0A
- Gs0 = $0B
- Ab0 = $0B
- ; Octave 1
- A_1 = $0C
- As1 = $0D
- Bb1 = $0D
- B_1 = $0E
- C_1 = $0F
- Cs1 = $10
- Db1 = $10
- D_1 = $12
- Ds1 = $13
- Eb1 = $13
- E_1 = $14
- F_1 = $15
- Fs1 = $16
- Gb1 = $16
- G_1 = $17
- Gs1 = $18
- Ab1 = $18
- ; Octave 2
- A_2 = $19
- As2 = $1A
- Bb2 = $1A
- B_2 = $1B
- C_2 = $1C
- Cs2 = $1D
- Db2 = $1D
- D_2 = $1E
- Ds2 = $1F
- Eb2 = $1F
- E_2 = $20
- F_2 = $21
- Fs2 = $22
- Gb2 = $22
- G_2 = $23
- Gs2 = $24
- Ab2 = $24
- ; Octave 3
- A_3 = $25
- As3 = $26
- Bb3 = $26
- B_3 = $27
- C_3 = $28
- Cs3 = $29
- Db3 = $29
- D_3 = $2A
- Ds3 = $2B
- Eb3 = $2B
- E_3 = $2C
- F_3 = $2D
- Fs3 = $2E
- Gb3 = $2E
- G_3 = $2F
- Gs3 = $30
- Ab3 = $30
- ; Octave 4
- A_4 = $31
- As4 = $32
- Bb4 = $32
- B_4 = $33
- C_4 = $34
- Cs4 = $35
- Db4 = $35
- D_4 = $36
- Ds4 = $37
- Eb4 = $37
- E_4 = $38
- F_4 = $39
- Fs4 = $3A
- Gb4 = $3A
- G_4 = $3B
- Gs4 = $3C
- Ab4 = $3C
- ; Octave 5
- A5_ = $3D
- As5 = $3E
- Bb5 = $3E
- B_5 = $3F
- C_5 = $40
- Cs5 = $41
- Db5 = $41
- D_5 = $42
- Ds5 = $43
- Eb5 = $43
- E_5 = $44
- F_5 = $45
- Fs5 = $46
- Gb5 = $46
- G_5 = $47
- Gs5 = $48
- Ab5 = $48
- ; Octave 6
- A_6 = $49
- As6 = $4A
- Bb6 = $4A
- B_6 = $4B
- C_6 = $4C
- Cs6 = $4D
- Db6 = $4D
- D_6 = $4E
- Ds6 = $4F
- Eb6 = $4F
- E_6 = $50
- F_6 = $51
- Fs6 = $52
- Gb6 = $52
- G_6 = $53
- Gs6 = $54
- Ab6 = $54
- ; Octave 7
- A_7 = $55
- As7 = $56
- Bb7 = $56
- B_7 = $57
- C_7 = $58
- Cs7 = $59
- Db7 = $59
- D_7 = $5A
- Ds7 = $5B
- Eb7 = $5B
- E_7 = $5C
- F_7 = $5D
- Fs7 = $5E
- Gb7 = $5E
- .bank 0 ; PRG bank
- .org $8000
- RESET: ; Reset routine
- CLI
- CLD
- LDX #$40
- STX Joy2 ; disable APU IRQ
- LDX #$FF
- TXS ; Stack set up
- INX
- STX PPUCtrl
- STX PPUMask
- STX DMCFreq
- vBlankWait1: ; vBlank wait 1
- BIT PPUStatus
- BPL vBlankWait1
- ClearMemory: ; Clear internal memory $0000 - $07FF
- LDA #$FF
- STA $0200, x ; Move sprites out of view
- LDA #$00
- STA $0000, x
- STA $0100, x
- STA $0300, x
- STA $0400, x
- STA $0500, x
- STA $0600, x
- STA $0700, x
- DEX
- BNE ClearMemory
- JSR SoundInitialize
- LDA #LOW(Stage1Bg)
- STA pointerLo0
- LDA #HIGH(Stage1Bg)
- STA pointerHi0
- LDA #LOW(StatusBarBg)
- STA pointerLo1
- LDA #HIGH(StatusBarBg)
- STA pointerHi1
- vBlankWait2: ; vBlank wait 2 - PPU should be in stable and usable state now
- BIT PPUStatus
- BPL vBlankWait2
- UpdatePalette1:
- LDA PPUStatus ; Reset PPU Hi/Lo latch
- LDA #$3F ; Store Hi/Lo bytes of the background nametables
- STA PPUAddr
- LDA #$00
- STA PPUAddr
- TAX
- PalLoop1:
- LDA Stage1Palette, x
- STA PPUData
- INX
- CPX #$1F
- BNE PalLoop1
- LDX #$01
- STX updateBg0
- STX updateBg1
- STX updateSpr
- JSR BgUpdate0 ; Initialize nametables
- JSR BgUpdate1
- LDA #%10001000
- STA PPUCtrl
- LDA #%00011110
- STA PPUMask
- MainLoop: ; Main loop
- LDY #$01
- STY mainWait
- MainLoopWait:
- LDY mainWait
- BNE MainLoopWait
- JMP MainLoop
- SoundInitialize:
- LDA #%00011111 ; Enable all channels
- STA APUStatus
- LDA #%00110000 ; Silence square 1/2 and noise
- STA SQ1Vol
- STA SQ2Vol
- STA NoiseVol
- LDA #%10000000 ; Silence triangle
- STA TriLinear
- LDA #$00
- STA soundDisableFlag ; Reset flag
- RTS
- SoundDisable: ; Disable Sound
- LDA #$00
- STA APUStatus
- LDA #$01
- STA soundDisableFlag
- RTS
- SoundLoad:
- RTS
- SoundPlay:
- LDA soundDisableFlag
- BNE SkipSound
- SkipSound:
- RTS
- Joy1Read:
- LDA #$01
- STA Joy1
- LDA #$00
- STA Joy1
- LDX #$08
- Joy1Loop:
- PHA
- LDA Joy1
- AND #$03
- CMP #$01
- PLA
- ROR A
- DEX
- BNE Joy1Loop
- RTS
- Joy2Read:
- LDA #$01
- STA Joy2
- LDA #$00
- STA Joy2
- LDX #$08
- Joy2Loop:
- PHA
- LDA Joy2
- AND #$03
- CMP #$01
- PLA
- ROR A
- DEX
- BNE Joy2Loop
- RTS
- BgUpdate0: ; Background update code
- LDY updateBg0
- CPY #$01
- BNE SkipBg0
- LDA #%00001000
- STA PPUCtrl
- LDA #%00000000
- STA PPUMask
- LDA PPUStatus ; Reset PPU Hi/Lo latch
- LDA #$20 ; Store Hi/Lo bytes of the background nametables
- STA PPUAddr
- LDA #$00
- STA PPUAddr
- LDY #$00
- LDX #$04
- BgLoop0: ; 16 bit loop for drawing background and loading attributes
- LDA [pointerLo0], y
- STA PPUData
- INY
- BNE BgLoop0
- INC pointerHi0
- DEX
- BNE BgLoop0
- LDA #$00
- STA updateBg0 ; Clear NMI flag for background
- LDA #%10001000
- STA PPUCtrl
- LDA #%00011110
- STA PPUMask
- SkipBg0:
- RTS
- BgUpdate1: ; Background update code
- LDY updateBg1
- CPY #$01
- BNE SkipBg1
- LDA #%00001000
- STA PPUCtrl
- LDA #%00000000
- STA PPUMask
- LDA PPUStatus ; Reset PPU Hi/Lo latch
- LDA #$24 ; Store Hi/Lo bytes of the background nametables
- STA PPUAddr
- LDA #$00
- STA PPUAddr
- LDY #$00
- LDX #$04
- BgLoop1: ; 16 bit loop for drawing background and loading attributes
- LDA [pointerLo1], y
- STA PPUData
- INY
- BNE BgLoop1
- INC pointerHi1
- DEX
- BNE BgLoop1
- LDA #$00
- STA updateBg1 ; Clear NMI flag for background
- LDA #%10001000
- STA PPUCtrl
- LDA #%00011110
- STA PPUMask
- SkipBg1:
- RTS
- ScrollBg:
- LDY timer0
- CPY #$02
- BNE SkipScroll
- LDY #$00
- STY scrollX
- STY PPUScroll
- LDX scrollY
- DEX
- CPX #$F0
- BCC SkipScrollFix
- LDX #$EF
- SkipScrollFix:
- STX scrollY
- STX PPUScroll
- LDY #$00
- STY timer0 ; Reset timer0
- SkipScroll:
- RTS
- SprUpdate: ; Sprite update code
- LDY updateSpr
- CPY #$01
- BNE SkipSpr
- LDA #%00001000
- STA PPUCtrl
- LDA #%00000000
- STA PPUMask
- LDA #$00
- STA OAMAddr
- LDA #$02
- STA OAMDMA
- LDA #$00
- STA updateSpr ; Clear NMI flag for sprites
- LDA #%10001000
- STA PPUCtrl
- LDA #%00011110
- STA PPUMask
- SkipSpr:
- RTS
- Joy1Update: ; Joypad 1 update code
- JSR Joy1Read
- Joy1Matching:
- STA input1Temp
- JSR Joy1Read
- CMP input1Temp
- BNE Joy1Matching
- STA input1
- RTS
- Joy2Update: ; Joypad 2 update code
- LDY joy2Flag
- CPY #$00
- BNE SkipJoy2
- JSR Joy2Read
- Joy2Matching:
- STA input2Temp
- JSR Joy2Read
- CMP input2Temp
- BNE Joy2Matching
- STA input2
- SkipJoy2:
- RTS
- IncrementTimers:
- INC timer0
- INC timer1
- INC timer2
- INC timer3
- INC timer4
- INC timer5
- INC timer6
- INC timer7
- INC timer8
- INC timer9
- INC timerA
- INC timerB
- INC timerC
- INC timerD
- INC timerE
- INC timerF
- RTS
- ScanlineIRQSet:
- LDA #$D8
- STA IRQLacth
- STA IRQReload
- STA IRQEnable
- RTS
- IRQ: ; Scanline interrupt
- PHA ; Push A, X & Y to stack
- TXA
- PHA
- TYA
- PHA
- LDA #$FF
- STA IRQDisable
- STA scrollX
- STA PPUScroll
- LDA #$00
- STA PPUScroll
- PLA ; Pull A, X & Y from stack
- TAY
- PLA
- TAX
- PLA
- RTI
- NMI: ; NMI code
- PHA ; Push A, X & Y to stack
- TXA
- PHA
- TYA
- PHA
- JSR SprUpdate ; Update sprites if necessary
- JSR BgUpdate0 ; Update nametable 0 if necessary
- JSR BgUpdate1 ; Update nametable 1 if necessary
- JSR ScrollBg ; Update background scrolling
- JSR ScanlineIRQSet ; Set up data for scanline IRQ
- JSR Joy1Update ; Update joypad 1 if necessary
- JSR Joy2Update ; Update joypad 2 if necessary
- JSR SoundPlay ; Update sound if necessary
- JSR IncrementTimers ; Increment timers
- LDY #$00 ; Reset mainWait to allow next main loop to happen
- STY mainWait
- PLA ; Pull A, X & Y from stack
- TAY
- PLA
- TAX
- PLA
- RTI
- NoteTable:
- ; A Bb B C Db D Eb E F Gb G Ab
- .dw $07F1,$0780,$0713,$06AD,$064D,$05F3,$059D,$054D,$0500,$04B8,$0475,$0435 ; Octave 0
- .dw $03F8,$03BF,$0389,$0356,$0326,$02F9,$02CE,$02A6,$027F,$025C,$023A,$021A ; Octave 1
- .dw $01FB,$01DF,$01C4,$01AB,$0193,$017C,$0167,$0152,$013F,$012D,$011C,$010C ; Octave 2
- .dw $00FD,$00EF,$00E2,$00D2,$00C9,$00BD,$00B3,$00A9,$009F,$0096,$008E,$0086 ; Octave 3
- .dw $007E,$0077,$0070,$006A,$0064,$005E,$0059,$0054,$004F,$004B,$0046,$0042 ; Octave 4
- .dw $003F,$003B,$0038,$0034,$0031,$002F,$002C,$0029,$0027,$0025,$0023,$0021 ; Octave 5
- .dw $001F,$001D,$001B,$001A,$0018,$0017,$0015,$0014,$0013,$0012,$0011,$0010 ; Octave 6
- .dw $000F,$000E,$000D,$000C,$000C,$000B,$000A,$000A,$0009,$0008 ; Octave 7
- StatusBarBg:
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 00
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 01
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 02
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 03
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 04
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 05
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 06
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 07
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 08
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 09
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 0A
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 0B
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 0C
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 0D
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 0E
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 0F
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 10
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 11
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 12
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 13
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 14
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 15
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 16
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 17
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 18
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 19
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 1A
- .db $FF,$19,$15,$0A,$22,$0E,$1B,$FF,$24,$24,$24,$24,$24,$24,$24,$FF,$0B,$18,$16,$0B,$FF,$25,$25,$25,$25,$25,$25,$25,$FF,$FF,$FF,$FF ; 1B
- .db $FF,$1C,$0C,$1B,$FF,$00,$00,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$11,$12,$FF,$1C,$0C,$1B,$FF,$00,$00,$00,$00,$00,$00,$00,$00,$FF ; 1C
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 1D
- StatusBarAttributes:
- .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
- .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
- .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
- .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
- Stage1Bg:
- .db $FF,$FF,$FF,$FF,$26,$FF,$FF,$2A,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$2A,$FF,$FF,$FF,$FF,$26,$FF,$FF,$2A,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$2A ; 00
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 01
- .db $FF,$FF,$27,$FF,$FF,$28,$FF,$FF,$26,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$27,$FF,$FF,$28,$FF,$FF,$26,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 02
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$26,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$26,$FF,$FF ; 03
- .db $FF,$2A,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$27,$FF,$FF,$FF,$FF,$FF,$2A,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$27,$FF,$FF,$FF,$FF ; 04
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 05
- .db $FF,$FF,$FF,$26,$FF,$FF,$2A,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$2A,$FF,$FF,$FF,$FF,$26,$FF,$FF,$2A,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$2A,$FF ; 06
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 07
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$2A,$FF,$FF,$FF,$FF,$26,$FF,$FF,$2A,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$2A,$FF,$FF,$FF,$FF,$26,$FF,$FF,$2A ; 08
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 09
- .db $26,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$27,$FF,$FF,$28,$FF,$FF,$26,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$27,$FF,$FF,$28,$FF,$FF ; 0A
- .db $FF,$FF,$FF,$FF,$FF,$26,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$26,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 0B
- .db $FF,$FF,$FF,$27,$FF,$FF,$FF,$FF,$FF,$2A,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$27,$FF,$FF,$FF,$FF,$FF,$2A,$FF,$FF,$FF,$FF,$FF,$FF ; 0C
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 0D
- .db $FF,$FF,$FF,$FF,$FF,$FF,$2A,$FF,$FF,$FF,$FF,$26,$FF,$FF,$2A,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$2A,$FF,$FF,$FF,$FF,$26,$FF,$FF,$2A,$FF ; 0E
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 0F
- .db $FF,$FF,$FF,$FF,$26,$FF,$FF,$2A,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$2A,$FF,$FF,$FF,$FF,$26,$FF,$FF,$2A,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$2A ; 10
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 11
- .db $FF,$FF,$27,$FF,$FF,$28,$FF,$FF,$26,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$27,$FF,$FF,$28,$FF,$FF,$26,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 12
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$26,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$26,$FF,$FF ; 13
- .db $FF,$2A,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$27,$FF,$FF,$FF,$FF,$FF,$2A,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$27,$FF,$FF,$FF,$FF ; 14
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 15
- .db $FF,$FF,$FF,$26,$FF,$FF,$2A,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$2A,$FF,$FF,$FF,$FF,$26,$FF,$FF,$2A,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$2A,$FF ; 16
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 17
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$2A,$FF,$FF,$FF,$FF,$26,$FF,$FF,$2A,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$2A,$FF,$FF,$FF,$FF,$26,$FF,$FF,$2A ; 18
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 19
- .db $26,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$27,$FF,$FF,$28,$FF,$FF,$26,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$27,$FF,$FF,$28,$FF,$FF ; 1A
- .db $FF,$FF,$FF,$FF,$FF,$26,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$26,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 1B
- .db $FF,$FF,$FF,$27,$FF,$FF,$FF,$FF,$FF,$2A,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$27,$FF,$FF,$FF,$FF,$FF,$2A,$FF,$FF,$FF,$FF,$FF,$FF ; 1C
- .db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 1D
- Stage1Attributes:
- .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
- .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
- .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
- .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
- Stage1Palette:
- .db $0F,$20,$31,$21,$0F,$20,$32,$22,$0F,$20,$33,$23,$0F,$20,$34,$24
- .db $0F,$20,$31,$21,$0F,$20,$32,$22,$0F,$20,$33,$23,$0F,$20,$34,$24
- .bank 1 ; Vector bank
- .org $FFFA
- .dw NMI
- .dw RESET
- .dw IRQ
- .bank 2 ; CHR bank
- .org $0000
- .incbin "Stg1set.chr"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement