So I have a pretty powerful machine (i940 cpu + 2 gts 250 1gb cards) and the ball is stuttery with the alpha ramps *only on this table*. My guess is this is due to the layered ramps, and lots of them. I have moved the alpha slider all the way left, and the issue is better but not resolved. This is the only table which I have this issue. Flintstones also uses this option but has less ramps, and not overlapping ramps. I have no stutter there at all. Note, this isnt real stutter. The ball just looks a bit jumpy when its moving slow. When it's moving quickly you cannot notice.
Anyways, the problem is non existent when using non HD render mode. Of course, this is a global setting and cannot be changed per table any longer.
Therefore, to solve this for us cabinet users, I have modified my fplaunch script a bit and thought I would share how I did this for anyone else that doesn't know how to fix it. With this method, it will run the specific tables without HD Render leaving the rest in full HD Render mode, assuming you have HD Render generally checked.
Small disclaimer: I really don't know much about autohotkey programming. I'm a driver writer by trade and figured this out as I went. There are likely better / more efficient ways of handling some of these things.
Ok the general approach I took was that I added the ability to insert a text file in the HyperPin/Databases/Visual Pinball directory called hdrenderofftables.txt. In this file, you just list each table name (minus the .vpt) that you wish to render without HD. Then when you launch this table from hyperpin, the visual pinball registry key will be updated disabling this feature, the table run, when you exit out the hdrender registry key will be restored so that the next table does render in HD. Here is the added code:
At the top of the PFLaunch.ahk file add:
extraVPConfigDir = %A_ScriptDir%\Databases\Visual Pinball
Inside the virtual pinball run loop change it to:
else if (systemName = "Visual Pinball" && (executable = "VPinball.exe"))
{
Hotkey, $%exitEmulatorKey%, CloseVP
; Read config file for disable HD rendering tables since this is a global setting now.
HDRenderOffCount = 0
HDRenderOffChanged = 0
; This loop retrieves each line from the file, 1 at a time.
Loop, Read, %extraVPConfigDir%\hdrenderofftables.txt
{
HDRenderOffCount += 1 ; Keep track of how many items are in the array.
HDRenderOffArray%HDRenderOffCount% := A_LoopReadLine ; Store this line in the next array element.
}
; Check if table is in the no hdrender array and write the
VP hardwarerender key to off.
Loop %HDRenderOffCount%
{
; The following line uses the := operator to retrieve an array element:
element := HDRenderOffArray%A_Index% ; A_Index is a built-in variable.
if(tableName = element)
{
HDRenderOffChanged = 1
RegWrite, REG_DWORD, HKEY_CURRENT_USER, Software\Visual Pinball\Player, HardwareRender, 0
break
}
}
; This part was here like before
Run, "%emuPath%\VPinball.exe" /play -"%tablePath%%tableName%.vpt",,UseErrorLevel
WinWait, ahk_class VPinball
WinHide, ahk_class VPinball
WinWait, ahk_Class VPPlayer
Gui, destroy
Process, WaitClose, VPinball.exe
; Add this to the end of the code block to reenable hardware render option for next table load
if(%HDRenderOffChanged% != 0)
{
RegWrite, REG_DWORD, HKEY_CURRENT_USER, Software\Visual Pinball\Player, HardwareRender, 1
}
}
Note (slightly off topic), I have also taken a similar approach to modifying the FPLaunch script to lower the system volume for tables like DR Dude, this table, and some others that are very loud and do not have vpinmame methods to lower the volume. This way I do not have to reach for the volume knob each time I load these tables. If anyone thinks it's more valuable, I can start a new thread and share all the fplaunch mods I've done.
BigBoss - Thanks for this!! - This has been something that has been driving me nuts for weeks. You should start a new thread for sure to docement this for others that have been having the exact same issues as I have seen many people that also would find this extremely handy.