Jump to content
IGNORED

8k Atari Pac-Man


Nukey Shay

Recommended Posts

Problems:

Out of time in the program area...there are some jitters when both the fruit and energizer are active at the same time. Need to clean up the program area a bit (there's a LOT of JSR's being used, using redundant routines will probably correct this - I've got plenty of space to burn).

I removed player hardware collisions in order to get the fruit sprite to work (i.e. so that the ghosts cannot kill you by touching the fruit), but now you may be killed if you go through the tunnel when ghosts are in the horizontal center. This still needs a solution.

Link to comment
Share on other sites

but part of me want to keep the maze unchanged (so that it is clearly a hack of Atari's game).

 

The way I see it Nukey Shay, this is more than a hack, but a correction.

The Ms. Pac-man to Pac-man conversion thing was a hack. You're doing

so much more. I vote that you push for accuracy rather than clinging on to

Atari's mistakes in reproducing what the label clearly describes itself as

"Pac-Man" At least. it does on my cartridges.

Link to comment
Share on other sites

Nope...it's not a correction, but an expansion...since I still have no idea what Tod's original Pac-Man concept was (does anyone?). Besides, changing the maze would involve almost completely rewriting the game engine, and that's pretty much out of my league. The original kernal is still there, I'm just throwing things on top of it to see how far it could have gone. Interesting to note that some things were already done right (like the independant sprite colors, which have always been there), but not even noticed back in the day.

 

Besides, I'd already been there :)

Link to comment
Share on other sites

Yes...I never added them before because it wasn't keeping track of level #'s. The program jumps to bank1 to draw the display. By performing a simple test first (like checking for a bit that has been flagged), this can be bypassed to run an alternate display in bank2 instead. When an intermission finishes, it would just reset any pointers used in the intermission to what they would have been following bank1's routines, and then jump right where bank1 returns. Similarly, a title display can be added by making a custom display right where cart initialization occurs (near the START vector address...just following ram clear).

 

I removed a few subroutines here and changed them to standard routines...which gathered enough cycle time to correct those jitters. The program is still pretty messy (with subroutines constantly being imbedded and return vectors being PLA'ed off), so it takes a while to weed through them.

 

I still need to correct the tunnel problem. Right now, it's sort of like Asteroids' hyperspace...with a fair chance of being killed when ghosts are near the horizontal center :P

pacman8k.zip

Link to comment
Share on other sites

Adding intermissions:

 

To save cycle time, I just checked if the current maze is a multiple of 4 (so the 3 intermissions appear following the 2 oranges, Galaxians, and bells). They still need a bit of editing (like 3 ghosts in the first one and the misplaced nail in the second). There's also a slight hiccup once the intermission finishes that needs correcting :P

pacman8k.zip

Link to comment
Share on other sites

2nd intermission corrected.

 

Killed the dot sound following intermissions.

 

Added an animated title screen.

 

I also changed the players in reserve to be little pacmen. They don't change sides when the players switch, so to keep things clear, I used the score color of the corresponding player for each.

 

Bluetimes have been altered to be closer to the arcade values (besides keys, which end with #4 giving no bluetime instead of #5). Something else that I discovered that Tod did right was that this game allows for differing flash times (higher levels on the arcade have quicker changeback following the regular bluetime). The timing is still a bit off tho.

 

Dumped the SECAM palette (does anyone even use this??) in favor of better PAL colors :)

pacman8k.zip

Link to comment
Share on other sites

Overlooked bug corrected:

When player 2 scored an extra player at 10k, this was being shown added to player 1's reserves (although player 2 would still be able to use it). This has been fixed.

 

BTW I forgot to mention a couple of builds ago that player 2's reserves are right-justified now :)

 

 

Anyone playing this on hardware? Any jitters/rolls?

pacman8k.zip

Link to comment
Share on other sites

Bleh...it's a good thing I'm not Bob :P

 

Updated the game kernal to allow 6-digit scoring (Atari's Pac-Man uses only 5). While this eliminated the empty sprites used for spaces, it allows the game to keep track of higher scoring. I also added "8k" to the logo :)

Game selections might look a bit strange tho (Game 1 appears as 000001).

 

Also, doing so wrecked havok with the "player-up" variables used to swap colors (they occupied the same ram locations as the score digit pointers). So I just kept player1 on top and player 2 on bottom at all times.

 

To indicate which player is up, at first I did a flashing score. This appeared to be more seizure-inducing than the sprites...so instead, I animated the reserve lives of the player that is up.

pacman8k.zip

Link to comment
Share on other sites

BTW there were placeholders of that 6th digit in the original game's score display loop. Since the last digit in the arcade game is always zero...and the last digit in Atari's game was used for game selections...something tells me that it was intended to have 6 digits, but was just unfinished ;)

I just had to change the setup routine a bit, and alter this:

 

LD459: LDY    Temp                   ;3

      LDA    #$00                   ;2

      STA    GRP0                   ;3 ??

      STA    GRP0                   ;3 ??

 

 

 

...to this:

LD459: LDY    Temp                   ;3

      LDA    (DigitPointers+8),Y    ;5 (6th digit/100k)

      STA    GRP0                   ;3

 

Cycle count stayed unchanged :)

Link to comment
Share on other sites

Tunnel problem corrected (I think)

When moving through the tunnel, I figured out that the object direction would have bit 5 set. So just by checking the status of that bit in both the player and the ghost, the program can decide when to skip over the collision routine entirely. This should make it impossible to die inside the tunnel.

pacman8k.zip

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