Valdis Story: Abyssal City

Valdis Story: Abyssal City

View Stats:
Controls remapping guide (gamepad/keyboard)
By default, game supports keyboard and almost all XInput (xpad and any modern pad) compatible devices, however, support for legacy gamepads (ie DirectInput based controllers) are limited and very buggy (because MS does not support this interface anymore). Due to this fact, further versions of the game will have DirectInput support disabled by default to avoid causing major issues with performance. However, you STILL can use your old pad with this game even with DInput mode disabled. In this simple guide I will explain how. And yes, you can double/remap your Skill Cancel key!

QUICK FAQ:
1. What is this for? Do I need it?
This guide is relevant only to people who use old, outdated controllers (so-called "DirectInput compatible") and have issues with original game version 1.0.20 (low fps, crashes, broken controls) so they had to use beta built called d_input_test (or upcoming version 1.0.21) which only supports keyboards and modern gamepad (so-called "XInput compatible")

2. How does it helps?
By using 3rd party software you can remap your buttons on the gamepad to send keyboard keys to the game which will be pretty much full imitation of working gamepad with no actual limitations.

3. It is only compatible with beta version and old gamepads?
No, some tools listed here can work with new gamepads and with old versions of the game: 1.0.00-1.0.19. They also work with current 1.0.20 but their relevance in this case is close to 0.

4. What is XInput, DirectInput?
Both DirectInput and XInput[en.wikipedia.org] are an API[en.wikipedia.org] from Microsoft that allows you to work with input devices such as keyboard, mouse and gamepads, etc (xinput is only for game devices). First one, DInput, is an outdated and discontinued product and no longer being supported from MS (since 2002), that's why Valdis Story (and many, many other games) had no support for it in first releases. It was added later for Steam release, however, it brought a lot of issues with itself and will be removed in upcoming updates.
Most of the modern gamepad come with XInput support and should work with VS just fine.

5. Can I remap button on my X-pad/Xinput gamepad with these tools?
Umm... yeah, you can, using Autohotkey or X-padder (I think), however, I see little to none sense in it since game allows you to do so natively. The only application of such tools seems useful if you want to make one button do 2 actions at once: like pressing B will initiate Skill Cancel and Cancel action in the menu.



I. RESETTING YOUR CURRENT KEY SETUP/MAPPING (optional)


I.a For 1.0.21 users and d_input_test users:

Just hold BACKSPACE on keyboard for 2 seconds in the controls menu.

I.b For people who use 1.0.20 or lower:

Game keeps all the settings and savegames here:

>v1.0.20 and later (steam)
C:\Users\%USERNAME%\AppData\Local\Valdis_Story_AC\ (Win7/Vista)
C:\Documents and Settings\%USERNAME%\Local Settings\Valdis_Story_AC\ (WinXP)

>prior v1.0.20
C:\Users\%USERNAME%\AppData\Local\Valdis Story AC\ (Win7/Vista)
C:\Documents and Settings\%USERNAME%\Local Settings\Valdis Story AC\ (WinXP)

where:
    [li]vvv*.dat - your savegame file(s)[/li][li]vs_settings.ini - general settings (controls, game settings, current savegame slot, etc)[/li]

To reset your current controls configuration you do the following: back up current vs_settings.ini, open the original file, delete the [Controls] section (from [Controls] to the next [section]) and paste this on its place:

[Controls] global.key_assist_name=q global.key_assist=81.000000 global.joy_assist=32775.000000 global.key_map_name=e global.key_right_name=right global.key_left_name=left global.key_down_name=down global.key_up_name=up global.key_cancel_name=a global.key_accept_name=d global.key_menu_name=esc global.key_magic_name=s global.key_block_name=a global.key_jump_name=up global.key_attack_2_name=w global.key_attack_name=d global.key_map=69.000000 global.key_right=39.000000 global.key_left=37.000000 global.key_down=40.000000 global.key_up=38.000000 global.key_cancel=65.000000 global.key_accept=68.000000 global.key_menu=27.000000 global.key_magic=83.000000 global.key_block=65.000000 global.key_jump=38.000000 global.key_attack_2=87.000000 global.key_attack=68.000000 global.joy_map=32775.000000 global.joy_cancel=32770.000000 global.joy_accept=32769.000000 global.joy_menu=32778.000000 global.joy_magic=32776.000000 global.joy_block=32770.000000 global.joy_jump=32769.000000 global.joy_attack_2=32772.000000 global.joy_attack=32771.000000

Save the file (ctrl+s). Now your configuration was reset to defaults.

BE CAREFUL, DO NOT DELETE ANY OTHER SECTIONS, ESPECIALLY [Player]!
!!! NEVER DELETE THE BACKUP FILES UNTIL YOU TESTED NEW CONFIGURATION !!!


Default configuration:

http://steamcommunity.com/sharedfiles/filedetails/?id=194342863



