Jump to content
IGNORED

StarMaster 8-Bit (FINAL)


glurk

Recommended Posts

Ok, by far my most difficult port yet.  And it's not "perfect," there are some really minor graphics glitches, very minor.  But darn this game is FUN! (IMO).  I kind of like it better than 'Star Raiders.'  But I'm also a bit tired of working on it...

 

A very tough one to do, programming-wise.  It uses 16-bit sprites (two combined) for everything, and I had to write a tight single-line kernel to do the stars and lasers.  So the code actually uses 6502 undocumented opcodes, and they were actually necessary!!  Lots of unrolled loops and crazy stuff for the sprite rendering.  I wish the 8-bits had sprite reflection like the 2600, but they don't, so I doubled up the sprites in ROM for left side and right side.

 

Very few graphic changes from the original.  The stars are single pixel height instead of double, as it was easier to do that way, and I think it looks better as well.  I changed the font to the same one I used in my 'Star Raiders' hack, the standard Activision font looks out-of-place in outer space, LOL.  And I did maybe one or two other minor things.  This is more true to the 2600 version than I usually do, I left the color-cycling code in there, so after some time it goes into screen saver mode.

 

I'm calling this FINAL because I'm tired of looking at it.  I think it's pretty good, except for a few little things I just couldn't fix.  Better to have a slightly flawed port than none at all, I believe.  I may see if I can do a 5200 version, but for now here's NTSC and PAL:

 

StarMaster (FINAL) [NTSC].car

StarMaster (FINAL) [PAL].car

  • Like 16
  • Thanks 3
Link to comment
Share on other sites

UPDATE!

I found the glitch / bug.  It was a (stupid) mistake on my part.  So the previous versions are not good.  Here are new ones, sorry about that.  These things happen...

 

StarMaster (FINAL) [NTSC].car

StarMaster (FINAL) [PAL].car

 

These should fix the graphics issues, but I don't have a good 5200 one yet.  Ran into another problem with that, I'll try later...

 

 

  • Like 7
Link to comment
Share on other sites

It looks great!  Unfortunately, I haven't yet been able to get Altirra to recognize my Xbox controller's D-pad or fire (X) button when I run it.  What's weird as they work fine for other games.  I'm going to keep trying as this is one of my favorite 2600 games ever.

Link to comment
Share on other sites

It looks great!  Unfortunately, I haven't yet been able to get Altirra to recognize my Xbox controller's D-pad or fire (X) button when I run it.  What's weird as they work fine for other games.  I'm going to keep trying as this is one of my favorite 2600 games ever.

Link to comment
Share on other sites

Havent played this on the 2600 in ages but shouldnt you be able to shot the enemy fire?  My hit ratio for enemy shots is very low - shots in the middle of the screen with multiple laser hits dont go away, but sometimes mid range I can hit them (get a blue flash).

 

Also - it does seem that when I "think" I register a hit on an enemy shot when its close I get hit (yellow flash) and the enemy disappears from the middle of the screen having me wait for them to come back into view.

 

Altirra, 128K XE NTSC settings.

Link to comment
Share on other sites

15 hours ago, Paul Westphal said:

I’m not really into 2600 conversions, but Ya finally got me on this one. It was one of my favorites as a kid ? the other was solar fox.

Wow, I totally forgot about Solar Fox until you just mentioned it!

Link to comment
Share on other sites

The newer ones I posted are really fairly congruent to the 2600 version.  I guess it's helpful to be familiar with the original.  The enemy shots and meteors have an X, Y and Z positioning (distance), so they can only be shot when at a certain distance away.  If they get too close, it's too late.

 

That said, I've played this like 100 or more times, and I've scored high enough to earn the Activision "patch" on several levels.  So it's very much playable.  It's not supposed to be 'easy' though.  The original game plays much the same...

 

 

EDIT: Here's a new 5200 version.  Works fine in Altirra.  I don't have an actual 5200 to test on.

 

StarMaster (FINAL) [5200].bin

Edited by glurk
  • Like 2
Link to comment
Share on other sites

7 hours ago, Tinman said:

It looks great!  Unfortunately, I haven't yet been able to get Altirra to recognize my Xbox controller's D-pad or fire (X) button when I run it.  What's weird as they work fine for other games.  I'm going to keep trying as this is one of my favorite 2600 games ever.

I can't imagine what the issue is there.  It reads the joystick and trigger like every other game...

 

Some gameplay tips.  DODGE STUFF.  Especially the meteors and enemy shots.  Get them off the edge of the screen, and they won't hit you.  You can only shoot either one at a good distance.  So it's best to dodge them.  When the enemy gets really close, it fires repeatedly and is hard to hit.  So again, best to shoot him from a distance away.  This is really much like the 2600 version.

 

I've played this thing so much I'm worn out on it, and have also gotten really good at it too, LOL.  I think it's pretty solid re: the original.  Also tested on real hardware, my old 800 and also on a 130XE.  It seems OK to me.  Not having the luxury of actual playtesters, I've done my best on it.

 

  • Like 2
Link to comment
Share on other sites

you seem to have conversions down, as i've seen several out in a very short period. Since you seem to be doing straight ports, and have mentioned several times you don't want to be changing fixing etc , I was wondering if you have reached out to the various super talented folks around here for graphics updates , sound music enhancements or game mode additions? Most of the Activision 8 bits did some level of updates . You can still release your straight across ports, people will still appreciate the efforts.  

