Star Castle Developments
Atari 2600 Programming Star Castle
Since Chris is busy with his RL, I will continue his blog entry about Star Castle Developments here.
Source code can be found here.
Note: There are still some occasional glitches which I have to sort out. And maybe even a crash. So if you find one, please let me know. Especially if you can reproduce it.
Attached is the final build from October 2015 and here the (never ending) DONE and TODO list:
; Explanation: ; - = open ; o = partially ; + = done ; ? = debatable ; x = cancelled ; Arcade Differences: ; - 3..6 lives via dip switches ; x extra lives > 100 ; + game speed increases with score, segments, time...? ;.. + gamespeed (0..7) now based on score (increases every 2000 points) ; + ring rotation ;.. + not in sync ;.. + direction moves with ring (TODO: check mines on rings, gun gaps) ;.. + speed moves with the ring ;.. + speeds ;.... + increases with score (not castle) ;.... + reverse rotation at constant speed: 4.7s/loop, (1st castle: middle) ;.... + others: 0..1250 pts: 4.7 (outside)/3.2s (inside); ..2500 pts: 3.2/2.35s; then: 2.4/1.9s ;...... own speed range defined ;.. + offsets are transfered with the expanding rings ;.. o hit sparks (TODO: graphics) ; + killing gun and getting killed costs one life ; + shield kick ;.. + ignores previous speed ;.. + gives new speed ;.. + doesn't reposition ; o ships ;.. + facing left at life start ;.. + start position moves up with each new life? (10 positions, 1st one seems random, 2nd one is bottom + 1?) ;.. ? X and Y speed are NOT linked together ;.. o deceleration is linear and lower ;.. + ship decelerates differently in left/down (100%) than in right/up (~50%) direction!!! ;.. + after castle completed, ship continues at current spot in next castle ;.. + ship bounces during explosion ; o mines ;.. + immediate respawn ;.. + spawn position depends on gun direction (dir - 90°) ;.. + spawn independent from ship direction ;.. o hop back and forth on the rings ;.. + higher homing speed at higher scores (as fast as player's ship) ;.. + homing mine movement has some randomness to prevent mine grouping ;.. + homing mine lifetime varies (lifetime counted on ring too, but only 50%) ;.. + slower turning speed in lower castles ;.. o mines hop much faster in arcade in higher levels ;.. - max. one mine per ring segment ;.. + disappear when they hit a ship ;.. + mines on ring do not kill ship ;.. o hit sparks (TODO: graphics) ; + gun ;.. + shots immediately when there is a gap ;.. x projectile moves a bit faster ;.. + projectile disappears when ship is hit ;.. x starts new gun life at last direction ;.. + starts next ship at last direction ;.. + shots whenever there is space, no matter where the player's ship is ;.. + is turning slower, especially initially ; + bullets ;.. + max. 3 at a time ; o sounds ;.. o siren frequency depending on segments (~65..260Hz): ;.... + intermediate screen (highest pitch, slightly higher than 3) ;.... + 36..28: 0 (lowest pitch) ;.... + 27..24: 1 (slightly higher) ;.... + 23..20: 2 ;.... + 19..16: 3 (high pitch) ;.... + 15..12: 4 (reset to between 1 and 2) ;.... + 11.. 8..5 (slightly higher, still lower than 2) ;.... +..7.. 4..6 (slightly higher than 3) ;.... +..3......7 (slightly higher = intermediate) ;.. - homing mines sound ;.. + no sound when hitting segment first time ;.. + thrust sound very low ;.. - projectile sound starts with fire sound ;.. - better sound mapping ;.... - channel 0: ;...... + 2. ship explosion (channel 1?) ;...... + 8. siren ;.... - channel 1: ;...... + 1. gun explosion ;...... + 3. projectile ;...... + 6. bullet fire ;...... + 7. ship ring bounce ;...... + 9. thrust ;.... - both: ;...... + 4. mine hits ;...... + 5. sector hits (channel 0?) ;.... - homing mine sound ; + scoring: 10/20/30 points per segment hit (not per segment destroyed) ; + no leading zeroes ;.. + score ;.. + castle ;.. + ships ;.. + highscore ; ? scores are centered ; + digits are slightly wider ; - ... ; Bugs/TODOs: ; + it seems that the gun is correcting direction after finding a gap but before fireing ;.. this leads to shots going through intact sectors ; + increase vertical screen size (TODO: use gained time) ;.. + define extra stars data ;.. + adjust stars in various screens ;.. + center/resize other screens ; + make ring 1 data ordered like ring 0 + 2 data ; + gun needs gaps in all three rings ; o General task management ;.. + allow individual tasks with priority and order ;.. o adjust parameters of tasks (check if they could be skipped) ; + regenerate if middle ring is empty (test arcade). ; + homing mines broken at higher castles (>=6) ; + explosion too slow (check again when CPU time is reduced!) ; + vector angle gives too coarse results ; + occasional glitch when mine is shot ; - bullet sometimes glitches when it hits (could be same problem as with initial mine?) ; + DIR_SEARCH ;.. x gap found a bit too early (counter clockwise) ;.. + no gap found when GUNDIR = 17 ; + occasional reversed intermediate castle/ship graphics ; + first mine glitch (only if thrusting or fireing!?) ;.. resulted from following order: 1. x-pos mine; 2. create mine; 3. display mine ; + thrust sound corrupted ; + thrust sound set to lowest possible frequency and made 50% louder ; + siren twice as loud ; ? bullet/ring check may have flaws ; + occasional single pixel glitch on empty ring segments ; + another occasional single pixel glitch at start of new life (reason: odd without even rotate) ; + empty high score initials ... (instead of aaa) ; + difficulty switches fixed at start of game (4 different high score tables) ;.. o make different high socre tables identifialble (colors only so far) ; + stop gun shooting when ship is exploding ; o more ring colors ;.. + 8 different sets ;.. o define colors ; o mine graphics (maybe slower?) ; + thrust sound broken after gun explosion ; + occasional crash!!! (X used in CheckRegenerate) ; + fixed last color mode remembered ; o check PAL colors on real hardware ; o mine explosion graphics? (code done, graphics todo) ; + add "arcade" to the title graphics ; o pulse red part of the title graphics in sync with music ; + (c) 201*3* (fixed "3" font) ; x new ship must not start at blind gun spot (but arcade does too) ; + highlights in small letters M and W and score 4 ; + adjusted flashing text on/off ratio ; x vary ship's thrust display frames %10 -> e.g. %101 ; + white vertical line before highscore ; - more gun explosion animations ;.. o gain space ;.. o optimize overlapping ;.. - implement new data ; - ... ; Ideas: ; + transfer colors with rings too ;.. + gun changes color too, is that OK? ; - PAL50 timing option ; + smaller ship to allow better manouvering? ;.. + data (ship, ship + flames) ;.. + offset ;.. + reflection ;.. + projectile collision ; + use direction search for mine/bullet ring hits ; x using VDELP0 to move ship smoother vertically (not possible) ; ? reverse display of double hit segments (dotted = complete, full = hit once) ;.. o done, but is it a good idea? ; + increase some difficulties 1000 points earlier (kick chance, gun turning) ; x better do 16 difficulties for those? ; - reduce maximum ring rotatation speed (saves CPU time) ; + rename "Wave" into "Castle" ; ! adjust scanlines ;.. + AA logo ;.. + title ;.. - Melody load ;.. - hishscores ;.. + game ;.. + messages
Star Castle Arcade (165, Stella).bin (28KB)
Star Castle Arcade (165, Harmony).cu.bin (32KB)