Pitfall 2 Hack
On this page you will learn about my Commodore 64 background, how to use the MON (monitor) that came packaged with the Final Cartridge III, and how to hack Pitfall II:The Lost Caverns by modifying assembly language instructions
Here is a video of a user playing Pitfall 2 on the Commodore 64. The many screens and musical fanfares that made up this game were made possible by a special chip embedded into the cartridge.
This one shows a user playing it on the Atari 2600. The Atari 2600 was a console cartridge invented by Nolan Busnell in the early 70’s. He is known as the pioneer of the gaming industry and launched the video game craze. This game started with the original Pitfall and later expanded into Pitfall II: The Lost Caverns. I used to play this things for hours. It also has a nice sound track.
Back in 1991, I had purchased my first Commodore 64 system for about $400. At the time this single purchase cost me over a week’s worth of pay. My ultimate goal was to master both Basic and Assembly language just like I was doing on my Atari 800 personal computer on various weekends.
At first my journey had led me to writing simple Basic games mixed with Assembly language. However there was still a desire within me to push my limits with the 6510 processor that handled the lightning fast instructions in assembly language. So I began developing a few simple assembly routines in Basic that used the SYS command as practice.
At the same time however I was curious about how commercial games worked. My friends were all playing the Commodore 64 games and having a blast. So was I. Yet the difference here is I wanted to learn where stuff was concealed like the lives counter, sprite collision, and other things.
This eventually led me to my first game hack. It was a game called Mission Elevator. This game had often frustrated me because of the gameplay, which resulted in dying a lot. However I knew if I could break inside the code then I could search for the life counter. This little adventure did not happen overnight.
Final Cartridge III
So in my conquest to hack into this game, I needed a tool that had a built in assembly language monitor. One day I was reviewing a magazine I bought that advertised a catalog within. It was there that I first saw the Final Cartridge III. My eyes kept getting bigger as I read about all the options contained in this amazing cartridge. Below is a screenshot of my cartridge.
Using a joystick I navigated to the Exit menu and selected the text called Monitor. Clicking the joystick then transferred the system back into Basic with a soft reset, keeping the assembly language program intact.
So I ordered it and it arrived in about a week. The advantage here was having access to the built in monitor and the ability to perform a soft reset on a game.
The monitor served as an entry point so I could disassemble the game code. There is also a built in command known as hunt. The hunt command allows searching through memory addresses.
This came in handy later when I finally gave myself infinite lives for Mission Elevator.
Here are some screenshots of that game.
Once you are inside the monitor, it is necessary to understand how to use it. Before I speak about that there is one important thing you must know, which is how to program in Assembly Language. This website is not setup to teach a user how to do that, so my recommendation is to take advantage of Google’s massive search queries where I am confident you will find great teaching guides. Now I do have my own google website that teaches basic assembly instructions, but it was programmed for the Atari 800.
This example is setup to disassemble the game Pitfall II as my latest attempt. I was never successful at dissecting David Crane’s masterpiece until recently. However please do understand this is a work in progress and not everything is immediately known yet. So the example will work through what I learned about it so far.
First type the word MON. That will instantly take you to the assembly language editor. To see the listing for Pitfall II just type D 8009 8033 as an example. This will examine the memory at the address 32777 through 32819 (hexadecimal:8009 to 8033), which is the starting address where the Pitfall II code begins. The screenshot verifies this.