Jump to content
IGNORED

Pac-Line for the Intellivision


Recommended Posts

23 minutes ago, atari2600land said:

I don't know how though, as I swear I did it like I did before. Oh well. Here is the power dot blinking. I also attempted to add the score before the ghost pause.

 

pacline12a.rom 9.56 kB · 5 downloads


I’ll check it out tonight when I get home.


Cool!

 

    dZ.

Link to comment
Share on other sites

5 hours ago, atari2600land said:

I don't know how though, as I swear I did it like I did before. Oh well. Here is the power dot blinking. I also attempted to add the score before the ghost pause.

 

pacline12a.rom 9.56 kB · 10 downloads

 

The blinking energizer looks good. 👍

 

I do not see the score before the ghost pause ... 😕

 

4 hours ago, atari2600land said:

Can you give me the death sprites? I'm ready to add those in.

 

Here is what I have:

Death:
                ' Animation Tile: 7
                ' --------------------------------
                            ' ........ - %00000000
                Data  $0000 ' ........ - %00000000
                            ' ........ - %00000000
                Data  $0000 ' ........ - %00000000
                            ' ........ - %00000000
                Data  $0000 ' ........ - %00000000
                            ' #......# - %10000001
                Data  $8181 ' #......# - %10000001
                            ' ##....## - %11000011
                Data  $E7C3 ' ###..### - %11100111
                            ' ######## - %11111111
                Data  $FFFF ' ######## - %11111111
                            ' .######. - %01111110
                Data  $7E7E ' .######. - %01111110
                            ' ..####.. - %00111100
                Data  $183C ' ...##... - %00011000
                ' --------------------------------

                ' Animation Tile: 8
                ' --------------------------------
                            ' ........ - %00000000
                Data  $0000 ' ........ - %00000000
                            ' ........ - %00000000
                Data  $0000 ' ........ - %00000000
                            ' ........ - %00000000
                Data  $0000 ' ........ - %00000000
                            ' ........ - %00000000
                Data  $0000 ' ........ - %00000000
                            ' ...##... - %00011000
                Data  $3C18 ' ..####.. - %00111100
                            ' ######## - %11111111
                Data  $FFFF ' ######## - %11111111
                            ' .######. - %01111110
                Data  $7E7E ' .######. - %01111110
                            ' ..####.. - %00111100
                Data  $183C ' ...##... - %00011000
                ' --------------------------------

                ' Animation Tile: 9
                ' --------------------------------
                            ' ........ - %00000000
                Data  $0000 ' ........ - %00000000
                            ' ........ - %00000000
                Data  $0000 ' ........ - %00000000
                            ' ........ - %00000000
                Data  $0000 ' ........ - %00000000
                            ' ........ - %00000000
                Data  $0000 ' ........ - %00000000
                            ' ...##... - %00011000
                Data  $1818 ' ...##... - %00011000
                            ' ..####.. - %00111100
                Data  $7E3C ' .######. - %01111110
                            ' .######. - %01111110
                Data  $C37E ' ##....## - %11000011
                            ' ##....## - %11000011
                Data  $81C3 ' #......# - %10000001
                ' --------------------------------

                ' Animation Tile: 10
                ' --------------------------------
                            ' #......# - %10000001
                Data  $8181 ' #......# - %10000001
                            ' .#....#. - %01000010
                Data  $4242 ' .#....#. - %01000010
                            ' ..#..#.. - %00100100
                Data  $2424 ' ..#..#.. - %00100100
                            ' ........ - %00000000
                Data  $E700 ' ###..### - %11100111
                            ' ........ - %00000000
                Data  $2400 ' ..#..#.. - %00100100
                            ' ..#..#.. - %00100100
                Data  $4224 ' .#....#. - %01000010
                            ' .#....#. - %01000010
                Data  $8142 ' #......# - %10000001
                            ' #......# - %10000001
                Data  $0081 ' ........ - %00000000
                ' --------------------------------

 

 

Link to comment
Share on other sites

59 minutes ago, atari2600land said:

What do you mean by score? You mean to have a sprite look like the number 200 like in Pac-Man?

 

Sorry, I thought that is what you said you did.  You could do that to make it more like Pac-Man, but it is not really necessary unless you want to go for maximum Pac-Man look and feel.

 

What I would recommend is to at least hide the ghost right before pausing, so that he is not just stuck there while you eat him.

 

    -dZ.

 

 

Link to comment
Share on other sites

On 4/17/2024 at 5:18 PM, atari2600land said:

Today's update:

+ added a button mode. Now you can play the game with the buttons instead of the joystick.

+ fixed a bug where the power dot wasn't resetting if it was on and on screen and ate again.

 

pacline15a.rom 10.56 kB · 15 downloads

 

I finally got around to playing your latest version.  Here is my feedback:

  • The difficulty ramp seems strange:  It is very easy for quite a number of boards, but then it just seems to speed up considerably all at once.  Maybe the speed increase should be leveled more gradually.  Also, when the ghost speeds up, Pac-Man should also speed up -- at least up to a point (like in the original game).  Remember:  a faster Pac-Man does not necessarily mean an easier escape from the ghost -- it also means a harder to control Pac-Man, especially in such a limited horizontal space.
  • The death jingle seems off.  I think the sound may be too high pitch.
  • The death animation does not seem smooth enough.  This is probably my fault, the sequence I sent you included just the key frames, but I had not yet implemented death back then, so it was not fully realized.  I can work on that if you'd like.
  • In the original game, there is a pause for about 2 seconds from when Pac-Man touches the ghost and the death animation starts.  It seems to go like this:
    • 0 sec:  Sprites freeze
    • 1 sec:  Ghost disappears
    • 2 sec:  Death sequence starts
  • I am not very fond of having to press a keypad key to select disc or button at the title screen to start the game (it forces me to move my eyes to focus on the hand-controller, while pressing the disc or button feels intuitive and can be done without even looking).  If you want to support both schemes, I propose the following alternatives, in order of preference:
    • Accept both types of input automatically during game-play.  There is not much going on in the game (only a couple of sprites and no complex mechanics), so you should be able to decode both disc and button at the same time.
    • Select the disc as the default input scheme, but offer the option for the player to switch it in the title screen.
    • Use disc if the player pressed the disc to start, or button if they pressed the button.
  • When Pac-Man eats a ghost, he disappears (yay!), but his eyes are still visible (boo!).  I suggest disappearing him completely during the pause, and only show the eyes once they start moving.

And here is my latest score:

shot0028.gif.a1892e6c70f91a62823a7a7bc87def87.gif

 

     -dZ.

Link to comment
Share on other sites

1 hour ago, atari2600land said:

Yes, please work on the death animation. I thought it was strange because I thought there weren't enough frames.

 

Yeah, sorry about that.  I saw it in my sprite animation data, but I thought it was weird because I don't recall ever getting that far (the ROM I posted before, with the Pac-Man sprite running around and eating dots was all I did back then).

 

I'll work on it.

 

1 hour ago, atari2600land said:

I'll work some more on the stuff you mentioned.

 

Cool! 👍

Link to comment
Share on other sites

9 minutes ago, Sinjinhawke said:

Score 72530 using an older version of OpenEmu 2 (uses Bliss 2.1.2 core).  Strangely enough this played smoother on my 2010 i3 Mac using Bliss than it did with JZintv. 

Addictive game for something so simple in concept.

 

Wow!  That's an impressive score.  I agree, it is a very addictive game, in spite of its simplicity.  It reminds me of "Up Monster" -- another super-simple but addictive game by @atari2600land.

 

     -dZ.

  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...
17 hours ago, atari2600land said:

Made a few changes:

  • added complete death animation
  • changed the death jingle so it's a little bit higher in pitch.

 

pacline18.rom 11.06 kB · 6 downloads

 

Cool!

 

