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