Jump to content



Photo
- - - - -

Let's fix PizzaTime!

pizzatime vpx visual pinball script rules problem bug

  • Please log in to reply
11 replies to this topic

#1 gamerplayer861

gamerplayer861

    Hobbyist

  • Members
  • PipPip
  • 37 posts

  • Flag: ---------

  • Favorite Pinball: Jurassic Park

Posted 13 March 2024 - 07:44 PM

I have the awesome PizzaTime, which is simply a brilliant table. But unfortunately, it has some issues. And as far as I understand, the technical support is left to us players. I haven't found discussions about issues with the gameplay itself, such as how does the PizzaTime follow the assumed rules and mechanics. Let me know if I have missed something relevant, especially if there is generally improved script already available! Otherwise, I welcome the community to share improvements here.

 

My Table Info says version 1.0 revision 53, the script says myVersion = "0.64", and the filename says pizzatime-65.vpx :) The latter number corresponds to the Version declared on the download site, why I think my script is the newest official one. One of the bugs I found was the misbehaving selection of the modes: the mode lights wont turn on and off appropriately when switching back and forth with the flipper buttons. There were a few typos and illogical lines in the script, and I think I have now managed to fix them, see the code below. However, as the ball drains, or the 40 second timer ends during the Pizza-Party mode, the mode selection light stays on, why my current code does not work if the mode selection appears again. While I am trying to find how to appropriately shut down the modes including the mode lights I post here the updated part for the mode selection script. If tried, remember to backup the original script.

 

See my further posts. The issue is not as clear as it seemed to be. Storing the mode progress is further screwing things under the hood!

	sub modepick
		DisableFlippers=True
		modepickin=1
		select Case mcycle
			case 0
				playmedia "pizzaparty.jpg","modes",pBackglass,"",25000,"",1,3  ' (name,playlist,channel,cinematic,length,nextitem,audiolevel,priority)
				NextMode = 0
				L43.state=rst
				L35.state=rst
				rst = L34.state
				L34.state=2
			case 1
				playmedia "timebomb.jpg","modes",pBackglass,"",25000,"",1,3  ' (name,playlist,channel,cinematic,length,nextitem,audiolevel,priority)
				NextMode = 1
				L34.state=rst
				L39.state=rst
				rst=L35.state
				L35.state=2
			case 2
				playmedia "deathorglory.jpg","modes",pBackglass,"",25000,"",1,3  ' (name,playlist,channel,cinematic,length,nextitem,audiolevel,priority)
				NextMode = 2
				L35.state=rst
				L40.state=rst
				rst=L39.state
				L39.state=2
			case 3
				playmedia "threepizza.jpg","modes",pBackglass,"",25000,"",1,3  ' (name,playlist,channel,cinematic,length,nextitem,audiolevel,priority)
				NextMode = 3
				L39.state=rst
				L41.state=rst
				rst=L40.state
				L40.state=2
			case 4
				playmedia "badtown.jpg","modes",pBackglass,"",25000,"",1,3  ' (name,playlist,channel,cinematic,length,nextitem,audiolevel,priority)
				NextMode = 4
				L40.state=rst
				L43.state=rst
				rst=L41.state
				L41.state=2
			case 5
				playmedia "pizzalove.jpg","modes",pBackglass,"",25000,"",1,3  ' (name,playlist,channel,cinematic,length,nextitem,audiolevel,priority)
				NextMode = 5
				L41.state=rst
				L34.state=rst
				rst=L43.state
				L43.state=2
		end Select		
	end Sub

Another issue I have noticed. The idle light show can stay on during the gameplay if a new game is started too quickly after the previous one is finished (final ball is lost and start button is pressed promptly). By the way, I observed this same behavior with the Jpsalas's Zelda table. Does these two tables have something bug-related in common? It would be even nicer to fix possible root issues of many tables at once.

 

Edit: the code snippet above seems to screw the strings. But the code should be okay as no true new lines were presented, I think.


Edited by gamerplayer861, 16 March 2024 - 07:03 AM.


