TowerFall Ascension

TowerFall Ascension

View Stats:
Sector7e Apr 19, 2014 @ 4:06pm
4-Player Keyboard Issue
I'm attempting to allow 4 players on my arcade cabinet play at the same time. The issue is I have an iPac controller that emulates the keyboard. I know that Matt added multiple player support via an XML, but I can only get 2 or the 4 players working.

When on the join game screen the player 1 and 2 slots have an Xbox controller, while player 3 and 4 have keyboards 1 and 2 assigned to them. Even when selecting the jump button on keyboard 3 and 4 I don't get any response. There are no controllers connected, so how can I remedy this?

My keyboard XML:
<keyboard> <player> <name>Keyboard 1</name> <!-- The input name shown on the character select screen --> <left>Left</left> <right>Right</right> <up>Up</up> <down>Down</down> <jump>Space</jump> <shoot>W,Y</shoot> <dodge>E,U</dodge> <arrows>T</arrows> <!-- Used to toggle arrow types when you have multiple in your inventory --> <start>Enter,Escape</start> <!-- Used to pause the game --> <menu_alt>Space</menu_alt> <!-- Used to perform alt functions on the menu, such as saving replays --> <skip_replay>Enter,Escape</skip_replay> </player> <player> <name>Keyboard 2</name> <!-- The input name shown on the character select screen --> <left>NumPad6</left> <right>NumPad4</right> <up>NumPad8</up> <down>NumPad2</down> <jump>A</jump> <shoot>D,F</shoot> <dodge>G,H</dodge> <arrows>S</arrows> <!-- Used to toggle arrow types when you have multiple in your inventory --> <start>Enter,Escape</start> <!-- Used to pause the game --> <menu_alt>A</menu_alt> <!-- Used to perform alt functions on the menu, such as saving replays --> <skip_replay>Enter,Escape</skip_replay> </player> <player> <name>Keyboard 3</name> <!-- The input name shown on the character select screen --> <left>NumPad1</left> <right>NumPad3</right> <up>NumPad7</up> <down>NumPad9</down> <jump>Z</jump> <shoot>X</shoot> <dodge>C</dodge> <arrows>N</arrows> <!-- Used to toggle arrow types when you have multiple in your inventory --> <start>Enter,Escape</start> <!-- Used to pause the game --> <menu_alt>Z</menu_alt> <!-- Used to perform alt functions on the menu, such as saving replays --> <skip_replay>Enter,Escape</skip_replay> </player> <player> <name>Keyboard 4</name> <!-- The input name shown on the character select screen --> <left>OemSemicolon</left> <right>OemQuotes</right> <up>1</up> <down>OemComma</down> <jump>M</jump> <shoot>O</shoot> <dodge>OemCloseBrackets</dodge> <arrows>L</arrows> <!-- Used to toggle arrow types when you have multiple in your inventory --> <start>Enter,Escape</start> <!-- Used to pause the game --> <menu_alt>M</menu_alt> <!-- Used to perform alt functions on the menu, such as saving replays --> <skip_replay>Enter,Escape</skip_replay> </player> </keyboard>
Last edited by Sector7e; Apr 19, 2014 @ 4:08pm
< >
Showing 1-4 of 4 comments
tallfroggy May 1, 2014 @ 7:31pm 
I don't know if it is important, but in their example (which my player 1 and player 2 use a X arcade controller board), it works perfectly. Just a note on your file: the players appear to have a space in the name, but the example that works for me doesn't. I may need to use autohotkey to remap their use of shift since it seems that player 1 gets stuck in moving in one direction when shift is used. This has impacted other games (e.g. Nidhogg until I remapped it), but it is a windows 7/8 issue and not a Towerfall issue. Anyway, I love, love, love the fact that they implemented this. Towerfall Arcade lives!



<keyboard>
<player>
<name>Tankstick1</name>
<left>Left,NumPad4</left>
<right>Right,NumPad6</right>
<up>Up,NumPad8</up>
<down>Down,NumPad2</down>
<jump>Z</jump>
<shoot>LeftShift</shoot>
<dodge>C,X,D5</dodge>
<arrows>LeftControl</arrows>
<start>D1</start>
<menu_alt>Space</menu_alt>
<skip_replay>C</skip_replay>
</player>

<player>
<name>Tankstick2</name>
<left>D</left>
<right>G</right>
<up>R</up>
<down>F</down>
<jump>E</jump>
<shoot>W</shoot>
<dodge>OemOpenBrackets,OemCloseBrackets,D6</dodge>
<arrows>A</arrows>
<start>D2</start>
<menu_alt>Q</menu_alt>
<skip_replay>D2</skip_replay>
</player>
</keyboard>



<!--
Key code reference
From https://github.com/mono/MonoGame/blob/master/MonoGame.Framework/Input/Keys.cs

