Jump to content
IGNORED

Stellar Fortress


TROGDOR

Recommended Posts

I've always wondered why there was never a good port of Star Castle to the 2600. The closest thing that I'm aware of is Yar's Revenge. However, I didn't like how the fortress scrolled in Yar's Revenge, and I'd like to see something that more closely matches the look and feel of the original.

 

So, I present version 0.01 of Stellar Fortress. :)

 

sf0012tg.jpg

 

New Features in this version:

 

- First demo release.

- Displays 3 ring fortress in the center of the screen, using mirrored dynamic PF graphics.

- Shield is stored in 28 bytes of RAM, so holes can be poked in the shield.

- The outer ring of the shield rotates.

- The ring color plusates.

 

Next to do:

- Get the interrior 2 rings rotating.

- Add a player ship and the fortress cannon.

- Write a kernal that can handle a dynamic PF.

 

Commercially, I can understand why Yar's Revenge used such a simple scrolling system for the blocks of their fortress. They just used a series of RORs, which requires a trivial amount of code. Below you'll see the code required just to rotate the outer ring in Stellar Fortress. It will get harrier when I add the two center rings.

 

Below the code, you'll find the 4k binary attachment.

 

FYI, I'm still working on Battle of Midway. This is just another game that I've always wanted to do.

 

TROGDOR

 

RotateShield

LDA Frame
AND #%00000111; Rotate the shield only on this multiple.
BNE ScanWait

LDX #13
CopyShield0  ; This can be removed when all the rotate code is done correctly.
LDA LShield,X
STA LShTemp,X
LDA RShield,X
STA RShTemp,X
DEX
BPL CopyShield0


LDA LShield+13
ASL
STA LShTemp+13

LDA LShield+12
BEQ NoBit2

INC LShTemp+13
INC LShTemp+13

NoBit2

LDA RShield+13
ROR
AND #%11111110; Always clear the far right bit.
STA RShTemp+13

LDX #11
ShiftLeftUp
LDA LShield,X
AND #%00000010
BEQ NoBit0

LDA LShield+1,X
ORA #%00000010
BNE WriteOut0; Careful.  The ORA always has a non-zero result.  This is a BRA.

NoBit0
LDA LShield+1,X
AND #%11111101
WriteOut0
STA LShTemp+1,X

DEX
BPL ShiftLeftUp


LDX #13
ShiftRightDown
LDA RShield,X
AND #%00000010
BEQ NoBit3

LDA RShield-1,X
ORA #%00000010
BNE WriteOut1; Careful.  The ORA always has a non-zero result.  This is a BRA.

NoBit3
LDA RShield-1,X
AND #%11111101
WriteOut1
STA RShTemp-1,X

DEX
BNE ShiftRightDown


LDA RShield
ASL
STA RShTemp

LDA LShield
ROR
AND #%11111110; Always clear the far left bit.
STA LShTemp

LDA RShield+1
AND #%00000010
BEQ NoBit1

INC RShTemp
INC RShTemp
NoBit1



LDX #13
CopyShield1
LDA LShTemp,X
STA LShield,X
LDA RShTemp,X
STA RShield,X
DEX
BPL CopyShield1

SF01.BIN

Edited by TROGDOR
Link to comment
Share on other sites

386 scanlines  :ponder:

984897[/snapback]

Oops.

Surely you're not suggesting I should check my scanline count before posting a demo??? :dunce:

V0.02

New in this release:

- Cleaned up the Vblank, display, and overscan timers so exactly 262 scanlines are used.

- Added a low pulsing sound in unison with the shield visual pulse. This will either add an ominious feeling to the game, or be really annoying.

 

To do:

- The original game required 2 shots per shield section to destroy it. Since this is impractical given the color constraints of the 2600, I'll probably just add more single shot shield rings. I'm thinking 6 rings should work.

SF02.BIN

Link to comment
Share on other sites

If it only takes one shot to break a shield, that would be too easy. With 5 or 6 rings there wouldn't be much room left for the rest of the playfield.

 

Did anyone else get bored with the original Star Castle after you discovered the warping trick? The only way to get the high scores is to cozy up to the side of the screen and tap thrust, turn around, fire, repeat as needed. Not much variety.

Link to comment
Share on other sites

If it only takes one shot to break a shield, that would be too easy. With 5 or 6 rings there wouldn't be much room left for the rest of the playfield.

 

Did anyone else get bored with the original Star Castle after you discovered the warping trick?  The only way to get the high scores is to cozy up to the side of the screen and tap thrust, turn around, fire, repeat as needed. Not much variety.

989909[/snapback]

 

Not necessarily so. The latest version has 5 rings, and there's still plenty of playfield left. I will probably add a 6th ring, for the higher levels. It will make the game harder, but that's the idea.

 

As for the side screen technique, I'm aware of it. At higher levels, the AI just might become aware of it, too. ;)

 

Seriously, my plan is to increase the difficultly each level, so you're always challenged. This won't be like pacman, where you can get one million plus points and play indefinitely. Eventually, the game will beat you. It's just a question of how far you can get. For example, if you make it to level 10, touching the shield will be fatal. You won't find that in the original. :evil:

 

Because the 2600 only has the graphical capability to do a BAD port of Star Castle.

Heh. I'll bet my big beefy arm you're wrong on that one. The main objective of 2600 ports is to create a fun game. My game won't look exactly like the original, but it will have the same feel, and I will make sure it's fun to play.

 

FYI, all future posts on this game will be in my blog, here.

Edited by TROGDOR
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   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...