Jump to content
EddyFree

Atari 8Bit Game Patches

Recommended Posts

 

So I've been tinkering around with the great Atari 8Bit emulators out there and exploring the games of my youth and others I've never seen. Then I started playing with the cheats but got tired of typing them in all the time or loading cheat metadata. So I thought why not just "patch" my favorite games instead? I ended up patching several and then I remembered the "unprotects" patch-scheme used by DOS gamers on the ole PCs. It was a simple little byte "search-replace" scheme used mainly to modify code that would break copy protection on games back then, but I thought it would be perfect for documenting these patches I was making because it didn't depend on file data to be at an exact byte location.

 

As I was making these patches, I thought others may be interested in them. But I was concerned that there are already so many different "versions" of the same game(loading screens added/removed, compressed, otherwise modified) on the internet that I didn't want to contribute to that problem. And then I thought maybe if I asked everyone who uses the patches to keep the INDIVIDUAL modified files in their personal collection and please don't put them on the internet, that problem can be avoided. So that's what I'm asking here.

 

The patches I will post are all FILE/DISK patches(not memory) and in the HEX [SEARCH:REPLACE] format with the characters "XX" meaning "leave this byte unchanged". Also, unless otherwise noted, the patch is to be applied at the first occurrence of the search bytes(I try to make the patches where there's only one match anyhow).

 

In order to patch the games, you will need a HEX editor with search/replace abilities.

 

And lastly, a "disclaimer". I haven't thoroughly tested out every one of these games after patching them, so it's possible I could have missed something. For example, the game "Alley Cat" reduces the life counter in 4 different places in the code depending on what the cat hits and I caught this, but I could have accidentally overlooked the other 3. Another example would be if I were unfamiliar with a game and didn't realize a ship had a shield or used bombs, etc. so never made a patch for that. It's also possible that there was a better way of accomplishing the same result with a patch elsewhere that I overlooked.

 

BTW...Feel free to post your patches here too!

 

  • Like 4

Share this post


Link to post
Share on other sites

 

Before I get to the individual game patches, I have two attachments to make to get them out of the way.

 

One is my patched "port-swap" version of Wizard Of War. This will allow you to play with the first 2 controllers as expected.

 

The second is my collection of 57 "Arcade Conversion" Games(on 6 ATRs) with "Pre-Patched" cheats applied for your convenience. (This is a "beta" release.)

 

WizardOfWor[PortSwapPatched][EF] EF's Cheat Arcade (6 Discs).zip

  • Like 5

Share this post


Link to post
Share on other sites
Posted (edited)

Cool, thanks for sharing these.

 

One question I have is can you save your hi-score with the WoW xex? IIRC the original disk version could save your hi-score if you pressed 'S' after a game. I recall trying another xex and it did not.

Edited by TapperP
  • Like 1

Share this post


Link to post
Share on other sites


OK, here we go with some patches:

 

Abracadabra:
-----------
Unlimited Lives = [A4C686:XXA5XX]
Kill Timer = [FEE910:XXXX00]

 

AgentUSA:
--------
Unlimited Crystals = [DE00B8:EAEAEA]
Never Need A Ticket = [CD0D06:4CF569]

 

Alley Cat:
---------
Unlimited Lives = [CE2538:EAEAEA](ALL occurrences)

 

Crystal Castles:
---------------
Unlimited Lives = [DEB81BF013:EAEAEAD0XX]

 

Dig Dug:
-------
Unlimited Lives = [DE0F3C:EAEAEA]
Reduce Delay After Dying = [20F9B5CA:EAEAEAXX]

 

Draconus:
--------
Unlimited Lives = [E9018D96:XX00XXXX]
Unlimited Energy = [DE5540:EAEAEA]
Unlimited Fire = [E9018D95:XX00XXXX]

 

Dropzone:
--------
Unlimited Lives = [CEAC05:EAEAEA]
Unlimited Smart Bombs = [CEAD05:EAEAEA]
Unlimited Cloak = [CEAB05:A901EA]

 

Galaxian:
--------
Unlimited Lives = [0BC663:XXEAEA]

 

 

  • Like 5

Share this post


Link to post
Share on other sites
9 minutes ago, TapperP said:

Cool, thanks for sharing these.

 

One question I have is can you save your hi-score with the WoW xex? IIRC the original disk version could save your hi-score if you pressed 'S' after a game. I recall trying another xex and it did not.

 

Not sure, guess it depends on the version you get. But I can say this patch won't effect that....

Share this post


Link to post
Share on other sites

There are game ROM management systems out there that not only verify unmodified binaries and known variants, but automatically apply patches as desired.  We could have something like that for Atari archives - it would just take a big effort.

Share this post


Link to post
Share on other sites
22 hours ago, TapperP said:

Cool, thanks for sharing these.

 

One question I have is can you save your hi-score with the WoW xex? IIRC the original disk version could save your hi-score if you pressed 'S' after a game. I recall trying another xex and it did not.

 

I have an updated answer for you. After looking into it, the game DOES save your scores to sector 720 if you press S when it tells you at the HI Scores screen IF you have it on a Single Density disk. Bad news is that it doesn't appear to LOAD the scores although there is code present to do so. I'll explore it a bit more if I get time.

 

 

  • Like 2

Share this post


Link to post
Share on other sites

 

For the next round, I'll start off with three of my favorites.

 

I love to play Defender and they did an excellent job in the Atari conversion. I was terrible at the arcade version because I couldn't get used to all those buttons. But one thing I never liked in the game was those ships called "Baiters". They're the flat green ones that pop up out of nowhere and can fly faster than you. Well, we get rid of them in these patches.

 

Defender:
--------
Infinite Ships = [C983C69E:XXXXEAEA]
Infinite Smart Bombs = [F0E2C6A5:XXXXEAEA]
BAITER Attack Ships Never Spawn = [207BBB:EAEAEA]


Another of my faves that's well converted is Joust. And in it, another nemesis of mine, that darn Pterodactyls(PTERRY). You know, the one that comes calling if you take too long or on certain levels. Only way to kill it is a direct hit in its mouth. Well, not anymore, we can wipe them out with one patch.

 

Joust:
-----
Infinite Lives = [12D6A8:XXEAEA]
No Pterodactyls(PTERRY) Spawn = [A90085F9:60EAXXXX]

 

The third nice convert is Donkey Kong.

 

Donkey Kong:
-----------
Infinite Lives = [E6C6D2:XXA5XX]
Kill The Timer = [CE240E:A901EA]
Skip "How High Can You Get?" Screen = [203C8C:EAEAEA]
No Enemies (yes, that's not a typo) = [20FA96:EAEAEA]

 

 

  • Like 4

Share this post


Link to post
Share on other sites

 

Hero:
----
Kill The Timer = [10C631:XXA901]
Infinite Lives = [12C639:XXA5XX]
Unlimited Dynamite = [8DC638:XXEAEA]


Jr Pacman:
---------
Infinite Lives = [7DC654:XXEAEA][8CC653:XXA901](MUST use BOTH patches)

 

Lost Tomb:
---------
Infinite Lives = [E9019986:XX00XXXX]
Kill The Timer = [CE0825:EAEAEA]
Unlimited Bombs = [E9019941:XX00XXXX]
Unlimited Bullets = [CE984B:EAEAEA]

 

Ninja(DISK Version):
Invinciblility = [C000F003:A97F85D5]

 

Arkanoid:
Infinite Lives = [CEF431:EAEAEA]

 

 

  • Like 3

Share this post


Link to post
Share on other sites

Eddy, before you get too far are you aware that there's a million and one a8t files out there which work with the emulators, so no need to patch disks directly..I'm sure you are..

 

Hell, I cheated every thing back in the day and even created a lot of the a8t files as well :)

 

Share this post


Link to post
Share on other sites


Caverns Of Mars:
---------------
Infinite Lives = [CEAC1A:EAEAEA]
Unlimited Fuel = [1AE901:XXXX00]


Caverns Of Mars II:
------------------
Infinite Lives = [CE393B:EAEAEA]
Unlimited Fuel = [CE892E:EAEAEA]


Dandy Dungeons(DISK):
--------------------
Unlimited Health = [DEA75E:EAA901]
Unlimited Keys = [DE9F5E:EAEAEA]
Unlimited Bombs = [DE9B5E:EAEAEA]

 

Pogo-Joe:
-------
Infinite Lives = [E901D8:XX00XX]

 

Popeye:

------
Infinite Lives = [DE9020:EAEAEA]
Turn Background True Black = [02A902:XXXX00]

 

Tapper:
------
Infinite Lives = [42851C:XXEAEA]
Mugs Falling Off Bar Don't Kill = [4C4B44:EAEAEA]

 

Bounty Bob Strikes Back:
-----------------------
Infinite Lives = [012068:00XXXX]
Kill The Timer = [DED20A:EAEAEA]

 

Food Fight:
----------
Infinite Lives = [C6EDA9:EAEAXX]

 

 

  • Like 4

Share this post


Link to post
Share on other sites
21 minutes ago, Mclaneinc said:

Eddy, before you get too far are you aware that there's a million and one a8t files out there which work with the emulators, so no need to patch disks directly..I'm sure you are..

The patches are more flexible and versatile. Set it and forget it. No need to have an extra file for each game.

 

 

Share this post


Link to post
Share on other sites
Posted (edited)

 

Technically you are creating an extra file by making a cheat version as I presume you want an uncheated one as well :)

 

