Search the Community
Showing results for tags 'ahk'.
Found 2 results
Carny_Priest posted a topic in User ProjectsHi, following up on this thread, http://www.gameex.info/forums/topic/15882-visual-pinball-mini-dmd-screen-3-b2s-for-apron/ , I've added a new feature: a flash viewer that displays instruction and score cards associated with the table. Requires ffmpeg and Adobe flashplayer http://ffmpeg.zeranoe.com/builds/ https://get.adobe.com/flashplayer/ As a demo, here's a crappy phone video https://dl.dropboxusercontent.com/u/45430846/afm.MOV This is a kludgy solution requiring multiple scripts, but it supports swf and png formats (same as PBX) including animated instruction cards. The downside is that all of the instruction card media that is available on the FTP or at VPForums are oriented for viewing on the BG screen which is usually configured for landscape. VP Cabinet tables are rotated in the program to be viewed in portrait but the screen back buffer is still oriented in landscape. This means that the media that I want to display on the apron must also be rotated. Sadly, I found a high percentage of the media could not be directly converted and rotated. So, I could not just simply convert files from the PBX Instruction Cards folder on-the-fly. I had to do screen caps and rotate the resulting images and store them in a folder prior to running the script. I have a batch script that will be included in this post. The output will need to be stored in a separate folder, and secondary score or price cards should be stored in a new folder named "Score Cards". By default I scale the images using the aspect ratio for Stern and latter day Williams/Bally as reference here: http://www.pinballrebel.com/pinball/cards/Card_sizes.htm It is possible to properly scale and display all the rotated images by manufacturer, but that might be a future update. Similar to the previous script, the correct media is displayed based on matching file names to entries in VisualPinball.xml. Matching images for the table are presented in a loop until VP is closed. I've attached a generic Instructions card and a Score card which I display at the beginning of the loop. In my collection, I have an instruction card for every table installed. So, between the generic card and the card associated with the table, I always expect that there will be multiple images to loop. Instruction cards are displayed on the left side of the apron. I don't have score or price cards for most tables, so the generic price card would be all that there is to loop. Rather than loop the same image, I have some code to check the number of files in the loop and if it is just 1 image then the program will not loop. Score cards are displayed on the right side of the apron. The script assumes the playfield aspect ratio is 1920x1080. If your screen is something different then the script must be tweaked to properly scale the images. I have not tested against all tables, but hopefully the images are not covering any play areas. The X,Y coordinates for displaying the images are user configurable. Consider where the instruction and score card images will be displayed, and leave room for the mini-DMD which will be automatically placed below the instruction and score card. The scaling of images is automated based on the the width of DMD defined in the VPM registry or in screenres.txt along with the Filter setting in the User Input section at the top of the script, so that the card images will be lined up directly over the mini-DMD. Card_Width is a failsafe setting in case there happens to be a table installed that does not use VPM and B2S is set to False in the xml. I haven't tested it. I'm not sure I have that situation in my install. The amount of time each images will be displayed before looping to the next is also user configurable at the top of the script. This is definitely for advanced users. This requires a custom xml as explained in the thread for the previous script. I may also be using different VP executables, so the script may require tweaking to fit another install. This is a secondary script for looping instruction cards. It must be compiled and named DisplayCard1.exe This is a secondary script for looping score cards. It must be compiled and named DisplayCard2.exe And here is the ffmpeg batch converter for rotating instruction cards for use in the viewer. You define where the source images are and the script will convert and save the images in %A_ScriptDir%\rotate.arrayc is where you define any animated instruction cards. There are not many at all that I could find. STAT at VPF created the two I put into the array. When the script encounters these files during processing ffmpeg will make a 30 second capture, rotate, and save as an swf file. I originally pursued this solution hoping that the text on the instruction card images would be more legible than what VP tends to render. But I have a standard width table and a 39" screen. It's still a pretty small area, so I don't think it looks much better or clearer than what VP was already doing. But since any sort of video or image content can be displayed, it becomes another creative platform for people to do interesting mods. I hope to see more animated cards or custom backgrounds for the mirrored DMD/B2S: This would be possible with some tweaking to the main script: https://pinside.com/pinball/forum/topic/watch-that-dmd#post-1043384 https://pinside.com/pinball/forum/topic/dmd-extender/page/2#post-754826 Cheers!
stigzler posted a topic in FAQs, Guides, & Other Useful InformationScenario: You want a button on your keyboard/controller/ipac etc to act as a shift key when used in combo with another button, produces a third button. For example, holding down "#" and pressing f produces "Alt+Ent." My scenario: Have 8 'function' buttons on my cab which map to various keys via a keyboard hack - e.g. "]" + "h" + ";" Wanted to be able to press the 2P button (mapped to 2 on minipac) to act as shift to send different keys to emulators. For instance want to send "p" from holding down "2" and pressing ";" (for pause). The problem: 1) I don't know the technicalities, but many emulators use different methods of 'getting' keys in their menus. Lots will register the first key you press. For example, in example above, when it says "press key now" you'll hold down the 2 to press the ";" but 2 will register as first key pressed (this applies to the advanced emulator config remap in GameEx) 2) Because of key repeat, you might end up with repeated "p"s being sent resulting in successive pause,unpause,pause etc... 3) In Auto Hot Key - one method will work with one emulator and another with another (something to to with Direct send + sendkeys method or something) - therefore, one size won't fit all. These Scripts: a) When first press down key that will be shift - doesn't send the key (e.g. pressing 2 doesn't send 2 on key down) If you release key without selecting another, you get "2". You can also disable this. c) You can set it so that the shifted sent key (e.g. "p" in the example above) does not repeat - vital if have function buttons. d) can also set the buttons that you use with the 'shift' key to also not repeat when pressed on their own (again, for function buttons this can be useful) e) You can set the shift key to either work like a shift key (that is you can shift several keys one after the other without letting go of the shift key) or you can require that the shift key is released before accepting another function. Solution: 1) Download AutoHotkey 2) Copy the two scripts below, paste into notepad (I'd recc "Notepad++"). Save them as "Method A" and "Method B" in your GameEx directory under created folder "AHKs and scripts" or something like that. Method A: Method B: 3) Get controls working outside of GameEx first. For now, just click on the MethodA.ahk. You'll see an icon in your tray at bottom right. Change the keys therein to match your own (just try one or two to start - a 'shifted' and 'unshifted' function). Test in notepad fisrt to ensure some key mapping. Then test in your emulator. If Method A works, goto (5) 4) If you can't get Method A working... try Method B!! Same drill - setup couple of trial keys - try in emulator etc.. Once working... 5) Save your working script. Right click on the AHK file and select "Compile Script" - it'll produce an .exe - save this somewhere, but keep the AHK in case you need to edit in the future. 6) Set up GameEx to start the AHK script on emulator launch and to kill it on emulator close. To do so: 7) Create the following .bat file (cut, paste to notepad, save with .bat extension), which will kill any specified running process in task manager: 8) Go into Plugin manager and the QuickLaunch plugin. 9) Select your Emulator and then "Add" 10) Make up a name in "Process name" 11) Select your AHK exe in process exe 12) No arguments (!) 13) Select "Launch Before" then Save. (this will launch your AHK script when Emulator loads) 14) In same Emulator, create another to kill the process, but this time: - Select the bat file you just created as the exe (you can change the viewed file types in the file select menu) - In the Arguments section put the name of your AHK exe surrounded by quotes. E.g.: "Nintendo64_remap.exe." 15) Select "Launch After" You should get something like this (my filenames obviously different) And that's it! I'll update below emulators I've tested this on, the relevant Method and anything noteworthy. Hope this saves someone a bit of time, coz it was a bit of a trial sorting this! Emulators and configs: DesMume (Nintendo DS) - Method B Cannot configure Alt+Enter in menu - do via remap of a hotkey to Alt+Enter. Demul (0.5.8.2) (Dreamcast+Atomiswave+Naomi) - Method B required manual mappings (can't config in menu or .ini - do in AHK script) Pause key - Pause F6 - Aspect Ratio F5 - Rotation F9 (??) - read somewhere that this is screenshot but can't get this working at all! Can't find hotkey guide for this anywhere VisualBoy Advance (Gameboy Advance) - Method A ProSystem (Atari 7800) - Method A Manual remaps: Ctrl+R - Reset ("^r" in AHK) Ctrl+L - Load CTRL+P - Pause Virtual Jaguar (Atari Jaguar) - Method A OK.. bored of this bit now... drop a reply if you need any more of these! Strictly an on demand service.