None // Reserved
Back // BACKSPACE key
Tab // TAB key
Enter // ENTER key
CapsLock // CAPS LOCK key
Escape // ESC key
Space // SPACEBAR
PageUp // PAGE UP key
PageDown // DOWN ARROW key
End // END key
Home // HOME key
Left // LEFT ARROW key
Up // UP ARROW key
Right // RIGHT ARROW key
Down // DOWN ARROW key
Select // SELECT key
Print // PRINT key
Execute // EXECUTE key
PrintScreen // PRINT SCREEN key
Insert // INS key
Delete // DEL key
Help // HELP key
D0 // 0 key
D1 // 1 key
D2 // 2 key
D3 // 3 key
D4 // 4 key
D5 // 5 key
D6 // 6 key
D7 // 7 key
D8 // 8 key
D9 // 9 key
A // A key
B // B key
C // C key
D // D key
E // E key
F // F key
G // G key
H // H key
I // I key
J // J key
K // K key
L // L key
M // M key
N // N key
O // O key
P // P key
Q // Q key
R // R key
S // S key
T // T key
U // U key
V // V key
W // W key
X // X key
Y // Y key
Z // Z key
LeftWindows // Left Windows key
RightWindows // Right Windows key
Apps // Applications key
Sleep // Computer Sleep key
NumPad0 // Numeric keypad 0 key
NumPad1 // Numeric keypad 1 key
NumPad2 // Numeric keypad 2 key
NumPad3 // Numeric keypad 3 key
NumPad4 // Numeric keypad 4 key
NumPad5 // Numeric keypad 5 key
NumPad6 // Numeric keypad 6 key
NumPad7 // Numeric keypad 7 key
NumPad8 // Numeric keypad 8 key
NumPad9 // Numeric keypad 9 key
Multiply // Multiply key
Add // Add key
Separator // Separator key
Subtract // Subtract key
Decimal // Decimal key
Divide // Divide key
F1 // F1 key
F2 // F2 key
F3 // F3 key
F4 // F4 key
F5 // F5 key
F6 // F6 key
F7 // F7 key
F8 // F8 key
F9 // F9 key
F10 // F10 key
F11 // F11 key
F12 // F12 key
F13 // F13 key
F14 // F14 key
F15 // F15 key
F16 // F16 key
F17 // F17 key
F18 // F18 key
F19 // F19 key
F20 // F20 key
F21 // F21 key
F22 // F22 key
F23 // F23 key
F24 // F24 key
NumLock // NUM LOCK key
Scroll // SCROLL LOCK key
LeftShift // Left SHIFT key
RightShift // Right SHIFT key
LeftControl // Left CONTROL key
RightControl // Right CONTROL key
LeftAlt // Left ALT key
RightAlt // Right ALT key
BrowserBack // Windows 2000/XP: Browser Back key
BrowserForward // Windows 2000/XP: Browser Forward key
BrowserRefresh // Windows 2000/XP: Browser Refresh key
BrowserStop // Windows 2000/XP: Browser Stop key
BrowserSearch // Windows 2000/XP: Browser Search key
BrowserFavorites // Windows 2000/XP: Browser Favorites key
BrowserHome // Windows 2000/XP: Browser Start and Home key
VolumeMute // Windows 2000/XP: Volume Mute key
VolumeDown // Windows 2000/XP: Volume Down key
VolumeUp // Windows 2000/XP: Volume Up key
MediaNextTrack // Windows 2000/XP: Next Track key
MediaPreviousTrack // Windows 2000/XP: Previous Track key
MediaStop // Windows 2000/XP: Stop Media key
MediaPlayPause // Windows 2000/XP: Play/Pause Media key
LaunchMail // Windows 2000/XP: Start Mail key
SelectMedia // Windows 2000/XP: Select Media key
LaunchApplication1 // Windows 2000/XP: Start Application 1 key
LaunchApplication2 // Windows 2000/XP: Start Application 2 key
OemSemicolon // Windows 2000/XP: The OEM Semicolon key on a US standard keyboard
OemPlus // Windows 2000/XP: For any country/region, the '+' key
OemComma // Windows 2000/XP: For any country/region, the ',' key
OemMinus // Windows 2000/XP: For any country/region, the '-' key
OemPeriod // Windows 2000/XP: For any country/region, the '.' key
OemQuestion // Windows 2000/XP: The OEM question mark key on a US standard keyboard
OemTilde // Windows 2000/XP: The OEM tilde key on a US standard keyboard
OemOpenBrackets // Windows 2000/XP: The OEM open bracket key on a US standard keyboard, the '[' key
OemPipe // Windows 2000/XP: The OEM pipe key on a US standard keyboard
OemCloseBrackets // Windows 2000/XP: The OEM close bracket key on a US standard keyboard, the ']' key
OemQuotes // Windows 2000/XP: The OEM singled/double quote key on a US standard keyboard
Oem8 // Used for miscellaneous characters; it can vary by keyboard.
OemBackslash // Windows 2000/XP: The OEM angle bracket or backslash key on the RT 102 key keyboard
ProcessKey // Windows 95/98/Me, Windows NT 4.0, Windows 2000/XP: IME PROCESS key
Attn // Attn key
Crsel // CrSel key
Exsel // ExSel key
EraseEof // Erase EOF key
Play // Play key
Zoom // Zoom key
Pa1 // PA1 key
OemClear // CLEAR key
ChatPadGreen // Green ChatPad key
ChatPadOrange // Orange ChatPad key
Pause // PAUSE key
ImeConvert // IME Convert key
ImeNoConvert // IME NoConvert key
Kana // Kana key on Japanese keyboards
Kanji // Kanji key on Japanese keyboards
OemAuto // OEM Auto key
OemCopy // OEM Copy key
OemEnlW // OEM Enlarge Window key

