Jump to content
PacManPlus

Baby Pac-Man

Recommended Posts

Thanks for Baby Pac-Man!

 

Praises, rants, and rhetorical questions:

How great is it that a home version of a digital and analog arcade machine on a good console that Atari stupidly did not sell as their backwards compatible 2600 upgrade (their 7800 carts even had “seal of quality” - like protection that so helped the NES not get more shovelware than quality games)!

 

Never made sense to me, except maybe the fact it was made by another company GCE for Atari?

How does something that plays 2600 carts hurt 2600 sales, but the 5200 “Atari home computer made console” hurt 2600 sales until or unless you bought their 2600 that fits into the 5200 to play your library of older games, because backwards compatibility was not built in?

  • Like 1

Share this post


Link to post
Share on other sites

Playing it some more, I had two ideas...

 

1. You once had an error where power pellets already eaten would reappear on completing a maze. How about reinstating this under certain circumstances? My idea would be that if you complete a maze with at least one chute still open, you would get some power pellets in the next maze (on the side where the chute or chutes was open), while you get none (as usual) if you complete a maze with both chutes closed. This would reward the player for forfeiting another trip to the pinball part before completing the maze. I know this is probably not in the ruleset of the original game.

 

2. You now slowed down the red monster as well as adding some seconds of random movements in the beginning. I think that's about the right setting for the beginning of the game, but you could make it so that as the mazes progress, the random time gets shorter and the red monster gets faster until it reaches the same speed it had before the slowdown. This would make the game get gradually harder as the mazes progress.

  • Like 1

Share this post


Link to post
Share on other sites

I setup A7800 just to try this out - brilliant in its current state. Just as hard as I remember at the arcade - I was able to clear 1 Maze, but boy the ghosts on Arcade are brutal!

 

I can only wish someone would convert this to the 8bit series - great job so far Bob and Co.!

  • Like 1

Share this post


Link to post
Share on other sites

Thanks guys!

 

I see you've added one sound to the pinball section, which is the spinner sound. I think the spinner sound is a bit too loud, and I also wonder if it should be more "grouly" (different waveform as in my "Waka Waka" version of the dot eat sound). it's also a bit too short and/or not retriggered often enough. In the arcade version, you basically have the spinner sound continuously from the moment the ball touches the spinner until the spinner stops, with maybe one spinner sound at the end where it is not continuous. In your version it's now incontinuous most of the time, that is, the spinner sound stops before it gets retriggered. Also I noticed it doesn't start right away as the ball touches the spinner, but with a delay, which is somewhat irritating since the ball is already somewhere else when the sound comes in.

I made some changes to that sound now, I think it depends on how fast the spinner is spinning regarding if the sound is continuous or not. Having said that, I did make it longer, and started the sound upon the ball hitting the spinner, rather than just when it turns. I did keep the same voice however.

 

@imstarryeyed - The spinners do work backward, I got it to sound off. However the ball is usually (in my experience) much slower going through the spinner in reverse, so that might be the reason... Now that I've started the sound when the ball hits it, it should act as expected.

 

 

Playing it some more, I had two ideas...

 

1. You once had an error where power pellets already eaten would reappear on completing a maze. How about reinstating this under certain circumstances? My idea would be that if you complete a maze with at least one chute still open, you would get some power pellets in the next maze (on the side where the chute or chutes was open), while you get none (as usual) if you complete a maze with both chutes closed. This would reward the player for forfeiting another trip to the pinball part before completing the maze. I know this is probably not in the ruleset of the original game.

 

2. You now slowed down the red monster as well as adding some seconds of random movements in the beginning. I think that's about the right setting for the beginning of the game, but you could make it so that as the mazes progress, the random time gets shorter and the red monster gets faster until it reaches the same speed it had before the slowdown. This would make the game get gradually harder as the mazes progress.

1. I'd like to make it as close to the arcade as possible, within my abilities. The only change I did was for the 'classic' monster AI, as it bugged me that they made the monsters so different here. (It also makes it a little easier).

 

2. I'll look into that. Truth be told, it's not actually a timer, it's only until all 4 monsters are out of the pen. (I check the status of the last monster). I know this can create a scenario where if the last monster gets eaten, they move randomly until he gets out. I kind of like that. (Only in 'Classic' Monster AI mode.)

 

Thanks again, guys

Edited by PacManPlus
  • Like 4

Share this post


Link to post
Share on other sites

How great is it that a home version of a digital and analog arcade machine on a good console that Atari stupidly did not sell as their backwards compatible 2600 upgrade (their 7800 carts even had “seal of quality” - like protection that so helped the NES not get more shovelware than quality games)!

 

Never made sense to me, except maybe the fact it was made by another company GCE for Atari?

 

How does something that plays 2600 carts hurt 2600 sales, but the 5200 “Atari home computer made console” hurt 2600 sales until or unless you bought their 2600 that fits into the 5200 to play your library of older games, because backwards compatibility was not built in?

Atari made the 7800 made backwards compatible specifically to market it to 2600 owners.

 

The problem was that Jack Tramiel bought Atari after the 7800 was developed, but before it was supposed to go to market, and he shelved it. He wasn't interested in the video game market - he was after the personal computer market. The video game market had crashed, Atari had lost hundreds of millions of dollars, and retailers didn't want another console (as Nintendo found out when they tried to bring the Famicom to the U.S.).

 

It wasn't until after the NES became a hit that Tramiel finally dusted off the 7800 and released it to try to cash-in on a resurgent market. But by then, the 2600 was long-since dead (in the mind of the public), and the 7800 hadn't had any new games developed for it beyond a handful of launch titles from several years earlier. The marketing failure of the 7800 had nothing to do with GCE or 2600 sales, or any such thing. It failed because it was too late to market, and had an anemic software library. Even if it had come out in 1984, and had been marketed well, without software it still would've failed.

  • Like 7

Share this post


Link to post
Share on other sites

Minor nitpicking correction: the company that designed the 7800 for Atari was General Computer Corp (GCC). General Consumer Electronics (GCE) was the company behind the Vectrex, before they were acquired by Milton Bradley.

  • Like 4

Share this post


Link to post
Share on other sites

I'm not sure that had the 7800 launched in 1984 things would not have been different. From the stuff GCC presented at PRGE in 2016, the system was originally planned to be an expandable system through added hardware on the expansion port and added hardware/components to the carts. The design of the carts themselves was intended to be that way. I believe things may have been different had development continued as it was intended. Unfortunately, that's one of those "if" scenarios we'll never know. Maybe there's an alternate reality out there where things were different! LOL But why don't we get back to Baby Pac-Man?

 

The game has really evolved and it is just awesome that we can play this at home. I keep smiling when I think of the fact that I am playing this rare game at home! Bob, the game gets better and better with each new binary you post, so keep up the good work.

  • Like 6

Share this post


Link to post
Share on other sites

Here's something else I noticed while playing the game some more...

 

Sometimes when you re-enter the pinball part, strange things happen, such as the upper ball coming down from a position somewhere in the loop or the spinner still doing some revolutions (with the sound accompanying it). I think that's unrealistic because in the original version, while the player plays the maze, the upper ball and the spinners should have come to a stop. I think some things need to be re-initialized when you enter the pinball part, such as the spinners stopping and the upper ball going to the end where it was last seen.

  • Like 3

Share this post


Link to post
Share on other sites

We have Baby Pac man.....no one else does...nuff said!!!

 

Rock On Bob!!!!

 

:thumbsup:

 

Yes! Eat your heart out NES!

  • Like 3

Share this post


Link to post
Share on other sites