#2 gamerplayer861

gamerplayer861

    Hobbyist

  • Members
  • PipPip
  • 37 posts

  • Flag: ---------

  • Favorite Pinball: Jurassic Park

Posted 14 March 2024 - 08:15 PM

See my further posts. The issue is not as clear as it seemed to be. Storing the mode progress is further screwing things under the hood!

 

Okay, I hope the mode selection issue is now corrected. The other missing part was turning off the mode lights in a routine for clearing, well, the mode lights :) The above modifications should work with these, just copy paste into the appropriate spot in the script.

	Sub clearmodelights(modenum)
		if ptgi + ufogi=0 Then
			gicolor purple
		end if
		select case modenum
			case 0:		' Pizza Party 
				L34.state = 0
			case 1:		' Time Bomb 
				L35.state = 0
			case 2:		' Death or Glory 
				L39.state = 0
				SSetLightColor kStack_Pri1, L13, purple, 0
				SSetLightColor kStack_Pri1, L26, purple, 0
				SSetLightColor kStack_Pri1, L27, purple, 0
				SSetLightColor kStack_Pri1, L28, purple, 0
			case 3:		' 3 Pizza Rhumba
				L40.state = 0

			case 4:		' Bad Town
				L41.state = 0
				Light109.State = 0
				SSetLightColor kStack_Pri1, bumps1, purple, 0
				SSetLightColor kStack_Pri1, bumps2, purple, 0
				SSetLightColor kStack_Pri1, roni1, purple, 0
				SSetLightColor kStack_Pri1, roni2, purple, 0
				SSetLightColor kStack_Pri1, roni3, purple, 0
				SSetLightColor kStack_Pri1, pepperonititle, purple, 0
				SSetLightColor kStack_Pri1, anchtitle, purple, 0
				SSetLightColor kStack_Pri1, leftarrow, purple, 0
				SSetLightColor kStack_Pri1, rightarrow, purple, 0

			case 5:		' Pizza your love
				L43.state = 0
				SSetLightColor kStack_Pri1, jackpotl1, purple, 0
				SSetLightColor kStack_Pri1, skillarrow, purple, 0
				SSetLightColor kStack_Pri1, ufo3l, purple, 0
				SSetLightColor kStack_Pri1, ufo4l, purple, 0
		end Select
	end Sub

Anyone playing Pizza Time, let me know if there are other issues in the gameplay itself. The Pizza Time rules are actually fascinating complex, it would be nice to ensure that all the features are working properly.


Edited by gamerplayer861, 16 March 2024 - 07:03 AM.


#3 GoldLeader

GoldLeader

    Neophyte

  • Members
  • Pip
  • 1 posts

  • Flag: United States of America

  • Favorite Pinball: Star Wars

Posted 14 March 2024 - 08:45 PM

Thanks for that. I'll update my config. How about the goal pizza item selector where it shows you the pizza items you are supposed to be trying to get on the backglass. Have you seen that act a little off? Seems for me I've see where I score the pizza and it doesn't update to the next set of ingredients even though I hear the caller give the new order.



#4 Itchigo

Itchigo

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 2,573 posts
  • Location:Chicago, Illinois

  • Flag: United States of America

  • Favorite Pinball: All




  • Trophies:

Posted 14 March 2024 - 10:43 PM

Does this work without PUP?


Founder of Rogue Pinball! https://roguepinball.com/index.php                 Making Pinball great again!!

 

partylikeits1776-.jpg


#5 digitalarts

digitalarts

    Pinball Fan

  • Members
  • PipPipPipPip
  • 570 posts
  • Location:Bavaria

  • Flag: Germany

  • Favorite Pinball: Judge Dredd (have the real one); all virtual EM's

Posted 14 March 2024 - 11:36 PM

For this table the (pup) backglass is imho an essential part of gameplay

#6 gamerplayer861

gamerplayer861

    Hobbyist

  • Members
  • PipPip
  • 37 posts

  • Flag: ---------

  • Favorite Pinball: Jurassic Park

Posted 15 March 2024 - 07:48 AM

Okay, I haven't paid much attention on the ingredient display, because it is so unclear with my display setup. This is what I was afraid of that the other features as well do not work as expected. Hopefully it doesn't affect on the scoring!

I don't see a reason why the above improvements should not work with or without PUPs.

The mode selection lights are still erratic in some scenarios, and I am not sure why. I think it was the Time Bomb after which the mode light stayed on and screwed the coming mode selection. It's like some of the modes cannot finalize themselves appropriately. According to my limited tests, it seemed like the Pizza Party works okay, and maybe the lost of ball with any mode in general. I am quite new into the VPX scripting why the work is pretty tedious.

#7 gamerplayer861

gamerplayer861

    Hobbyist

  • Members
  • PipPip
  • 37 posts

  • Flag: ---------

  • Favorite Pinball: Jurassic Park

Posted 15 March 2024 - 05:16 PM

To understand what to expect from the Pizza Time, here are the detailed rules. See the subtopics on the left side.



#8 gamerplayer861

gamerplayer861

    Hobbyist

  • Members
  • PipPip
  • 37 posts

  • Flag: ---------

  • Favorite Pinball: Jurassic Park

Posted 15 March 2024 - 10:00 PM

Now I got it why the ending of the modes felt so random. Storing the progress of the modes for the coming attempts was the issue, in addition to the above-mentioned typos etc. I believe the primary intention was to leave the lights blinking for the chosen modes if they were not 100% executed, and if they were, leave the lights constantly on. But unfortunately, as this was probably the bottle neck for the further development, further issues arouse if the initial mode-light "smearing" was fixed. For example, storing the mode progress as mere percentages (or as far as I understand it currently) cannot be used to store the executed shots for example in the Pizza Party. This causes all the mode targets to (misleadingly) blink (and also be inactive) even though if they were already shot during a previous round. So, during the second round you have to blindly shot the blinking targets without seeing which ones you already got previously. It is also possible to reselect previously 100% finished mode making all the mode targets blink again while still being inactive (at least in the Pizza Party). The Time Bomb behaved even weirder. A single executed mode shot during first attempt made the whole mode finish during the second round if only one additional mode target was hit (instead of striking all of them at any point). Is it even possible to let the Time Bomb die out without draining the ball or hitting the targets. The rules say "keep the mode alive", but without any time limits to do something?

 

I am fairly confident that my implementation was not the problem in the previous debugging. As the modes are pretty diverse and script complex, I am considering trying to disable the mode-progress storage. If it could help, as a more feasible option. Thus, the modes would be either 0% or 100% executed between the mode selections, no intermediate progresses would be carried from an attempt to another. This would of course leave the issue of reselecting an already finished mode, escalating the debugging further.



#9 gamerplayer861

gamerplayer861

    Hobbyist

  • Members
  • PipPip
  • 37 posts

  • Flag: ---------

  • Favorite Pinball: Jurassic Park

Posted 16 March 2024 - 07:33 AM

