Jump to content
IGNORED

Pac-Line for the Intellivision


Recommended Posts

Hi. I'm currently working on a version of Pac-Line for the Intellivision. Here is what I have so far:

  • Pac-man and ghost.
  • You can eat the ghost if you get the power pellet.
  • You can die if the ghost touches you.

 

Stuff I need to work on:

  • scoring issues
  • more sound effects
  • other stuff I forgot.

 

Thoughts?

 

pacline2.rom

  • Like 8
Link to comment
Share on other sites

I played Pac-Man to see what I could do. I decided to only have the siren on if the ghost is blue and can be eaten because it would probably be annoying all the time in a game like this. I also did a couple of other things. I didn't realize the ghosts actually have eyes in the arcade version, so I'll add in some ghost eyes. ROM will be released later today.

 

  • Thanks 1
Link to comment
Share on other sites

41 minutes ago, atari2600land said:

I played Pac-Man to see what I could do. I decided to only have the siren on if the ghost is blue and can be eaten because it would probably be annoying all the time in a game like this. I also did a couple of other things. I didn't realize the ghosts actually have eyes in the arcade version, so I'll add in some ghost eyes. ROM will be released later today.

 

I look forward to playing it later today. I will also show it off and post a link to here on my YouTube show Monday. 

Link to comment
Share on other sites

2 hours ago, atari2600land said:

I played Pac-Man to see what I could do. I decided to only have the siren on if the ghost is blue and can be eaten because it would probably be annoying all the time in a game like this. I also did a couple of other things. I didn't realize the ghosts actually have eyes in the arcade version, so I'll add in some ghost eyes. ROM will be released later today.

 


Want to know how Pac-Man works?  All your questions will be answered here:

 

https://pacman.holenet.info

 

The Pac-Man Dossier is the definitive guide on the the inner workings of the game.   Everything is there — logic, quirks, bugs, etc. — but more importantly, it is explained in an easy to follow manner, rather than in purely technical terms.

 

Fun Fact:  I used the Pac-Man Dossier as my specification when I was writing a version of Pac-Man for the Intellivision over ten years ago.  Most of that code (and certainly all the gained insight) made its way later into Christmas Carol.

 

    dZ.

 

  • Like 1
Link to comment
Share on other sites

I just played it for a few rounds and it looks pretty cool.  Good job! 👍

 

I do not know if this is based on an existing game called "Pac-Line."  I suppose it is, and if so, I have never seen it.  So the below feedback is based on my impressions as compared to the original Pac-Man.

 

Here are a couple of suggestions (of course!):

  • The siren should play all the time, but its pitch is much too high right now.  In the original game, it is merely a background sound, so you can lower its volume to something like 8 or 10, and lower the pitch.  The pitch gets increased as the level progresses, depending on the number of dots eaten and the state of the ghosts.  Also, it is a single tone, not a chord.
  • When you eat the power-pellet, the sound should change from the siren to a different one.
  • The Pac-Man animation is too slow.  The animation should complete a cycle in the time that it takes Pac-Man to move from one dot to the next (4 pixels?).
  • The dots may be too big.  You should be able to fit at least 2 dots per card.  Testing for collisions is as simple as:
    • First, getting the card under Pac-Man (posx / 8 )
    • Then, getting the offset within that card where Pac-Man is (posx % 8 )
    • There are only 8 pixels across in a card, so you can build a "collision table" of 8 entries that tells you over which "dot" Pac-Man is.
  • You can create GRAM pictures for all the combinations of 2 dots per card, which in your "line" case would be only four, and use that to compare against the Pac-Man position as described above.
    • 00 - all dots eaten
    • 01 - left dot eaten
    • 10 - right dot eaten
    • 11 - no dots eaten
  • The Pac-Man mouth in its animation does not seem to open all the way.  Below is the animation sequence graphics I created for my version several years ago.  Feel free to use it (and add the eye, if you wish).

Pac-Man Animation Sequence.  When facing left, just flip the sprite horizontally.