Here is my feedback:

  • Pac-Man starts a bit too fast for the ghost, so it makes the first few levels just too easy ... Perhaps he should start a little slower (just a tad), and build itself up to his maximum speed, just like the original game.
  • The "ghost eating" sequence seems wrong
    1. The game freezes (good), but leaves the ghost visible (bad)
    2. The ghost disappears (good), but the freeze continues (bad)
  • In reality, it should be only #2:  The ghost disappears immediately upon collision, and the game freezes before the eyes go to the pen.  (The freezing time in #2 seems about right.)
  • The death routine looks good (😉) but it starts too quickly upon death.  I think there should be a pause right upon collision, with the game frozen (similar to when Pac-Man eats the ghost above in #2) before starting the death animation.
  • The "pause" in the animation between when the Pac-Man shrivels into nothing, and the "pop" (or star) frame, is too short.  Perhaps the blank frame should be repeated a couple more times for dramatic effect.  This will also allow the animation to end in the "pop" graphic in time with the "blip! blip!" at the end of the tune.
  • I still feel that the difficulty ramp is too sharp mid-way through the game.  It's like it goes slow and steadily upwards, and them, BOOM!, it's super fast in one single screen change.  Maybe you should check how your ghost speed increments are handled.

 

Other than that, it looks good!

 

     -dZ.

 

P.S.  I played with my 8 year old granddaughter and she says it was a lot of fun. 👍

 

She made two suggestions:

  • Maybe it should have the fruit to add extra points, just like regular Pac-Man. (DZ: I concur!)
  • Maybe it should have two ghost to make it even harder! (DZ: Please don't! 😱)

 

Here are our high score for today:

 

MINE:

shot0034.gif.34063ad2987c2a73745a1f11356afb34.gif

 

HERS:

shot0032.gif.d8a018fcab0422dae63778f42278d533.gif

Link to comment
Share on other sites

1 hour ago, atari2600land said:

I can't do anything about the ghost speeding up. I tried to slow down/speed up Pac-Man as well and got the same result.

 

No worries.  It still works well.

 

1 hour ago, atari2600land said:

But I did work on the ghost eating and death sequence stuff.

 

Looks good! 👍

 

1 hour ago, atari2600land said:

And I fixed the game screen.

 

Hmm ... I sort of liked the little "embossed" lines from before.  I just thought it was missing from the "Line" part.  It's up to you, though.

 

     -dZ.

Link to comment
Share on other sites

One other thing I wanted to point out was regarding the collision detection.  I noticed that in at least one instance, my Pac-Man died when it barely touched the ghost.  I suppose you are using either hardware collision or checking the position of the sprite objects themselves.  In the original Pac-Man, they use a tile-based collision system, in which the grid is divided into tiles, and the position of a sprite is determined based on its center point.  A collision was registered if the computed "center tile" for Pac-Man and a ghost matched.

 

(A thorough, yet non-technical, explanation of how this works can be found in The Pac-Man Dossier.)

 

Of course, this is not strictly necessary for your game, but it would be really cool for Maximum Pac-Man Retro Accuracy. ;)

 

It shouldn't be too hard -- in fact, this collision system was chosen because it is stupidly simple.  Here are a few things to consider:

  • Tiles in the original Pac-Man are 8x8 pixels and sprites are 16x16 pixels.  That means that tiles are 1/2 the size of a sprite.  For the Intellivision, we can make tiles 4x4 to go with 8x8 sprites.  (That's how I do it in Christmas Carol, er, my port of Pac-Man).
  • In Pac-Man, tiles are centered on the path, like this:

image.png.9f59c0beb35c6ef942ffdd8e07476be9.png

  • On the Intellivision, it would look something like this:

image.png.477f2797ad0b3310c296aa5dcbe08c01.png

  • On the Intellivision, if the background cards are 8x8 pixels, but the "virtual tiles" are 4x4 and centered on a background card, that means that the virtual tiles are offset from a card by 2 pixels from the origin, like this:

image.png.87ac9306733cf8b1e5d8ed6fd3e995b6.png

  • Therefore, the position of a "virtual tile" is the pixel position of a background card plus two pixels:
    • vtileX = ( column * 8 ) + 2
    • vtileY = ( row * 8 ) + 2
  • The center of an Intellivision sprite is 4 pixels offset from its origin, like this:

image.png.75f5011a6ea9b6cbcd4ec60a8a3d25da.png

  • Therefore, we can compute the center of a sprite like this:
    • centerX = posX + 4
    • centerY = posY + 4

To check collisions on tiles, you can do something like this:

Const VTILE_OFFSET_X = 2
Const VTILE_OFFSET_Y = 2

Const SPRITE_OFFSET_X = 4
Const SPRITE_OFFSET_Y = 4

' Compute Pac-Man's virtual tile position
pacmanTileX = (pacmanPosX + VTILE_OFFSET_X + SPRITE_OFFSET_X) / 4
pacmanTileY = (pacmanPosY + VTILE_OFFSET_Y + SPRITE_OFFSET_Y) / 4

' Compute Ghost's virtual tile position
ghostTileX = (ghostPosX + VTILE_OFFSET_X + SPRITE_OFFSET_X) / 4
ghostTileY = (ghostPosY + VTILE_OFFSET_Y + SPRITE_OFFSET_Y) / 4

' Check collision
If (pacmanTileX = ghostTileX) And (pacmanTileY = ghostTileY) Then
  ' Collision!!!
End If

 

In fact, that is an IntyBASIC translation of the code* I use in Christmas Carol. :)

 

(*The only difference is that I chose to treat the virtual tile offset as x=+3, y=+4; rather than x=+4, y=+4; for reasons.)

 

     -dZ.

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