Jump to content
IGNORED

Unlimited Asteroids


benbrad

Recommended Posts

I used to program in BASIC and I know a little machine language. Is there a tutorial available for editing these 2600 games so that the lives counter isn't decremented etc.? I would like to edit the original Pac-Man and MS Pac-Man for unlimited lives. My grand kids play these games and they don't get very far. They don't want to be invincible, just not run out of lives so they can see higher levels etc. Thanks for your help.

Edited by benbrad
Link to comment
Share on other sites

I used to program in BASIC and I know a little machine language. Is there a tutorial available for editing these 2600 games so that the lives counter isn't decremented etc.? I would like to edit the original Pac-Man and MS Pac-Man for unlimited lives. My grand kids play these games and they don't get very far. They don't want to be invincible, just not run out of lives so they can see higher levels etc. Thanks for your help.

There's heaps of material listed at http://www.atariage.com/2600/programming/index.html . I only discovered this a couple of weeks ago myself. I would also recommend looking at some of the dissembled Atari games at http://www.qotile.net/minidig/ .

 

If you use the debugger on PCAEWIN you might be able to see which variable gets decremented when a life is lost. Then look for instructions that change that variable in the code, change to NOPs (No operation) or whatever as needed and re-assemble. Then hope for the best, some games have just one instruction to take away a life, others are more complex.

Link to comment
Share on other sites

Games that awards lives at a mimimal score or score intervals are usually pretty easy to discover the specific counter...just search the disassembled instructions for SED. Decimal mode is in most cases the most efficient way of handling multiple-digit scoring (hence, it's the most common type of addition used to keep track of a score)...so just follow the routine down until a branch takes place.

 

As far as the 2 Pac-games mentioned are concerned...one already exists (called "Boring Pac-Man"), and the other is easily created looking at Dennis Debro's reverse-engineered source for Ms.Pac-Man (the low 2 bits of ram $FB hold the number of reserve lives...decremented in the 2nd bank at $F08F-90). Just change the $FB value at $F090 to an unused value like $2E, or NOP over both addresses as mentioned with value $EA.

Link to comment
Share on other sites

Games that awards lives at a mimimal score or score intervals are usually pretty easy to discover the specific counter...just search the disassembled instructions for SED. Decimal mode is in most cases the most efficient way of handling multiple-digit scoring (hence, it's the most common type of addition used to keep track of a score)...so just follow the routine down until a branch takes place.

 

As far as the 2 Pac-games mentioned are concerned...one already exists (called "Boring Pac-Man"), and the other is easily created looking at Dennis Debro's reverse-engineered source for Ms.Pac-Man (the low 2 bits of ram $FB hold the number of reserve lives...decremented in the 2nd bank at $F08F-90). Just change the $FB value at $F090 to an unused value like $2E, or NOP over both addresses as mentioned with value $EA.

 

I just did the exercise myself for Ms Pac Man - good stuff to try yourself benbrad to learn about how the 2600 was programmed. FBh can be seen decrementing quite clearly in the debugger, looking at a quick dissassembly I can find DEC FB at 208Fh, I used a hex editor to change 208Fh and 2090h (I see I need to read up about bank switching) to 'NOP' (FAh), and came up with the attached which seems to work nicely.

 

May I ask where I can find the dissassembled Ms Pac Man?

 

Cheers, Rev John

 

[EDIT: PS My first Atari hack! :) Yay!]

MSPACMAN.BIN

Edited by Rev John
Link to comment
Share on other sites

May I ask where I can find the dissassembled Ms Pac Man?

 

He posted it back in 2006 to Stella (he called it a WIP, but IMO it looks fairly complete). The message is archived here.

 

NOTE: the download link may show up as a .bin file...it's actually a zip. Rename the extension to open if necessary.

Link to comment
Share on other sites

May I ask where I can find the dissassembled Ms Pac Man?

 

He posted it back in 2006 to Stella (he called it a WIP, but IMO it looks fairly complete). The message is archived here.

 

NOTE: the download link may show up as a .bin file...it's actually a zip. Rename the extension to open if necessary.

Thanks Nukey Shay, that's excellent!

 

benbrad - check out the dissassembled code - you can change all the graphics if you want, see how the lives get counted, or have a go at messing around with whatever aspect of the game you like. It's cool. It's the tutorial! :)

Link to comment
Share on other sites

FYI ram addresses unused by the game are $97 & $A8. You can use those straight away for anything you want. $96 is only used once as a loop counter...and with a little rearranging/sharing of temp variables, you can pick up a couple other bytes that the stack would require. You could probably dig up a lot more if you edit how some things are handled. For example, the side dots only use 2 bits in ram devoted to them (heck, you could eliminate PF0 altogether to pick up 14 bytes of ram by editing the maze and movement rules)...or merge the temp variables more efficiently. Dennis comments about program redundancy in a few areas.

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