Jump to content
IGNORED

My 2600 -> 8bit Game Port


Recommended Posts

3 hours ago, MrFish said:

BTW... if you're concerned about the lack of attention you're getting... a lot of people don't frequent the programming section here -- as it's more for programming technical questions and discussions. Posting on the main for will get more responses/interest.

 

He (and his port) will get the attention they deserve (and then some!) when I review it on the 8-Bit Edition of The Atari Report, YouTube's fastest-growing homegrown amateur classic gaming review channel!!! 92 subscribers and counting (I only need 8 for that magic 100 mark and then I can get that custom URL, and I already have the name picked out for the URL too!!!)

 

https://www.youtube.com/channel/UCgW22q4hD1AhsdRkno-SLFw

Edited by BIGHMW
Link to comment
Share on other sites

4 hours ago, MrFish said:

BTW... if you're concerned about the lack of attention you're getting... a lot of people don't frequent the programming section here -- as it's more for programming technical questions and discussions. Posting on the main forum will get more responses/interest.

I think @ZeroPage Homebrew is starting to get this port (and @glurk) the proper attention they rightfully deserve, check out the latest posts on this thread!!!

 

 

It's in a forum that gets plenty of attention and maybe this will kickstart this thing to a newer and higher gear, it just takes one of us!!!

Link to comment
Share on other sites

On 11/20/2021 at 11:41 PM, glurk said:

It's nearly finished, so at least for now I want to finish the geese, get it bug-free and call it done.  I'm still thinking on some programming issues.  This is the first and only 2600 port I've ever done, so it's been a learning experience.  In hindsight, I probably should have chosen a more popular game...

 

 

It's indeed as MrFish says, most A8 users don't look here since there are less things going on here.

I think you've done a great job with this conversion so far! Funny fact is that I never played the 2600 version a lot because I didn't understand what was really the point of the game. Now I've tested yours and finally know what to do, it's a great game! I hope you have enough motivation to finish the game!

  • Like 1
Link to comment
Share on other sites

When I started on it, I just ripped the graphics from the 2600 ROM and created the display list / graphics from those.  Matching it up with Altirra and Stella emulators.  I planned to do the game code from scratch, but I then found Dennis Debro's commented source, (kudos to him) and figured out that I could use the original game code.  It's a good thing, and it allowed me to get it done MUCH faster!!

 

I don't think I'll be releasing my source code, because it wouldn't win any coding style awards, LOL.  It's quite a mess...  Of course, what matters is that the end result game is solid, and I believe it is.  I mean, I like sausage, but I don't want to see how they make it, hahaha.... 

Link to comment
Share on other sites

Another question - for anyone.  When I did this Barnstorming port, I pretty much chose all the color values "by hand."  Because the 2600 palette is not the same as the GTIA one.  But just for reference, is there (somewhere) a conversion chart??  2600 Colors <-> GTIA Colors?

 

I have one to convert GTIA NTSC to PAL, it's great.  But no help with 2600...

Link to comment
Share on other sites

I think my approach would be NTSC 2600 --> NTSC 8-Bit, and then use my existing one for NTSC 8-Bit --> PAL 8-Bit

 

The 2600 and GTIA palettes are real close, but just not quite right.  And it bugs me to death, LOL.  I have to stop programming, open two browser windows, look up some online color charts, and compare.  It's a huge time waste, one conversion chart would be SO MUCH EASIER.

 

Link to comment
Share on other sites

I've got the color thing sorted.  More or less (to get close) take the 2600 values, and add 2, LOL.  Not exact, but it gets close enough to hand-tune.

 

But NOW I have a different problem.  I'm working on ANOTHER port.  A much more popular game, which I don't want to name yet.  I don't want anyone to get excited about it, because I don't yet know if I can pull it off...

 

Thing is, I'm not a graphic artist.  And my vision sucks.  So -- what I need help with...  I have 3 8-bit wide "player" objects, and I need to expand them to 16-bit wide.  Two bytes in width each.  And I've given up trying to do it by hand.   Is there some tool to do this?  Can I do it mathematically?

 