II. GAMEPAD CONFIGURATION


In order to make old -- DInput -- gamepad work with the game (this applies only to 1.0.00-1.0.19, 1.0.21 and d_input_test beta) we have to make our gamepad send to the game keyboard keystrokes via program Joy2key[joytokey.net]. Basically, J2K works as a wrapper/hooker: when you press a button on your gamepad the game ignores it, because there is no support for your pad, but Joy2key catches it and sends to the game keyboard key that you bound to your game pad key and in the end we have emulation of a working gamepad.

<Download J2K[joytokey.net]>

http://i.imgur.com/VGTStMO.png

Configuration is pretty straightforward there, for each button on your gamepad you associate required keyboard button (Down arrow for D-pad down) so when you press a button on gamepad it sends the same signal as they keyboard key. All we need is to remap all the Valdis Story default keys to gamepad buttons 1-12.

The only problem here is to figure out which button on gamepad what number has. Most of the DrectInput gamepads, even if you didn't install drivers, should have default device configuration window: Control Panel -> Devices and Printers -> USB gamepad. Click on the icon and choose "Game controller settings". You will see something like that:
http://i.imgur.com/bKPTsxO.png

Click Properties:
http://i.imgur.com/f0azZt0.png

Now you can press the buttons on your gamepad to see corresponding button code. Joy2key recognizes the same codes so now, knowing the numbers, you can properly assign keyboard keys to each ButtonX entry in J2K.

If you don't have such gamepad widget in your Control Panel - refer to section III for more info.

!- DON'T FORGET THAT JOY2KEY MUST BE RUNNING WHILE YOU ARE PLAYING THE GAME.

!- BE SURE THAT YOU ARE EITHER RUNNING d_input_test BETA BRANCH OR VERSION 1.0.21 AND ABOVE OR VERSION BELOW 1.0.20



III. REMAPPING KEYS VIA AUTOHOTKEY


Now, this is a bit advanced section. It will teach you how to duplicate skill cancel button/key while keeping original in tact and will help you to determine correct button keycodes for J2K (or, well, AHK can replace j2k).

<Download Autohotkey[www.autohotkey.com]>

1. Remapping/duplicating keyboard controls

Download AHK from link above, install it. Run from the desktop and locate its icon in tray area. Right-click on it and select "Edit this script". Delete everything in the notepad window and paste this;

#IfWinActive ahk_class YYGameMakerYY down::x
where:
x - the original key you want to duplicate, for example: Skill Cancel key (default Down Arrow)
down - the desired key that will be executing the same action.

First line is the condition that limits this script only to YYGameMakerYY class, which Valdis Story uses (but it will affect other GameMaker games with the same class as well, so if you want more precise condition - specify game window title), after that there is a simple remap with simple syntax:
desired key::current default key

Easy, isn't? Keep in mind that original key STILL will be working as well. You can disable it by using "return" function:
#IfWinActive ahk_class YYGameMakerYY down::x x::return

After you done, press CTRL+S (save changes) and close the file. Now right-click on the Autohotkey icon in tray area and select "Reload this script".

MORE INFO: http://www.autohotkey.com/docs/misc/Remap.htm

2. Remapping/duplicating gamepad controls

Now, in case with AHK, this workaround applies to ALL gamepads, both old and new (ie x-pad/directinput pads). HOWEVER, in order to add support for X-input (new gamepads) you have to use special scripts and libs, which is quite complicated. I suggest use X-padder instead. I won't be reviewing Xinput library for AHK since I never managed to make it work.

