Jump to content
IGNORED

Ghost Trap (Mouse Trap hack).


snorlaxnut

Recommended Posts

Here's a new graphics hack I made today:

 

Ghost Trap: a hack of Mouse Trap.

 

Instead of the player being a mouse being chased by a bunch of cats, the player is now the ghost from Pac-Man beeing chased by a bunch of Pac-Men! And instead of changing into a dog, the ghost turns brown with a different look. I changed the little "x" thing under the score to look like a power pellet, but I don't know how to change the big X's in the maze.

 

Anyway, here's what I did so far. Enjoy!

post-861-1108519436_thumb.jpg

post-861-1108519437_thumb.jpg

ghost_trap.zip

Link to comment
Share on other sites

  • 2 years later...
  • 3 weeks later...

Not unless some serious savings can be done. The cats use 2 gfx tables, each roughly 100 bytes long containing 4 bitmaps (flipping between them gives you the animation). So the current way the kernal is set up, you'd need at least another 100-byte gfx table to change this into 3 unique enemies. A bigger problem is that the program doesn't need to keep track of different shapes, it just pulls the current enemy direction and grabs a pointer based on that. They are all using the same bitmaps.

 

Here's a disassembly I started a while ago. It's got a quarter page of freespace for hacking, and I evened up the scanline count (the original is @263...this is @258) if more cycle time is needed. I was trying to add the hawk (the only thing that it's really missing) :(

Mousetrap_hack_.zip

Edited by Nukey Shay
Link to comment
Share on other sites

...and here's an 8k version that seperates the program from the kernal. That solves the space issue.

 

Incidentally, multiple doors could be added very easily. The current playfield flicker alternates between no doors/doors every frame (with a bit in ram dictating which of the "doors" screen to use). The "no doors" frame could also decide between 2 screens the same way...providing 3 colors for them (one color for each of the frames, and an additional "merged" color that's also used for the maze).

If 3 bits were used, the screen could use 15hz flicker instead for the doors...and have each color door operate independantly.

 

The single fire button is the problem, but that could be solved (somewhat) by using the second joystick directions for buttons instead.

Mouse8k.zip

Link to comment
Share on other sites

Table LF69B holds all the sound effects

$F69B to $F6AF = music

$F6B0 to $F6BA = flip doors

$F6BB to $F6BF = pick up cheese

$F6C0 to $F6CB = pick up bone

$F6CC to $F6DA = cat meow

$F6DB to $F6F0 = dog bark

 

The first value in each table is the distortion (AUDC0) used for the sound effect. The rest are pitch values (AUDF0), merged with duration to hold the note (upper 3 bits). When a zero value is read, it kills the sound effect.

To make them shorter, just have the zero value hit sooner.

The sound effects can be made longer by adjusting the value of X that is loaded before the JSR $F9BB (this is the subroutine that saves the initial distortion value to AUDC0). All subsequent non-zero values are split...the lower 5** bits going to AUDF0, and the upper 4** bits LSR'ed (value=value/16) and stored to a duration counter in ram ($F7). The table offset (the value of X) is bumped up and saved to a seperate counter for next time ($F6).

 

** bit 4 is shared, as it makes little difference between 1 and 2 frames of duration.

Link to comment
Share on other sites

  • 3 months later...
  • 2 months later...

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