Carny_Priest Posted March 25, 2016 Share Posted March 25, 2016 Hi, I managed to figure out how to flip the pyprocgame display for my cabinet so I installed the cool Cactus Canyon Continued project on my cab. http://soldmy.org/pin/ccc/index.php?title=Main_Page The code for the Visual Pinball port is here: http://vpuniverse.com/forums/topic/2286-cactus-canyon-continued-proc-in-vp/page-9#entry26310 Arngrim's DOF mod of the vpx table is here: http://vpuniverse.com/forums/topic/2286-cactus-canyon-continued-proc-in-vp/?p=27382 dB2S and wheel image here: http://vpuniverse.com/forums/topic/2286-cactus-canyon-continued-proc-in-vp/?p=27835 Requires the P-ROC to VP framework. Install files and instructions here: https://bitbucket.org/horseyhorsey/pyprocgame-evildead/wiki/Home or http://www.vpforums.org/index.php?showtopic=32197&page=3#entry320603 The table runs with official VP10. However, Cactus Canyon Continued requires an older set of VBS scripts, found here: http://vpuniverse.com/forums/topic/2286-cactus-canyon-continued-proc-in-vp/?p=26345 It's a truly complicated setup process, but well worth it as the project adds a lot to the original which was rushed to market in a relatively incomplete state to make way for the doomed Pinball 2000 platform: http://soldmy.org/pin/ccc/index.php?title=New_Things_in_..._Continued Plus more since that page was updated: more bandits, more callouts, a brand new built-in service menu, and full color virtual DMD: Because the table requires the old VBS scripts then there has to be a separate VPX installation. I also use a DMD display resolution that is different from any other tables I run to best accommodate the available options that come with Cactus Canyon Continued. So, I setup a totally separate system in PinballX.ini and use a dedicated script for launching the table (It works best for three screen cabinets): Spoiler #NoEnv #SingleInstance force SetTitleMatchMode, 2 DetectHiddenWindows, On ; USER INPUTS antimicro_Path=c:\antimicro Run, "%antimicro_Path%\antimicro.exe" --no-tray --hidden --profile "%antimicro_Path%\profiles\VP.joystick.amgp" Run, dc2.exe -configure="%A_ScriptDir%\dc2config\CCCSettings.xml",, Hide Run, "C:\P-ROC\Visual Pinball\vpinballx.exe" -play "C:\P-ROC\Visual Pinball\Tables\Proc_CC.vpx",, Min WinWait, Microsoft Visual ahk_class #32770 WinClose, Microsoft Visual ahk_class #32770 WinWaitActive, ahk_class VPPlayer checkVPPlayer: IfWinNotExist, ahk_class VPPlayer { Run, dc2.exe -configure="%A_ScriptDir%\dc2config\4KSettings.xml" Run, taskkill /im antimicro.exe /f,, Hide } else { Sleep, 1000 Goto, checkVPPlayer } ExitApp ; *********************************************** ; CloseVP from FPLaunch CloseVP: ;toLog("CloseVP Called") ;Hotkey, %exitScriptKey%, Off ;GoSub rosveClose ;GoSub bigbossClose ; change loops completely, put all data in xml !!! too slow ;Visual Pinball must be closed this way instead of killing process ;or it wil not save your last game information.i.e score/credtis ;DetectHiddenWindows on ;Or next line will not work ;Loop, 4 ;Gui, %A_Index%: Destroy ;This line fixes where the VP Window flashes real quick ;when closing the window for a cleaner exit ; win hide removed cause vp should be minimized, not hidden ;WinHide, ahk_class VPinball ;WinShow, ahk_class VPinball WinMinimize, ahk_class VPinball WinClose, ahk_class VPinball WinWaitClose ahk_class VPinball ; bigbossclose won't get executed cause main thread will exit ;GoSub bigbossClose ; there's no need for exitscript cause main thread will do it ;Goto ExitScript return ; *********************************************** #IfWinActive ahk_class VPPlayer ; Interlock Switch ; i:: ; Send {End} ; SetTimer, WaitForJoy7, 10 ; Return ; WaitForJoy7: ; if GetKeyState("Joy7") ; return ; Send {End} ; SetTimer, WaitForJoy7, off ; Return ; Exit Table e:: Gosub CloseVP Return #IfWinActive And here is my script for generating media. It is tailored to my particular hardware setup using NVidia DSR 4K and a non-native resolution for my DMD display. Modify the ffmpeg capture parameters to best fit your setup: Spoiler #NoEnv #SingleInstance force #WinActivateForce SetTitleMatchMode, 2 DetectHiddenWindows, On ; User inputs PinballX_Path=c:\PinballX FFMPEG_Path=c:\ffmpeg\bin Audio_Device="Stereo Mix (Realtek High Defini" ;Audio_Device=""What U Hear" (Creative SB Audi" Run, "%PinballX_Path%\Scripts\dc2.exe" -configure="%PinballX_Path%\Scripts\dc2config\CCCSettings.xml",, Hide Run, "C:\P-ROC\Visual Pinball\vpinballx.exe" -play "C:\P-ROC\Visual Pinball\Tables\Proc_CC.vpx" WinWait, Microsoft Visual ahk_class #32770 WinClose, Microsoft Visual ahk_class #32770 WinWaitActive, ahk_class VPPlayer Sleep, 5000 ; Allow time for table score display to get well beyond loading and boot images ; Fastest Capture ; Run, %FFMPEG_Path%\ffmpeg -t 70 -rtbufsize 1500M -f dshow -i audio=%Audio_Device% -f gdigrab -framerate 30 -offset_x 0 -offset_y 0 -video_size 3840x2160 -i desktop -c:v libx264 -preset ultrafast -qp 0 -c:a copy -threads 8 "%A_ScriptDir%\playfield.mkv",, Hide Run, %FFMPEG_Path%\ffmpeg -t 70 -f gdigrab -framerate 30 -offset_x 0 -offset_y 0 -video_size 3840x2160 -i desktop -c:v libx264 -preset ultrafast -qp 0 -threads 8 "%A_ScriptDir%\playfield.mkv",, Hide Run, %FFMPEG_Path%\ffmpeg -t 70 -f gdigrab -framerate 30 -offset_x 3840 -offset_y 0 -video_size 3840x2160 -i desktop -c:v libx264 -preset ultrafast -qp 0 -threads 8 "%A_ScriptDir%\bg.mkv",, Hide Run, %FFMPEG_Path%\ffmpeg -t 70 -f gdigrab -framerate 30 -offset_x 7680 -offset_y 292 -video_size 1280x320 -i desktop -c:v libx264 -preset ultrafast -qp 0 -threads 8 "%A_ScriptDir%\dmd.mkv",, Hide WinActivate, Visual Pinball Player WinWaitActive, Visual Pinball Player Process, WaitClose, ffmpeg.exe, 80 Process, Close, %ErrorLevel% Run, taskkill /im vpinballx.exe /f,, Hide WinKill, Form1 Run, "%PinballX_Path%\Scripts\dc2.exe" -configure="%PinballX_Path%\Scripts\dc2config\StandardSettings.xml",, Hide ; Post Capture Trim and Transcode Run, %FFMPEG_Path%\ffmpeg -y -i "%A_ScriptDir%\playfield.mkv" -ss 5 -to 65 -vf [in]rotate=PI:bilinear=0[middle];[middle]scale=1920:-1[out] -map 0:0 -c:v libx264 -crf 26 "%PinballX_Path%\Media\Cactus Canyon Continued\Table Videos\Cactus Canyon Continued (Original 2012).f4v" Run, %FFMPEG_Path%\ffmpeg -y -i "%A_ScriptDir%\bg.mkv" -ss 5 -to 65 -vf "scale=1920:-1" -c:v libx264 -crf 26 "%PinballX_Path%\Media\Cactus Canyon Continued\Backglass Videos\Cactus Canyon Continued (Original 2012).f4v" Run, %FFMPEG_Path%\ffmpeg -y -i "%A_ScriptDir%\dmd.mkv" -ss 5 -to 65 -c:v libx264 -crf 26 "%PinballX_Path%\Media\Cactus Canyon Continued\DMD Videos\Cactus Canyon Continued (Original 2012).f4v" Process, WaitClose, ffmpeg.exe ; Clean up FileDelete, %A_ScriptDir%\playfield.mkv FileDelete, %A_ScriptDir%\bg.mkv FileDelete, %A_ScriptDir%\dmd.mkv ExitApp If your setup is not that complicated and you make use of the alternateexe tags to run a different VPX installation. It's quite doable to just put this in the standard Visual Pinball.xml database and use PBXRecorder. You will need an alternate script to handle the Runtime error box that inevitably pops up with P-ROC controller based tables: https://github.com/horseyhorsey/proc-loader-pinballX Lots of ways to manage the install and get it working with PinballX. I tried to mod the code to include flipping the DMD as an option in the service menu, but I'm new to Python and couldn't get it figured just yet. I wound up "hardcoding" a solution for myself. I'm probably the only one running this in a P2K style cabinet, but if someone happens to need it then I can make the code mod available upon request. 4 Quote Link to comment Share on other sites More sharing options...
bent98 Posted November 28, 2016 Share Posted November 28, 2016 Carny I figured out how to get the CCC DMD to display on my Pin2dmd, the problem when I run dmdext to mirror it onto my pin2dmd, CCC gets alot of ball stutter. I am running a 3.6ghx quad I5 and gtx980ti so the system should be able to handle it. My settings are below. Are you having stutter issues? Color Display Pixel Size: 4, Color Display X Offset: 25, Color Display Y Offset: 25, Then my command line for dmdext is: dmdext mirror --source screen -p 25 25 512 128 --no-virtual I also tried this as it moves CCC dmd to my 2nd monitor and still has same stutter. Display Pixel Size: 4, Color Display X Offset: 2350, Color Display Y Offset: 635, dmdext mirror --source screen -p 2350 635 512 128 --no-virtual Quote Link to comment Share on other sites More sharing options...
Carny_Priest Posted November 28, 2016 Author Share Posted November 28, 2016 Aesthetically, I would place the DMD on the backglass. Of course, I run using true FS. Before, you deal with that. You will need to deal with ball stutter. Troubleshooting: Does it eliminate ball stutter to run without DMDext? Sent from my iPhone using Tapatalk Quote Link to comment Share on other sites More sharing options...
bent98 Posted November 28, 2016 Share Posted November 28, 2016 yes there is only ball stutter when using dmdext and only with CCC. I use dmdext with FX2 without and performance issue. I don't run true FS. I was also hoping there was a way to make the dmd disappear like FX2 instead of having it on the BG. Quote Link to comment Share on other sites More sharing options...
Carny_Priest Posted November 28, 2016 Author Share Posted November 28, 2016 Well, apples and oranges. FX2 is not the same thing as VPX with P-ROC, with B2S, with DOF (I assume), etc. Do experiment with true FS. It's been around since the stable release of 10.1, I believe, so it is not like it is a brand new feature. It's solved ball stutter issues for a lot of users. Toggling Vsync on/off may help. I always keep it off. Some people prefer to have it on. Walk back on features that require more resources (AA, alternate ball images, playfield reflection, ambient occlusion, elements detail level slider, etc.) Wait for a built in processor affinity feature for VPX and/or B2S. It's so new that it has not even been released as beta yet, but I expect that it may be out soon. It may help as well. It's all I've got to suggest. I don't really have issues with CCC. There are long and currently active threads at VPF that are all about ball stutter. It's technically possible to pipe frames from p-roc directly to a real DMD. I don't know how to do it, but I don't have a personal need for this feature either so I won't be teaching myself how to do it. It doesn't appear that anyone else has shown an interest either. Whatever solution someone codes would only benefit that one game right now, so it's not very motivating. You might put in a request at freezy's dmdext repository. He might take a look at it. He might have a little more time now that vpdb is launched. Who knows? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.