Spoiler
@@Horiz
:0       :1       :2       :3       :4       :5       :6       :7      
...##... ...##... ...##... ...##... ...##... ...##... ...##... ...##...
..####.. ..####.. ..####.. ..####.. ..####.. ..####.. ..####.. ..####..
.######. .######. ..#####. ..#####. .######. .######. .######. .######.
.######. .######. ...####. ...####. .######. .######. .######. .######.
######## ..###### ...##### ...##### ..###### ######## ######## ########
######## ...##### ....#### ....#### ...##### ######## ######## ########
..###### ....#### .....### .....### ....#### ..###### ######## ########
.....### .....### .....### .....### .....### .....### ######## ########
.....### .....### .....### .....### .....### .....### ######## ########
..###### ....#### .....### .....### ....#### ..###### ######## ########
######## ...##### ....#### ....#### ...##### ######## ######## ########
######## ..###### ...##### ...##### ..###### ######## ######## ########
.######. .######. ...####. ...####. .######. .######. .######. .######.
.######. .######. ..#####. ..#####. .######. .######. .######. .######.
..####.. ..####.. ..####.. ..####.. ..####.. ..####.. ..####.. ..####..
...##... ...##... ...##... ...##... ...##... ...##... ...##... ...##...

 

 

Here it is compiled into data, in IntyBASIC friendly format:

Spoiler
Horiz:
                ' Animation Tile: 1
                ' --------------------------------
                            ' ...##... - %00011000
                Data  $3C18 ' ..####.. - %00111100
                            ' .######. - %01111110
                Data  $7E7E ' .######. - %01111110
                            ' ######## - %11111111
                Data  $FFFF ' ######## - %11111111
                            ' ..###### - %00111111
                Data  $073F ' .....### - %00000111
                            ' .....### - %00000111
                Data  $3F07 ' ..###### - %00111111
                            ' ######## - %11111111
                Data  $FFFF ' ######## - %11111111
                            ' .######. - %01111110
                Data  $7E7E ' .######. - %01111110
                            ' ..####.. - %00111100
                Data  $183C ' ...##... - %00011000
                ' --------------------------------

                ' Animation Tile: 2
                ' --------------------------------
                            ' ...##... - %00011000
                Data  $3C18 ' ..####.. - %00111100
                            ' .######. - %01111110
                Data  $7E7E ' .######. - %01111110
                            ' ..###### - %00111111
                Data  $1F3F ' ...##### - %00011111
                            ' ....#### - %00001111
                Data  $070F ' .....### - %00000111
                            ' .....### - %00000111
                Data  $0F07 ' ....#### - %00001111
                            ' ...##### - %00011111
                Data  $3F1F ' ..###### - %00111111
                            ' .######. - %01111110
                Data  $7E7E ' .######. - %01111110
                            ' ..####.. - %00111100
                Data  $183C ' ...##... - %00011000
                ' --------------------------------

                ' Animation Tile: 3
                ' --------------------------------
                            ' ...##... - %00011000
                Data  $3C18 ' ..####.. - %00111100
                            ' ..#####. - %00111110
                Data  $1E3E ' ...####. - %00011110
                            ' ...##### - %00011111
                Data  $0F1F ' ....#### - %00001111
                            ' .....### - %00000111
                Data  $0707 ' .....### - %00000111
                            ' .....### - %00000111
                Data  $0707 ' .....### - %00000111
                            ' ....#### - %00001111
                Data  $1F0F ' ...##### - %00011111
                            ' ...####. - %00011110
                Data  $3E1E ' ..#####. - %00111110
                            ' ..####.. - %00111100
                Data  $183C ' ...##... - %00011000
                ' --------------------------------

                ' Animation Tile: 3
                ' --------------------------------
                            ' ...##... - %00011000
                Data  $3C18 ' ..####.. - %00111100
                            ' ..#####. - %00111110
                Data  $1E3E ' ...####. - %00011110
                            ' ...##### - %00011111
                Data  $0F1F ' ....#### - %00001111
                            ' .....### - %00000111
                Data  $0707 ' .....### - %00000111
                            ' .....### - %00000111
                Data  $0707 ' .....### - %00000111
                            ' ....#### - %00001111
                Data  $1F0F ' ...##### - %00011111
                            ' ...####. - %00011110
                Data  $3E1E ' ..#####. - %00111110
                            ' ..####.. - %00111100
                Data  $183C ' ...##... - %00011000
                ' --------------------------------

                ' Animation Tile: 2
                ' --------------------------------
                            ' ...##... - %00011000
                Data  $3C18 ' ..####.. - %00111100
                            ' .######. - %01111110
                Data  $7E7E ' .######. - %01111110
                            ' ..###### - %00111111
                Data  $1F3F ' ...##### - %00011111
                            ' ....#### - %00001111
                Data  $070F ' .....### - %00000111
                            ' .....### - %00000111
                Data  $0F07 ' ....#### - %00001111
                            ' ...##### - %00011111
                Data  $3F1F ' ..###### - %00111111
                            ' .######. - %01111110
                Data  $7E7E ' .######. - %01111110
                            ' ..####.. - %00111100
                Data  $183C ' ...##... - %00011000
                ' --------------------------------

                ' Animation Tile: 1
                ' --------------------------------
                            ' ...##... - %00011000
                Data  $3C18 ' ..####.. - %00111100
                            ' .######. - %01111110
                Data  $7E7E ' .######. - %01111110
                            ' ######## - %11111111
                Data  $FFFF ' ######## - %11111111
                            ' ..###### - %00111111
                Data  $073F ' .....### - %00000111
                            ' .....### - %00000111
                Data  $3F07 ' ..###### - %00111111
                            ' ######## - %11111111
                Data  $FFFF ' ######## - %11111111
                            ' .######. - %01111110
                Data  $7E7E ' .######. - %01111110
                            ' ..####.. - %00111100
                Data  $183C ' ...##... - %00011000
                ' --------------------------------

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

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

 


