Necroing once more to let you know I've just written a tutorial on how to run the game on your cab over at the PinballX forums.
Maybe it'll be useful to someone, so I'll copy it here.
Your mileage may vary, of course, but I'll explain the scripts I use as best I can. You also have to edit the game's config file, but it's a simple text file, so no problems there.
Part 1: THE KEYS
Required keys:
- Flippers (obviously)
- Walking left and right
- Enter (Interact)
- Space (Inventory)
- Tab (Map)
- Escape (Go to Menu)
I've used an AutoHotKey script to remap the keys on my cab as follows:
- Flippers remain Left Shift and Right Shift.
- Walking is mapped to the Magnasave buttons, Left Control and Right Control
- Enter remains mapped to the Launch Ball button, but I've also mapped it to all the other game buttons I have on my lockbar, namely F, H and J.
- Escape is mapped to my Start button (1). The start button brings up the pause menu in most console games, so why not here too :-)
- The Exit button kills the game process and the key mapping script.
- Inventory and Map are mapped to my Coin (5) and "Change View" (i) respectively. If you don't have a "Change View" button, you could try mapping it to a buy-in button if you have one.
Note that I also have a joystick on my cab, which can be useful for up and down movement in the pause menu and when selecting your game slot in the beginning. If you don't have up and down movement, you should still be able to play, but you can only select slot 1 at start.
Here is the script I use:
(Copy and save as keys_yoku.ahk)
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
~LControl::Left
~RControl::Right
$1::Esc
$Esc::
{
Process, Close, Yoku.exe
}
Return
~f::Enter
~h::Enter
~j::Enter
~5::Tab
i::Space
Part 2: THE CONFIG FILE
You should find the game's config file, config.csv, in C:\Users\[YOUR USERNAME]\AppData\Roaming\Villa Gorilla\Yoku's Island Express . Simply open it with Notepad or a similar text editor.
saveslot;0
language;
video_mode;windowed
video_resolution;0,0
video_exclusive_fullscreen_resolution;0,0
video_hud_enabled;1
video_trilinear_filtering_enabled;1
video_colorgrading_enabled;1
video_bloom;0
video_vingette_enabled;1
video_grass_enabled;1
video_grass_physics_enabled;1
video_shrubbery;1
video_caustics_enabled;1
video_extrude_enabled;1
video_maximum_frame_latency;1
video_texture_quality;0
video_vsync;1
video_gpu_skinning;0
volume_sfx;10
volume_music;10
volume_rumble;10
ui_platformicons;-1
ui_show_options;0
ui_show_quit_to_desktop;0
ui_show_boot_logos;0
demo_attract_mode;0
demo_demo_timer;0
demo_idle_timer;0
timer_enabled;0
The important changes are:
video_mode needs to be set to windowed
ui_show_options needs to be set to 0: This will stop players fiddling with your windowed/fullscreen/settings.
ui_show_quit_to_desktop can be set to 0 but doesn't have to. Since the Exit button quits the game, showing a quit option in the menu is not really needed.
ui_show_boot_logos set to 0 speeds up the start, the Team17 and Villa Gorilla Intro videos are skipped and the game starts right away.
Part 3: GETTING THE GAME ON THE BACKGLASS
Here is where more AutoHotKey scripting comes in.
I'll paste the script with annotations explaining what everything does.
(Copy and save as run_yoku.ahk):
#NoEnv Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn Enable warnings to assist with detecting common errors.
; SendMode Input Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% Ensures a consistent starting directory.
#SingleInstance force
; Stop user input from being registered until the script has done everything it needs to do
BlockInput, on
; Run the game. You need to change this line to fit your directory.
Run, C:\games\YokusIslandExpress\Yoku.exe
; Cover the playfield monitor in black
Gui, Color, black
Gui +AlwaysOnTop
Gui -Caption
Gui, Show, x0 y0 w%A_ScreenWidth% h%A_ScreenHeight%
; Wait a bit, then set the game window as active
Sleep, 500
WinActivate, Yoku's Island Express
Sleep, 500
; Wait a bit more to make sure everything is active so far (you may have to change the 3000 value depending on how fast your machine is), then run two important scripts
Sleep, 3000
; Run a script that will monitor the game process and will kill all necessary programs if the game is no longer running
run, ifitexists_yoku.exe
; Run the key remapping script
run, keys_yoku.exe
; Just some precautions that helped me in the past on other Windows games...
; These may not even be needed here, but this should remove any Windows-style frames around the window.
; You can probably delete these lines now that I think about it, since the game is set to windowed fullscreen.
WinSet, AlwaysOnTop, ON, A
WinGet, id1, ID, A
WinSet, Style, -0xC00000, ahk_id %id1%
; Move the game window to the Backglass monitor.
; This assumes that your Backglass is monitor 2 and your Playfield is monitor 1.
; Change the 1920 value to whatever the width of your Playfield monitor is. My resolution happens to be 1920x1080.
Sleep, 100
WinMove, Yoku's Island Express, , 1920, 0
; Maximize the game window, resizing it to the width of your Backglass monitor.
; I need this step because my Backglass has a resolution of 1600x1200.
; If I moved the game window without resizing, it would bleed over onto my 3rd screen,
; since the game window would still be at a width of 1920.
Sleep, 100
WinMaximize, Yoku's Island Express
; Again, not sure if this is still needed.
; In some other Windows games, a command input window would pop open in the background, and this will hide it.
Sleep, 1000
WinHide, C:\Windows\System32\cmd.exe
; Finally, re-enable user input.
BlockInput, off
Part 4: THE "IF IT EXISTS" SCRIPT
As you can see above, the start script not only runs a key remapping script, but also another script to see if the game is still running.
This script monitors the yoku.exe process. While it's running, the script will take no action.
If yoku.exe is no longer running, the script will kill the start script and the key mapping script, and also remove the black GUI that was put over the playfield.
(Copy and save as ifitexists_yoku.ahk):
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
ProcessName = Yoku.exe
loop {
Process, Exist, %ProcessName% ; check to see if it is running
If (ErrorLevel = 0) ; If it is not running
{
Gui, Destroy
Process, close, keys_yoku.exe
Process, close, run_yoku.exe
ExitApp
}
Else ; If it is running, do nothing.
{
}
}
Part 5: THAT'S IT
So here you are. I know some parts of the scripts may be clunky and/or redundant (which is partly a result of me recycling some of my scripts for other games and partly a result of me not being a programmer), but they work for me. Have fun and let me know if it worked for you!