Don't get me wrong, as a serial cheater who spent hours on OmnimonXL cheating anything that moved I love what you are doing, just saying so you knew there was a collection out there.

 

NO OP paradise :) 

 

Edited by Mclaneinc

Share this post


Link to post
Share on other sites
25 minutes ago, Mclaneinc said:

Technically you are creating an extra file by making a cheat version as I presume you want an uncheated one as well

What I meant was no need to load two files.

 

Yes, I'm aware of a8t "trainer" files, this thread is for an alternate approach. Just another "option" for gamers.

 

 

  • Like 3
  • Thanks 1

Share this post


Link to post
Share on other sites
Posted (edited)

Thanks for the topic.

 

If useful as source of information:

 

https://atariage.com/forums/topic/262698-looking-for-a-few-cheats-trainers/

 

http://www.atari-shop.nl/tipstricks/xlxetipstricks.htm

 

https://atari.panprase.cz/?action=trainery&pismeno=vse

 

 

1 hour ago, Mclaneinc said:

Technically you are creating an extra file by making a cheat version as I presume you want an uncheated one as well :)

 

Don't get me wrong, as a serial cheater who spent hours on OmnimonXL cheating anything that moved I love what you are doing, just saying so you knew there was a collection out there.

 

The main difference is that this is a "hard drive" hack, instead of a "ram" hack with .a8t files. Both memory positions are in a different place. Having both is very useful, the only detail is I would add a suffix in the filename of any hard coded hack, ex.: "game (lives+).xex", in order to be aware of, and not to spread a hacked file without knowledge.

 

 

