Compare commits

..

No commits in common. "main" and "0.1.2" have entirely different histories.
main ... 0.1.2

5 changed files with 26 additions and 76 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -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"

Binary file not shown.