Maybe there's an easy way I'm missing.  Maybe I'm just dumb...  I guess a one-line example might do...

 

.byte $85 = 'X....X.X'  into .byte $C0,$33 = 'XX......','..XX..XX'

Edited by glurk
correction
Link to comment
Share on other sites

If you can spare 2 pages of RAM/ROM then use lookup tables, e.g.

TAY
LDX HiNibble,Y
LDA LoNibble,Y

This can be done with a Macro (i.e. mathematically)

HiNibble: 
    .rept 256, #
    .byte [#&$80]+[[#&$80]/2]+[[#&$40]/2]+[[#&$40]/4]+[[#&$20]/4]+[[#&$20]/8]+[[#&$10]/8]+[[#&$10]/16]
    .endr
LoNibble: 
    .rept 256, #
    .byte [[#&8]*16]+[[#&8]*8]+[[#&4]*8]+[[#&4]*4]+[[#&2]*4]+[[#&2]*2]+[[#&1]*2]+[#&1]
    .endr

Though the expansion of that is:

HiNibble: 
     .byte $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
     .byte $03, $03, $03, $03, $03, $03, $03, $03, $03, $03, $03, $03, $03, $03, $03, $03
     .byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C
     .byte $0F, $0F, $0F, $0F, $0F, $0F, $0F, $0F, $0F, $0F, $0F, $0F, $0F, $0F, $0F, $0F
     .byte $30, $30, $30, $30, $30, $30, $30, $30, $30, $30, $30, $30, $30, $30, $30, $30
     .byte $33, $33, $33, $33, $33, $33, $33, $33, $33, $33, $33, $33, $33, $33, $33, $33
     .byte $3C, $3C, $3C, $3C, $3C, $3C, $3C, $3C, $3C, $3C, $3C, $3C, $3C, $3C, $3C, $3C
     .byte $3F, $3F, $3F, $3F, $3F, $3F, $3F, $3F, $3F, $3F, $3F, $3F, $3F, $3F, $3F, $3F
     .byte $C0, $C0, $C0, $C0, $C0, $C0, $C0, $C0, $C0, $C0, $C0, $C0, $C0, $C0, $C0, $C0
     .byte $C3, $C3, $C3, $C3, $C3, $C3, $C3, $C3, $C3, $C3, $C3, $C3, $C3, $C3, $C3, $C3
     .byte $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC
     .byte $CF, $CF, $CF, $CF, $CF, $CF, $CF, $CF, $CF, $CF, $CF, $CF, $CF, $CF, $CF, $CF
     .byte $F0, $F0, $F0, $F0, $F0, $F0, $F0, $F0, $F0, $F0, $F0, $F0, $F0, $F0, $F0, $F0
     .byte $F3, $F3, $F3, $F3, $F3, $F3, $F3, $F3, $F3, $F3, $F3, $F3, $F3, $F3, $F3, $F3
     .byte $FC, $FC, $FC, $FC, $FC, $FC, $FC, $FC, $FC, $FC, $FC, $FC, $FC, $FC, $FC, $FC
     .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF
LoNibble: 
     .byte $00, $03, $0C, $0F, $30, $33, $3C, $3F, $C0, $C3, $CC, $CF, $F0, $F3, $FC, $FF
     .byte $00, $03, $0C, $0F, $30, $33, $3C, $3F, $C0, $C3, $CC, $CF, $F0, $F3, $FC, $FF
     .byte $00, $03, $0C, $0F, $30, $33, $3C, $3F, $C0, $C3, $CC, $CF, $F0, $F3, $FC, $FF
     .byte $00, $03, $0C, $0F, $30, $33, $3C, $3F, $C0, $C3, $CC, $CF, $F0, $F3, $FC, $FF
     .byte $00, $03, $0C, $0F, $30, $33, $3C, $3F, $C0, $C3, $CC, $CF, $F0, $F3, $FC, $FF
     .byte $00, $03, $0C, $0F, $30, $33, $3C, $3F, $C0, $C3, $CC, $CF, $F0, $F3, $FC, $FF
     .byte $00, $03, $0C, $0F, $30, $33, $3C, $3F, $C0, $C3, $CC, $CF, $F0, $F3, $FC, $FF
     .byte $00, $03, $0C, $0F, $30, $33, $3C, $3F, $C0, $C3, $CC, $CF, $F0, $F3, $FC, $FF
     .byte $00, $03, $0C, $0F, $30, $33, $3C, $3F, $C0, $C3, $CC, $CF, $F0, $F3, $FC, $FF
     .byte $00, $03, $0C, $0F, $30, $33, $3C, $3F, $C0, $C3, $CC, $CF, $F0, $F3, $FC, $FF
     .byte $00, $03, $0C, $0F, $30, $33, $3C, $3F, $C0, $C3, $CC, $CF, $F0, $F3, $FC, $FF
     .byte $00, $03, $0C, $0F, $30, $33, $3C, $3F, $C0, $C3, $CC, $CF, $F0, $F3, $FC, $FF
     .byte $00, $03, $0C, $0F, $30, $33, $3C, $3F, $C0, $C3, $CC, $CF, $F0, $F3, $FC, $FF
     .byte $00, $03, $0C, $0F, $30, $33, $3C, $3F, $C0, $C3, $CC, $CF, $F0, $F3, $FC, $FF
     .byte $00, $03, $0C, $0F, $30, $33, $3C, $3F, $C0, $C3, $CC, $CF, $F0, $F3, $FC, $FF
     .byte $00, $03, $0C, $0F, $30, $33, $3C, $3F, $C0, $C3, $CC, $CF, $F0, $F3, $FC, $FF

This demonstrates a high degree of repetition though, so at the sacrifice of cycles to obtain the values, this can also be done:

DblNibble: 
    .byte $00, $03, $0C, $0F, $30, $33, $3C, $3F, $C0, $C3, $CC, $CF, $F0, $F3, $FC, $FF

    PHA
:4  LSR ; A
    TAY
    LDX DblNibble,Y 
    PLA
    AND #$F
    TAY
    LDA DblNibble,Y

    
    

 

Edited by Wrathchild
  • Like 1
Link to comment
Share on other sites

ZeroPage Homebrew is playing Barnstorming on tomorrow's stream LIVE on Twitch, hope you can join us!


Games:
  • Gacek (2021 | A8) by Janusz Chabowski @shanti77
  • Castle Defender (2021 | A8) by Martin Simeček @matosimi (Code & Design), Piotr Radecki (Title Screen), Michal Radecki (Music)
  • Barnstorming (2021 | A8) by glurk @glurk
  • Pang (2016 | A8) by Tomasz Biela @tebe /Madteam, Kamil Walaszek (Vidol) & Adam Pwroznik (Ooz / Agenda) & Maciej Hauke (Rocky / Madteam) (Graphics), Michal Radecki (String / Agenda) (Music)

 (WATCH AT 1080P60 FOR BEST QUALITY)

 

 

 

 

Link to comment
Share on other sites

Just a minor observation:  Looking at the original game and box art.  There is a white fence across the bottom of the screen.  Your fence is tan and appears offset by a pixel in the middle, so it looks more like railroad tracks than a fence.  Not sure if it was on purpose but I thought I'd point it out in case it wasn't intentional.

Link to comment
Share on other sites

3 hours ago, bfollett said:

Just a minor observation:  Looking at the original game and box art.  There is a white fence across the bottom of the screen.  Your fence is tan and appears offset by a pixel in the middle, so it looks more like railroad tracks than a fence.  Not sure if it was on purpose but I thought I'd point it out in case it wasn't intentional.

It's intentional.  It's one of my little graphics touches, it's supposed to look like a split-rail type fence, with added perspective.  I think it looks good.  Can't please everyone, LOL!

 

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