Link to comment
Share on other sites

23 minutes ago, 351coug said:

you seem to have conversions down, as i've seen several out in a very short period. Since you seem to be doing straight ports, and have mentioned several times you don't want to be changing fixing etc , I was wondering if you have reached out to the various super talented folks around here for graphics updates , sound music enhancements or game mode additions? Most of the Activision 8 bits did some level of updates . You can still release your straight across ports, people will still appreciate the efforts.  

Well, direct ports are kind of my "thing."  I've said before, I'm not a graphic artist or sound designer, and I'm just doing these by myself.  And by the time I get one done, I'm TIRED OF IT, LOL!!  And it's not really my intention to do 'conversions.'  I (very intentionally) leave the 2600 code unchanged, as these games have already gone through extensive playtesting and tuning by the original authors / company.

 

I do sometime update the graphics a little, but even that is tricky, because changing the pixels or size of things changes the collision detection, and that then affects gameplay, sometimes in very bad and unexpected ways.

 

I'd much rather do direct ports, get them as polished and working as well as possible, and move on to something else / another one.  This one, for example could have all kinds of stuff added, instrument panel, shields on/off, etc. etc...  But that would be turning it into 'Star Raiders,' right?  Not my goal at all.

 

  • Like 2
Link to comment
Share on other sites

I don't really share the source code for these ports.  No one would understand my messed up, largely uncommented code anyways.  It's not that I have any "secrets" or anything, but I don't want to even try to explain it all to someone (so much time...).  I'd rather just be programming.

 

With that said, if anyone else wanted to do 2600 ports of their own and had any questions for me about that, I'd be happy to tell them what my approach would be.  I LIKE talking about programming techniques and stuff.  But no one has asked. 

  • Like 1
Link to comment
Share on other sites

15 hours ago, glurk said:

I don't really share the source code for these ports.  No one would understand my messed up, largely uncommented code anyways.  It's not that I have any "secrets" or anything, but I don't want to even try to explain it all to someone (so much time...).  I'd rather just be programming.

 

With that said, if anyone else wanted to do 2600 ports of their own and had any questions for me about that, I'd be happy to tell them what my approach would be.  I LIKE talking about programming techniques and stuff.  But no one has asked. 

 

 

Spider Fighter would be one sweeeeet port....

Link to comment
Share on other sites

STARMASTER ULTIMATE

 

Kinda hate to do this, but I have to.  Bugs happen...  I actually really like this game, so I went through with a fine tooth comb, and fixed every bug, every pixel position, collision detection, so many things.  So, more than final, this is the ULTIMATE versions.  For those who had issues, these should fix them, hopefully.

 

StarMaster (ULTIMATE) [NTSC].car

StarMaster (ULTIMATE) [PAL].car

StarMaster (ULTIMATE) [5200].bin

  • Like 12
  • Thanks 3
Link to comment
Share on other sites

If any programmers are interested, here's my "Star Kernel" that I came up with to match the 2600 one.  It draws the stars, the lasers beams, and the crosshair, which actually IS the laser beams, but drawn from a different top and bottom position.  This was all written with the help of @Thomas Jentzsch's commented disassembly, which was a tremendous help in doing this one.  When a good disassembly is available already, the work is much easier.

 

(The sprites are all drawn separately from the kernel, drawn during VBI)

        ldx #8-1        ; # of stars
        ldy #160        ; # of scanlines
.ws            lda StarPosY,x
            sta Temp
            cpy Temp
            bcs .nostar
            lda StarPosX,x
            adc #STAROFFSET
            sta HPOSM1
            dex
            bpl .nost2
.nostar    stx HPOSM1
.nost2    stx StarCount
        sta WSYNC
            lax ZPAGE0
            cpy LaserBottom
            bcc .disableM
            cpy LaserTop
            bcs .skipM
        lda RlaserTab,y
        tax
        lda LlaserTab,y
.disableM     stx HPOSM2
        sta HPOSM3
.skipM    ldx StarCount
    dey
    cpy #3+1
    bne .ws

The stars are ALL missile1 (there are only 8 of them at a time) and the lasers/crosshair are missile2 and missile3.  The laser X positions are each pulled from tables, one table of X positions for each side and the positions overlap each other in the center for the crosshair.

 

Only other programmers would be interested in this, I suppose, but I was rather happy with how well it worked out.  I consider this game done now, but I wish someone would have mentioned button 2/button 'C' support to bring up the map screen.  I could probably add that in there without too much trouble.  Maybe I'll revisit it again.  I hate to release too many versions, but I can't always get it right the first time...

 

  • Like 4
Link to comment
Share on other sites

@glurk I know you are no longer interested in working on this, but in playing the final and ultimate versions through Altirra last night for both the 8-bit and 5200 versions this is 'almost' on par with the 2600 gameplay. The sprite collision for the laser shots is still not right because I noticed with Altirra that hitting the enemy ships and even refueling at the stations requires your to essentially hit them just outside the cross hairs? In reality I should be able to bulls eye them when they are dead center in the crosshairs and the shots are simply not registering the hits there. This was an issue in the earlier builds for the enemy shots but that actually seems to be working correctly now. But yeah trying to hit the enemy ships and dock with the stations is much more difficult than it should be since they don't register in the middle of the crosshairs area on the current builds. 

 

I've not tested it on actual hardware so maybe it would work differently there but through Altirra 4 the collision is still off.

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