Edited by tane
  • Like 3

Share this post


Link to post
Share on other sites
1 hour ago, tane said:

the only detail is I would add a suffix in the filename of any hard coded hack, ex.: "game (lives+).xex", in order to be aware of, and not to spread a hacked file without knowledge.

 

That's a very good idea. And one of my concerns as stated in the OP. That's why I'm just posting the information instead of patched files, so people who are interested can pick and choose what patches they'd like and apply them to their own collections.

 

And you're right, another advantage of the patches are that they can be used on real Atari Hardware as opposed to just in an emulator.

 

 

  • Like 2

Share this post


Link to post
Share on other sites


Anteater:
--------
Infinite Lives = [F0D69D:XXA901]
Kill The Bonus Timer = [E90595:XX00XX]

 

Nibbler:
-------
Infinite Lives = [E90185DE:XX00XXXX]
Kill The Timer = [E1F8A5E038E910:XXXXXXXXXXXX00]

 

Xevious:
-------
Infinite Ships = [E9019D:XX00XX]

 

Swat:
----
Infinite Lives = [CE6B06:EAEAEA]

 

Robotron 2084:
-------------
Infinite Lives = [CE8F0A:EAEAEA]

 

Sinistar:
--------
Infinite Ships = [DE0F26:EAA901]

 

Buck Rogers:
-----------
Infinite Ships = [E9C6AD:XXA901]
Unlimited Fuel = [00859E:XXEAEA]

 

Flak:
----
Infinite Ships = [03C6A2:XXEAEA]

 

 

  • Like 5

Share this post


Link to post
Share on other sites

EddyFree,

 

Love what you're doing.

It would be nice to compile all these cheats into a text file or database.

Then other crackers might want to add to it.

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

 

I have 2 of those documented...The others I'll have to look into...

 

Electrician:
-----------
Infinite Lives = [08E901:XXXX00]

 

Polar Pierre:
------------
Infinite Lives = [A999:60EA]

 

  • Like 3
  • Thanks 1

Share this post


Link to post
Share on other sites
13 hours ago, tane said:

Thanks for the topic.

 

If useful as source of information:

 

https://atariage.com/forums/topic/262698-looking-for-a-few-cheats-trainers/

 

http://www.atari-shop.nl/tipstricks/xlxetipstricks.htm

 

