Jump to content

Star Castle Developments

Posted by Thomas Jentzsch, in Atari 17 September 2012 · 10,979 views

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?)
;.. 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

Attached Files

Wow, this is really fun. I'm still bummed I wasn't paying attention and missed the kickstarter campaign.
  • Report
Very good.
What's happened with thrust engine sound?
  • Report
Hi, works with harmony cart?
  • Report
Yes, but you need a BIOS update. Until now I haven't bother to care for, but Chris has.
  • Report
I just have added a zip file which contains a binary that works on Harmony (BIOS 1.05).
  • Report
I, too, get the relay-buzzing-in-a-can engine thrust sound on Stella.
  • Report
Please fix the thrust sound. That is all.
Thank you!
  • Report

Please fix the thrust sound. That is all.

No not all, but it definitely needs to be fixed. :)
  • Report
Sorry, I really don't remember what I meant by that is all?
It really comes off the wrong way.
I think I had just looked through the source code and I noticed that the thrust sound was in a different spot then the prioritized sounds, and maybe I was frustrated because I didn't know how to fix it so I made that post?
Again,sorry and thank you for making it the best that it can be. Michael
  • Report
is this the second release canidate or the first one still
  • Report
2nd one. Mainly working on increasing the play area vertically and getting closer to the original arcade.
  • Report
cool I have to d/l this version into my sd card
  • Report
Replaced the binary with a minor update:
- thrust sound fixed
- siren twice as loud now
- high score saving fixed
  • Report
Cool. I noticed the cu file for Harmony wasn't updated yet, though.
  • Report
I compiled from Subversion 59.
I have the smaller file that works in Stella but not Harmony, and then the FA2 appended 32,768 size file that works on Harmony, but not Stella.
Anyone know why? Is my FA2 file too old? I thought we can make one file that works on both Stella AND Harmony?
I am following instructions given to me by CD-W for adding the FA2 file to the start of the .bin file.

Thomas Jentzch: I would like to see a more Vector ship, maybe smaller like you suggest, single line res -- the rest of it is so vector-ish. AND, _please_, one of my hack builds had the mines as a single pixels (not a square). Perfect for "Difficulty A" on the other one switch ("Difficulty A" on one side is for double hit segments of course). All I changed was the shape bits for the mine, the collision detection didn't seem to be affected, and it really did not seem harder, I just like the way single pixels looked compared to squares. The other Star Castle has single pixels, but they don't fly around as nice.
  • Report
Regarding the two files required, I suggest you contact Stephen. Maybe he can help.

I have already requested a smaller ship from Nathan, but due to many restrictions it won't be single line res. But I am looking to make it move vertically with single-line resolution. Not sure if that will we possible.

I will look after the smaller mines. It may be an easy change (like you describe), but I am a bit afraid they might become to hard to see. First I have to test on my own, real hardware.
  • Report
Currently the game speed is determined by the wave you are playing. This causes the problem that the player can simply stay in the 1st wave as long as possible and build up a high score there.

In the original, the game speed seems to increase with the number of segments shot and the wave completed. Effectively it increases with the score. So my plan is to use the score for the Atari 2600 version too.

This eliminates the cheating option. But then there still is no real incentive for the player to finish a wave, because the extra bonus points for the wave will have the same punishment in speed (= difficulty) increase as shooting a number of segments.

Therefore my plan is to increase the speed less (e.g. 50%) for the wave bonus points than for the points of an adequate number of destroyed segments. Then the player has a chance to control the difficulty increase a bit. The more effectively (= low number of destroyed segments) he finishes a wave, the less the speed will increase. Effectively he can gain more points that way.

Good idea?
  • Report
A little more thinking later:

I will only use the score for the game speed. The extra live for a completed wave should be enough incentive.
  • Report

I have already requested a smaller ship from Nathan...

I will look after the smaller mines. It may be an easy change (like you describe), but I am a bit afraid they might become to hard to see. First I have to test on my own, real hardware.

Thank you again for continued work on this and considering my suggestions! This is going to be another one of the best that the 2600 can run.
I hope you are just testing ideas, because SVN version 66 has many, many things wrong like instant death from super-fast mines, difficulty A rings are not solid at start. I had to stop playing.
Difficulty increasing with score is good, just so it is not so impossible early. Give us some time to play a while! As designed it starts out quite hard. The Arcade Game get to a point where you can't stop thrusting or the mines get you - if that is the point is has to get to, I guess it is okay, but I never liked the fact that you get to a point where you can't stop thrusting.
  • Report
I really appreciate your comments, especially since you seem to be the only one testing currently. I hope that will change when I release another version soon (after finishing the 3 bullets changes left).

Don't worry about the insane speed at the start, that's the current maximum speed I am testing (forgot to remove that code before checking in, try the latest check in).
About the mine speed limit here, I am also not so sure where to set it. The mines have to become pretty deadly, else you could play the game forever with little challenge. But not too deadly, so that you have a fair change when you are skilled enough. Currently I am mimicking the arcade (where too long games harm the profit) speed, where the mines become as fast as the player's ship. I could reduce that a little bit (maybe 80-90%), but not too much.

The dotted difficulty A segment are a test, where I reversed the order (dotted first, then full). There are two reasons for trying that:
1. the player will immediately recognize the mode he is playing
2. in the arcade the segments become thicker when being hit (so thin = dotted and thick = full)

It's just an idea I am playing with. Any feedback is welcome.

BTW: I will test he smaller mines, just have to find the time to EVER try the game on real hardware. :)
  • Report

Search My Blog

Recent Entries

Recent Comments

May 2019

19 20 2122232425


0 user(s) viewing

0 members, 0 guests, 0 anonymous users

Latest Visitors