Jump to content
IGNORED

supercharger


walter_J64bit

Recommended Posts

Keep in mind that any 4k game will run on even an unmodded Supercharger...so long as the game program is not trying to access 1 (possibly 2) specific memory locations...$FFF8 and $FFF9. So the games that cannot be used can be -hacked- to work with it. Just free those locations by disassembly/alteration.

 

To do so on every game would be a very big chore...so it's easier in the long run just to modify the Supercharger to ignore it's bankswitching method by toggling a manual switch.

Link to comment
Share on other sites

Keep in mind that any 4k game will run on even an unmodded Supercharger...so long as the game program is not trying to access 1 (possibly 2) specific memory locations...$FFF8 and $FFF9. So the games that cannot be used can be -hacked- to work with it. Just free those locations by disassembly/alteration.

 

To do so on every game would be a very big chore...so it's easier in the long run just to modify the Supercharger to ignore it's bankswitching method by toggling a manual switch.

 

So you mean rename all the $fff8's to say, $fff7's ifts not being used? sorry, i'm a newbie to 2600 programming.

Link to comment
Share on other sites

No...get whatever program instructions or tables that exist at those locations and move them someplace else.

The Supercharger's 6k of memory is really 3 seperate "banks" of ram...2k each. The lowest bank is always active (the console always "sees" it), and the other 2 banks can be swapped (sort of like whatever is in 2 will now be in 3 and visa-versa). When you load a 4k game, only banks 1 and 2 hold the game...bank 3 is totally blank.

Let's say that a table exists for a sprite character near the end of the rom...

 


LFFF0: .byte $18

      .byte $3C

      .byte $7E

      .byte $FF

      .byte $FF

      .byte $FF

      .byte $7E

      .byte $3C

      .byte $18

 

(BTW that's a circle-shaped sprite)

That table is 9 bytes long...and ends right at memory location $FFF8. So when the program is reading from that table and putting the value into the scanline, the Supercharger will attempt to bankswitch when it's copying that 9th line. Using an instruction such as this...

 

       LDA    LFFF0,X

 

In that example, register X is being used as an offset. So each time the program encounters that line, the accumulator is given the value that exists at address LFFF0+the value of X. If X were equal to 8, the Supercharger will be reading from address $FFF8 and bankswitch (swap 2k areas #2 and #3) and crash the game (because nothing existed in #3...it was blank).

 

The solution is to try to find an unused area of memory that you can move that entire table to. If no area is unused...you'll need to use a "sharing" trick to accomplish this.

Copyright or title screen bitmaps are a possibility...since who cares what it looks like so long as the game plays ;) But an even better solution it to try to find 2 tables that hold identical or nearly identical data...you only need 2 bytes...and "share" them. If the game is reading the game colors from a table, it might be easy to find an area of the program that has nearly the same sequence of byte values. If they are slightly different, it's no biggie...the game will still play (just look slightly different).

 

Suffice to say, this type of hacking might be beyond the ability of somebody more comfortable with pixel-hacking only...but the only way to learn is to try disassembling and see how it turns out :)

Link to comment
Share on other sites

It's supposed to be one of the easiest hardware modifications to do. I'd imagine that if you had electronics shop in high school, just one of those projects would be tougher :)

By installing the toggle switch, you can disable the ability for banks 2 and 3 to swap positions just by flipping it. No bankswitch occurs...and the game doesn't crash.

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