First, we need to discover the keycodes for each button you press. Install AH (if you haven't yet), start it, right-click on the icon in tray area and select "Edit this script". Delete everything in the notepad window and paste this script from here: http://www.autohotkey.com/docs/scripts/JoystickTest.htm

Save the file and use "Reload this script" from context menu. Now, there will be small pop-up window right beside your mouse cursors. It will display some info and each time you press a button on your gamepad - it will display the proper keycode for it, like Joy1 or Joy2. This is a keycode for every button on your pad. Please write them down or memorize which button what keycode has.

Now, knowing the codes you can remap the keys just like you did with keyboard. Open the script again, erase it and start anew:
#IfWinActive ahk_class YYGameMakerYY Joy4::D

Save, exit, reload.

This will make button "X" (on my pad) act like if I'd press key "D" on keyboard (attack). Now, keep in mind that for some keys you have to use different mapping syntax and mode, so please refer to tutorial: http://www.autohotkey.com/docs/misc/RemapJoystick.htm

Since remapping keys with Autohotkey is a bit complicated, I suggest you to use it only to determine keycodes for your pad to use it later with Joy2key.

!- AUTOHOTKEY MUST BE RUNNING IN THE BACKGROUND WHILE YOU ARE PLAYING THE GAME!.

DO
NOT
RUN
AUTOHOTKEY
AND J2K
SIMULTANEOUSLY
Last edited by Kein Zantezuken; Jan 1, 2014 @ 5:04pm
< >
Showing 1-15 of 27 comments
I must be blind as I can't read it in your guide but it feels like you have answered my following question, but where you write "Easy, isn't? Keep in mind that original key STILL will be working as well." makes me doubt it however.

Is it possible to force the game so DOWN won't trigger cancel? I keep hitting it accidentally.
Kein Zantezuken Nov 2, 2013 @ 7:40pm 
it is possible to remap DOWN key to some other key and disable original down key so it won't work anymore (null action) but it is impossible to separate action.
shadow_gauge Nov 2, 2013 @ 9:48pm 
Before I get knee deep in the control coding aspect of this post, I figured I'd ask first, is it possible to remap it on a 360 controller to the left stick press, and if so, do you know what button that actually is (ie the line of code needed would be super) :)
Kein Zantezuken Nov 2, 2013 @ 10:04pm 
It is possible to do so, yes, however, original button still will be working as intended. You can only permanently disable it and left it working on the stick.
shadow_gauge Nov 3, 2013 @ 10:36am 
kewl, I guess start coding ;/, thank you btw :)
shadow_gauge Nov 3, 2013 @ 11:12am 
OK, so I figured out which buttons were which in relation to the 360 controller, however changing the cancel to another button didnt have any effect, I was able to switch other controls via the vs_settings, just not cancel. Do I need to disable down for it work on the button press, and if so what line of code would be used to do that?
Kein Zantezuken Nov 3, 2013 @ 12:13pm 
I'm not sure I understand. As I said, you can't remap Skill Cancel itself, you can only remap "Down" to whatever button you want, with Autohotkey's help - even to a stick. How did you do the change?
shadow_gauge Nov 3, 2013 @ 12:30pm 
Ah, so I would need to use 3rd party software to remap my controller configuration, like autohotkey, or possibly glovepie. but how would I turn of the gamepad since it seems to just automatically map the directional pad and analog stick
shadow_gauge Nov 3, 2013 @ 12:54pm 
so yeah, i remapped the controller and now the left stick button goes down, but if the conroller is on it is recognized by the game and down is still down, how do I make the game not recognize the gamepad, I can turn off all controls except the movement
Kein Zantezuken Nov 3, 2013 @ 5:47pm 
I still don't understand clearly what do you want. Can you try to explain more throughly.
Boomstick Nov 7, 2013 @ 12:07am 
I followed your guide ste-by-step but I still have issues. When I start the game there is massive slowdown. Your final 2 points mention

BE SURE YOU ARE EITHER DISABLED DINPUT SUPPORT IN OPTIONS OT USE d_input_test BETA BRANCH

If this is the cause of my issue then I have no idea what to do. There is no such choice in the otions menu of the game, and im not sure what the other is asking me to do.

Can you clarify/help?

If it helps I am trying to use a smartjoy adater. It allows me to use a SNES controller and plug into usb. It works fine with older games, so I assume its direct input

Thank you
dog Nov 7, 2013 @ 12:12am 
Originally posted by Colbert Nation:
I followed your guide ste-by-step but I still have issues. When I start the game there is massive slowdown. Your final 2 points mention

BE SURE YOU ARE EITHER DISABLED DINPUT SUPPORT IN OPTIONS OT USE d_input_test BETA BRANCH

If this is the cause of my issue then I have no idea what to do. There is no such choice in the otions menu of the game, and im not sure what the other is asking me to do.

Can you clarify/help?

If it helps I am trying to use a smartjoy adater. It allows me to use a SNES controller and plug into usb. It works fine with older games, so I assume its direct input

Thank you
The DirectInput option was completely removed because of issues with the engine. You might be better off using a DirectInput to XInput tool like x360ce. I've never used it though.
Last edited by dog; Nov 7, 2013 @ 12:12am
Boomstick Nov 7, 2013 @ 12:53am 
if thats the case then i really have no idea why the slowdown is happening, es. since i followed the directions....
Kein Zantezuken Nov 7, 2013 @ 12:59am 
Originally posted by Colbert Nation:
Can you clarify/help?
Yes.
Open Steam Library -> right lick on Vs -> properties- > BETA ->select d_input_test -> OK

I do not suggest to use x60ce and other emulators due to the fact they are not stable, slow and sometimes produce more bugs. Rebinding directly to keyboard is much faster and failsafe.
Last edited by Kein Zantezuken; Nov 7, 2013 @ 1:01am
Boomstick Nov 7, 2013 @ 1:33am 
Alright! Thank you for clarifying that Kein, worked like a charm. Kudos on a great guide! (but maybe clarify that part for the schmucks like me) :)
< >
Showing 1-15 of 27 comments
Per page: 1530 50

Date Posted: Nov 1, 2013 @ 3:53pm
Posts: 27