Jump to content

Photo

Supercharger conversion hacks...


206 replies to this topic

#26 Nukey Shay OFFLINE  

Nukey Shay

    Sheik Yerbouti

  • Topic Starter
  • 20,984 posts
  • Location:The land of Gorch

Posted Mon Jun 4, 2007 11:52 PM

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.

#27 Nukey Shay OFFLINE  

Nukey Shay

    Sheik Yerbouti

  • Topic Starter
  • 20,984 posts
  • Location:The land of Gorch

Posted Sat Jun 9, 2007 8:13 PM

Chopper Command...

Attached Files



#28 mimo OFFLINE  

mimo

    Preppie!

  • 6,777 posts
  • It's easy living in a bubble

Posted Sun Jun 10, 2007 3:54 PM

cant wait for my supercharger to arrive.
Keep the coming :thumbsup:

#29 Atariboy2600 OFFLINE  

Atariboy2600

    Stargunner

  • 1,774 posts

Posted Sat Aug 4, 2007 12:50 AM

Anyway you can make Pac-Man, Space Invaders, Donkey Kong, even Berzerk??^_^

#30 Nukey Shay OFFLINE  

Nukey Shay

    Sheik Yerbouti

  • Topic Starter
  • 20,984 posts
  • Location:The land of Gorch

Posted Sat Aug 4, 2007 2:07 PM

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:

Attached Files



#31 Nukey Shay OFFLINE  

Nukey Shay

    Sheik Yerbouti

  • Topic Starter
  • 20,984 posts
  • Location:The land of Gorch

Posted Sat Aug 4, 2007 5:01 PM

Space Invaders is already Supercharger-compatable AFAIK. No addresses above $FFF7 are called by the program.

Edited by Nukey Shay, Mon May 26, 2008 10:08 PM.


#32 Nukey Shay OFFLINE  

Nukey Shay

    Sheik Yerbouti

  • Topic Starter
  • 20,984 posts
  • Location:The land of Gorch

Posted Sat Aug 4, 2007 6:09 PM

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

Attached Files



#33 Atariboy2600 OFFLINE  

Atariboy2600

    Stargunner

  • 1,774 posts

Posted Sat Aug 4, 2007 10:11 PM

Thanks^_^

#34 rba04 OFFLINE  

rba04

    Combat Commando

  • 1 posts

Posted Fri Sep 14, 2007 6:33 PM

can any atari rom be rewritten to run on the supercharger?

#35 Nukey Shay OFFLINE  

Nukey Shay

    Sheik Yerbouti

  • Topic Starter
  • 20,984 posts
  • Location:The land of Gorch

Posted Sat Sep 15, 2007 12:52 AM

Any 2k/4k rom. You just need to avoid any program access from rom adresses $xFF8 on up. 2k by nature is no problem, since they only use 2k of the addressing space. 4k programs would need hacking if they do this.

#36 supercat OFFLINE  

supercat

    Quadrunner

  • 6,395 posts

Posted Sat Sep 15, 2007 12:10 PM

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.

#37 Nukey Shay OFFLINE  

Nukey Shay

    Sheik Yerbouti

  • Topic Starter
  • 20,984 posts
  • Location:The land of Gorch

Posted Sun Mar 2, 2008 4:27 AM

Thunderground / Alien Ants:

Attached Files



#38 Nukey Shay OFFLINE  

Nukey Shay

    Sheik Yerbouti

  • Topic Starter
  • 20,984 posts
  • Location:The land of Gorch

Posted Sun Mar 2, 2008 9:26 AM

Super Football, NTSC and PAL60 versions.

Boot error: The NTSC version may default to PAL in Z26. Hit the minus key twice to correct.

Attached Files



#39 Nukey Shay OFFLINE  

Nukey Shay

    Sheik Yerbouti

  • Topic Starter
  • 20,984 posts
  • Location:The land of Gorch

Posted Sun Mar 2, 2008 1:16 PM

Super Baseball, NTSC and PAL60 versions.

Attached Files



#40 Nukey Shay OFFLINE  

Nukey Shay

    Sheik Yerbouti

  • Topic Starter
  • 20,984 posts
  • Location:The land of Gorch

Posted Mon Mar 3, 2008 10:06 PM

Atlantis 1 and 2:

I put both versions in the same game...use the left difficulty switch to choose Atlantis II (the score doesn't use a different font, tho). I also added a bit of color shading, and made a PAL60 binary too.

Attached Thumbnails

  • Atlantis.jpg

Attached Files


Edited by Nukey Shay, Sat May 3, 2008 3:49 AM.


#41 cosmosiss OFFLINE  

cosmosiss

    Dragonstomper

  • 870 posts
  • That's what I said, yo. BA-BA-BOOM!
  • Location:Orlando, FL

Posted Mon Mar 3, 2008 11:06 PM

I put both versions in the same game...use the left difficulty switch to choose Atlantis II.

Awesome!

#42 Nukey Shay OFFLINE  

Nukey Shay

    Sheik Yerbouti

  • Topic Starter
  • 20,984 posts
  • Location:The land of Gorch

Posted Thu Mar 6, 2008 1:29 AM

Planet Of The Apes proto
I corrected the scanline count, fixed the screen glitch when the statue is displayed, and freed up some space if somebody wants to try to make something challenging out of it :P

Attached Files



#43 ovalbugmann OFFLINE  

ovalbugmann

    River Patroller

  • 2,072 posts
  • Location:Phoenix, Arizona

Posted Sun Mar 9, 2008 3:16 PM

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.

:)

#44 Nukey Shay OFFLINE  

Nukey Shay

    Sheik Yerbouti

  • Topic Starter
  • 20,984 posts
  • Location:The land of Gorch

Posted Sun Mar 9, 2008 6:51 PM

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

Attached Files



#45 ovalbugmann OFFLINE  

ovalbugmann

    River Patroller

  • 2,072 posts
  • Location:Phoenix, Arizona

Posted Sun Mar 9, 2008 8:22 PM

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

#46 supercat OFFLINE  

supercat

    Quadrunner

  • 6,395 posts

Posted Sun Mar 9, 2008 10:57 PM

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

#47 Nukey Shay OFFLINE  

Nukey Shay

    Sheik Yerbouti

  • Topic Starter
  • 20,984 posts
  • Location:The land of Gorch

Posted Mon Mar 10, 2008 4:08 AM

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 ;)

Attached Files


Edited by Nukey Shay, Mon Mar 10, 2008 4:43 AM.


#48 Nukey Shay OFFLINE  

Nukey Shay

    Sheik Yerbouti

  • Topic Starter
  • 20,984 posts
  • Location:The land of Gorch

Posted Mon Mar 10, 2008 8:55 PM

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

Attached Files



#49 vmelvin69 OFFLINE  

vmelvin69

    Combat Commando

  • 4 posts

Posted Mon Mar 10, 2008 10:07 PM

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!

#50 Nukey Shay OFFLINE  

Nukey Shay

    Sheik Yerbouti

  • Topic Starter
  • 20,984 posts
  • Location:The land of Gorch

Posted Tue Mar 11, 2008 12:15 PM

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.

Attached Files






0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users