That animation sequence was designed to run at fractional speeds in my version.  The default animation speed was 95% of 60 Hz, but I suppose once per frame would work for your game just as well.

 

I also have the death animation.  If you want it, just ask.

 

   -dZ.

 

P.S. Attached is a copy of the test ROM I created back then.  You can move Pac-Man through the screen, eat dots and power-pellets, but the ghosts are stuck in their cage (no AI logic yet).  The timestamp on the binary shows a date of March 27, 2011 -- so over 14 years ago!  How time flies ...

  • Like 2
Link to comment
Share on other sites

9 hours ago, fdr4prez said:

 

Oh, I see.  That game is not even trying to be Pac-Man.  :roll:  Oh well.

 

I think there is an opportunity to make a good Pac-Man clone as a single line game, especially since you only have to focus your sprites, graphics, and other assets on such a limited range.

 

Then again, it is @atari2600land's project, so he will do what he thinks best.

 

      -dZ.

Link to comment
Share on other sites

29 minutes ago, atari2600land said:

I added some more stuff.

  • changed siren noise
  • changed Pac-man sprite
  • added opening song.

pacline6.rom 9.06 kB · 1 download

 

I just played a hand (or five) -- it is looking (and sounding) really good!

 

A few comments on the new version:

  • The opening jingle is very good!  I would point out, though, that it seems to me that the last note on each bar lingers for a bit too long, and the last note ramp at the very end seem to blend together (in the original, they have a sharp staccato decay).  Everything else is spot on in that tune. (Love it!)
  • The siren sounds good.
  • Although the siren can be tuned out as background noise, the "tick" sound as Pac-Man eats a dot is rather sharp and could get a bit annoying after a while.  Honestly, I do not have any specific suggestion on how to make it better.  Perhaps a bit of experimentation is warranted.  As for the original "waka-waka" sound, as I remember when I tried synthesizing it in the past, it is a rather sharp pitch ramp, up and down, through various octaves in a particular key.  It may be worth playing around with that a bit.
  • The Pac-Man animation looks a lot better and smoother! 👍

