Jump to content
  • entries
    39
  • comments
    621
  • views
    148,042

Star Castle Developments


Thomas Jentzsch

17,241 views

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_74.bin star_74.cu.bin star_101.bin star_101.cu.bin Star_Castle_Arcade_152.cu.bin Star_Castle_Arcade_152.bin Star Castle Arcade (165, Stella).bin Star Castle Arcade (165, Harmony).cu.bin

  • Thanks 1

127 Comments


Recommended Comments



Edit: The source link in the first post doesn't work, but the command line: svn co ... still pulls trunk and version 152.

Link to comment

I'm a complete noob so forgive the noob question. I have version 140 in a bin, but notice that going to source code shows version 152. Is there a link to the 152 bin file for the harmony cart? Thanks.

Link to comment

Updated, see first post.

 

The differences are quite small though.

Thanks,

 

One thing that I noticed playing on my Harmony Cartridge was that on the 101 build (where you could still choose one shot ring destruction) it would save the high scores, but only while the device was on. Once you power cycled the device the high scores cleared which is understandable. On 140, it doesn't remember any high scores at all. The last score you play is always Number 1, and there are no others below it. Is this an intentional disabling of the high score subroutine?

 

I'll check it out in .152 to see if it behaves the same way.

Link to comment

High Scores still are not remembered on the Harmony cartridge. After each game the high score is reset and every game ends with your current score being the high score. This appears to ONLY happen on the Harmony bin file. The non-harmony bin file saves the high scores until the device is powered off. I verified using the latest stable release of Stella.

 

The game is a technological wonder and a great adaptation of one of my favorite games from the golden age of the arcade.

 

The game can be maddening if you don't move from your initial spot. The game will fire at you as soon as it can, and if you died in the original spawn spot, you will lose a lot of lives if the cannon has a clean shot.

 

It would be nice if there were a period of about 1.5 to 3 seconds after spawning that would allow the character to move but not fire. This would prevent the AI from killing you immediately upon respawn and allow you to move from your spawn point .

Link to comment

...either that, or randomize your spawn point to minimize the cannon from firing at you immediately after spawning, causing almost instantaneous death.

Link to comment

The respawn point is randomized, but only in Y position (like the arcade). If you thrust immediately, you can get away, even if the gun is directly firing at you. Also you have to fly around like mad anyway in later levels, so not moving won't get you very far. Learn to thrust and control your ship! :)

 

Regarding the high score, that will never work well on Harmony. The binary is meant for Stella and the cart. There the high score will be stored permanently, even if you switch of the emulator or console.

Link to comment

Regarding the high score, that will never work well on Harmony. The binary is meant for Stella and the cart. There the high score will be stored permanently, even if you switch of the emulator or console.

 

That doesn't seem to work on my Stella setup for some unknown reason. Is it supposed to store it in a separate file somehow? Or in the ROM itself?

Link to comment

The respawn point is randomized, but only in Y position (like the arcade). If you thrust immediately, you can get away, even if the gun is directly firing at you. Also you have to fly around like mad anyway in later levels, so not moving won't get you very far. Learn to thrust and control your ship! :)

 

Regarding the high score, that will never work well on Harmony. The binary is meant for Stella and the cart. There the high score will be stored permanently, even if you switch of the emulator or console.

Ok then, I guess that's a reason to buy the cart. It worked in version 101 so I thought it might be an issue.

 

And yes, the game ramps up to be a "run fest". I'm going to have to get a different controller, the joystick just isn't precise enough to run an plant an accurate shot simultaneously.

Link to comment

 

That doesn't seem to work on my Stella setup for some unknown reason. Is it supposed to store it in a separate file somehow? Or in the ROM itself?

In a separate file, named like the ROM. Bankswitching must be FA2*.

Link to comment

It worked in version 101 so I thought it might be an issue.

It might have worked per session. But when you switched off the console, all high scores are gone.

Link to comment

Stella generated a .dat file that worked, but on older 140 version. It did not generate any file on 152. I set the bank to FA2. No change.

 

Also, you must reset the game or reload it in order for the difficulty switches to take effect. I'm just used to flipping them in-game.

 

Never mind that, you just have to RESTART the game by either playing it till you lose all your lives or hit the RESET switch. That's not so bad.

Link to comment

Please download the latest version. I previously had uploaded a 152 which disabled saving.

 

The switches are intentionally designed that way. They select between the 4 variations. If you could switch them mid-game, then you could cheat your high scores.

  • Like 1
Link to comment

Now that 165 is the final version, can I go ahead and add it to the Stella database? And if so, what info should be included; Manufacturer, ModelNo, Name, Note, etc??

Link to comment

Manufacturer: AtariAge, Chris Walton & Thomas Jentzsch

Name: Star Castle Arcade

P1 Controller: SaveKey (right port)

Use Phosphor: Yes

YStart: 30

 

Thanks!

Link to comment
On 2/7/2020 at 4:20 PM, Thomas Jentzsch said:

Looks like the forum update killed the attachments. And the TODO list in the first entry is badly formatted too.

 

Please contact Al.

Ok thanks. Will do. I'd like to compile the source to get the ROM. Do you know of any n00b friendly guide for that?

Link to comment
On 2/10/2020 at 12:58 PM, Thomas Jentzsch said:

No idea, maybe in Andrew Davie's programming guide?

Thanks. What I'm looking for at this point, is an SVN client that can compile source code into binary. It would be useful for other purposes as well. I've spent hours searching online and have come up empty. I installed TortoiseSVN, but I'm not seeing any option that can do this. Any ideas? Anybody?

 

Edit: I've found a guide I can follow to compile the source code. However, it only covers an instance where there is a single .asm file. SCA has several .asm files in the source code repository.

Edited by MadZiontist
Link to comment
2 hours ago, Thomas Jentzsch said:

SVN is only for getting the source code onto your computer. You need DASM to assemble the code.

The roadblock for me when trying to approach compiling with DASM is:

 

"Enter this command to produce the binary file: 

DASM genemedic.asm -ogenemedic.bin -f3"

 

In the repository are a bunch of .asm files (bank0.asm, bank1.asm, etc., star.asm, star_flash.asm, etc.).

 

How am I supposed to compile all of those different .asm files into a single working binary?

Link to comment

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...