-->
Last edited by tallfroggy; May 3, 2014 @ 9:49am
tallfroggy May 3, 2014 @ 12:35pm 
I updated my config and now have 4 player working (at the expense of some other games). The Tankstick PCB is wired to players 1 and 2 so I have the following Keyboard Config, which I think is better than the above example:

<keyboard>
<player>
<name>Player1</name>
<left>Left,NumPad4</left>
<right>Right,NumPad6</right>
<up>Up,NumPad8</up>
<down>Down,NumPad2</down>
<jump>LeftControl</jump>
<shoot>LeftAlt</shoot>
<dodge>Space,X,D3,D5</dodge>
<arrows>OemPeriod</arrows>
<start>D1</start>
<menu_alt>C</menu_alt>
<skip_replay>LeftControl,LeftAlt</skip_replay>
</player>

<player>
<name>Player2</name>
<left>D</left>
<right>G</right>
<up>R</up>
<down>F</down>
<jump>A</jump>
<shoot>S</shoot>
<dodge>Q,OemOpenBrackets,D4,D6</dodge>
<arrows>W</arrows>
<start>D2</start>
<menu_alt>OemCloseBrackets</menu_alt>
<skip_replay>A,S,Q</skip_replay>
</player>
</keyboard>

Then, I deleted all but the Default.xml in the GameConfig. I have Playstation2 controller PCBs hooked up to a USB/PS2 interface for my game config. I modified the Default.xml to be the following:
<gamepad>
<name>Players34</name>
<id>default</id>

<jump>
<button id="3"/>
</jump>
<shoot>
<button id="0"/>
</shoot>
<dodge>
<button id="7"/>
<axis_above id="2" threshold=".2"/>
<axis_below id="2" threshold="-.2"/>
</dodge>
<arrows>
<button id="2"/>
</arrows>

<left>
<pov_left id="0"/>
<axis_below id="0" threshold="-.5"/>
</left>
<right>
<pov_right id="0"/>
<axis_above id="0" threshold=".5"/>
</right>
<up>
<pov_up id="0"/>
<axis_below id="1" threshold="-.8"/>
</up>
<down>
<pov_down id="0"/>
<axis_above id="1" threshold=".8"/>
</down>
<aim>
<pov id="0"/>
<axes x="0" y="1" threshold=".3"/>
</aim>

<start>
<button id="9"/>
</start>
<confirm>
<button id="3"/>
<button id="9"/>
</confirm>
<back>
<button id="8"/>
</back>
<alt>
<button id="4"/>
<axis_below id="2" threshold="-.1"/>
</alt>
<alt2>
<button id="6"/>
<axis_above id="2" threshold=".1"/>
</alt2>
<skip_replay>
<button id="0"/>
<button id="9"/>
<button id="3"/>
<button id="8"/>
</skip_replay>

<icons>
<player>xb360/player</player>
<move>xb360/stick</move>
<jump>xb360/a</jump>
<shoot>xb360/x</shoot>
<dodge>xb360/rt</dodge>
<start>xb360/start</start>
<confirm>xb360/a</confirm>
<back>xb360/b</back>
<alt>xb360/rt</alt>
<alt2>xb360/lt</alt2>
<skip_replay>xb360/start</skip_replay>
</icons>
</gamepad>


Now all 4 players work on my indie-cade.
Snacksy Jun 30, 2014 @ 10:20am 
How do you remove keyboard player????
Roo Jan 30, 2015 @ 8:28pm 
Originally posted by Sector7e:
I'm attempting to allow 4 players on my arcade cabinet play at the same time. The issue is I have an iPac controller that emulates the keyboard. I know that Matt added multiple player support via an XML, but I can only get 2 or the 4 players working.

When on the join game screen the player 1 and 2 slots have an Xbox controller, while player 3 and 4 have keyboards 1 and 2 assigned to them. Even when selecting the jump button on keyboard 3 and 4 I don't get any response. There are no controllers connected, so how can I remedy this?

Did you ever find a solution to this? I'm having the exact same issue trying to get this set up on my MAME cabinet with iPac encoder. Keyboard players 1 and 2 show up in slots 3 and 4, with gamepads showing up in the first two slots. I have no gamepads hooked up and even turned off the "discover gamepads" option in the game.

UPDATE: My issue was because I had two arcade light guns plugged in, which somehow were recognized as gamepads. I was forced to unplug them, then Towerfall 4-player keyboard config worked fine. The latest version of the game now actually has an in-game keyboard control mapper, as well as an option which sounds like it will let you ignore all gamepads. Perfect for arcade/MAME setups!
Last edited by Roo; Aug 23, 2015 @ 11:42am
< >
Showing 1-4 of 4 comments
Per page: 1530 50

Date Posted: Apr 19, 2014 @ 4:06pm
Posts: 4