And a few bugs or potential issues I noticed:

  • The Ghost gets stuck on the edged of the screen instead of going through the tunnel.  Although I'm not sure if this is behaviour from Paku-Paku that you are trying to reproduce.  Still, it is sort of weird.
  • If I eat the energizer when the Ghost is close to the edge of the screen, he will just stop in place, even though his eyes show that he "flipped" directions and is facing inwards to the screen.  (I believe this may be related to the first point.)
  • The Ghost should switch directions whenever Pac-Man eats an energizer -- irrespective of whether he was already in "blue" mode.  At least that's the behaviour in the original Pac-Man game.
  • The Ghost seems a bit too slow.  I do not know if he goes faster at higher levels, but I think that starting with a bit more speed may be prudent.
  • In the original Pac-Man, he stops (animating and moving) for a single frame whenever he eats a dot.  That way, when he is eating a lot of dots in a row, you can see a slight "stutter" in his motion forward.  This sort of slows Pac-Man down a little bit, and allows the Ghosts to catch up to him.  It also gives Pac-Man his characteristic "rhythm" of movement.

All in all, a nice little game.  I'm enjoying it quite a lot.  Like I mentioned before, it may be worth breaking out of the Paku-Paku mold and make a "line-oriented" version that follows as close to the original look and feel as possible.

 

Keep it up.  I'm looking forward to seeing where this game goes.

 

     -dZ.

Link to comment
Share on other sites

I got the opening notes from a MIDI from vgmusic.com.

The ghost getting stuck is from Paku Paku. It was designed to give Pac-Man an edge over the ghosts. The ghosts cannot travel through the tunnel, though Pac-Man can.

The ghost speeds up each time you eat him, up to when you eat five ghosts, that's his max speed.

 

Link to comment
Share on other sites

18 minutes ago, atari2600land said:

I got the opening notes from a MIDI from vgmusic.com.

 

Nice.  Thanks.

 

18 minutes ago, atari2600land said:

The ghost getting stuck is from Paku Paku. It was designed to give Pac-Man an edge over the ghosts. The ghosts cannot travel through the tunnel, though Pac-Man can.

The ghost speeds up each time you eat him, up to when you eat five ghosts, that's his max speed.

 

 

Got it!  👍

 

    -dZ.

Link to comment
Share on other sites

12 minutes ago, atari2600land said:

Waka-waka-waka attempt #1.

 

pacline7.rom 9.06 kB · 1 download

 

Neat-o!!! I like it.  I think it needs a bit of refinement, although honestly I can't really tell at the moment what would make it better.  I do know that it sounds close ... but not quite right.  Maybe a slightly higher pitch?  Maybe a slightly faster ramp?

 

Also, it seems to play "too slow," by which I mean that it does not appear to be synchronized to the eating action.  Maybe it takes too long to play, or start a few frames too late?

 

Still, it is very good and already has a close affinity to the original Pac-Man.  Good job!  👍

 

     -dZ.

Link to comment
Share on other sites

1 minute ago, atari2600land said:

I tried to sync it with two bites. If I try to sync it to just one, it loses that "Pac-Man"-ish sound to it. Here's a second attempt, where I sync it to one bite.

pacline7a.rom 9.06 kB · 1 download

 

Oh!  I agree with you, the previous one sounded a lot better.

 

Maybe what it is missing is that short stutter of skipping a frame or two when Pac-Man eats a dot.  Anyway, the previous sound you had in v7 was better.

 

     -dZ.

Link to comment
Share on other sites

26 minutes ago, atari2600land said:

I'm not sure. Does the ghost move faster than Pac-Man in Pac-Man? It seems unfair if so.

 

In Pac-Man, the Ghosts move all at the same speed as Pac-Man on the very first level.  They accelerate after that.  However, Pac-Man can cut-corners, while the Ghosts can only turn at the center of the intersection.  This gives Pac-Man an advantage of getting a few pixels ahead on every turn.

 

In your game, the advantage is not all that necessary, since Pac-Man can just turn to the tunnel and the Ghost cannot, so that balances it.  The stutter of Pac-Man may even help avoid running into the Ghost when you turn around quickly after finishing the level (and the Ghost pops up again).

 

Anyway it is up to you.  How many frames are you skipping on a dot?

 

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