https://atari.panprase.cz/?action=trainery&pismeno=vse

 

 

 

The main difference is that this is a "hard drive" hack, instead of a "ram" hack with .a8t files. Both memory positions are in a different place. Having both is very useful, the only detail is I would add a suffix in the filename of any hard coded hack, ex.: "game (lives+).xex", in order to be aware of, and not to spread a hacked file without knowledge.

 

 

To be fair the ram hack and the hard coded hack are 'usually' exactly the same unless a version of the game is different and the code shifted, in the end the code gets loaded in to memory and whatever has been done it gets decrunched, relocated or just stays where it was loaded so the code off the disk 'usually' remains the same so both versions work. The only difference as you mention is that both ram and patch can prove wrong if there are multiple versions of the game so maybe a suffix with a crc to match would be ideal but as said, most sensible cracks don't mess with the code position, its only when you get fancy menu's etc where the possibility of relocation happens.

 

I think and I believe I only used Ominmon's relocation usage once and that was with Sidewinder.

 

Whilst not a great coder I'm a prolific cheater :)

 

There's also one issue that byte patching has, repetition of bytes, small strings risk a small chance of repetition depending on the bytes used, say the patching A9 05 ie load the accumulator with 05 and it was changed to A9 FF so allowing 255 of an item. Well A9 05 is used an awful lot as are any load the accumulator codes. Where as a memory address for the most part remains constant, the only problem as a cheater with some locations is that they get used for multiple items ie indexed so the approach to the cheat has to change.

 

But this isn't all to put Eddy off, very much the opposite, I love what is going on, I spent my earlier days just churning out cheats on the Atari, C64, Snes, PSX etc

 

I'm just trying to show that methods of cheating all have their little foibles, its usually down to the skill of the cheater as to how well they work....So you carry on Eddy, its a noble cause and I'm loving it.. :)

 

 

Share this post


Link to post
Share on other sites
23 hours ago, tane said:

The hack to any of those would be great

Sorry for the delay, busy day. Here are the others you asked for:


Fire Bug:
Unlimited Lives = [C6E330:A901XX]

 

Sea Chase:
Unlimited Ships = [C6C510:A901XX]
Kill Bonus Timer = [F8E6CC:4C6EA4]
Unlimited Air = [C6E2A5:EAEAXX][85E2C9:A5XXXX] (MUST use BOTH patches)

 

Sea Wolf II:
Kill The Timer = [8D8730D8:EAEAEAXX]
Unlimited Missiles/Torpedoes (With NO Reload Delay) = [DE4130:4C820E]

 

 

  • Like 2
  • Thanks 1

Share this post


Link to post
Share on other sites


Mario Bros.:
-----------
Infinite Lives = [05C629:XXEAEA]
Unlimited POW = [C653203375:EAEAEAEAEA]

 

Space Invaders:
--------------
Infinite Ships = [0EC6D2:XXA901]
Invaders Don't Descend = [E6AAA9:EAEAXX]

 

Snookie:
-------
Kill The Timer = [C5C6C3:XXA90F]
Infinite Lives = [03C6A8:XXEAEA]
Skip Annoying Death Tune = [A2A88E01:60EAXXXX]

 

Zaxxon:
------
Infinite Lives = [97D69A:XXA901]
Unlimited Energy = [0BC6B5:XXA901]

 

Air Wolf:
--------
Infinite Lives = [CEFF06:EAEAEA]
Unlimited Fuel = [EE7117:EAEAEA]

 

Donkey Kong Jr:
--------------
Infinite Lives = [A5D689:XXEAEA]
Kill The Timer = [27C6A2:XXA901][C695A5:EAEAXX] (MUST use BOTH)

 

Mousetrap:
-----------
Infinite Lives = [C650D0:A901XX]
Kill The Timer = [C660D0:A901XX]
Short Title Screen Delay = [A915A2:XX02XX]

 

Pengo:
-----
Infinite Lives=$0056 [17D656:XXA901]

 

 

  • Like 5

Share this post


Link to post
Share on other sites

You are going to run out of games to cheat at the speed you are going :)

 

Great work..

Share this post


Link to post
Share on other sites
13 hours ago, Mclaneinc said:

You are going to run out of games to cheat at the speed you are going


I did these a while ago(with the exception of the request above) but have them written down, posting a few a day as I have to type them in. There's only about 120 or so so bare with me. I actually started out only wanting to do a handful of my favorites but one thing led to another and before I knew it my list kept growing.

 

Share this post


Link to post
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.

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