Jump to content
IGNORED

Supercharger conversion hacks...


Nukey Shay

Recommended Posts

No prob. I just hate to see antique hardware being chopped up if it doesn't really need to be.

I figure as long as I'm looking into a game's code, I might as well find a few bytes to save and post an unmodded-compatable version of it.

Link to comment
Share on other sites

  • 1 month later...

Pac-Man is simple. Just change the JMP instruction at $FFE5 to be an unconditional branch instead after disassembly. It jumps to less than 128 bytes away, and you only need to save 1 byte to keep the starting tune from crashing the game (data originally ends at $FFF8). The preceding LSR instruction keeps the accumulator a positive value, so in this case BPL could be used in place of JMP. That'll make the data end at $FFF7, avoiding the Supercharger's bankswitch trigger.

 

Fresh disassembly + binary to see how this was achieved:

Pac_Man_Supercharger_.zip

Link to comment
Share on other sites

About the same story with Donkey Kong...but even more scattered unused bytes in the binary. There's a group of 5 at $FBFB to $FBFF (most likely filler before the page break). One of the last tables that exists in the binary is also 5 bytes long. So, I just moved that table into the unused space. 5 bytes are now unused at the end...nothing addressed beyond $FFF6.

 

Yada yada...

DonkeyKong_Supercharger_.zip

Link to comment
Share on other sites

  • 1 month later...
can any atari rom be rewritten to run on the supercharger?

 

Any 2K or 4K ROM can run on a modded SuperCharger; I doubt there are any exceptions. Most 4K ROMs can be hacked so that they will run on an unmodified SuperCharger, but in some cases extreme reworking would be required. For example, suppose the code has a shape table stored at addresses $1C00-$1FFD, with the last shape chosen to fit with the interrupt vector at $1FFC-$1FFD. The zero-page pointers are set up:

  lda (textptr),y
 sta shape_ptr_lo
 ora #$FC
 sta shape_ptr_hi

Nice quick easy way of setting up the shape pointers, but the shape table has to go from $1C00-$1FFE. There may not be enough cycles to do them any other way. In a scenario like that, accessing shape $F7 (assuming seven-line-high shapes) would result in accesses from $1FF7 to $1FFD. If addresses $1FFC-$1FFD hold the desired data for the shape, this would pose no problem on a 4K cart. But on an unmodded SuperCharger it would crash.

Link to comment
Share on other sites

  • 5 months later...

Thanks! Nukey!, I just got a supercharger recently along with a H6er and I have not done the supercharger mod, but would like to use it unmodified to run some programs other than the original Arcadia/Starpath programs & demos that are on the Stella Gets a NewBrain CD. Thank you very much for these conversions for the supercharger, I heard even 2K & 4K regular games can crash on an umodded unit. :( I know that once I cut that trace on the supercharger board, I will have to make sure my modding work is correct or I will have ruined my Supercharger, so I'm a little hesitant to do it. I don't have a Crokodile cart or Cuddlecart and am waiting for a Chimera cart (If I can afford it) when it comes out so I may not need to do the mod.

 

:)

Link to comment
Share on other sites

All that is required to to remove the conditions that would crash the unit...in this case, rom access beyond address $xFF7 (tho one-byte instructions like RTS existing at $xFF7 supposedly has the ability too...as well as sloppy code that inadvertently trips one of these addresses). So it's only a maximum of 9 bytes of space that needs to be cut from the game...recovered by sharing data or optimizing program code. I'd vote against modding the Supercharger, because it lowers the value it...and how easy it is to alter binaries (very quick...but I usually spend extra time on them fixing other things or using reclaimed space for new stuff). Any requests?

 

 

Boing!

This Q*Bert ripoff ran @251 (248 when reset is pressed). Both problems fixed. Additional binary made to hide the HMOVE lines with PF0, but this had the consequences of turning the ball sprite black too (so I altered the stage colors slightly so the screen color is always non-black).

 

TODO: kill the last movement & collision status when you lose a chance (glitches present in the original game).

Boing_.zip

Link to comment
Share on other sites

Great info Nukey!. I wish I knew more about how to save those nine bytes of space to alter the software rather than the hardware, but I am glad you are doing this for people. Yeah, I would rather not mod the supercharger and I am pretty happy with the RF video quality of this H6er so I probably won't do the s-video mod for it.

 

Great!, could you alter Imagic's Star Voyager to run with the supercharger without crashing? (it's 4.00 kb) Thanks in advance! :D I downloaded all the games you tailored to the Supercharger in this thread, as I don't have any of the cool rom carts or many cartridges yet.

 

late. :)

Link to comment
Share on other sites

(tho one-byte instructions like RTS existing at $xFF7 supposedly has the ability too...as well as sloppy code that inadvertently trips one of these addresses).

 

Any time the 6502 fetches an instruction opcode, it will also fetch the following byte. Essentially, the 6502 has to know before the it gets the data from one cycle what address it's supposed to use for the next cycle; the only exceptions are (1) with zero-page operations, the 6502 can route the data bus directly to the address LSB for the next cycle; and (2) with absolute and indexed addressing modes, the 6502 can route the data bus directly to the address MSB for the next cycle.

 

BTW, the strangest instruction execution sequence is JSR; it is the only instruction which writes memory before the entire instruction has been fetched. RTS is also somewhat strange; that one fetches and throws out a byte at the newly-popped program counter address.

Link to comment
Share on other sites

Star Voyager...

The audio table was originally in the last page of ROM.

I was a bit worried about the audio pointer hitting beyond $xFF7 since it uses an index of #$FF to indicate no sound, so I swapped pages $1F and $1D. I trimmed out some code (no illegals used), and began adding more HMOVE's to try to mask out the rest of the left border (this might be impossible to finish in the dual-line resolution the game uses tho). Abandoning that for now, I altered the B&W data to be the PAL set instead (no provision for 7800 users currently).

 

The assembly file includes invincibility options if you want a boring game ;)

Star_Voyager.zip

Edited by Nukey Shay
Link to comment
Share on other sites

Bank Heist:

Pretty tricky to hack this one...as many of the branches count on added cycles (from page crossing). The disassembly reflects this, with various ORG's that I'd scattered around to check addresses from shifting around.

 

Anyway, a bunch of free space used to expand the GFX tables and provide NTSC/PAL switching via the B&W switch (2600 only).

Bank_Heist.zip

Link to comment
Share on other sites

Bank Heist:

Pretty tricky to hack this one...as many of the branches count on added cycles (from page crossing). The disassembly reflects this, with various ORG's that I'd scattered around to check addresses from shifting around.

 

Anyway, a bunch of free space used to expand the GFX tables and provide NTSC/PAL switching via the B&W switch (2600 only).

 

what about Adventure? it is our favorite!

Link to comment
Share on other sites

Adventure has already been done a plethora of times (all the 4k hacks created based off the optimized code already are Supercharger-compatable). I dunno if a PAL conversion was added tho...so here's a palette-switching version of the original gameplay. Nearly 300 bytes free space left if more changes are desired.

 

NOTE: the original room calculation routine has been put back in, now that an additional value is needed in the matrix to hold the PAL color values. The game uses the 7800 autodetection routine developed for Hack'Em to handle palette switching.

Adventure.zip

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