POSTAL 2
Gamepad support already in ini, but does not work, please upload missing SDL files!
Its i found out default layout pretty weird, all buttons are messed up and it seems like layout matching none dinput like UE2 normaly do, but an sdl instead.

Judging by this from DefUser.ini

Joy16=Quickhealth Joy15=InventoryActivate Joy14=UseZipper | BackButton Joy13=ConfirmButton | GameOverRestart | WantsToSkip | Jump Joy12=Fire Joy11=AltFire Joy10=NextWeapon | WeaponZoomOut Joy9=PrevWeapon | WeaponZoomIn Joy8=DoKick Joy7=Duck Joy6=QuickUseMap Joy5=MenuButton Joy4=InventoryNext | MenuRightButton Joy3=InventoryPrevious | MenuLeftButton Joy2=ThrowWeapon | MenuDownButton Joy1=ThrowPowerup | MenuUpButton JoyX=MenuMouseX | AXIS aStrafe SPEEDBASE=4.00 DEADZONE=0.20 JoyY=MenuMouseY | AXIS aBaseY SPEEDBASE=4.00 DEADZONE=0.20 JoyZ= JoyR= JoyU=AXIS aBaseX SPEEDBASE=4.00 DEADZONE=0.20 JoyV=AXIS aLookUp SPEEDBASE=4.00 DEADZONE=0.20 JoySlider1= JoySlider2=

(Little tip to RWS = xbox 360 controllers has weak sticks, minimut deadzone to avoid drifting and spining camera should be 0.27, 30 is much more buller-proof.)

I can see that joy 11 and 12 bound to fire and alt fire, which means that xinput sticks now recognised as buttons, and that definetly impossible via dinput, which treats them as halfs of axis z ("thanks" to stupid driver's wrapping of xinput to dinput which MS never updated), so that definetly needs sdl or xinput. but non of dlls from system folder has xinput imports.

And mapping definetly looks like SDL 2, where

Joy16=Quickhealth // Y Joy15=InventoryActivate // X Joy14=UseZipper | BackButton // B Joy13=ConfirmButton | GameOverRestart | WantsToSkip | Jump // A Joy12=Fire //RT Joy11=AltFire // LT Joy10=NextWeapon | WeaponZoomOut // RB Joy9=PrevWeapon | WeaponZoomIn // LB Joy8=DoKick // RS Joy7=Duck // LS Joy6=QuickUseMap // back Joy5=MenuButton // start Joy4=InventoryNext | MenuRightButton // DPad Right Joy3=InventoryPrevious | MenuLeftButton // DPad Left Joy2=ThrowWeapon | MenuDownButton //DPad Down Joy1=ThrowPowerup | MenuUpButton //DPad Up JoyX=MenuMouseX | AXIS aStrafe SPEEDBASE=4.00 DEADZONE=0.20 JoyY=MenuMouseY | AXIS aBaseY SPEEDBASE=4.00 DEADZONE=0.20 JoyZ= JoyR= JoyU=AXIS aBaseX SPEEDBASE=4.00 DEADZONE=0.20 JoyV=AXIS aLookUp SPEEDBASE=4.00 DEADZONE=0.20 JoySlider1= JoySlider2=

except that they messed order of Triggers and face buttons, in SDL 2 11-14 are ABXY and 15 is a GUIDE button, and LT and RT could be thread as 2 separate axes or be mapped as 16 and 17.

RWS, is you reading this, please change order to follow standard of SDL where ABXY are 11-4 and let us bind GUIDE as well as 15, and LR-RT as 15-16, but actually more logical would be writing redirector to more common dinput layout, so that mapping both via dinput and sdl would be the same, except that sdl adds extra LT, RT and GUIDE button, where
ABXY - 1-4, LB-RB = 5-6, BACK START = 7-8, LS-RS = 9-10, and dpad via Unreal Engine 2 threated as 13-16. You just have to add extra joy17-18 as LT-RT and Joy19 as GUIDE, leaving hole of 11-12 for users with dinput gamepads that has usuall 12 buttons and dont have problems with LS and RS like xinput users do.)

Also, it could be even better, if you will create bindset universal for dinput and xinput gamepads, by redirectin SDL button numbers for xinput devices while keeping dinput numbers as is.

Most common dinput layout is one from Logitech Rumblepad 2 and that would be:

Joy4=Quickhealth // Y Joy1=InventoryActivate // X Joy3=UseZipper | BackButton // B Joy2=ConfirmButton | GameOverRestart | WantsToSkip | Jump // A Joy8=Fire //RT Joy7=AltFire // LT Joy6=NextWeapon | WeaponZoomOut // RB Joy5=PrevWeapon | WeaponZoomIn // LB Joy12=DoKick // RS Joy11=Duck // LS Joy9=QuickUseMap // back Joy10=MenuButton // start Joy14=InventoryNext | MenuRightButton // DPad Right Joy16=InventoryPrevious | MenuLeftButton // DPad Left Joy15=ThrowWeapon | MenuDownButton //DPad Down Joy13=ThrowPowerup | MenuUpButton //DPad Up JoyX=MenuMouseX | AXIS aStrafe SPEEDBASE=4.00 DEADZONE=0.30 JoyY=MenuMouseY | AXIS aBaseY SPEEDBASE=4.00 DEADZONE=0.30 JoyZ=AXIS aBaseX SPEEDBASE=4.00 DEADZONE=0.30 JoyR=AXIS aLookUp SPEEDBASE=4.00 DEADZONE=0.30 JoyU= JoyV= JoySlider1= JoySlider2=

