Compare commits
No commits in common. "main" and "0.1.2" have entirely different histories.
BIN
spaceship.nes
BIN
spaceship.nes
Binary file not shown.
Binary file not shown.
BIN
src/reset.o
BIN
src/reset.o
Binary file not shown.
@ -9,43 +9,35 @@
|
|||||||
.import read_controller
|
.import read_controller
|
||||||
|
|
||||||
.proc nmi_handler
|
.proc nmi_handler
|
||||||
|
|
||||||
PHP
|
|
||||||
PHA
|
|
||||||
TXA
|
|
||||||
PHA
|
|
||||||
TYA
|
|
||||||
PHA
|
|
||||||
|
|
||||||
; copy sprite data to OAM
|
|
||||||
LDA #$00
|
LDA #$00
|
||||||
STA OAMADDR
|
STA OAMADDR
|
||||||
LDA #$02
|
LDA #$02
|
||||||
STA OAMDMA
|
STA OAMDMA
|
||||||
|
|
||||||
; set PPUCTRL
|
;Update tiles *after* DMA transfer
|
||||||
LDA ppuctrl_settings
|
JSR update_player
|
||||||
STA PPUCTRL
|
JSR draw_player
|
||||||
|
JSR read_controller
|
||||||
|
|
||||||
; set scroll values
|
|
||||||
LDA #$00 ; X scroll first
|
LDA scroll
|
||||||
|
CMP #$00
|
||||||
|
BNE set_scroll_positions
|
||||||
|
|
||||||
|
LDA ppucrtl_settings
|
||||||
|
EOR #%00000010
|
||||||
|
STA ppucrtl_settings
|
||||||
|
STA PPUCTRL
|
||||||
|
LDA #240
|
||||||
|
STA scroll
|
||||||
|
|
||||||
|
set_scroll_positions:
|
||||||
|
LDA #$00
|
||||||
STA PPUSCROLL
|
STA PPUSCROLL
|
||||||
|
DEC scroll
|
||||||
LDA scroll
|
LDA scroll
|
||||||
STA PPUSCROLL
|
STA PPUSCROLL
|
||||||
|
|
||||||
; all done
|
|
||||||
LDA #$00
|
|
||||||
STA sleeping
|
|
||||||
|
|
||||||
LDA#$00
|
|
||||||
STA sleeping
|
|
||||||
|
|
||||||
PLA
|
|
||||||
TAY
|
|
||||||
PLA
|
|
||||||
TAX
|
|
||||||
PLA
|
|
||||||
PLP
|
|
||||||
RTI
|
RTI
|
||||||
.endproc
|
.endproc
|
||||||
|
|
||||||
@ -168,6 +160,9 @@ done_checking:
|
|||||||
.export main
|
.export main
|
||||||
.proc main
|
.proc main
|
||||||
|
|
||||||
|
LDA #239
|
||||||
|
STA scroll
|
||||||
|
|
||||||
LDX PPUSTATUS
|
LDX PPUSTATUS
|
||||||
LDX #$3f
|
LDX #$3f
|
||||||
STX PPUADDR
|
STX PPUADDR
|
||||||
@ -241,7 +236,7 @@ insideloop2:
|
|||||||
BNE outsideloop2
|
BNE outsideloop2
|
||||||
|
|
||||||
LDA #%10010000
|
LDA #%10010000
|
||||||
STA ppuctrl_settings
|
STA ppucrtl_settings
|
||||||
STA PPUCTRL
|
STA PPUCTRL
|
||||||
|
|
||||||
vblankwait: ; wait for another vblank before continuing
|
vblankwait: ; wait for another vblank before continuing
|
||||||
@ -252,34 +247,8 @@ vblankwait: ; wait for another vblank before continuing
|
|||||||
STA PPUCTRL
|
STA PPUCTRL
|
||||||
LDA #%00011110 ; turn on screen
|
LDA #%00011110 ; turn on screen
|
||||||
STA PPUMASK
|
STA PPUMASK
|
||||||
|
forever:
|
||||||
mainloop:
|
JMP forever
|
||||||
;Update tiles *after* DMA transfer
|
|
||||||
JSR update_player
|
|
||||||
JSR draw_player
|
|
||||||
JSR read_controller
|
|
||||||
|
|
||||||
; Check if PPUCTRL needs to change
|
|
||||||
LDA scroll ; did we reach the end of a nametable?
|
|
||||||
BNE update_scroll
|
|
||||||
; if yes,
|
|
||||||
; Update base nametable
|
|
||||||
LDA ppuctrl_settings
|
|
||||||
EOR #%00000010 ; flip bit 1 to its opposite
|
|
||||||
STA ppuctrl_settings
|
|
||||||
; Reset scroll to 240
|
|
||||||
LDA #240
|
|
||||||
STA scroll
|
|
||||||
update_scroll:
|
|
||||||
DEC scroll
|
|
||||||
|
|
||||||
; Done processing; wait for next Vblank
|
|
||||||
INC sleeping
|
|
||||||
sleep:
|
|
||||||
LDA sleeping
|
|
||||||
BNE sleep
|
|
||||||
|
|
||||||
JMP mainloop
|
|
||||||
.endproc
|
.endproc
|
||||||
|
|
||||||
.segment "ZEROPAGE"
|
.segment "ZEROPAGE"
|
||||||
@ -288,30 +257,11 @@ player_y: .res 1
|
|||||||
pointerLo: .res 1
|
pointerLo: .res 1
|
||||||
pointerHi: .res 1
|
pointerHi: .res 1
|
||||||
scroll: .res 1
|
scroll: .res 1
|
||||||
ppuctrl_settings: .res 1
|
ppucrtl_settings: .res 1
|
||||||
pad1: .res 1
|
pad1: .res 1
|
||||||
.exportzp player_x, player_y
|
.exportzp player_x, player_y
|
||||||
.exportzp pad1
|
.exportzp pad1
|
||||||
|
|
||||||
sleeping: .res 1
|
|
||||||
|
|
||||||
NUM_ENEMIES = 5
|
|
||||||
; enemy object pool
|
|
||||||
enemy_x_pos: .res NUM_ENEMIES
|
|
||||||
enemy_y_pos: .res NUM_ENEMIES
|
|
||||||
enemy_x_vels: .res NUM_ENEMIES
|
|
||||||
enemy_y_vels: .res NUM_ENEMIES
|
|
||||||
enemy_flags: .res NUM_ENEMIES
|
|
||||||
|
|
||||||
; player bullet pool
|
|
||||||
bullet_xs: .res 3
|
|
||||||
bullet_ys: .res 3
|
|
||||||
|
|
||||||
;export all pools
|
|
||||||
.exportzp enemy_x_pos, enemy_y_pos
|
|
||||||
.exportzp enemy_x_vels, enemy_y_vels
|
|
||||||
.exportzp enemy_flags
|
|
||||||
|
|
||||||
.segment "RODATA"
|
.segment "RODATA"
|
||||||
palettes: .incbin "background.pal"
|
palettes: .incbin "background.pal"
|
||||||
|
|
||||||
|
BIN
src/spaceship.o
BIN
src/spaceship.o
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user