Well, we can always speculate what would have happened if things would have run differently... Atari might have released the 7800 in 1984, and then the question would have been which software would have been released for it. Remember, this was a time when the hardware companies actually stepped back from software a bit and made way for third-party suppliers, so maybe Activision would have put out 7800 versions of their games such as Ghostbusters... and the Atari 7800 would then have competed against the Commodore 64, the Amstrad CPC, the TI-99/8, the Magnavox Odyssey^3 and the still-active Atari XL line. The next product then would have been the Atari Amiga which would have competed against the Commodore 65 (and there wouldn't have been an Atari ST). Only heaven knows what would have happened after that...

 

I'm not sure that had the 7800 launched in 1984 things would not have been different. From the stuff GCC presented at PRGE in 2016, the system was originally planned to be an expandable system through added hardware on the expansion port and added hardware/components to the carts. The design of the carts themselves was intended to be that way. I believe things may have been different had development continued as it was intended. Unfortunately, that's one of those "if" scenarios we'll never know. Maybe there's an alternate reality out there where things were different! LOL But why don't we get back to Baby Pac-Man?

 

The game has really evolved and it is just awesome that we can play this at home. I keep smiling when I think of the fact that I am playing this rare game at home! Bob, the game gets better and better with each new binary you post, so keep up the good work.

Edited by Kurt_Woloch
  • Like 1

Share this post


Link to post
Share on other sites

By 1984, it was already too late for Atari. To me, the solution is simple. We all need to do is to retrofit our Delorians with a functional 1.21 Gigawatt flux capacitor and set the date to 10-27-1983 and destination 215 First St. Cambridge MA 02142. Knock on the door and ask for Mr. Ron Stephens. He would be shaking his head, wondering how we would know he was working on the 3600 (now 7800) OS that day. And then we would show him our nifty laptops and all the games we already have for the 3600/7800. GCC, and the world, would never be the same again.

 

THE DESTINATION:

post-65655-0-13771900-1546555395.jpg

 

By the way, Bob and Curt, you're doing a wonderful job. I can't even imagine what all went into BPM to make it work as well as it does! HNY, BBA

  • Like 1

Share this post


Link to post
Share on other sites

Hi Guys

 

Here's something else I noticed while playing the game some more...

 

Sometimes when you re-enter the pinball part, strange things happen, such as the upper ball coming down from a position somewhere in the loop or the spinner still doing some revolutions (with the sound accompanying it). I think that's unrealistic because in the original version, while the player plays the maze, the upper ball and the spinners should have come to a stop. I think some things need to be re-initialized when you enter the pinball part, such as the spinners stopping and the upper ball going to the end where it was last seen.

Noted - I've seen that, but kept forgetting to resolve it. Thank you. It should not happen any more.

 

 

Yes! Eat your heart out NES!

Well... I *was* going to try and port it to that too when I was done :ponder: ...maybe not... Maybe this should be exclusive to the 7800.

 

Thanks everyone

Edited by PacManPlus
  • Like 3

Share this post


Link to post
Share on other sites

 

 

Well... I *was* going to try and port it to that too when I was done :ponder: ...maybe not... Maybe this should be exclusive to the 7800.

 

Nah, I have a Famicom AV, too.

  • Like 1

Share this post


Link to post
Share on other sites

Well... I *was* going to try and port it to that too when I was done :ponder: ...maybe not... Maybe this should be exclusive to the 7800.

I think you should follow your muse, and do whatever makes you happiest.

  • Like 3

Share this post


Link to post
Share on other sites

Thanks guys!

 

 

I made some changes to that sound now, I think it depends on how fast the spinner is spinning regarding if the sound is continuous or not. Having said that, I did make it longer, and started the sound upon the ball hitting the spinner, rather than just when it turns. I did keep the same voice however.

 

@imstarryeyed - The spinners do work backward, I got it to sound off. However the ball is usually (in my experience) much slower going through the spinner in reverse, so that might be the reason... Now that I've started the sound when the ball hits it, it should act as expected.

 

 

 

1. I'd like to make it as close to the arcade as possible, within my abilities. The only change I did was for the 'classic' monster AI, as it bugged me that they made the monsters so different here. (It also makes it a little easier).

 

2. I'll look into that. Truth be told, it's not actually a timer, it's only until all 4 monsters are out of the pen. (I check the status of the last monster). I know this can create a scenario where if the last monster gets eaten, they move randomly until he gets out. I kind of like that. (Only in 'Classic' Monster AI mode.)

 

Thanks again, guys

I agree with the changes made. Baby Pacman needs to be fun for extended console play sessions, not a masochistic quarter gobbler. Fixing the monster AI or making SDTM ball drains less frequent, will make this game more accessible in the long run. Making power pellets reappear on subsequent stages will act like classic Pacman. Collect four dots in the pinball table, then go into the maze and chomp ghosts...
  • Like 1

Share this post


Link to post
Share on other sites

Sorry, one more thing... while playing it some more, I noticed that sometimes, when the ball goes through the outer curves the "wrong" way, the spinners don't move at all. However, the ball must have *some* speed at that point due to the gravity involved, so I think it's unrealistic if the spinners don't move at all. This could be that the speed is considered too low or that the ball coming down affecting the spinners as well just isn't implemented at all yet. I think the initial speed of the spinners (as the ball touches them) should roughly correspond to the ball's speed, so if the ball comes down at, say, 2 pixels per frame, the spinners after having been touched should move at that rate as well. But since they only have two possible positions graphically, this would translate to about 1/12.5 revolutions per frame (Pi * 4), and during one revolution the graphics of the spinners would change back and forth twice, so... the correct speed in this case would be changing the spinner shape about every 3 frames. By the way, I think the correct display of a stopped spinner would be the thin line, not the thick square, and the spinner should always stop in this position. This could be achieved by only slowing down the spinner while it's in that position.

 

Bob, maybe I made a mistake when I didn't implement the spinner motion myself, but I didn't do it because you told me you had a plan for it, so I left that bit alone.

Share this post


Link to post
Share on other sites

I just looked at the video footage of Baby Pac-Man, and it seems to me like if hit at full speed by the ball (as fast as possible if hit directly from the flippers), the spinners do about 6 revolutions over the course of a second or a bit more and then stop. This seems to be accomplished by the "hanging" spinners basically stopping as they get under a certain minimum speed as they are affected by gravity as well (they accelerate towards the "down" position and even swing out like a pendulum when they don't make a complete revolution anymore). That's also how they get the mostly continuous spinner sound even though the spinner sound only lasts for about half a second.

 

However, even though at full speed the spinner only does 6 revolutions, I still think each time the ball goes through a spinner should result in at least one visible change to that spinner. And the correct resting position for a spinner, I think, is when only the line is visible, not the white square.

 

(I actually meant to edit the post above, but during the edit I got a visitor and the time for editing it elapsed)

Share this post


Link to post
Share on other sites

No - that's fine I did have a plan for the spinners.... If it's not working as expected, I need to revisit it again.

 

I'm using PB_VERVEL to determine the speed of the spinners, and inverting it when it's negative. This is what happens when the ball hits the spinner:

CUBLEFTSPIN
	LDA PB_VERVEL+0
	BPL CUBLSSKIPNEG
	EOR #$FF
	CLC
	ADC #$01
CUBLSSKIPNEG
	CMP #$07
	BCC CUBLSSKIPHI
	LDA #$07
CUBLSSKIPHI
	STA PB_SPNSPD+0
	INC PB_SPNSPD+0
	TAY
	LDA SPINFRAMES,Y
	STA PB_SPINFR+0
	LDA #$0A
	JMP DOTUNE

SPINFRAMES if the number of frames between each spin of the spinner (that decreases every 64 frames to look like it is slowing down)

SPINFRAMES
	.BYTE $1D,$19,$15,$11,$0D,$09,$05,$01,$01

...and this is the code that happens every other frame for each spinner(Frame ANDed with #$01 - $00 for the left spinner, $01 for the right)

	LDA PB_SPNSPD+0								;IF THE SPINNER FREQUENCY IS AT ZERO, EXIT
	BEQ SPSLEXIT
	LDA PB_SPINFR+0								;IF THE SPINNER FRAME COUNT IS AT ZERO, EXIT
	BEQ SPSLEXIT
	LDA RTLOCAL+1								;SLOW DOWN EVERY 64 FRAMES
	AND #$1F
	CMP #$02
	BPL SPSLNOSLOW
	DEC PB_SPNSPD+0								;SLOW DOWN SPINNER
	BEQ SPSLEXIT								;IF WE'RE AT ZERO, WE'RE DONE
SPSLNOSLOW
	DEC PB_SPINFR+0								;DECREMENT THE FRAME COUNTDOWN
	LDA PB_SPINFR+0								;SEE IF WE ARE AT ZERO, TO ADD POINTS AND PLAY SOUND
	BNE SPSLEXIT
	;TODO - PLAY SOUND
	LDA #$0A
	JSR DOTUNE
	LDA SCRZN03+$04								;UPDATE SCREEN ANIMATION
	EOR #$38
	STA SCRZN03+$04
	LDY PB_SPNSPD+0								;MAKE THE SPINNER FREQUENCY AN INDEX
	LDA SPINFRAMES,Y							;GET THE NUMBER OF FRAMES BEFORE EACH SPIN
	STA PB_SPINFR+0
   	LDA PB_TILT									;IF WE'VE TILTED - DON'T SCORE
	BNE SPSLEXIT
	LDA #$00
	STA ADDSCOREH
	LDA #$01
	STA ADDSCOREL
	LDA PLAYER
	JMP ADDTOSCORE
SPSLEXIT
	RTS

I'll be revisiting this section to find out the best way to modify it.

Edited by PacManPlus
  • Like 1

Share this post


Link to post
Share on other sites

OK, thank you for the code! Let's see...

 

1. I think it takes too long for the spinner to come to a stop. If the ball hits it at full speed, that would be 6 pixels per frame at least, which puts the spinner speed at 7, so it takes 64 x 7 = 448 frames to stop, which is 7.5 seconds. In the arcade version this would be at most 2 seconds, so I think the spinner needs to slow down 4 times as often, which would be every 16 frames, not every 64.

2. The frequency table looks somewhat fishy to me. Since it contains the number of frames, it's actually the inverse frequency, and going from 1 to 5 seems pretty harsh to me since this step causes the frequency to be cut to a fifth. Most ot the time the spinner will be at values between $11 and $1D which, since each spinner only is processed every other frame, only causes the animation to change once to twice per second, which looks pretty slow to me.

I probably would have done this part differently by giving each spinner a speed similar to the ball, expressed in sub-revolutions per frame, and a counter which overflows, causing the animation to change on each overflow.

 

Now... i stated above that the animation frequency should be at 3 frames for each animation cycle if the ball speed was at 6 pixels per frame. We can't do that now because the way the animation is coded now, it needs to change at a multiple of 2 frames, so it's either 2 or 4 frames. This value is divided by 2 to give the "Spinframes" value.

 

So assuming the first entry should be a frequency of 1, the 2nd one a frequency of 2 etc., corresponding to the number of pixels per frame the ball is travelling, the SPINFRAMES table would need to be changed. A frequency of 1 would mean that the animation should change every 18 frames, so the value in SPINFRAMES for this entry should be 9. For each subsequent entry, 9 should be divided by the number (and rounded), which would give the following table::

SPINFRAMES

    .BYTE $09,$05,$03,$02,$02,$02,$01,$01,$01 ...

However, the sound and scoring should only be triggered every 4th time the animation is changing. And this still doesn't simulate the "hanging" spinner which would always stop in the same position.

 

This is all I can do at the moment I'm afraid since I only have my old version of the code to work with. However, I managed to successfully implement your code, but it only spins the left spinner. Thinking of which, I think it's pretty improbably that both spinners will spin at once, so the handler only needs to "activate" the spinner the ball has hit, and then that's the only one that will be spinning. So much for my theory...

 

Update: After a bit of experimenting with my version of your code (and inserting my Spinframes table), I come to the conclusion that it doesn't make such a big difference if the implementation is "dirty" or not. However, I think it would help trying to use the table I gave above and slowing down the movement every 16 frames instead of every 64, which I think would be quite easy to do.

Edited by Kurt_Woloch

Share this post


Link to post
Share on other sites

Thank you Kurt - I'll figure out what I need to do with the spinners.

 

BTW, yes, that is just the left spinner - the right one is identical (except of course for the side it's on). And there have been a few times where I've had both spinners going at the same time, actually.

 

After this, I'm going to try and work on the 'Tunnels' and 'Fruits' rollover sound (they seem the easiest, and I'll work my way up to the harder sounds)

 

Thanks guys...

Edited by PacManPlus
  • Like 2

Share this post


Link to post
Share on other sites

OK... just as a bit of inspiration, here's my version of the spinner sound (which sounds a bit more "grouly", and I think I hit the original frequencies pretty closely):

SC = $10
SV = $03
FFTUNE10: ;Spinner
  .BYTE #TT+$1D,#T7+$1D,#T8+$1C,#T8+$1B,#T8+$1A,#T8+$19,$00
CVTUNE10:
  .BYTE #SC+#05,#SC+#SV,#SC+#SV,#SC+#SV,#SC+#SV,#SC+#SV,$00

  • Like 1

Share this post


Link to post
Share on other sites

@Bob and @Kurt

 

If you guys needs any sounds recorded to listen to I can make you some sounds files from the arcade.

 

If you do just let me know what you all want and I will create up some files for you.

  • Like 4

Share this post


Link to post
Share on other sites

Actually, if you don't mind, that would help.

If you can get each sound isolated, that would help (and say which ones they are).

 

Thank you - I would appreciate that.

  • Like 1

Share this post


Link to post
Share on other sites

@Imstarryeyed: Just to clarify which sounds would be needed: I think at this point we would need every sound that occurs in the pinball section. This encompasses at least the following events and sounds:

- Baby comes down the chute (without Pacscalator)

- Background drone sound

- Spinners

- Fruit / Tunnel rollover

- Bumpers

- Ball gets trapped in hole

- Outer targets (spelling PACMAN)

- Power pellet earned (I think this is the same for the upper ball as for completing PACMAN, or is it?)

- Fruit advance

- Tunnel speed increased

- Even-up lane crossed

- Pacscalator

- Extra baby earned

- Tilt (if it has any)

I don't know if this list is complete, but this is all I can hear from the video, and all that comes to mind.

 

@Bob and Imstarryeyed: As for the even-up rollovers, aren't they supposed to also even up power pellets earned? As in, if you're earned power pellet #1, and the ball crosses the left even-up lane with the yellow light lit, shouldn't power pellet #2 be lit up as well? I think the original game does this, but I could be wrong here.

Edited by Kurt_Woloch

Share this post


Link to post
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.

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