// note here - i have not checked exact axes probably needs Invert=-1 on some axe and and i dont remember exactly if most of dinput devices used ZR or RU or ZU or ZV. Gotta check later

// another note - since UE1 there are, not sure if they works, but they are usually missing in UE1-2 powered games ini
Default value, index 255: "JoyPovUp"
Default value, index 256: "JoyPovDown"
Default value, index 257: "JoyPovLeft"
Default value, index 258: "JoyPovRight"

So to keep same binds working both for dinput and xinput via sdl 2, you have to consider

(dont forget to minus 1 each sdl number, since internally they all starts from 0)
joy2-3-1-4 values as sdl buttons 11-12-13-14
joy5-6 as sdl 9-10
joy7-8 as sdl LT-RT (you can mirror LT-RT)
joy9-10 as sdl 6-5 (i dont know what kind of dumb chnaged indexes of all buttons like that, sdl 1.2 had order of button near matching dinput on Windows, except that after 5-6, 7 and 8 was taken by LT and RT and shifted everything of rest by +2, SDL 2 order of buttons just a stupid counter intuitive mess)
joy11-12 as sld 7-8
joy13 and JoyPovUp as sdl 1
joy14 and JoyPovRight as sdl 4
joy15 and JoyPovDown as sdl 2
joy16 and JoyPovLeft as sdl 3

behavior should be different depending on which Wievport Client is selected, WinDrv should act by defaul and works like charm for old dinput devices, and with SDLDrv redirection like this should happen, actually you can add extra check if device is xinput or dinput, and if its X you should enable such redirect and if its not even on sdl drv joy button 1 should be what corresponds to joy button 1 on gamepad.

Psychonauts (for which i made xbox 360 controller patch known as Psychopad) devs Double Fine did exactly such sort of redirection for xinput devices, to keep defaul dinput binds compatible both with old dinput gamepads and xinput.

Now back to what i found:
There is also this:

[UWindow.JoyMouseInteraction] XJoyMult=3.000000 YJoyMult=3.000000 DeadZone=0.600000 XDeadZone=1.000000 YDeadZone=1.000000

and MenuDirectionButtons as well as ConfirmButton and BackButton

Looks like there is an emulation of mouse done by left analogue stick and dpad works in menues as well.

There is a section in ini

ViewportManager=WinDrv.WindowsClient ;ViewportManager=SDLDrv.SDLClient

which i tried to swap, but game just crashing because missing some sdl related files, most likely SDLDrv.dll SDLDriv.int and probably some U file and definetly SDL2.dll .

Without that default binds are messed up and triggers does not work, menu controls and mouse emulation seems to be dead too.

So, dear RWS, could you please push missing files already at least as test public build before final release of patch that enables gamepad?

Also, i have not notticed any additional textures with xbox 360 ui, it would be nice if joy values would not be displayed literally in tips and menues but would be replaced by xbox 360 controller icons (as easy hack in places where texture of button cant be applied from font you coud at least convert them to literal values like that (A) (B) (X) (Y) (LB) (RB) (LT) (RT) (LS) (RS) (UP) (DOWN) (LEFT) (RIGHT) (BACK) (START) (GUIDE) - which sorta looks like ASCII styled button icons).
Well, i hope you will do it yourself and would not need to make another gamepad patch like PostalPad and do the job for you XD

please dont make us wait for a current implementation so long, we was waiting for controller support since greenlight days where it was 1st thing promised!
< >
Сообщения 19 из 9
Enkay  [Разработчик] 3 ноя. 2014 г. в 14:29 
Oh, did you mean something like this? :B1:

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

Looks like you stumbled upon a bit of code I forgot to remove for 1416. It doesn't do anything for you right now because the executable doesn't recognize Xbox controllers yet. Full controller support isn't quite ready for prime time yet, but we're getting close. You won't have to wait too much longer!
Yeah, something like that! XD

Oh, so the xinput imports are hardcoded to main exe. I see now.

Can i please have access to closed beta build to test gamepad support before prime time, to help you nail issues and improve support?

I have quite a good porfolio related to gamepad fixes, my gamepad mod for psychonauts was officially approved and recommended by tech support, we had even talks to adapt it to official build. but they was too busy with other games to finish that. Also was helping to shape some of Pinnacle Game Profiler functionality back in 2005 for which i was granted a free lifetime license :-) I even made quite hardcore Witcher 1 fully playable with gamepad XD Actually i already made postal 2 xbox 360 controller friendly even with current implementation and was playing with it for quite a while, never published however.

Im just very concerned about best possible gamepad expirience and quite experienced and passionate about it! So, will you let me access xinput enabled version before prime time? ;-)
So, any news on xbox controller support date?)
Автор сообщения: Voodooman
So, any news on xbox controller support date?)

Would like to know also, thanks!
Let us controller warriors play too. We are still eagerly waiting.
It's better to go postal sitting on a couch with beer in front of huge-ass TV... than on small 22 inch display of work PC, you know. Less chance to get fired.
Отредактировано that's what she said; 26 дек. 2014 г. в 12:25
So... how's that controller support comin'?
I think they're easier to contact via Twitter or their forums. I don't think they check the Steam forums as often.
Good call, I'll get on the forums. Thanks!
< >
Сообщения 19 из 9
Показывать на странице: 1530 50

Дата создания: 3 ноя. 2014 г. в 12:44
Сообщений: 9