[retro] Visual Pinball v10.3.1

[9] # Witek@EmuDreams.pl | !!! Czwartek, 6 Lipca 2017 00:10 CET [05-07-2017 00:10 CET]

[retro] Visual Pinball v10.3.1

Visual Pinball nie tylko pozwala na zabawę fliperami, ale też w miarę szybki i bezbolesny sposób, na tworzenie swoich własnych stołów pinballowych.  Oczywiście nic nie zastąpi prawdziwych maszyn, gdzie dobrze wykonany tilt i huk odbijanej metalowej piłeczki gwarantował świetną zabawę:).  Polecam śledzić wątek Witka na EmuDreams - jak zwykle nowa wersja będzie miała problemy ze starymi stołami.

VP 10.3.1 Changelog

  • fix some editor crashes
  • fix UI rendering of alpha images on Windows XP
  • in interactive camera/light editing mode (e.g. launch table with F6 or the respective menu entry) navigating around the table with the arrow keys (and left alt key) must now be explicitly enabled in the key preferences dialog
  • add Randr's rulers, plus a simple protractor and Rothbauerw's manual ball control script (slightly tweaked) to the default table

VP 10.3.0 Changelog

  • add new material option for the glossy color: 'Use Image', which allows to configure how much the (optional) image that is attached to a scene element is allowed to influence the glossy part of the material (0=no tinting at all from the image, up to 1=same behavior as before/older VPX versions)
  • fix 'edge shadowing' issue if a normal map image is used for a scene element
  • add new configurable in-game key for a lockbar/fire button (accessible via "LockbarKey" in the script)
  • in interactive camera/light editing mode (e.g. launch table with F6 or the respective menu entry):
  • press the start game key (default is 1) to reset the camera and all backdrop settings (inclination, layback...)
  • add camera rotation around Y axis
  • navigating around the table with the arrow keys (and left alt key) is now possible
  • show camera position
  • add additional parameter to primitives to allow for rendering backface triangles (if the used material features transparency)
  • add simple kicker hole mesh
  • change "AntiFriction" parameter to "Damping" for the gate and spinner elements (which also changes the input range from 0..100 to 0..1, and is inverse to before, e.g. Damping="1-AntiFriction/100") (old tables will still load/save exactly the same though, as it was always used like this internally anyway)
  • add (optional) missing hit event to ramps
  • add missing Timer properties for ramps
  • VP now supports three different view modes (DESKTOP, FULLSCREEN and FULL_SINGLE_SCREEN (to be able to easily add an additional backglass to the table)). The UI was changed to select, view and change these properties via a drop down list
  • add more window resolutions to the video preferences (for new FSS/portrait setups)
  • using the built-in DMD (via the flasher element) now in addition will respect the 'Additive Blend' and 'Modulate' parameters to steer the blending with the table (this can for example be used to simulate a reflection on the playfield glass: set 'Modulate' to 0.9 and check 'Additive Blend' as an example) (note that this unfortunately can break old tables as this setting was still ignored in 10.2.X, so all tables that use a built-in DMD via the flasher element should please be re-released with these two parameters set up correctly)
  • slightly tweak bloom filter and light transmission filter to capture a larger radius (for very bright lights)
  • add NFAA post processing filter to the post-processing AA dropdown menus (sometimes more blurry, but also keeps more dynamic range of the highlights compared to FXAA, and is pretty fast)
  • add DLAA post processing filter to the post-processing AA dropdown menus (somewhere inbetween FXAA and NFAA, depending on the aliasing-pattern that is smoothed, and more costly than NFAA)
  • add SMAA post processing filter to the post-processing AA dropdown menus (comparable to Quality FXAA, depending on the aliasing-pattern that is smoothed, and more costly, but usually also a bit better)
  • own colors can now be defined for locked/unlocked selected elements, element fill color and editor table background, in the editor preferences
  • sound manager, image manager and script editor save and restore window position and size
  • image Manager: new column added to show if an image is in use
  • material/image manager dialog is resizeable
  • improve display of images with alpha channel in the editor (no more checkerboards)
  • add hotkey for toggling between table and backdrop view in the editor (ctrl+space)
  • fix autosave option if entering/OKing the editor options dialog
  • fix UI issue with the layer buttons for high desktop resolutions
  • add Win32++ framework to simplify UI handling (more infos under https://sourceforge.net/projects/win32-framework )
  • remove Visual Studio 2008 support
  • add Visual Studio 2017 support
  • DirectX 8 port for input handling (currently disabled)

VP 10.2.1 Changelog

  • fix for camera/light tweaking mode not updating lighting parameters

VP 10.2.0 Changelog

  • add -Help (displays all command line parameters) and -DisableTrueFullscreen (force disables/overrides the true fullscreen video preference) to command line
  • by default open file dialog to directly select and play a table (can be changed in preferences->editor options)
  • timers now feature a special mode (setting the interval to -1) that triggers a timer exactly once per frame (e.g. dependent on the FPS that a user gets for a table). this can also be interpreted as being a callback done once per frame to update everything that is only rendering-related (e.g. to reduce overhead caused by things that will never be seen by the player in the end). note that all purely script-driven animations that use a timer with its interval set to -1 should use the new script function GameTime to calculate the time passed between the previous and current frame to make animations time dependent again.
  • fix timers that dis/enable themselves in the script
  • disable visual touch/pen feedback to save one frame of input latency/lag (on tablets/phones)
  • replace old 'Maximum pre-rendered frames' video preference implementation with the official DirectX mechanism on non-XP systems, so it could be worth to experiment again with this setting by using 1 or 2 to reduce lag at the price of a bit of performance
  • add aspect ratio to dimension manager
  • add show debugger hot key option to the keys preferences. If hot key is pressed it opens the debugger window without showing the pause menu.
  • Lights can be debugged (and also live tweaked) in the debugger. Open the debugger, click on the "Lights" button and a new dialog will appear where all dynamic values are editable. Properties like blinking/on/off are based on the timing of the player but the timing is stopped while debugging. You have to click in the player window to see the changes. And beware that all light properties can be changed by the script, so these might be overwritten by the script even if you try to set them in the debugger. The changes will also affect the lights in the editor once you quit the player.
  • Materials can also be debugged (and also live tweaked) in the debugger. Open the debugger, click on the "Materials" button and a new dialog will appear where all properties are editable except for the physics values. By hitting enter or the "Apply" button the changes are updated. Every dynamic element on the table will show the changes immediately. The opacity active flag is an exception: This flag also defines if an element is rendered dynamically or not (e.g. for walls or ramps). So if the opacity isn't already active when starting the player you won't see changes on these static elements. The changes will also affect the materials in the editor once you quit the player.
  • hotkey for adding normal and smooth control points for walls, ramps and lights. Select a wall, ramp or light and press F10 for a normal unsmoothed control point and F11 for a smoothed one.
  • animation support for mesh primitives added: The animation sequence is based on multiple .obj files for each frame. Let's say we have an animation of 100 single frames, then you have to export each frame into a separate .obj file with the nameing format _x.obj where x is the frame number. When importing a mesh, check the "Import Animation sequence" in the import dialog and select the .obj file of the first frame. VP will then load all other frames and, when done, will show you a short message box how many frames were imported. Check the CommandReference.txt for the new primitive animation script functions.
  • bumper cap, base, ring, skirt can be set to invisible separately
  • add one-way trigger mesh (TriggerWireC type)
  • changes to bumper material: add separate bumper ring material and don't use a built-in texture for the bumper base and skirt anymore
  • add a physics setting per material to the material manager. Settings are: Friction, elasticity, elasticity falloff and scatter angle. This allows for tweaking all physics settings in the material manager for all 'similar' table elements (with the same material) at once. (If you like you can still overwrite the settings for each element separatly though)
  • extend the EOSTorque effect to both entering and leaving the EOS zone and add additional EOS Torque Angle to make this range configurable This allows for more flipper tricks without having to dial in unrealistic flipper settings
  • output table information if paused
  • start camera/light tweaking mode with 'F6'
  • for a quick Desktop(DT) vs Cabinet(FS) camera view testing: hold 'shift' or left flipper button during the table start to choose between the default DT or FS camera
  • texture size limit/downscale now respects aspect ratio. Also delete outdated 512 max limit and introduce a new 3072 max limit.
  • enable park position also for non-mech (digital) plunger
  • fix dynamic bulb mesh light not rendering issue
  • remove some debugging script editor output messages
  • fixed that the ball size was not updated in the pause debugging menu
  • see CommandReference.txt for the changelog of all the scripting properties/interface changes
  • add DOF controller configuration also to the VP keys dialog
  • new core scripts by mfuegemann and controller modifications by arngrim, plus solenoid modulation by DJRobX (see core.vbs for changelog (3.51 and 3.52))

VP 10.1.0 Changelog

  • add (tangent space-)normal mapping support to primitive
  • add EOSTorque to the flipper physics settings. This value/factor effects the way how long a flipper arm stays in the up/raised position even when you released the flipper button. On real pinballs it will take some time until the flipper solenoid loses it's power until the flipper drops down or is forced to move by a hitting ball.
  • add DefaultBulbIntensityScale also to the table ball property to scale/dampen the intensity of the bulb lights on the ball
  • add abilty to show the image size in the image manager for each texture
  • add an "Update All" button to the image manager for updating all images without any further inquiry. Only an error message is shown after updating, if some images can't be updated (e.g. files not found).
  • add support to import/export backdrop POV(Point Of View) settings to a XML file. It's under File->Import->Backdrop POV or File->Export->Backdrop POV
  • fix/extend support for different user-selectable physics presets and also save as XML file
  • hit shape of the rubber object refined
  • rubbers also now have an extra HitHeight property to further decouple the collision detection from the actual visible rubber height. Also the HitHeight isn't affected by the z-scaling.
  • spinner and gate animation reworked
  • add a "Raise Delay" setting to drop targets
  • drop targets (not hit targets) have an additional dropped and raised event that is fired if a drop target is really dropped or raised (after animation of the mesh). The normal hit event is also supported but decoupled from the animation, so if a hit event is fired the isdropped flag can still be false because it is set after the animation.
  • add DMD image connection (if enabled in script) for flashers (and also as checkbox for textboxes)
  • add support to assign left/right flipper button to left/right mouse buttons and middle mouse button to plunger key (this can introduce less lag for the flipper buttons, compared to using a keyboard remapper)
  • "Throw Balls In Player" mode can now be activated permanently in the Preferences->Editor menu, also you can define the default ball size for this mode. The ball size for this mode can also be defined in the debugger menu.
  • new video preferences
    • add support to overwrite the ball image/decal texture globally
    • optional post-processing of the internal DMD (via scaleFX algorithm, smoothes the output similar to FXAA)
    • add SBS (Side by Side) and Interlaced 3D Stereo mode outputs
    • resurrect exclusive fullscreen mode (note that this will not allow to let other windows show up, like VPinMAME)
    • add 10bit output for all compatible graphics cards and monitors (non-HDR/Rec2020 for now, just plain sRGB), needs exclusive fullscreen mode for now
    • possibility to disable desktop composition (only works on Windows Vista and Windows 7 systems, can reduce lag and/or increase performance)
  • combine all common user-tweakable table settings in one simple UI panel in the table options
  • new core scripts by mfuegemann and PROC controller modifications by arngrim
  • hotkeys.txt added, containing all editor shortcuts
→ [retro] Visual Pinball v10.0.0

VP 10.0.0 Changelog

The next generation of Visual Pinball finally arrives! due to this, VP10 breaks a lot of backwards compatibility for ramps, lights, physics, colors/images/materials, and more, so most existing VP9 and VP8 tables will not work correctly or will even output script errors when run, -but they will load-, so you can reuse all existing work!

  • TL.DR up-front conversion hints:
    • pull lightsource->ambient down to 0,0,0 (or at least a small value to avoid loss in fidelity of the colors)
    • crank up lightsource->emission to 255,255,255 and tweak the color from there (to get a good contrast on the shading)
    • tweak the lightsource->height and the two emission-scales (and try to keep the light range really really really large before tweaking the rest of the light parameters!)
    • if doing nightmods, try to avoid manually toning down all images and materials, but rather just use the light emission settings
    • including the new night->day slider (this will allow the user to tweak the brightness of the table on his/her own afterwards)
    • revisit all physics settings, even if you used VP9Physmod(5) before (only the re-enabled friction and scatter in the physmod5 case though)
    • take a look into the new material editor and assign a material to each object on the table
    • use flashers when doing special lighting effects/gi-changes/night mods (and tweak existing ones by playing with the opacity (can be >100%) and modulate options),
    • otherwise try to stick with the newly redone (bulb-)light elements (flashers and bulblights are cheaper to render than other elements)
    • revisit CommandReference.txt for all commands that have changed names/behavior, were replaced or deleted
    • a special thanks has to go out to our awesome alpha testers/improvers: Unclewilly, JPSalas and JimmyFingers!
    • for all the changes regarding the core vbs script file package (like cvpmTrough,cvpmSaucer,BallMass,UseVPMDMD,UseVPMColoredDMD, the Controller abstraction (DOF,B2S,VPM,EM) and the new Coindoor key functionality) look into core.vbs for the full changelog
    • physics mostly redone (also previously known as 'physmod(5)') due to this it is now also possible to enable vsync without physics sideeffects like stutter or bad aiming (set FPS limiter to 1)
  • additional changes since physmod5, note that these will also -force- you to revisit existing physmod5 physics table settings:
    • friction is no longer ignored (e.g. it was always constant at 0.3 before) on the playfield, walls, slingshots, primitives, ramps, gates (and more?!)
    • scatter is no longer ignored for kickers and all kinds of collisions. also the global fallback behavior was changed: only if scatter < 0 then the global scatter value (=0.5) is used (before it was also used if scatter=0)
    • elasticity, elasticity falloff and scatter are now exposed as new playfield properties (before these were fixed at elasticity=0.2 and the other two at 0)
    • import/export of the physics options sets is fixed and can be used again
    • flipper properties strength,mass,return are wired up correctly and can be used from the script again
    • collision heuristics are adapted for all ball sizes (e.g. different from the default radius of 25), so it should be safer to use strange ball sizes now
    • (note: remember to always also tweak the ball mass if changing the ball radius (the kicker now supports CreateSizedBallWithMass),
    • as otherwise you will get a "floaty" ball (mass = k*radius^3)), thus (hopefully) no more ball-falling-through-playfield problem
    • add IsBottomSolid to Walls to have Walls optionally completely closed (bottom was always open)
  • the data-format of the physics sets (*.vpp files) is basically the same, although the parameters inside are different, so unfortunately you need to set them up from scratch again
    • kicker physics changed: The kicker bevel will influence the ball's motion and won't grab the ball like a magnet anymore. The old behaviour can be set via the 'Legacy' checkbox and is recommended for 'invisible' kickers like the trough as it can be much faster. Also use 'Legacy' on kickers that are (ab)used as triggers (e.g. to create balls once or 'warp' balls).
    • changed the plunger physics to make the launch behavior more linear and controllable, for both keyboard and mechanical plunger interfaces
    • added new plunger visual styles, Flat and Custom, along with new properties for more control over the appearance; it should now be possible to create a photo-realistic plunger with the precise appearance desired using the built-in plunger object
    • Select Elements dialog improved. It shows the type of the element and if supported the used images.
    • new Camera & Light Mode added to the Table menu. This mode starts the player in a special mode where you can change backdrop & lighting settings with the following keys:
      • left flipper key = decrease value
      • right flipper key = increase value
      • left magna save key = previous backdrop/light option
      • right magna save key = next backdrop/light option
    • new setting in the video preferences to setup rotation for cabinet mode (or otherwise standard desktop) this allows a table to be used in/setup for both DT and FS by setting the backglass options correctly for both modes
    • adjust cabinets: in the video options select "Cabinet anti-stretch the ball" and depending on your screen you can enter a correction offset for the aspect ratio. If you use a 16:9 screen use a correction offset of X=0.0 and Y=1.5. For a 16:10 screen use X=0.0 and Y=0.0 for best results. This option only applies to rotated and fullscreen rendered tables (cabinet mode)! Even with this option you might need to adjust the backdrop settings. The biggest problem for an egg-shaped ball is the Layback value. Values over 70-80 are way too high and should be lowered. The scaling can become a problem too. To find a better POV with a round ball over the playfield do the following:
      • set the min/max slope to 0 and start the table in Camera Mode (menu Table -> Camera Mode)
      • enter debug mode and activate "Throw balls in player"
      • drop balls all over the table and adjust the POV settings
    • new table field height setting in the "Dimension & Slope Settings":
      • Now you can define a real playfield height. If this value is raised, all elements on the table are also moved by that amount.
      • For example: "table field height"=50 means everything on the table is raised by 50 units. This allows for real ball tunnels and more.
      • objects can be placed -under- the playfield or move 'through' the playfield (think Ringmaster or Trolls)
      • and will still be visible through alpha channel/cutouts in the playfield image (note that only -dynamic- objects will show up though, due to restrictions in the engine)
    • new rubber element rubber object can be rotated around the X/Y/Z axis and shown in the editor if the checkbox "Show In Editor" is checked
    • the thickness of a wire trigger can be scaled. 0 is the default thickness. To make it thicker use values like 0.5, 1, 1.5, 2...
    • spinners are mesh based. If the spinner bracket isn't the right one disable the "Show Bracket" settings and you will only see the spinner plate.
    • introducing drop/hit target element. A drop/hit target is now a separate VP element. It is mesh based and different shapes can be selected from a drop down list. A target fires a hit event and has it's own timer like walls when used as drop targets.
    • kickers are mesh based. In the kicker settings you can set "Fall through" so that if a ball hits a kicker(hole) the ball will fall through the surface which is attached to it. This only works if the wall is higher than the playfield, it won't work if the hole is on the playfield.
    • gates are mesh based. Another option was added to the gate element "Two Way" if set the ball can roll from both sides through the gate
    • flippers can now feature an image
  • add material editor. quick and basic explanation:
    • First of all select if you want to design a metal material (steel, gold, silver, aluminium, etc) or any other one (plastic, wood, rubber, etc)
    • Then select the base color of your material (note that this can/will be modulated by the (optional) image on your object(s) later-on, so if you need your object image to look as true to the original as possible, set the base color to full white, otherwise you can also just use the base color to change the brightness or colors of the object image)
    • If you selected a non-metal material you can now in addition add some subtle reflectivity via the glossy layer color (otherwise simply set it to full black, but leave at grey to full white for a more natural behavior)
    • Then select the shininess of your material (0.0 means very very dull reflections, 1.0 means perfect mirror-like reflections), of course this only has an effect on metals or if you used the glossy layer
    • For some materials it can now also be realistic to add an additional clearcoat layer on top of everything (otherwise simply set it to full black)
    • After testing the look of the material on an object (use a curved one if possible, e.g. the default rubber (with thickness >30) or a complex primitive), you can tweak the edge brightness parameter: Usually it should just be left at 1, but if you think the edges are unnaturally bright, reduce it
  • pro tip:
    • In nature, each object has a bit of glossy, so try to -never- set the glossy layer to full black on non-metal materials!
    • assign sound-,image-,material- and collection-manager to hot keys (F2,F3,F4 and F8)
    • new shader based inserts/lights/bulbs/ bulbs are special in many aspects:
      • They optionally feature a built-in mesh that "emits" light to the viewer
      • One can use them to add a lighting effect over other elements (use the Modulate option to blend between additive (0) and multiplicative (1) behavior, try to keep this around 0.9 to best support the day->night slider)
      • In addition they can be used to add a lighting effect from below for all transparent materials (like playfield plastics and transparent ramps) via the Transmit option
    • new shader based mesh ball
    • new shader based materials/lighting (full HDR pipeline)
  • due to the new lighting and materials the orientation of vertex normals on imported primitives is now extremely important! to test if everything is correct, try to tone down the environment emission scale and see if all your objects are correctly lit -only- from above
  • always try to tweak the two lighting components (some lightsources above the table plus the environment image light surrounding the table) separately by setting one of the two emission scales to 0 and then configuring the other one on its own
  • the new environment image -must- be in Latitude/Longitude format (see for example http://gl.ict.usc.edu/HDRShop/tutorial/tutorial04.php), and also keep the resolution low (512x256 should be enough)
  • the night->day slider will scale these two lighting components, and in addition the script now offers NightDay, which returns the range in 0..100, so that additional tweaks can be done in the script, depending on this value this night->day setting can also be set automatically via the video preferences, but requires to fill in the correct latitude and longitude of your location (in decimal degrees,-90..90 (North positive) and -180..180 (East positive), like openstreetmap.org does)
  • new (optional) playfield reflections
    • This option is a table option and can't be blindly activated on all tables. Because authors have so many different ways to build tables it's nearly impossible to handle the reflection in every case. If you're building a table and you want to use this option the following rules apply:
    • the reflection only applies on the playfield not on upper playfield areas or separate walls used as a playfield.
    • don't overdo the reflection strength of the ball/playfield reflection. Depending on the playfield texture a value around 50-120 should be good enough. Otherwise it looks unnatural.
    • don't use decals of the size of the playfield as an overlay or you won't see the reflection neither.
    • the reflection effect is actually very simple. VP flips all static elements on the z-axis (z=0) and renders them into a texture. This texture is blended over the playfield. Therefore special care must be taken
    • for mesh primitives. You have to set the pivot point of a mesh well. If you try to compensate a wrong pivot point in VP by adjusting the xyz position it could result in a wrong mirrored element. You will notice it
    • because e.g. a mirrored post isn't mirrored under the actual post instead it's rendered a bit below on the playfield and the reflection looks odd.
    • if needed, disable certain elements from the reflection via the respective flag in its options
    • Ball reflection on playfield can be enabled/disabled via script for separate balls with "ReflectionEnabled". For example when you create a new ball from a kicker then: kicker1.CreateBall.ReflectionEnabled=1 activates the reflection on the playfield
    • new (optional) color grading step like in movies or photography, one can now add an (almost) artificial color grading step at the very end of the rendering process (see https://docs.unrealengine.com/latest/INT/Engine/Rendering/PostProcessEffects/ColorGrading/index.html and skip to 'Color Correction' to learn more about how this is supposed to work and for a clean 1:1 mapped 256x16 LUT texture to start with, the default table also includes one as ColorGradeLUT256x16_1to1.png) you can load the 256x16 LUT texture via the Image Manager like any other image, and then select it in the Backdrop->Colors&Formatting options (it can also be changed dynamically via the ColorGradeImage variable of the table in the script, for example to change the look of a table completely (invert colors, make everything red/blue/whatever, etc))
  • only after -finishing- up a table completely, you should use this functionality as the very final beautification step! (also make sure that there is not already a LUT selected in the backdrop settings when you take the screenshot in VP for the further tweaking)
  • do not save the new LUT texture as jpg, but rather as lossless png or bmp!
    • images/textures transparency is now -only- based on the alpha channel of the loaded images, no transparency color/hack support anymore
    • images can now feature high dynamic range (HDR), via the .exr and .hdr file formats, which is supported on:
    • the ball image (use the Mirror Ball Map format, see http://gl.ict.usc.edu/HDRShop/tutorial/tutorial04.php),
    • flashers and (pass-through-mode-)lights and the background image (don't know where to get useful HDR images for these though),
    • and -especially- the environment image (use the Latitude/Longitude format, again see http://gl.ict.usc.edu/HDRShop/tutorial/tutorial04.php)
    • add new PlayHit() and PlaySlingshotHit() function to the bumper / wall. If called the bumper/wall will play the hit animation as if a ball hits the element but without triggering the actual hit event.
    • add LastCapturedBall function to the kicker element. It returns the last captured or the current captured ball. If no ball could be found or the ball is already destroyed an error message will be displayed
    • EM Reels do not feature raw Text/Font input anymore, only Images (this was already unsupported in 9.9.X, but is now officially discarded)
    • internal DMD support (access via script, input levels are 0..100 (or RGB/0..255 for DMDColoredPixels))
    • to display the DMD, use a TextBox with the magic keyword "DMD" as text
    • to be able to connect to VPM, use a recent VPM (2.6 or newer) and a recent core.vbs (3.44 or newer) and follow the instructions there
    • DMDWidth, DMDHeight, DMDPixels (or DMDColoredPixels) to steer the DMD added to Table Script methods
    • improved smoothness for ramps (centripetal Catmull-Rom splines)
    • ramps can now in addition use the height parameter of their control points (its used as an offset in addition to the normal ramp behaviour)
    • in the editor: control points of ramps have a new read-only "Real Height" information. The "Height Offset" is just an offset for the current height.
    • E.g.: Top/Bottom height of the ramp is 100. If you add 25 to the "Height Offset" the "Real Height" shows 125. This is more important if you use a sloped
    • ramp with bottom height 0 and top height 60 and add new control points on the ramp. The height information is interpolated from one control point to the
    • next one, so the "Real Height" shows you this value and the "Height Offset" can be used to easily adjust the height.
    • changed opacity/transparency handling for ramps (Alpha/Acrylic have been deleted, only the material opacity value is supported now)
    • the control point for the bottom ramp has a blue color to identify which side of the ramp isthe bottom one
    • GetElement, GetElementByName, GetBalls added to Table Script methods to have simple access to the elements and all active balls on the table
    • OnBallBallCollision(ball1, ball2, velocity) can be used as a Callback in the script to handle Ball to Ball collisions
    • renamng of IsVisible properties (flasher, ramp) to Visible
    • a whole lot of script-editor changes:
  • Dwell Tool Tip
    • When the mouse pointer is left to "dwell" over a keyword, the Script Editor can display additional information:
    • e.g. for: 1056 dim scoringTimer:scoringTimer = 0 'How long DOUBLE SCORING will go on
    • The actual definition of the keyword. [dim scoringTimer]
    • The line number of the definition of the keyword. [Line 1056]
    • Any help/comment associated with the keyword. [How long DOUBLE SCORING will go on]
    • Dwell start time and the display of the help/comment may be adjusted in the Code View preferences.
  • Highlighting
    • This is done by keywords that fall into the following categories:
      1. Visual Basic reserved words.
      2. Table Script Subs, Functions, Dims, Consts, Properties and any member of these.
      3. Table components.
      4. Visual Pinball Core.vbs file.
      6. Literals
      7. Default Text
    • The following properties of each keyword may be adjusted in the Code View preferences:
      • Active, font, color, size, bold, italic, etc. If a keyword is already defined outside the table script it will be highlighted in the original definition color, but the dwell tool tip will be of the re-defined keyword in the table script.
  • Auto complete
  • Suggestions which keywords are displayed in a dropdownbox underneath your typing according to the characters you have typed. The number of typed characters before suggestions are displayed can be adjusted in the Code View preferences.
  • Word highlightingWhen double clicking a word it will be highlighted throughout the Table Script.
  • two new methods of ball decals added. If 'Logo mode' is unchecked the decal texture will be additively blended based on it's alpha values. This way you can add scratches to the ball (see the default table for an example). In 'Logo mode' the decal texture is blended as an overlay (blend mode 'Screen' in Photoshop/Gimp) to apply a logo or a second image on the normal ball texture.
  • flasher supports custom shapes and multi texturing. You can define two separate images and define a filter to blend these two images. in addition there is now a modulate option to define how the flasher blends with the underlying elements (0(=full additive)..1=(only modulate), try to stick with something like 0.9 to best support the day->night slider) plus the opacity and amount parameters can be set to values > 100% to fade a set of flashers in/out easily you can use the IntensityScale in the script, so that you do not need to use different opacity values look into the CommandReference.txt for additional changes to the functions that can be used
  • collections can now group elements together. If you enable 'Group elements together' flag and you click on one element of the group all other members of that group are selected. So you can move/scale/rotate them without multi-select element by element. If you want to select just one element of that group just shift-left click on the element and you can manipulate only that element. Unchecking the 'Group elements together' flag disable this feature for this collection.
  • ctrl+mouse wheel zooms in/out. The old way of using ctrl+left click for zooming in and ctrl+right click for zooming out is still possible.
  • enable "Throw Balls in Player" mode, and by pressing the middle mouse button a ball will fall from the table glass height onto the table. This way you can place some balls on tables if a wall is used as the playfield.
  • extend right click behavior for multi-select to hidden items
  • the property menu can now be a floating window (old behavior can be restored in the editor options)
  • remove old shadowing code and replace it with optional screen space ambient occlusion
  • additionally one can also enable ambient occlusion for dynamic objects (via the global video preferences and also the table options)
  • its not necessary anymore to manually override the texture filtering quality in the global gfx cards options (NVIDIA control panel, etc) if you need HQ filtering, please only use the checkbox in the VP video preferences instead
  • new 4x Anti-Aliasing mode that does brute force oversampling (can optionally be combined with VPs builtin FXAA or the control panel FXAA/SMAA/etc for even more smoothing)
  • add third mode for FXAA: extreme (and retweak the quality FXAA mode)
  • 3D stereo now also works on most Intel and AMD systems, not just on NVIDIA
  • removed 3D stereo AA, its always enabled now
  • added 3D stereo offset, which can be used to offset the table "into" or "nearer to" the monitor
  • add flag "Alternative Depth Buffer processing" to the video options use this option if you get the corresponding error message on table launch
  • adaptive vsync works again, it will disable vsync automatically if FPS drop below monitor refresh rate (not on windows XP though due to missing functionality there) enable it by setting the FPS Limiter to 2 (1 will still be using 'real' VSync and any number above the monitor refresh rate (usually 60Hz) will just limit the FPS)
  • additional note: remember to -not- disable Aero on Windows 7/8/10 to be able to use vsync!
  • optional texture compression to save some gfx video memory (at the cost of rendering quality and loading time) (for now the textures have to be a multiple of 4 in both x & y resolution to make them compressable. this can be abused though to 'disable' texture compression on certain critical textures by making them -not- a multiple of 4)
  • support primitive vertex sizes > 65535 and redo primitive drawing in the editor-UI (there is now a new setting for each primitive, set to 0 to switch to the old approximate drawing mode (usually fast), 1 to draw each and every triangle (usually slow) or inbetween to approximate the outlines of the object (lower values are faster)) primitives can optionally be reduced for the use in the physics core (so that highly detailed objects do not cause stutter on collisions) by setting the new 'reduce polygons' options (0=no reduction and no slowdown on loading .. 1=high reduction of polygons and slower loading)
  • export of the entire table to an .obj file (Menu File -> Export -> OBJ Mesh)
  • mesh import dialog added. The options are:
  • * "Convert coordinate system": Converts a mesh to the left handed coordinate system used by DirectX
  • * "Center mesh to it's midpoint": The midpoint(pivot) of a mesh is calculated and the whole mesh is moved so that the midpoint is at the origin (0,0,0)
  • * "Place at primitive's position": The old/normal placement function. The mesh isn't moved and will be placed relative to the primitives base position
  • * "Place at mesh's absolute position (use mesh's middpoint)": The mesh is transformed so that it's midpoint(pivot) is at the origin (0,0,0) and then moved to it's absolute position
  • where it was placed in the 3D editor (e.g. Blender)
  • The last option is useful for the following workflow:
  • 1. export the table as one huge .obj file (File -> Export -> OBJ Mesh)
  • 2. import this obj file into your 3D editor
  • 3. place additional meshes on the table or replace existing objects
  • 4. export each object you have added or replaced into a separate .obj file
  • 5. import each .obj file and in the import dialog select "Place at mesh's absolute position (use mesh's midpoint)" so that the object's pivot point will be the object's midpoint and the base position of the primitive is changed to the position from the 3D editor
  • * "Import mesh's material": Loads the corresponding .mtl file and adds the first material in that file. For instance: if the mesh .obj file is called "bumper.obj", then there should be a file "bumper.mtl" in the same directory. But only some basic material settings are imported due to the limited .mtl format, for Blender the used material parameters are:
  • Blender diffuse color -> VP base color
  • Blender specular color -> VP glossy layer
  • Blender specular hardness -> VP shininess value
  • Blender transparency alpha value -> VP opacity amount
  • When imported the primitive has the imported material automatically assigned. Note that any textures aren't imported automatically though, this must be done as usual with the help of the image manager.
  • add additional debug mode when pressing F11 multiple times to visualize the content of only the static buffer. this can be used to optimize for performance by trying to put as many elements as possible into this buffer, for example:
  • objects that are un-necessarily using a material with opacity enabled
  • objects missing the static rendering flag (if there is one for this type)
  • walls that can drop but never use this flag
  • reactivate old VP9.0 easter egg (and improve it :))
  • new external audio library for music playback (BASS) this allows to use different formats than just MP3, e.g. OGG
  • use miniz library to compress primitives
  • 64bit port (handle with care, might still cause issues)
  • script editor updated to use custom extensions within Scintilla (based on 3.6.2)
  • technical compile note: make sure to install Microsoft SDK 5.0,7.0A,7.1 or 7.1A, if you compile VP and get missing header errors (optionally set the include path incwinsdk)
→ [retro] Visual Pinball v9.9.0

What's New in Version 9.9.0:

  • rendering engine has been ported to DirectX 9 and now takes much better advantage of 3D hardware
  • Region Updates, Region Optimization, Alternate Render are not needed anymore due to the new graphics pipeline and have been removed
  • true fullscreen setting has been removed due to incompatibility with VPinMAME. Instead, a windowed fullscreen option has been added to the list of video modes
  • add options for wire ramps (define diameter and distance x/y of wires)
  • add sphere mapping to wired ramps if an image was assigned to a wired ramp
  • add CurrentAngle function to spinner
  • add depth bias option to flasher, light, primitive and ramp to fine tune depth sorting
  • enable NVIDIA Optimus cards by default
  • new video setting: Force anisotropic texture filtering. This results in higher quality results, but can affect performance on lower end cards stereo 3D AA is now basically for free and can always be enabled if stereo 3D output is used (currently stereo 3D is limited to NVIDIA only though)
    Note that the depth/parameters of stereo had to be changed. As a positive side effect, the two stereo parameters are the same for most tables now, so there is now a global setting in the video preferences. These can still be overwritten per table though.
  • FXAA now has two modes: Fast (similar to old setting) and Quality
  • new FPS limiter field in Video Options:
    • 0: disable frame limiting
    • 1: enable vsync
  • If set to anything higher than the monitor refresh rate, the engine will limit the FPS to this rate (but of course without using real hardware vsync). Adaptive vsync had to be disabled for now for compatibility with Windows XP.
  • new field "Maximum prerendered frames" in Video Options:
    • Lowering this value will reduce input lag and sometimes also stutter, but may come at a performance cost.
  • running as administrator is no longer required (except for tables which write high scores to system directories). UAC setting removed from executable.
  • updated to latest FreeImage.dll (3.16.0)
  • script editor updated to use latest scintilla (3.4.1)
  • technical note: the minimum version to compile VP is now visual studio 2008 (incl. feature pack)


→ [retro] Visual Pinball v9.2.1
  • this is the final release to be based on DirectX 7
  • - add "To Collection" to the context menu to assign a selected element to a collection
  • - add moving of single selected collection in the collection manager
  • - add CurrentAngle() function to the gate object
  • - add "Is Toy" checkbox to disable collision handling on mesh primitives completely.
  • - add collision detection to mesh primitives together with hit threshold and hit event
  • - add Z offset to the backdrop options. With this settings you're able to zoom in/out the table without changing FOV/Inclination/Layback settings
  • - add Z scale option to the backdrop options. With this setting you're able to reduce/increase the overall depth of a table.
  • - add table dimension manager for an easy way to calculate real table dimensions into VP table units and vice versa
  • - add a ball throwing feature to VP. To use it check "Throw Balls in Player" in the debug window (ESC -> "Debug Window") and by left clicking and holding the left mouse button you create a new ball and it throws the balls in that direction you move the mouse cursor when you release the left mouse button. If you click on a non moving ball you can reuse that ball and no new calls will be created. A right click on a ball will remove that ball from the table.
  • - add touch support for tablets (windows 8 and upwards)
    • current mapping:
    • upper left - add credit
    • middle upper left - left magna save/2nd button
    • middle lower left - left flipper
    • lower left - start
    • upper right - quit (press for 2 seconds to exit VP completely)
    • middle upper right - right magna save/2nd button
    • middle lower right - right flipper
    • lower right - plunger
  • - add Alpha-Flasher element. Use this element to add (additive) alpha flashers instead of abusing the alpha ramp element. The flasher is a 'dynamic' element, that means it is not pre-rendered
  • and it'll be updated every frame.


  • If 'Display Image In Editor' option is selected and the flasher is rotated the image won't rotate due to a DX7 limitation.
  • If the flasher is not an additive alpha flasher you can colorize the image with 'Color' if you don't want that effect set the color to blank white (RGB 255,255,255).
  • - add height offset to bumper element
  • - add additional (optional) parameters to PlaySound to increase/decrease the frequency, apply all the settings to an already playing sample and choose if to restart this sample from the beginning or not
  • all parameters are now: PlaySound "name",loopcount,volume,pan,randompitch,pitch,useexisting,restart
  • pitch can be positive or negative and directly adds onto the standard sample frequency
  • useexisting is 0 or 1 (if no existing/playing copy of the sound is found, then a new one is created)
  • restart is 0 or 1 (only useful if useexisting is 1)
  • - per table setting of adaptive vsync (-1 = default, 0 = off, 1 = automatic detection, anything else: refresh rate in Hz)
  • - change per table settings for AA, FXAA and ball reflection (-1 takes the default from the video preferences, 0 forces off, 1 forces on)
  • - tweak key input code to save one frame (or more?) of lag
  • - change the old 'Physics Max.Looptime' setting to 'Physics Max. Loops'
  • it allows to specify the maximum number of iterations spent in the physics update.
  • by setting it f.e. to 1, the rendered frame updates will -always- match the physics updates, everything above 1 allows for multiple physics updates per frame
  • (2, 3 or 4 can be good values for this, as it slows down the physics temporarily if the FPS drop below 50, 33 or 25 in these cases).
  • - import/export of global physics options sets
  • - import/export of local/table physics options sets (that could then be reused globally of course and the other way round)
  • Note that for local/table export the first found flipper is used to export the flipper physics settings (and for import all flippers will be assigned with the same settings)
  • - add optional ball trails/motion blur (also adjustable per-table)
  • - add script option 'DisableLighting' for balls to disable lighting. This also allows to change the color of the ball via 'Color' directly
  • - add enabled flag to flippers
  • - separate/new texture maps for the lighting of lights (more details) and bumpers (brighter)
  • - fix problem with DMD/VPinMAME window being hidden behind VP window
  • - secondary/backglass sound output (by DJRobX)
  • if a sound effect contains 'bgout_' in the name or '* Backglass Output *' in its path then it is played via the secondary sound output (music always)
  • this can also be done with existing tables by using the new 'To BG Out' button in the sound manager
  • - script editor updated to use latest scintilla (3.3.9)


→ [retro] Visual Pinball v9.2.0

Changes in Visual Pinball 9.2.0

  • alpha ramps can now select to trigger region updates (also via script: Toggle via UpdateRegions or a single one via TriggerSingleUpdate) to avoid having to use the refresh light trick
  • primitives can now select to trigger region updates (also via script: Toggle via UpdateRegions or a single one via TriggerSingleUpdate) to avoid having to use the refresh-light trick
  • add 'real' 3D mesh primitives, these can be loaded via .obj files (for example exported out of Blender)
  • add lighting option for primitives
  • add sphere mapping to 3D mesh primitives (useful to fake reflections)
  • add static rendering feature to primitives: if you set the 'Static Rendering' option, the primitive will be pre-rendered and you can't change any parameters from within the script. This is helpful if you want to use 3D meshes for posts or toys which won't be animated at all.
  • add static rotation for primitives (ObjRotX, ObjRotY, ObjRotZ) to change the basic orientation of a primitive. The old rotation/translation settings animate the primitive.  all rotation/translation settings can be used out of the script.
  • rotation/translation of primitives can be changed from within the script with the properties .RotX, .RotY, .RotZ, .TransX, .TransY, .TransZ, .ObjRotX, .ObjRotY, .ObjRotZ or for backwards compatibility you can use .rotandtrans0-8
  • add configurable lightsources: point, directional, spot; these share the same coordinate system as the table geometry (angle/rotation/scale independent! setting the direction of a directional light to 0,0,0 restores the old behavior though)
  • note that DX7 is still vertex lighting based, thus all lit objects MUST feature reasonable triangulation, like f.e. huge walls (the playfield itself is triangulated 100x100) look at the built-in default table to get a feeling for the setup of these lightsources
  • add exact lighting option to table (if you experience lighting problems with dynamic ramps, primitives or the ball, please enable this)
  • add shadow orientation. In the table options under Lightsources you can change the shadow orientation by adding a factor to X and Y. Doing that you can change the projection of the shadow on the table. This is needed if you use the extra light sources to create a more real lighting/shadowing.
  • add flag to walls and gates to disable lighting and shadows (to assist in using fully artist driven lighting)
  • add flag to light objects to disable the lighting calculations when the 'On Image' is set (so that behavior is the same as when only using a color)
  • add lightmap for light objects: If option "'On Image' Is Lightmap" is checked you can define a lightmap for the on image. If the light is switched on the lightmap is rendered together with the off image.
  • add flag for alpha ramps to optionally use additive blending (to cope with 2D-lighting-hacks like halos/flashers)
  • note that in order to implement fake GI/lighting or flashers via alpha ramps you should follow the following guidelines:
    • if multiple alpha ramps overlap, then the drawing order (see below) and the height level of these ramps have to match, so that the lowest ramp gets drawn first, etc (make sure to move same height alpha ramps to slightly different heights first!)
    • uncheck the 'normal 3D stereo' to not have each 3D user have to do this on his/her own (please do this only for lighting or flashers!)
    • to go for maximum performance disable visibility or the alpha flag for turned off lights/flashers via the script
  • add modern plunger texture mapping support and correct coloring
  • add per-table sound & music volume settings (0..100% scaling of the global VP settings)
  • add per-table software FXAA setting (only works if also enabled in the video settings)
  • add per-table alpha ramp accuracy
  • add per-table region updates and region optimization (-1 takes the default from the video preferences, 0 forces off, 1 forces on)
  • add layering of table elements
  • add selection dialog where you can select one or more elements out of a list of all elements in the table
  • add easy selection mode if you right-click on an element in the context menu you can select those elements which are stacked under the mouse cursor
  • add drawing order (via 2 modes: Hit and Select), you can move elements up/down in a list to change the drawing order
  • Hit: If you click on an element all elements which are over/under that clicked element are shown in the list box
  • Select: If you select a bunch of elements, then the selected elements are shown in the list box
  • add editor panning feature. In the editor hold ALT and move the mouse and the view will change in the direction the mouse was moved.  It just reacts on mouse movements if you don't move the mouse nothing will happen. 
  • add reflection option for balls (configurable per table). If you enable this option the ball is mirrored on the table. With reflection strength you can define how much the ball will reflect.
  • If the value is too high the mirror effect will look odd
  • add fake antialiasing(AA) as a global option in the video settings and a per table setting
  • add 8 sets of global physics options to tweak some of the table and flipper settings that can then optionally override the table settings (when enabled in the table physics options and/or the flipper physics options) 
  • this enables quick changes to flipper and physics settings for a whole bunch of tables (for example to tweak for less input lag or adapt the ball simulation/'speed') 
  • the 8 different sets can be used f.e. to tweak for different hardware generations or the manufacturer
  • add additional (optional) parameters to PlaySound to set the pan and/or randomize the pitch of the played sound effect: Instead of PlaySound "name",loopcount,volume one can now use PlaySound "name",loopcount,volume,pan,randompitch
  • pan ranges from -1.0 (left) over 0.0 (both) to 1.0 (right)
  • randompitch ranges from 0.0 (no randomization) to 1.0 (vary between half speed to double speed) so f.e. PlaySound "FlipperUp",0,0.5,-1.0,1.0 would play the sound not looped (0), at half the volume (0.5), only on left speaker (-1.0), with varying pitch (1.0)
  • look at the built-in default table to get a feeling for the setup of these parameters
  • script editor updated to use latest scintilla (3.3.6)
  • add multi comment/uncomment feature to the script editor
  • add function list to the script editor


→ [retro] Visual Pinball v9.1.5

Changes in Visual Pinball 9.1.5

  • add flag for ramps to optionally make them not influence the 3D stereo rendering (to cope with 2D-hacks like halos/flashers/GI)
  • expose new 'Region Updates' in Video Options (disabling this can be faster on some graphicsboards, especially NVIDIA Optimus Laptops)
  • expose new 'Region Optimization' in Video Options (disabling this can help issues with NVIDIA AA, enabling this can help performance and fixes issues with NVIDIA FXAA)
  • optimize alpha ramps a bit
  • enable some caching for DirectX functions to help performance
  • fix more problems with primitive rendering
  • correct issue with adaptive vsync
  • fix some micro stuttering on multi-CPU systems
  • add purely software/CPU-based FXAA workaround (please do -not- enable FXAA in the NVIDIA driver then if you need to use this!)
  • cleanup some of the UI
  • add correct UAC setting (no more 'Run as Administrator' necessary)
  • add large address handling (no more '4GB patching' necessary)
  • replace default ball/lamp images and some of the default table settings (mainly physics related)
  • correct stylized table rendering in backdrop editor view
  • fix command line parser (problems with running tables like playboy from hyperpin, etc)
  • optimizations/small fixes
  • updated to latest FreeImage.dll (3.15.4)
Inne treści związane z tematem
[retro] Speccy Bross [retro] Speccy Bross;
Miła konwersja hitu z salonów arcade - Snow Bros firmy Toaplan. Legenda jest prosta i nieskomplikowana - księżniczka śniegu została porwana, a na jej ratunek rusza dwóch braci Nick i Tom, jednak tylko jeden z nich może temu podołać. Nick rusza w drogę aby wyswobodzić ...
[retro] R-Type 128K Remake [retro] R-Type 128K Remake;
Jedna z naważniejszych gier wśród automatowych strzelanek, po latach doczekała się, genialnie przygotowanego remake dla komputerów Amstrad Schneider. Co prawda, w roku 1989 ukazała się wersja tego hitu przeportowana na CPC, jednak w porównaniu ze współczesną jest ...
[retro] Abbaye Des Morts [retro] Abbaye Des Morts;
Dość zabawny przypadek kiedy gra stworzona tak aby udawała grę na 8-bitowy komputer stała się pierwowzorem dla prawdziwego tytułu dla ZX Spectrum - tak było ze świetnym tytułem l'Abbaye des Morts autorstwa Locomalito z 2010 roku na PC. Dopiero 4 lata później udało się ...
[retro] Cousine Horace [retro] Cousine Horace;
Każdy kto choć przez chwilę miał styczność z ZX Spectrum zna Horacego - dziwnie pokracznego bohatera z 3 gier z wczesnych lat osiemdziesiątych wydanych przez Melbourne House, który a to próbował naśladować Pac mana ("Hungry Horace"), a to zjeżdżając na nartach i ...
[retro] ZEN [retro] ZEN;
Stary i dobry pomysł - połącz wszystkie elementy na planszy w nowej aranżacji, tym razem autorstwa Einara Saukausa (Hobbit 128k), może przykuć nas na dłuższą chwilę do emulowanych i prawdziwych Spektrusiów. Sporo poziomów, całkiem niezła muzyka autorstwa Mr.Beep'a, ...
Do ściągnięcia
vpinball 10.3.1-t2e.pl.7z
Dodatkowe informacje