Replacing the code suggestions in my previous posts, this modification should better respect the intentions of storing mode progress regarding mode lights. That particular feature seem to work with this. However, the issues with modes are still far from solved. For example, I tested that the Time Bomb did not seem to end ever if nothing was done, although the rules suggest that the mode should be kept alive with hitting the targets? Also the mode becomes finished with only two strikes on the blinking targets chancing place consecutively, while the rules say about the completion "Hit 15 roving shots". Or then maybe it is me who does not understand the intended mechanics of the Time Bomb. Anyhow, this should treat the mode-selection, light, and progress-storage issues more appropriately. And again, if somebody wants to try these, remember to backup the original script.

	sub modepick
		' Restore mode states of lights
		L34.state = 0
		L35.state = 0
		L39.state = 0
		L40.state = 0
		L41.state = 0
		L43.state = 0
		if PlayerState(CurrentPlayer).SModePercent(0) > 0 then L34.state = 2
		if PlayerState(CurrentPlayer).SModePercent(0) >= 100 then L34.state = 1
		if PlayerState(CurrentPlayer).SModePercent(1) > 0 then L35.state = 2
		if PlayerState(CurrentPlayer).SModePercent(1) >= 100 then L35.state = 1
		if PlayerState(CurrentPlayer).SModePercent(2) > 0 then L39.state = 2
		if PlayerState(CurrentPlayer).SModePercent(2) >= 100 then L39.state = 1
		if PlayerState(CurrentPlayer).SModePercent(3) > 0 then L40.state = 2
		if PlayerState(CurrentPlayer).SModePercent(3) >= 100 then L40.state = 1
		if PlayerState(CurrentPlayer).SModePercent(4) > 0 then L41.state = 2
		if PlayerState(CurrentPlayer).SModePercent(4) >= 100 then L41.state = 1
		if PlayerState(CurrentPlayer).SModePercent(5) > 0 then L43.state = 2
		if PlayerState(CurrentPlayer).SModePercent(5) >= 100 then L43.state = 1
		DisableFlippers=True
		modepickin=1
		select Case mcycle
			case 0
				playmedia "pizzaparty.jpg","modes",pBackglass,"",25000,"",1,3  ' (name,playlist,channel,cinematic,length,nextitem,audiolevel,priority)
				NextMode = 0
				L34.state=2
			case 1
				playmedia "timebomb.jpg","modes",pBackglass,"",25000,"",1,3  ' (name,playlist,channel,cinematic,length,nextitem,audiolevel,priority)
				NextMode = 1
				L35.state=2
			case 2
				playmedia "deathorglory.jpg","modes",pBackglass,"",25000,"",1,3  ' (name,playlist,channel,cinematic,length,nextitem,audiolevel,priority)
				NextMode = 2
				L39.state=2
			case 3
				playmedia "threepizza.jpg","modes",pBackglass,"",25000,"",1,3  ' (name,playlist,channel,cinematic,length,nextitem,audiolevel,priority)
				NextMode = 3
				L40.state=2
			case 4
				playmedia "badtown.jpg","modes",pBackglass,"",25000,"",1,3  ' (name,playlist,channel,cinematic,length,nextitem,audiolevel,priority)
				NextMode = 4
				L41.state=2
			case 5
				playmedia "pizzalove.jpg","modes",pBackglass,"",25000,"",1,3  ' (name,playlist,channel,cinematic,length,nextitem,audiolevel,priority)
				NextMode = 5
				L43.state=2
		end Select		
	end Sub

Edited by gamerplayer861, 16 March 2024 - 07:35 AM.


#10 cdogbrink

cdogbrink

    Neophyte

  • Members
  • Pip
  • 5 posts

  • Flag: ---------

  • Favorite Pinball: Fish Tales

Posted 05 May 2024 - 02:11 PM

Sorry I’m off-topic here, but does anybody know where I can find this table and its B2S and/or PuP?  I’ve heard that it’s a great showcase of a VPX original and wanted to try it but I can’t find any downloads available.



#11 Fusionwerks

Fusionwerks

    Poorly recovering pinball addict

  • Platinum Supporter
  • 351 posts

  • Flag: United States of America

  • Favorite Pinball: JP (DE), Elvira's HoH, ToM

Posted 05 May 2024 - 04:27 PM

https://orbitalpin.com/downloads/

Or search for it on the
virtual-pinball-spreadsheet

Edited by Fusionwerks, 05 May 2024 - 04:28 PM.


#12 cdogbrink

cdogbrink

    Neophyte

  • Members
  • Pip
  • 5 posts

  • Flag: ---------

  • Favorite Pinball: Fish Tales

Posted 05 May 2024 - 06:38 PM

Thanks.  Orbitalpin download table crashed right away.  Was able to save the PuP pack and use the VR Mod table listed on the spreadsheet and now it works.  Appreciate the link.







Also tagged with one or more of these keywords: pizzatime, vpx, visual pinball, script, rules, problem, bug