game title screen
This commit is contained in:
parent
3999c5d6c5
commit
b56f86a1cd
@ -15,5 +15,5 @@ clean:
|
|||||||
# Rule to run the final cartridge .nes file in the FCEUX emulator
|
# Rule to run the final cartridge .nes file in the FCEUX emulator
|
||||||
###############################################################################
|
###############################################################################
|
||||||
run:
|
run:
|
||||||
on-workspace 1 "fceux ./atlantico.nes && i3-msg '[id=$(xdotool getactivewindow)] floating enable'"
|
on-workspace 1 "fceux /home/tyrel/code/6502nes/atlantico/atlantico.nes && i3-msg '[id=$(xdotool getactivewindow)] floating enable'"
|
||||||
#on-workspace 1 "fceux atlantico.nes"
|
#on-workspace 1 "fceux atlantico.nes"
|
||||||
|
@ -2,12 +2,14 @@
|
|||||||
.include "header.inc"
|
.include "header.inc"
|
||||||
.include "actor.inc"
|
.include "actor.inc"
|
||||||
.include "reset.inc"
|
.include "reset.inc"
|
||||||
|
.include "state.inc"
|
||||||
.include "utils.inc"
|
.include "utils.inc"
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; Variables declared in RAM zero-page
|
;; Variables declared in RAM zero-page
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
.segment "ZEROPAGE"
|
.segment "ZEROPAGE"
|
||||||
|
MenuItem: .res 1 ; Keep track of menu item
|
||||||
Score: .res 4 ; Score (1s, 10s, 100s, and 1000s digits in decimal)
|
Score: .res 4 ; Score (1s, 10s, 100s, and 1000s digits in decimal)
|
||||||
|
|
||||||
Collision: .res 1 ; Flag if a collision happened or not
|
Collision: .res 1 ; Flag if a collision happened or not
|
||||||
@ -31,6 +33,7 @@ Clock60: .res 1 ; Counter that increments per second (60 frames)
|
|||||||
BgPtr: .res 2 ; Pointer to background address - 16bits (lo,hi)
|
BgPtr: .res 2 ; Pointer to background address - 16bits (lo,hi)
|
||||||
SprPtr: .res 2 ; Pointer to the sprite address - 16bits (lo,hi)
|
SprPtr: .res 2 ; Pointer to the sprite address - 16bits (lo,hi)
|
||||||
BufPtr: .res 2 ; Pointer to the buffer address - 16bits (lo,hi)
|
BufPtr: .res 2 ; Pointer to the buffer address - 16bits (lo,hi)
|
||||||
|
PalPtr: .res 2
|
||||||
|
|
||||||
XScroll: .res 1 ; Store the horizontal scroll position
|
XScroll: .res 1 ; Store the horizontal scroll position
|
||||||
CurrNametable: .res 1 ; Store the current starting nametable (0 or 1)
|
CurrNametable: .res 1 ; Store the current starting nametable (0 or 1)
|
||||||
@ -53,6 +56,8 @@ PrevOAMCount: .res 1 ; Store the previous number of bytes that were sent
|
|||||||
|
|
||||||
Seed: .res 2 ; Initialize 16-bit seed to any value except 0
|
Seed: .res 2 ; Initialize 16-bit seed to any value except 0
|
||||||
|
|
||||||
|
GameState: .res 1 ; Keep track of game state
|
||||||
|
|
||||||
ActorsArray: .res MAX_ACTORS * .sizeof(Actor)
|
ActorsArray: .res MAX_ACTORS * .sizeof(Actor)
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
@ -207,13 +212,44 @@ DoneIncrementing:
|
|||||||
;; Subroutine to load all 32 color palette values from ROM
|
;; Subroutine to load all 32 color palette values from ROM
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
.proc LoadPalette
|
.proc LoadPalette
|
||||||
|
ldx MenuItem
|
||||||
|
cpx #0
|
||||||
|
bne :+
|
||||||
|
lda #<PaletteDataClear
|
||||||
|
sta PalPtr
|
||||||
|
lda #>PaletteDataClear
|
||||||
|
sta PalPtr+1
|
||||||
|
jmp LoadPaletteBytes
|
||||||
|
:
|
||||||
|
ldx MenuItem
|
||||||
|
cpx #1
|
||||||
|
bne :+
|
||||||
|
lda #<PaletteDataCloudy
|
||||||
|
sta PalPtr
|
||||||
|
lda #>PaletteDataCloudy
|
||||||
|
sta PalPtr+1
|
||||||
|
jmp LoadPaletteBytes
|
||||||
|
:
|
||||||
|
ldx MenuItem
|
||||||
|
cpx #2
|
||||||
|
bne :+
|
||||||
|
lda #<PaletteDataNight
|
||||||
|
sta PalPtr
|
||||||
|
lda #>PaletteDataNight
|
||||||
|
sta PalPtr+1
|
||||||
|
jmp LoadPaletteBytes
|
||||||
|
:
|
||||||
|
|
||||||
|
|
||||||
|
LoadPaletteBytes:
|
||||||
PPU_SETADDR $3F00
|
PPU_SETADDR $3F00
|
||||||
ldy #0 ; Y = 0
|
ldy #0 ; Y = 0
|
||||||
: lda PaletteData,y ; Lookup byte in ROM
|
: lda (PalPtr),y ; Lookup byte in ROM
|
||||||
sta PPU_DATA ; Set value to send to PPU_DATA
|
sta PPU_DATA ; Set value to send to PPU_DATA
|
||||||
iny ; Y++
|
iny ; Y++
|
||||||
cpy #32 ; Is Y equal to 32?
|
cpy #32 ; Is Y equal to 32?
|
||||||
bne :- ; Not yet, keep looping
|
bne :- ; Not yet, keep looping
|
||||||
|
|
||||||
rts ; Return from subroutine
|
rts ; Return from subroutine
|
||||||
.endproc
|
.endproc
|
||||||
|
|
||||||
@ -774,6 +810,34 @@ FinishCollisionCheck:
|
|||||||
rts
|
rts
|
||||||
.endproc
|
.endproc
|
||||||
|
|
||||||
|
.proc LoadTitleScreen
|
||||||
|
lda #<TitleScreenData
|
||||||
|
sta BgPtr
|
||||||
|
lda #>TitleScreenData
|
||||||
|
sta BgPtr+1
|
||||||
|
|
||||||
|
PPU_SETADDR $2000
|
||||||
|
ldx #$00
|
||||||
|
ldy #$00
|
||||||
|
OuterLoop:
|
||||||
|
InnerLoop:
|
||||||
|
lda (BgPtr),y
|
||||||
|
sta PPU_DATA
|
||||||
|
iny
|
||||||
|
cpy #0
|
||||||
|
beq IncreaseHiByte
|
||||||
|
jmp InnerLoop
|
||||||
|
IncreaseHiByte:
|
||||||
|
inc BgPtr+1
|
||||||
|
inx
|
||||||
|
cpx #4
|
||||||
|
bne OuterLoop
|
||||||
|
|
||||||
|
rts
|
||||||
|
.endproc
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; Subroutine to switch CHR banks
|
;; Subroutine to switch CHR banks
|
||||||
;; Params = A has the bank number
|
;; Params = A has the bank number
|
||||||
@ -789,6 +853,133 @@ FinishCollisionCheck:
|
|||||||
Reset:
|
Reset:
|
||||||
INIT_NES ; Macro to initialize the NES to a known state
|
INIT_NES ; Macro to initialize the NES to a known state
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;; T I T L E S C R E E N ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
.proc TitleScreen ; using proc to define scope
|
||||||
|
lda #1
|
||||||
|
jsr SwitchCHRBank
|
||||||
|
|
||||||
|
lda #State::TITLESCREEN
|
||||||
|
sta GameState ; GameState = TITLESCREEN
|
||||||
|
|
||||||
|
lda #1
|
||||||
|
sta MenuItem
|
||||||
|
|
||||||
|
jsr LoadPalette
|
||||||
|
jsr LoadTitleScreen ; Load tiles and attributes to the PPU
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
sta MenuItem
|
||||||
|
|
||||||
|
|
||||||
|
DrawMenuArrow:
|
||||||
|
; Sprite y pos $0200
|
||||||
|
lda #92
|
||||||
|
sta $0200
|
||||||
|
|
||||||
|
; Sprite Tile# $0201
|
||||||
|
lda #$23
|
||||||
|
sta $0201
|
||||||
|
|
||||||
|
; Sprite Attribs $0202
|
||||||
|
lda #%00000001
|
||||||
|
sta $0202
|
||||||
|
|
||||||
|
; Sprite X positon $0203
|
||||||
|
lda #95
|
||||||
|
sta $0203
|
||||||
|
|
||||||
|
|
||||||
|
EnableNMI:
|
||||||
|
lda #%10010000
|
||||||
|
sta PPU_CTRL
|
||||||
|
lda #%00011110
|
||||||
|
sta PPU_MASK
|
||||||
|
|
||||||
|
TitleScreenLoop:
|
||||||
|
lda Buttons
|
||||||
|
sta PrevButtons
|
||||||
|
|
||||||
|
jsr ReadControllers
|
||||||
|
CheckStartButtons:
|
||||||
|
lda Buttons
|
||||||
|
and #BUTTON_START
|
||||||
|
beq :+
|
||||||
|
jmp GamePlay
|
||||||
|
:
|
||||||
|
CheckDownButton:
|
||||||
|
lda Buttons
|
||||||
|
and #BUTTON_DOWN
|
||||||
|
beq :+
|
||||||
|
cmp PrevButtons ; only one press considered, not hold
|
||||||
|
beq :+
|
||||||
|
lda MenuItem
|
||||||
|
cmp #2 ; prevent past 2
|
||||||
|
beq :+
|
||||||
|
;; increment menu item
|
||||||
|
inc MenuItem
|
||||||
|
|
||||||
|
lda $0200
|
||||||
|
clc
|
||||||
|
adc #17
|
||||||
|
sta $0200
|
||||||
|
:
|
||||||
|
|
||||||
|
CheckUpButton:
|
||||||
|
lda Buttons
|
||||||
|
and #BUTTON_UP
|
||||||
|
beq :+
|
||||||
|
cmp PrevButtons ; only one press considered, not hold
|
||||||
|
beq :+
|
||||||
|
lda MenuItem
|
||||||
|
beq :+
|
||||||
|
dec MenuItem
|
||||||
|
lda $0200
|
||||||
|
sec
|
||||||
|
sbc #17
|
||||||
|
sta $0200
|
||||||
|
:
|
||||||
|
|
||||||
|
WaitForVBlank: ; We lock the execution of the game logic here
|
||||||
|
lda IsDrawComplete ; Here we check and only perform a game loop call once NMI is done drawing
|
||||||
|
beq WaitForVBlank ; Otherwise, we keep looping
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
sta IsDrawComplete ; Once we're done, we set the DrawComplete flag back to 0
|
||||||
|
|
||||||
|
jmp TitleScreenLoop
|
||||||
|
|
||||||
|
.endproc ; End titleScreen
|
||||||
|
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;; G A M E P L A Y ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
.proc GamePlay
|
||||||
|
lda #0
|
||||||
|
jsr SwitchCHRBank
|
||||||
|
|
||||||
|
lda #State::PLAYING
|
||||||
|
sta GameState ; GameState = Playing
|
||||||
|
|
||||||
|
PPU_DISABLE_NMI
|
||||||
|
|
||||||
|
|
||||||
InitVariables:
|
InitVariables:
|
||||||
lda #0
|
lda #0
|
||||||
sta Frame ; Frame = 0
|
sta Frame ; Frame = 0
|
||||||
@ -938,6 +1129,8 @@ GameLoop:
|
|||||||
|
|
||||||
jmp GameLoop
|
jmp GameLoop
|
||||||
|
|
||||||
|
.endproc ; EndGameplay Proc
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; NMI interrupt handler
|
;; NMI interrupt handler
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
@ -979,7 +1172,11 @@ BackgroundCopy: ; Here is where we copy/draw the background buffer
|
|||||||
|
|
||||||
jmp BufferLoop ; Loop back until we finish the buffer (find an entry with Length=0)
|
jmp BufferLoop ; Loop back until we finish the buffer (find an entry with Length=0)
|
||||||
EndBackgroundCopy:
|
EndBackgroundCopy:
|
||||||
|
lda GameState
|
||||||
|
cmp #State::PLAYING
|
||||||
|
bne EndScrolling ; Bypass scrolling if not in gameplay state
|
||||||
|
|
||||||
|
;; Only GAMEPLAY
|
||||||
NewColumnCheck:
|
NewColumnCheck:
|
||||||
lda XScroll
|
lda XScroll
|
||||||
and #%00000111 ; Check if the scroll a multiple of 8
|
and #%00000111 ; Check if the scroll a multiple of 8
|
||||||
@ -1034,6 +1231,8 @@ ScrollBackground:
|
|||||||
lda #0
|
lda #0
|
||||||
sta PPU_SCROLL ; No vertical scrolling
|
sta PPU_SCROLL ; No vertical scrolling
|
||||||
|
|
||||||
|
EndScrolling:
|
||||||
|
|
||||||
RefreshRendering:
|
RefreshRendering:
|
||||||
lda #%10010000 ; Enable NMI, sprites from Pattern Table 0, background from Pattern Table 1
|
lda #%10010000 ; Enable NMI, sprites from Pattern Table 0, background from Pattern Table 1
|
||||||
ora CurrNametable ; OR with CurrNametable (0 or 1) to set PPU_CTRL bit-0 (starting nametable)
|
ora CurrNametable ; OR with CurrNametable (0 or 1) to set PPU_CTRL bit-0 (starting nametable)
|
||||||
@ -1067,9 +1266,15 @@ IRQ:
|
|||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; Hardcoded list of color values in ROM to be loaded by the PPU
|
;; Hardcoded list of color values in ROM to be loaded by the PPU
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
PaletteData:
|
PaletteDataCloudy:
|
||||||
.byte $1C,$0F,$22,$1C, $1C,$37,$3D,$0F, $1C,$37,$3D,$30, $1C,$0F,$3D,$30 ; Background palette
|
.byte $1C,$0F,$22,$1C, $1C,$37,$3D,$0F, $1C,$37,$3D,$30, $1C,$0F,$3D,$30 ; Background palette
|
||||||
.byte $1C,$0F,$2D,$10, $1C,$0F,$20,$27, $1C,$2D,$38,$18, $1C,$0F,$1A,$32 ; Sprite palette
|
.byte $1C,$0F,$2D,$10, $1C,$0F,$20,$27, $1C,$2D,$38,$18, $1C,$0F,$1A,$32 ; Sprite palette
|
||||||
|
PaletteDataClear:
|
||||||
|
.byte $1C,$0F,$22,$1C, $1C,$36,$21,$0B, $1C,$36,$21,$30, $1C,$0F,$3D,$30 ; Background palette
|
||||||
|
.byte $1C,$0F,$2D,$10, $1C,$0F,$20,$27, $1C,$2D,$38,$18, $1C,$0F,$1A,$32 ; Sprite palette
|
||||||
|
PaletteDataNight:
|
||||||
|
.byte $0C,$0F,$1C,$0C, $0C,$26,$0C,$0F, $0C,$26,$0C,$2D, $0C,$36,$07,$2D ; Background palette
|
||||||
|
.byte $0C,$0F,$1D,$2D, $0C,$0F,$20,$27, $0C,$2D,$38,$18, $0C,$0F,$1A,$21 ; Sprite palette
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; Background data (contains 4 screens that should scroll horizontally)
|
;; Background data (contains 4 screens that should scroll horizontally)
|
||||||
@ -1244,6 +1449,11 @@ AttributeData:
|
|||||||
.byte $ff,$aa,$aa,$aa,$59,$00,$00,$00
|
.byte $ff,$aa,$aa,$aa,$59,$00,$00,$00
|
||||||
.byte $ff,$aa,$aa,$aa,$5a,$00,$00,$00
|
.byte $ff,$aa,$aa,$aa,$5a,$00,$00,$00
|
||||||
|
|
||||||
|
|
||||||
|
TitleScreenData:
|
||||||
|
.incbin "titlescreen.nam"
|
||||||
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; Here we add the CHR-ROM data, included from an external .CHR file
|
;; Here we add the CHR-ROM data, included from an external .CHR file
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
Binary file not shown.
Binary file not shown.
6
atlantico/state.inc
Normal file
6
atlantico/state.inc
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
.enum State
|
||||||
|
TITLESCREEN
|
||||||
|
PLAYING
|
||||||
|
GAMEOVER
|
||||||
|
PAUSED
|
||||||
|
.endenum
|
Binary file not shown.
BIN
atlantico/titlescreen.nam
Executable file
BIN
atlantico/titlescreen.nam
Executable file
Binary file not shown.
@ -40,3 +40,10 @@
|
|||||||
tax
|
tax
|
||||||
pla ; Pull A from the stack
|
pla ; Pull A from the stack
|
||||||
.endmacro
|
.endmacro
|
||||||
|
|
||||||
|
|
||||||
|
.macro PPU_DISABLE_NMI
|
||||||
|
lda #0
|
||||||
|
sta PPU_CTRL
|
||||||
|
sta PPU_MASK
|
||||||
|
.endmacro
|
||||||
|
Loading…
Reference in New Issue
Block a user