Colin McMillen
07b3a531cb
Don't set background color every frame.
For some reason, this causes graphical glitches on real hardware.
9 years ago
Colin McMillen
485da7fcc6
Track & display high score.
9 years ago
Colin McMillen
d12dcd32fb
Tweaks to increase difficulty.
9 years ago
Colin McMillen
12a51ea9ec
Don't reset background color on each game.
9 years ago
Colin McMillen
bc0049edaf
Add "Game Over" screen & restart game afterwards.
9 years ago
Colin McMillen
448fcfdde3
Refactor score rendering into reusable functions.
9 years ago
Colin McMillen
bb674fced2
Create macro for advancing sprite array pointers.
9 years ago
Colin McMillen
52ac6e0cbe
Display 4-digit player score.
9 years ago
Colin McMillen
bf92ca0be9
Add a font for digits and a fake player score.
9 years ago
Colin McMillen
7eeeca9487
Add only one point per enemy killed.
9 years ago
Colin McMillen
ac5dcc504a
Check collisions between player shots & enemies.
9 years ago
Colin McMillen
c5c3297237
Pull out a separate CheckCollision function.
9 years ago
Colin McMillen
4ca3bec032
Small code cleanups.
9 years ago
Colin McMillen
a387160fdd
Make an explicit cooldown for spawning the next ship.
9 years ago
Colin McMillen
c17b137ab2
Remove username from TODOs
9 years ago
Colin McMillen
08fae310e8
Add shots that come from enemy ships.
9 years ago
Colin McMillen
d7f0119cb6
Tweak ship / shot spawn rates.
9 years ago
Colin McMillen
d460a519af
Add enemy ships.
9 years ago
Colin McMillen
1c7b6fde81
Tweak to collision-detection.
9 years ago
Colin McMillen
ca8926f567
Add display of player health.
9 years ago
Colin McMillen
b238fa2d37
Collision detection between player and enemy shots.
9 years ago
Colin McMillen
f5b67dd535
Change shots to be single-shot and 8x8 sprite size.
9 years ago
Colin McMillen
a92499fc40
Fix a bug - *now* we don't need InitSpriteTables.
9 years ago
Colin McMillen
abddbf0033
Turns out we did still need InitSpriteTables.
9 years ago
Colin McMillen
2bb1bc161d
Add multiple enemy shots.
9 years ago
Colin McMillen
4bf0033962
Make enemy sprites red.
9 years ago
Colin McMillen
526bc9e320
Spawn enemy shots from right edge of screen.
9 years ago
Colin McMillen
d81c9a9e4b
Refactor jmp -> bra.
9 years ago
Colin McMillen
f51a544956
Various refactorings.
Rename InitializeFoo -> InitFoo.
Break UpdateWorld into a few functions.
shotArray -> playerShotArray.
9 years ago
Colin McMillen
4521c5d96b
Remove InitializeSpriteTables routine.
9 years ago
Colin McMillen
0fa70c0889
Make a table of possible shot velocities.
Also fix bug caused by omission of "clc" before "adc".
9 years ago
Colin McMillen
eb7757a8b3
Change shot sprite to be up against left edge.
Also fix a bug where some entries of the sprite buffer weren't being
cleared.
9 years ago
Colin McMillen
6eab6050e8
Allow for negative x-velocity.
9 years ago
Colin McMillen
1dc44a3f00
Move sprite table RAM location.
9 years ago
Colin McMillen
bac214a95b
Fix subtraction / two's complement bug.
9 years ago
Colin McMillen
e39f802bd5
Loop through shots array to find an empty spot.
9 years ago
Colin McMillen
7d0140d233
Alternate up-shots and down-shots.
9 years ago
Colin McMillen
5ace3844dc
Shots can now have negative y-velocity.
9 years ago
Colin McMillen
611b4d20f2
Update world & sprites in separate loops.
Also give shots a y-velocity.
9 years ago
Colin McMillen
25a2fb20ab
Change bit-format of scratch sprite table.
Now each sprite's bits count as: "1 = large" and "1 = enabled", which is
more intuitive.
9 years ago
Colin McMillen
48db4aca58
Don't bother storing zeroes to joypad registers.
9 years ago
Colin McMillen
116d591c60
Update shot speed and cooldown timer.
9 years ago
Colin McMillen
510aca6ed3
More register documentation.
9 years ago
Colin McMillen
49abebc211
Allow more than 4 shots.
9 years ago
Colin McMillen
0e7d46c46f
Don't read joysticks during auto-joypad read.
9 years ago
Colin McMillen
5c45dfa834
Make macros for setting 16bit/8bit registers.
Also disable NMI while processing, and start refactoring joypad handler.
9 years ago
Colin McMillen
8c5b4232c1
Add a period.
9 years ago
Colin McMillen
36b54692c1
Simplify handling of secondary sprite table.
We now keep a buffer that has one byte per sprite, and later pack it
into the bitfield format wanted by OAM, instead of calculating the
bitfield manually during UpdateWorld
9 years ago
Colin McMillen
7a04a359fa
Tighten up vBlankCounter code.
9 years ago
Colin McMillen
325006664b
and+cmp -> bit where possible
9 years ago