aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2014-10-08 17:13:48 -0400
committerJesse Luehrs <doy@tozt.net>2014-10-08 17:13:48 -0400
commit612c344a775d4475e898e7442d62d44d6bf23cd7 (patch)
treef175d93fb414629ec3615ba9906be1e9534d5b20
parentb8d4c2f60e810b91382f95353a5534bd59fd3976 (diff)
downloadnes-snake-612c344a775d4475e898e7442d62d44d6bf23cd7.tar.gz
nes-snake-612c344a775d4475e898e7442d62d44d6bf23cd7.zip
start refactoring to allow storing the entire snake in memory
-rw-r--r--main.s31
1 files changed, 19 insertions, 12 deletions
diff --git a/main.s b/main.s
index e4471c3..222aac8 100644
--- a/main.s
+++ b/main.s
@@ -35,7 +35,8 @@ SLOT 1 $0000 ; location doesn't matter, CHR data isn't in main memory
buttons_pressed DB
sleeping DB
game_state DB ; 0: menu, 1: playing, 2: redrawing
-head instanceof point
+head DW
+length DB
direction DB ; 0: up, 1: down, 2: left, 3: right
frame_skip DB
frame_count DB
@@ -95,9 +96,9 @@ clrmem:
STA game_state
STA direction
STA frame_count
- LDA #$80
- STA head.x
- STA head.y
+ LDA #$03
+ LDX #$01
+ STA head, x
LDA #30
STA frame_skip
@@ -157,13 +158,15 @@ NMI:
BEQ end_nmi
draw_head:
- LDA head.y
+ LDY #$01
+ LDA (head), y
STA $0200
LDA #$00
STA $0201
LDA #$00
STA $0202
- LDA head.x
+ LDY #$00
+ LDA (head), y
STA $0203
JMP do_dmi
@@ -260,17 +263,19 @@ set_axis:
apply_direction:
TXA
CLC
- ADC head.x, y ; head.x offset by 1 is head.y
- STA head.x, y
+ ADC (head), y ; head.x offset by 1 is head.y
+ STA (head), y
check_collisions
- LDA head.x
+ LDY #$00
+ LDA (head), y
CMP #$40
BCC collision
CMP #$C0
BCS collision
- LDA head.y
+ LDY #$01
+ LDA (head), y
CMP #$3D
BCC collision
CMP #$BD
@@ -311,9 +316,11 @@ start_game: ; {{{
STA game_state
LDA #$80
- STA head.x
+ LDY #$00
+ STA (head), y
LDA #$7D
- STA head.y
+ LDY #$01
+ STA (head), y
- BIT $2002
BPL -