SO AFTER A LONGISH hiatus from 2600 coding I've begun to dive back in. This coincides with finishing the first new (to me) Zelda game I've played in about 4 years. Complete coincidence.
So, a few days ago I got some of the rust off by writing a buzzer program. I'll probably get back to that and add some sounds a tweak up the controls a little for Murph74, but last night I returned to Go Fish!
And boy has it been a while.
I spent about two hours last night trying to, essentially, hack a six-digit score into the darn thing. Why, you ask?
Well - to my surprise, and pleasure*, a few people are good enough at Go Fish! to max the score.
A little while later, that same person contacted me with a request: He really enjoyed the game, but wanted a further challenge. He wanted to know, was there any way to add another digit to the score (making the max 99,999) or to make the score roll back to zero after surpassing 9,999.
I responded, "Sure, but you'll have to wait until the new year" (this was in Nov/Dec last year) since I was in the middle of Christmas hustle and bustle as well as finishing up my part of Toyshop Trouble.
Now, making those changes to Go Fish! requires overcoming some technical problems:
1. The reason the score maxes in the first place is because the high scores are saved to the AVox; if the scores rolled that wouldn't work properly as the highest scores wouldn't necessarily occupy the top spot in the high score list. So the simplest solution, allowing the score to roll, would be less than optimal.
2. Obviously, all current 4-digit display routines would have to be rewritten to use 6-digit display routines. This includes the game-play screen and the title screen.
3. RAM. Is tight. A six-digit score would require an extra byte to store the score, plus an extra byte for each saved high score. Plus extra bytes for the extra pointers necessary for the six-digit display routine.
4. ROM. All these changes will likely require ROM, which is limited.
5. A bunch of routines will have to be updated to handle a six-digit score rather than a four-digit score.
My goal was/is the following: increase the score to six digits and decrease the high-score table to a single (six-digit) entry, which is saved to a different part of the EEPROM block assigned to Go Fish!.
I started doing this last night and...wasn't very successful. My coding style of two years ago was a little different (read: sloppier) than it is now, that plus the fact that it is two years old made it difficult to follow at times. Also, I quickly ran into ROM-space issues, which required a bunch of code/data rearranging/optimizing. All in all it was rather frustrating and I didn't really get anything to work right.
By the time I finished I was ready to give up and just remove the AVox EEPROM routines and make the score roll (i.e., the easy solution), but after talking it over with Rebecca a little I think I may give it another chance before giving up entirely. So we'll see. I really want to do this, but I don't want it to turn into a 40-hour, 3-month project that saps my will to live.
*Pleasure because I wasn't entirely sure how possible it was to max the score, so I'm glad to find out that it is possible to "beat" the game. Also pleasure for the more obvious reason: that someone liked the game enough to get that good at it.
P.S. Here is the binary, and screenshots, of the Atari Buzzer.