TerryRed
Pinball Master
- Joined
- Feb 11, 2020
- Messages
- 2,029
- Solutions
- 9
- Reaction score
- 2,471
- Points
- 145
- Favorite Pinball Machine
- My Virtual Pinball Cabinet
ALL in One Example Table and Tutorial
Add FizX, FLEEP, Ball Rolling, PUP SSF, DOF to any Future Pinball table! Easy!
What was once a daunting task, has now been made easy! Add the latest FizX physics, FLEEP sounds, Ball Rolling sounds, PUP SSF and DOF to any Future Pinball table quickly and easily using this new All In One Example table and Tutorial!
FizX Physics System for Future Pinball - new updates for v3.3
- FizX code has been completely updated to make use of new BAM 1.5-373 features
- this has resulted in FizX being MUCH more efficient
- as a result, FizX uses MUCH less CPU than before, and tables should run much better on less powerful CPUs!
- all FP rubbers now automatically work with FizX! You are no longer required to add new FizX posts or bands!
- all FP targets and drop targets now automatically work with FizX! You are no longer required to add new FizX target walls!
- 4 sets of flippers are now supported
- FizX Tweaker DMD is no longer required to be added (it's optional)
- new FizX 3.2 code is even more efficient
- new! Flipper Nudging! (when a ball rolls on a flipper, rapidly tap the opposite flipper to nudge ball back down the flipper)
- independent settings for each flipper, now up to 4 sets of flippers
- new coil system based on the new custom BAM FSRC
- new EOS system which keeps flipper momentum on the first stroke. Huge improvement on backhand shots and post passes!
- new bouncing setting which is easier to understand and set
- new Flipper Omega and Mass System
- new ball vs ball physics setting. Ball hitting other ball has more bounce
- new PHYSICS XML settings
- new Ball Spinning Momemtum absorption and bounce deflect on hit for Flipper and Rubber
- Tap pass and Tap shots are much easier
- table slope and other new settings are now defined in FizX General Settings
To put it simply... all the quirks from older versions of FizX have been fixed. Flippers have full power when they should. Post passing, and backhands are easy and correct now, as are flipper tricks.
Flipper Nudging is a real thing now, as long as the ball isn't rolling too fast on the flipper (the nudge strength can be adjusted in FizX settings).
You now have full control and accuracy with flippers similar to a real pinball machine!
This older video below will briefly go through FizX 3.0 settings and changes, the older AIO Example table and Tutorial, and it will showcase FizX in action with amazing new table updates!
Please note, that the AIO Example table with FizX v3.3 is not the same as FizX Lite. Their code is not compatible or interchangeable!
DESCRIPTION of TERMS and FEATURES
FizX
- this is a new physics system for FP (created by JLou)
- it has adapted techniques, similar to nFozzy physics on VPX, to be used on FP to drastically improve FP's physics and flippers
- it uses BAM features, new code, new models (for rubbers, bumpers, slings, ball, etc) to make this happen
- automatically outputs FLEEP sounds of most ball hit events based on the material / speed, etc
- any FP table can be updated to use FizX physics (some old tables may need additional table changes to properly modernize them)
FizX Tweaker Tool
- a tool using a DMD to display FizX settings (while playing) so they can be adjusted in real-time to see their effect
- any changes made using this tool will still need to be manually set in the FizX settings in the table script
FLEEP Sound
- a very high-quality set of mechanical sounds recorded by FLEEP
- each type of sound uses multiple recordings that vary slightly to create a much more dynamic / natural experience
- it's ideal to also try to control the output / volume of these sounds based on ball speed / collision material
DOF (Direct Output Framework)
- an app used to control feedback (solenoids, shaker, chimes, etc) and lighting on real cabinets
- this can be used with apps like VP and FP to have real feedback and lighting activated by table events
- this tutorial adds direct DOF support! (DOFLinx is not used, and must not be running!)
PUP (Pinup Player)
- an app used to playback video, audio, text on separate displays / windows
- this can be used with apps like VP and FP to control modern score / video displays or playback audio / music / SSF
- PUP SSF uses pinup player to playback mechanical sounds and ball rolling sounds based on their position in the game
- PUP DMD is the combined output of text / videos / images on a display (can be similar to a modern pin's LCD display)
- PuP-Pack is a folder that contains the collection of video / audio / fonts / config files used by Pinup Player for a specific table
SSF (surround sound feedback)
- a method of playing mechanical-based sounds within in 3D / surround space based on the position of the item on the playfield
- this can be used in any speaker configuration (stereo, 5.1, 7.1)
- when used in a cabinet with multiple exciters / shakers, it can make it sound like you have a real pinball game inside your cabinet
FP Sounds / FP Mechanical Sounds
- the sounds played by FP (using playsound) for mechanical / hits events for things like flipper, slings, bumper, ball hits, etc
- these can only output in mono or stereo, and do not support positional output
PinMechSound
- a command (and code) created by TerryRed that will control the output of FP Sounds, PUP SSF, and DOF automatically
- only FP Sounds or PUP SSF are output at one time
- if PUP SSF is disabled (or not installed), then FP Sounds are used
- DOF (if installed and enabled) will always be outputted
########## ALL in ONE Example Table Tutorial ##########
What will this add to a Future Pinball table?
- FizX v3.3 physics system
- FLEEP mechanical sounds
- dynamic ball hit sounds (based on speed and materials that are hit)
- ball rolling sounds
Optional Features
- surround sound feedback (PUP SSF)
- DOF (cabinet feedback)
- PUP (for "simple" PuP-Packs)
- FizX Tweaker Tool
This will result in a FP table supporting the above features automatically, even if you don't use all the features yourself.
Simply follow this tutorial (in order) to get the essentials installed. You can make changes as needed for your table and preferences.
You can get the essential FizX items / physics, fleep sounds, ball rolling and dynamic ball hit sounds working very quickly using this tutorial and example table!
I can add the essential files and code to a table in minutes!
The OPTIONAL extra steps for adding FizX rubbers (not required), linking PinMechSound commands (not required, but recommended) doesn't take long once you know how to add it to the table's specific items and events.
This tutorial assumes you have a basic understanding of how Future Pinball - BAM works, and how to use the Future Pinball Editor.
Please take the time to read through the entire tutorial, so you know all the steps needed, and all the options you have.
This tutorial is designed to be followed in order, step by step. I have split it into sections. The first sections are REQUIRED for FizX. The later sections are OPTIONAL.
REQUIRED SECTIONS
SECTION 1 – Prepare your table
SECTION 2 – Install files
SECTION 3 – Add required items to your table
SECTION 4 – Update the table for FizX physics
SECTION 5 – Disable features you won’t use or support
OPTIONAL SECTIONS
SECTION 6 – Optional FizX updates and features
SECTION 7 – Optional PinMechSound support
SECTION 8 – Remove features you do not want at all
FAQ (Frequently Asked Questions)
I just want to add FizX physics to a table. Will this tutorial and example code be easy to use?
Yes! Adding FizX in its entirety takes little time!
The “optional” extra steps for PinMechSound (which add DOF and PUP support) are NOT required! You are not creating any more work for yourself using this tutorial, or the example table’s code if you just want FizX physics.
FizX is much more than just “better flippers”. It’s a “complete” physics update for Future Pinball.
I don’t want to enable or use the Ball Rolling methods with this example code. Can I disable it and use my own?
Yes! Simply set BallRolling_Sound_Enabled = false in the “Ball Rolling Sound Settings” section
I don’t want to add any support for PinMechSound or PUP or DOF. I just want the table to be like other FP tables.
Easy! Set DOF_enabled = false, and PUP_SSF_enabled = false (be sure to note that they must not be changed).
You can remove the “MECHANICAL SOUNDS AND FEEDBACK” section if you wish. DO NOT remove the Sub PinMechSound section!
Table version: 3.30.03 (Feb 28 - 2024)
FizX: v3.30
CHANGELOG
3.30.03 (Feb 28 - 2024)
- updated FizX code (fixed bugs, and changed flipper nudge behavior)
- fixed bugs regarding ball momentum (for main flippers)
- removed flipper nudge commands (no longer needed with new FizX code)
- make sure you remove any flipper nudge commands you may have added before!
- updated PHYSICS XML section (new settings that work better now)
- tutorial now has a new SECTION 8 – Remove features you do not want at all
3.30.01 (Feb 10 - 2024)
- updated PHYSICS XML section (mostly the materials) to previously used settings, as I was getting odd ball behavior and problems with wire ramps after testing with multiple tables
- slight adjustments to the table
3.30.00 (Feb 2 - 2024)
- FizX code completely updated for FizX 3.30 (now requires BAM 1.5-373 or higher)
- new DEBUG options, to allow you to control what you want to see in DEBUG mode (DOF, SSF Sounds, FP Mech Sounds, Ball Rolling, FizX)
- ramp models updated with two layers to render correctly
- some fixes to prevent excessive triggering in kicker, etc
- added some missing FLEEP sounds (OGG for the table, and WAV in FP_PUP_SSF PuP-Pack)
- PinMechSound code has been updated to now have PUP SSF's Ball Hit sound volume levels match the same control behavior as FP's ball hit sounds (before, they were always at max volume level).
- tutorial updated to reflect changes to the new code and features
- added "SETTINGS THAT CAN BE CHANGED" in table script to make it clear what settings can be changed by table creators / modders / players
3.20.09 (Nov 24 - 2023)
- made new PinMechSound_Bumper_Hit subs for each bumper, and kept the Sub Bumper_Hit separate (so they don't conflict with other table's bumper hit subs)
3.20.08 (Nov 22 - 2023)
- changed GenericPreHitMinBallSpeed = 1 to GenericPreHitMinBallSpeed = 5
This was supposed to be set to 5. This now means all static balls will be ignored, instead of having constant physics updates for balls that aren't moving. More efficient for tables with multiball, or tables with captive balls always on the table that aren't moving often.
3.20.07 (Nov 20 - 2023)
- updated table for all new FizX v3.2 code and features
- new FizX code no longer requires rubber posts, rubber bands, drop target walls to be added
- Tweaker Tool DMD is now optional, and not required (table won't give an error if its not added)
What is REQUIRED?
- the All in One Example table zip file's content
- BAM 1.5-373 or higher
A "normal" Future Pinball table is needed!
- we need a future pinball table with nothing specialized added to it (this will conflict with the new features!)
- remove any previous physics related code or timers. Remove any PHYSICS XML code (the green text code)
- if any special / custom flipper models are used (Zed physics), replace them with normal flipper models!
- remove any code / timers / commands used for any previous ball rolling sounds (smoke)
- if a table was updated for DOFLinx, remove all DOFLinx related code (we are now using direct DOF support)
- confirm your table is working COMPLETELY after removing all the above!
- DO NOT go farther with this tutorial until this is completed!
DOF and Pinup Player (PuP) are NOT required to be installed for the table to work!
- PUP SSF and DOF are "extra" features that will be used if they are installed (and enabled). If they are not installed (or they are disabled), then the table will use FP sounds for everything automatically
PUP SSF and the FP_PUP_SSF pup-pack
- if the player has PUP installed, but does not have the FP_PUP_SSF pup-pack installed (included with this tutorial), then if PUP_SSF_Enabled = true, the player will have no mechanical / ball rolling sounds, as PUP won't be able to load any sounds from the FP_PUP_SSF PuP-Pack
- I recommend you include the FP_PUP_SSF pup-pack folder with your tables that use this AIO Example code. Make mention in your download post about copying FP_PUP_SSF to the PUPVideos folder for anyone who has PUP installed
- if you do not want to include the FP_PUP_SSF pup-pack with your table, or don't want to support PUP features on your table... then be sure you have PUP_SSF_Enabled = false set in your table script
What this Tutorial will NOT do:
- add the same features as PinEvent tables. No PUP DMD! No PUP Stream!
- it won't create a "PinEvent" table (PinEvent = TerryRed releases)
- it won't go into great detail about all of FizX's settings, and physics, and fine tuning, etc
- it won't tell you how to remove older physics or other ball rolling sound methods
- the new Ball Rolling code won't automatically change the ball rolling sounds when rolling on plastic ramps, or wire ramps. You will need to do this yourself. Only PUP SSF will play more than one ball rolling sound at a time.
- it won't tell you how to update every FP table for issues not covered in this Tutorial. Some older tables need to be updated / modernized to properly use FizX physics (some tables use multiple playfield surfaces, and workarounds for old FP physics that can have a negative effect, and will need to be removed, as an example)
This tutorial is more about getting everything easily installed and running on another table. There will be other posts (made by others) that will go more in-depth about FizX settings and physics. I will provide links to them on this page as they are created.
Download the AIO Example Table and Tutorial zip file:
- the latest AIO Example table's zip file is attached to the bottom of this post
- open the Tutorial file (pdf, or docx) and follow the instructions in order!
IMPORTANT: Do not add new changes to the main code that the Example Tables uses! Use it as it was intended following the written tutorial! This table and its code may not always have the latest WIP / beta code for FizX, etc. Trying to mix in different bits of code or updating a table in a different way may result in the All In One Example table's code not working correctly for your table! Just follow the tutorial (in order), and it should work fine for you.
For more details about FizX settings, JLou will have more information here:
Help - FizX - BAM - FizX 3.0: How to tune physics in FizX profile
Coming soon....
pinballnirvana.com
If all went well, you should have a FP table that:
- plays MUCH better and more realistically with FizX physics
- complete dynamic ball hits sounds for the entire table based on all materials being hit
- ball rolling sounds that automatically work
- full SSF for everything on the entire table (if using PUP SSF)
- FP Sounds for all mechanical events (flippers, slings, bumpers, etc)
- DOF feedback for solenoid based events
Enjoy a new world of better physics, sound and feedback in FP!
Thanks to:
- JLou for his amazing work and dedication to FizX physics on FP
- AnonTet for his support towards FizX
- ravarcade for more excellent updates to BAM that made this all possible
- smoke (used small bits of your ball rolling code for the new unified ball rolling code)
- Nailbuster for DOF and PUP support
- all others who have shown support with their time and testing and feedback
Video Tutorial:
This video shows how to use the All in One Example Table (along with the written Tutorial) to easily update a Future Pinball table to support "all" these new features. It is broken into chapters so you can go at your own pace, and easily pick up where you left off.
It does not... I repeat... does not take multiple hours just to add "complete" FizX physics, (if that is all you want to add) using the AIO Example table and tutorial. Large portions of the video are me "explaining" everything, and testing.
I can have a table completely updated just for "all" of FizX physics (code, dmd, sounds, models, textures, rubbers and slings) within 30 mins. This is assuming there are no table conflicts that need to be resolved.
This video is Part 1 which covers adding what is needed for FizX and some optional updates.
This video is Part 2 which covers adding the optional PinMechSound commands to add SSF, DOF and FLEEP sounds to the entire table.
ALWAYS follow the "written" tutorial for the most up to date and correct information! Only use the video as a visual guide to help you along!
I will update the All In One Example Table and the Tutorial as needed in the future when significant changes / features come along.
TerryRed
Attachments
Last edited: