Jump to content

All my products and services are free. All my costs are met by donations I receive from my users. If you enjoy using any of my products, please donate to support me. My bare hosting costs are currently not met so please consider donating by either clicking this text or the Patreon link on the right.

Patreon

Carny_Priest

Elite Member
  • Posts

    916
  • Joined

  • Last visited

  • Days Won

    19

Everything posted by Carny_Priest

  1. So, what did you do to solve it? By the way, I run a variation on Horsey's script and I never had a problem with directB2S. I don't see PinballX having much to do with it. It is VP that launches directB2S, not PinballX. Granted, I'm not running any toys.
  2. Bug fixes - Can now match on tables with commas in the description tag No more missing arguments in launching the DisplayCard scripts Changed window for instruction cards and score cards to 700x400. Images displayed in "default" mode which retains the aspect ratio of the source image. Re-scaled the initial Instruction.png card. Added a Table Info.png card. Score cards now loop after an initial Table Info card in displayed. Both are zipped in attached archive. The file also includes some price cards that I pulled from Stern and Inkochnito. I colored the Stern cards to match their spec. Did a little tweaking to the exit routine. But it basically functions the same way as before. There some customizations for my own setup. I'm running VP in 4K and downsampling using NVidia DSR. I call the first script VPLaunch DisplayCard1 #NoEnv #SingleInstance forceSetTitleMatchMode, 2DetectHiddenWindows, On SCORE_Path=%1%Filter=%2%Mirror1PosX=%3%Mirror1PosY=%4%Mirror2PosX=%5%Mirror2PosY=%6%description=%7%XTable=%8%DMD_width=%9%CardWidth=%10%DisplayCardTime=%11% IfExist, %SCORE_Path%\%description%* cardmatch:=1IfExist, %SCORE_Path%\%XTable%* cardmatch:=1If cardmatch=1 { StringGetPos, pos, Filter, ) Scale:=SubStr(Filter, 11, pos-10) StringGetPos, pos1, Scale, / If ErrorLevel=0 { Num:=SubStr(Scale, 1, pos1) Denom:=SubStr(Scale, pos1+2) Num1:=Num Denom1:=Denom Scale:=Num1/Denom1 } ; Card border - want to retain the same width and scale the height to preserve the aspect ratio; a common size is 700px x 382px http://www.pinballrebel.com/pinball/cards/Card_sizes.htm; we'll see how 700px x 400px goes If !(DMD_width>0) DMD_width:=CardWidth CARD1_width:=Floor(DMD_width*Scale+23*2) CARD1_height:=Floor(DMD_width*Scale*400/700+4*2) CARD2_width:=CARD1_width-23 CARD2_height:=CARD1_height-4 GUI4W:=CARD2_width-23 GUI4H:=CARD2_height-4 GUI4X:=Mirror2PosX+4 GUI4Y:=Mirror2PosY+23 ; Show instruction cards; http://www.autohotkey.com/board/topic/56987-com-object-reference-autohotkey-v11/page-13 Gui, 3: +LastFound -Caption +AlwaysOnTop -SysMenu GUI3_ID:=WinExist() Gui, 3: Color, 000000 WinSet, Region, 0-0 %CARD1_height%-0 %CARD1_height%-%CARD1_width% 0-%CARD1_width% 0-0 4-24 %CARD2_height%-24 %CARD2_height%-%CARD2_width% 4-%CARD2_width% 4-24 CardList1=%SCORE_Path%\Table Info.png`n Loop, Files, %SCORE_Path%\%description%* CardList1=%CardList1%%A_LoopFileFullPath%`n Loop, Files, %SCORE_Path%\%XTable%* CardList1=%CardList1%%A_LoopFileFullPath%`n WinWaitActive, ahk_class VPPlayer Loop { Loop, Parse, CardList1, `n { If A_LoopField= ; Ignore the blank item. Continue getSwfFromDisk=%A_LoopField% GoSub DisplayCard } } } ExitApp ; *********************************************** DisplayCard: Gui, 4: +LastFound -Caption +AlwaysOnTop -SysMenu GUI4_ID:=WinExist() Gui, 4: Color, 000000 Gui, 3: Show, W%CARD1_height% H%CARD1_width% X%Mirror2PosX% Y%Mirror2PosY% NoActivate Hide Gui, 4: Show, W%GUI4H% H%GUI4W% X%GUI4X% Y%GUI4Y% NoActivate Hide Gui, 4: Margin, 0 ,0 DllCall("AnimateWindow","UInt",GUI3_ID,"Int",1,"UInt","0xa0000") DllCall("AnimateWindow","UInt",GUI4_ID,"Int",1000,"UInt","0xa0000") Gui, 4: Add, ActiveX, W%GUI4H% H%GUI4W% vpwb, ShockwaveFlash.ShockwaveFlash pwb.movie := "file:///" . getSwfFromDisk pwb.bgcolor := "#000000" pwb.scale := "default" ;noborder/default/exactfit/noscale ;pwb.wmode := "direct" ;window/opaque/direct/transparent/gpu Sleep, %DisplayCardTime% Control, Hide,, MacromediaFlashPlayerActiveX1, ahk_id %GUI2_ID% DllCall("AnimateWindow","UInt",GUI3_ID,"Int",750,"UInt","0x90000") DllCall("AnimateWindow","UInt",GUI4_ID,"Int",750,"UInt","0x90000") Gui, 4: DestroyReturn I have a workflow for creating media from custom cards that people publish on the Internet. I try to obtain or produce media with very high quality, and it is do-able here but with limitations. I was pleasantly surprised that the majority of images that I have worked with so far do have dimensions consistent with the manufacturer documented dimensions found here under Card Sizes: http://www.pinballre.../pinball/cards/ So, producing images although still a manual process is pretty quick and easy. I use GIMP 2. It will open just about all image types and import from PDF. Open an image or import a PDF page with images. I just drag and drop and select what I need in dialog windows. Tools/Selection Tools/Rectangle Select. Use the default settings in the Tool Options dialog. Use the mouse/cursor to draw a rectangle roughly around the image. Image/Crop to Selection Then Autocrop Image. In a small portion of cases, the resulting image might require some additional cropping (if the image includes cut guides or was specifically providing larger borders for trimming printed reproductions. Use the mouse/cursor to draw a rectangle, and the size of the crop area can be fine tuned with the Position and Size options in the Tool Options dialog After cropping, check Image/Print Size... the dimensions should be consistent with a real card from that manufacturer. Most of the time it is. Sometimes you have to change the X/Y resolution. To retain the aspect ratio of the cropped image make sure the chain symbol is linked. Change the resolution until the print size is consistent with a real card. Click OK File/Export As... Choose a name. Select File Type. Use PNG image. Click Export. You will get a dialog where there are settings that can be toggled on/off. Just use the default as it appears and click Export. The file is ready for PinballX with no loss in quality. You could take the output to a printer. You'd probably still want to take the source file to the printer rather than the output though. You could use the SWF files from the FTP. But they would still need to be rotated for use by the script. The batch converter I wrote can do it but it does it by taking a screen grab. There is some loss in quality. Probably better off just taking a high quality scan or reproduction and generating a PNG from the source and using that image rather than the SWF. I have updated the batch converter. ffmpeg captures for SWF media are now processed at the highest quality settings to minimize image degradation. PNG images are rorated losslessly, The script uses convert.exe from ImageMagick http://www.imagemagick.org/script/index.php There are a number of other tools that can be used as well. cards.zip
  3. For instruction cards, currently PBX displays SWF files scaled to fit the BG screen while retaining the aspect ratio of the graphic object(s) within the source file. With PNG files, PBX stretches the image to fit full screen. It's not so bad if the instruction card is plain B&W test. But the distortion is noticeable if you are using custom instruction/score cards whose dimensions were designed to match and replace a real card. It would be nice if PNG behaved the same as SWF. Note: I'd just convert PNG to SWF but I don't have the Adobe tools that can do this without a noticeable degradation in quality. Those online and direct conversion tools don't cut it. Maybe there is another way.
  4. As you pointed out Unit3d is in beta, so no native support for it in PinballX. You will have to code a script to launch Unit3D from a commandline. Unit3D user doc page documents the arguments to launch specific tables. You might take a look at this thread from the time of the alpha release. http://www.gameex.info/forums/topic/13919-unity3d-pinball-alpha-and-pinballx/
  5. Thought for sure putting in the path would fix it as it is what worked for others using the script. There are places where you would need to insert the path variable in the middle of the script and again at the end. The script will handle ultra high def. That's not a problem. I capture VP at 4k on my setup. Ffmpeg will crash if you have setup the game to overscan for whatever reason. The position and size of the capture area must be entirely within the desktop. If any part of the capture area is outside of the desktop even by a pixel, ffmpeg will crash. Not that I saw any indication from your settings that this is what is happening, but I didn't sit down with a calculator and check everything either. For the media not getting recognized, turn off PBX file name matching in the Settings Wizard. Then make sure the BG file name is the same as either the game name or the description field in Future Pinball.xml. The names must be absolutely identical. I'd even make sure the case is the same. Copy and paste file names if needed.
  6. In the PinballX.ini (or Settings Wizard), the FP+BAM executable should be FPLoader.exe. Did you copy Future Pinball.exe into the BAM folder? You should not do that, I think. When you run FP this way outside of PinballX and press 'Q' while in-game do you see the BAM menu? You should see it and be able to adjust the table and backglass scale and position, the render engine, the lighting, and so forth. It looks like you are running an older version of the script that has a bug. Take a look at this post - http://www.gameex.info/forums/topic/15207-capture-videos-to-pinballx-media-table-backglass-and-dmd/page-3#entry139563 You need to insert %FFMPEG_Path%\ before each Run instruction that calls ffmpeg. ffmpeg is called in the Fastest Capture section and in the Post Capture Trim and Transcode section Right now, the script is not finding where you have ffmpeg installed. Or you can follow this guide and add ffmpeg in your PATH environment and the OS will find ffmpeg from any place you call for it. http://www.wikihow.com/Install-FFmpeg-on-Windows
  7. Still looking through this. So far, nothing has popped out looking at the script. Is there enough space on the drive where you have the script executable? I'm capturing and writing to interim files with basically no processing or compression so that I don't drop any frames. After the script stops capturing then I process and compress the final set of files. In other words, those interim files can get pretty big. There needs to be some free space on the drive or the script will behave as you described. By the way, which tables do you have that are missing videos?
  8. Let's also see how the screens have been set up. Script assumes the standard set up with DMD to the right of the BG and the BG to the right of the playfield. The top edge are all aligned on the same axis. By the way what tables are you missing videos for?
  9. Need your script to see what has been modified
  10. I need your script, your PinballX.ini, your Future Pinball.xml and a screen shot of your FP video preferences (playfield and backglass) and finally FutureDMD.ini. I'll see if I can figure it out. You are running Win 8?
  11. Could just be that a video got corrupted on download. Redownloading may be the fix. Or the file on the FTP is corrupt. I count vouch for any of that table video media. I don't use them. My experience is that the Shark codec pack on the PBX home page is what works the best. YMMV
  12. Hi, I have a VPCabs build circa 2013. It had a two card setup with a GTX 660 and a GT 610. I have found no performance improvement at all in "offloading a stream" to the 610. I run all three screens off of the GTX 660. I don't OC. I take advantage of NVidia's DSR technology to downsample from 4k to 1920x1080. DSR works with VP (VP 991, physmod, and VP10beta, FP, TPA (DX9 and DX11), PFX2, and Unit3D beta. I completely removed the 610 and haven't looked back. By the way, there is no other option with Unit3d but to connect BG to the high performance card to be able to move the translite to the BG screen. Connecting the BG to the 610 is a non-starter. Use the Shark007 codec pack linked on the PBX home page. I just tested last night an updated Shark007 codec pack and experienced the issue you have with DMD video not playing as well as table and BG videos freezing. I have also tested the internal Win7 codec, and that did not work well for me at all. The codec pack recommended for use on the home page works beautifully for me.
  13. Where did you get the backglass videos? Are you running the Shark codec pack found on the PinballX home page? It is what is recommended.
  14. The script does create interim files from the capture: playfield.mkv, BG.mkv, and DMD.mkv. They would be recorded to the same folder from which you are running the file. After processing these interim files the script will delete them. If you want to have evidence that the script is capturing something, you would comment out the lines near the end of the script that delete these interim files and then try again. If you don't have these interim files then the capturing is failing. Either their is an issue with the script reading your registry or the settings in the registry are considered invalid by ffmpeg (for example you are intentionally or unintentionally under scanning the output on your display. Is the compiled executable for your script set to run as administrator? Are the resolutions defined in your FP Video Preferences the same as what is defined for Windows? In other words the playfield screen is defined as 1920x1080 in both FP and Windows?
  15. Well, that is progress that the script is opening and closing FP. If it launched the correct table then the script is reading in information from your PinballX installation correctly. Just need to get the capture going. Do you have ffmpeg installed? http://ffmpeg.zeranoe.com/builds/ I use one of the static builds. Extract the contents to somewhere on your drive. Enter in the location where you copied over the ffmpeg package to FFMPEG_Path in the User Input section of the script. Set ffmpeg.exe to run as administrator. Make sure any dll files are unblocked. Are you running FP+BAM as an Other System in PinballX.ini? Some people might set up plain vanilla FP under the Future Pinball system and set up FP+BAM as an Other System. I recall that being how it is described in the documentation pdf. My script assumes that you use FP+BAM and have that set up under the Future Pinball system heading. Why would you not use BAM whenever you want to play FP? I see you tried to run a VP file. I assume that this did not capture any videos either. Did it launch VP? Are you using PBX to manage running multiple version of VP? If so, are you managing that by creating different systems in your PinballX Settings (PinballX.ini) or are you using the alternateexe tag in VisualPinball.xml? Do you have AutoHotkey installed on your cab? If so, another way to run the script would be to run as screencap.ahk "file name". It will not work any differently but you might get some debug messages. Or you can examine the run log by right clicking the AHK icon in the system tray. You can examine the Future Pinball profile and config files to see if the script modified any lines and check that the resolution matches the resolution defined in FP, Preferences, Video settings. If they were overwritten with the settings from your Preferences then the script is correctly accessing and reading information from your registry. You can open OBS through the start menu and try to manually capture your desktop through the OBS GUI. This is just as a test. If you get it working this way then it should be a short step to getting to work via the script.
  16. Xpath.ahk is a separate script. You can obtain it at the address specified in the comment above the line #include xpath.ahk. Copy and paste that address into the address bar on your browser. It should take you to a Dropbox link that has the file for you to download. Save xpath.ahk into the same folder where you are have the script. The script captures backglass and DMD at the same time as the playfield but it requires a different program, ffmpeg, to do it. Grab ffmpeg from the link I provided in this thread. You can extract the contents anywhere on your system. You then specify the path to the ffmpeg executable in the FfMPEG_path variable at the top of the script. Set OBS and ffmpeg executables to run as administrator. Make sure any dll files are marked as unblocked. The script can be located anywhere you want on your system. Just be sure that you have some free space on your disk for the raw capture. I name the script capscreens.ahk. Compiling the script creates a file called capscreens.exe. Open a cmd window to access the Windows command line. (Looks like an old DOS screen) use cd command to navigate to the folder where you have capscreens.exe The command is capscreens.exe "full table file name". Where full table file name is the name of the table that you want to capture as found in your Tables folder. Don't forget the extension (can be fpt, vpt, or vpx).. Do include the quotes surrounding the file name. Wait while the script launches the table and captures the screens. Takes about 2 minutes. Then the script will close the emulation and process the captures. The script is finished when all of the ffmpeg windows have closed. Files are saved in your PinballX/Media folders in the correct location with the same file name as taken from your PinballX DMD database for Future Pinball. No need for you to do anything else.
  17. 1. I use the Legacy version of OBS. It looks like the current version is 0.652 Beta. I have not tested this version although I know that 0.651 Beta works for me. I have not tested the OBS Multi-platform. Today was the first time I've seen that they offer a stable Windows release. I'll look into it at some point but for now stick with the Legacy version. I just go to the download page rather than the Home page and download the program as zip and simply extract the contents where you like. See if the script works with that package 2. The error message indicates that you are missing a C++ runtime file. Normally, an app would install this for you, I guess you have not installed any other software that required this. Try the suggestion above and if you still get that error then you will need to install it yourself. I checked to see what my cab has installed and it is only the (x86) version. I don't think it would hurt to install the (x64) version while you are at it, though. The installer for this is here: https://www.microsoft.com/en-us/download/details.aspx?id=40784 3. You do not have to make any other changes to the FuturePinball,ini that I had attached to my post. The script should add the path to the ini automatically.
  18. If you are compiling to an executable, I'd set it to run as administrator. I'd set Pinball FX2.exe to run as administrator also. If you open a cmd window and navigate to where the Pinball FX2 executable is and then run Pinball FX2.exe "your table name", does it work then? Perhaps the non-Steam version does not yet support launching tables from the command line. If not, then you may want to incorporate NukeLauncher into the script. Are you using the table names as they appear in the data_steam folder or whatever the equivalent is for the non-Steam version? This is the folder with the pxp files.
  19. No, the character used to comment in AHK is the semicolon, ; And I would place it at the beginning of each and every instruction line that you do not want executed. I don't have AHK installed in my cab, so I compile an executable on my laptop test bed and then copy over. After you install AHK, you would go into Windows Explorer, right-click the source file with the ahk extension and select Compile Script from the context-sensitive menu. If you do have AHK installed on your cab then you may be able to just point PBX to the source file but I haven't tried to run anything that way. I always just compile into an executable.
  20. Yeah, I forgot about that. This is an important point. I don't use the integrated support because of my need to capture and stream the DMD image for a p2k-style cab. I set up PinballX as an 'Other System' and maintain a separate database. I can't use the integrated support and include the features I need WITHOUT video backglasses freezing or going black. At the time integrated support came online I just kept with NukeLauncher.
  21. Stick to your primary issue - trying to launch anything such that the video backglass does not freeze up. Comment out the bits dealing with remapping keys (antimicro or xpadder if you use that), reversing the DMD image (ffmpeg/ffplay), and removing DMD borders (AHK WinSet command). You can add features back once you have the backglasses working the way you want them to.
  22. I appreciate all the work to provide a two screen option. Maybe upload to the FTP in the meantime until people can fetch their own from YouTube?
  23. Yes, you would need to modify the script. Instead of Run, "%SteamDirPath%\Steam.exe" -applaunch 226980 "%Table%" you might have something like Run, "C:\Program Files (x86)\PinballFX2\Pinball FX2.exe" "%Table%" or whereever on the drive you have PFX2 installed. This is given that you have some later version of PFX2 that supports launching tables directly from a commandline. I have no idea of any non-Steam versions can do that yet. If not, then it would not be difficult to set up the script to use NukeLauncher. You won't need the other AHK that removes borders from the DMD. That feature is built-in to this script. By the way, I'm running Win7 x64. I don't know why it would not work also on Win8, but I don't have a Win8 machine to test the script on.
  24. I coded a script that works for me. It includes the snippet of code that removes the title bar and borders. I never have a problem with the video backglasses freezing or going to black when you launch the game. The secret, at least for me, is that PBX MUST RUN AT THE SAME RESOLUTION AS WHAT YOU ARE RUNNING FOR PFX2. I run PFX2 using NVidia's DSR technology downsampling from 4K. Looks great, but to keep the video backglasses I have PBX also running at 4K. I maintain another script that I run on PBX start-up that changes the resolution to 4K on-the-fly and a third script that changes the resolution back to something legible on PBX shutdown. Not saying that you have to run whatever the Radeon equivalent to DSR is. If you already have both running at 1920x1080, it could be that having PBX launch a script that launches the PFX2 executable instead of having PBX launch the executable directly, is what allows the backglass to retain whatever focus is necessary so that it doesn't freeze or go black when the game starts up. I just posted the script here: http://www.gameex.info/forums/topic/16504-borderless-dmd-script-for-pfx2-not-working-through-pinballx-launch/#entry144806
  25. This is what I scripted for my setup. I use antimicro to map a joystick to keys instead of xpadder but I'm thinking the way you might run xpadder would be similar. Just swap out the lines. I have key 'e' setup to end the session. I have a Pinball 2000 style cab so in order to reverse the image for me to project the DMD onto the playfield I capture and stream the DMD display with ffmpeg. Anything dealing with that can be commented out if you don't need the feature. The script is what actually launches PFX2 via Steam. PinballX launches the script. It's never really worked for me to try to have PBX itself launch anything from Steam. I always have to code a script and have PBX launch the script. This requires the later versions of PFX2 that support launching a table directly from a command line (bypassing the main menu). I did a tweak on the code that hides the DMD title bar and borders. It only executes when the Dot Matrix window exists. No need to kill a separate program or have something sitting in memory taking up resources.
×
×
  • Create New...