First Person Shooter with Dual Analog Nubs Control


PatientFan

Still Fresh
Joined
Sep 1, 2011
Messages
29
I think my Pandora needs a FPS that supports both nubs (configurable). Specifically I am looking for:

  • Left nub: Look/aim (what the mouse usually does)
  • Right nub: Move (what the WASD keys normally do)


With Doom, Quake etc. joystick support is insufficient or non-existent for Linux and Windows.


I can see why people prefer keyboard & mouse on these platforms, but with the Pandora the situation is different: If I have the space for mouse and keyboard, I am better off with a full-size laptop computer.


For gaming the Pandora is in competition with the portable consoles of Nintendo/Sony and its dual analog controls are a main feature. (Glad to see that Sony is finally doing it right with the PS Vita).


For this thread please let us assume that using both nubs in a FPS would make sense for console gamers. Super Geometry Dust is a great example of how awesome a game can feel when it supports both nubs. The real questions I have are:

  1. Have you successfully configured a FPS so it uses both nubs? I think I have tried them all.
  2. What would be the best approach to get nub support? A) Try to get the nubs into faking WASD keyboard keys? B) Adapt the code of a specific game?
  3. Which FPS deserves our efforts most? Quake 3? The game must run smoothly on the Pandora, preferably without overclocking. Source code must be free and content must be legally available.


Related links:


Nubs


PND nub modes
 
Last edited by a moderator:
just to let you know quake 1,2 and all the dooms can use the nubs perfectly fine, i only use the nubs for fps (except for quake three which only supports the right nub so u can use the d pad for moving fowards backwards and strafing from side to side and the right nub for aiming and it works pretty good)


i believe all i did was went in to the button configurator n the game itself. then mapped all the buttons to how i wanted them set the aim as mouse (this is the right nub) and map movement with directional keys (the left nub will now act as movement) from here i then kept minimising the game and ajusting the nub sensativity slightly testing over and over using the nub configurator to get the nubs sensitivity set up just how you like it. then save the profile and name it the same as the game it will be used with and just load that profile before you run your game.


There probably is a more sensible way but thatshow i done it when i first got the pandora and find all my controllers very comfortable now so i havent ever looked into other methods. have fun
 
I think my Pandora needs a FPS that supports both nubs (configurable). Specifically I am looking for:

  • Left nub: Look/aim (what the mouse usually does)
  • Right nub: Move (what the WASD keys normally do)
Also those sticks are backwards compared to most fps games arnt they normally its the left stick/nub to move and the right stick/nub to aim.


But If this is how you prefer it you again need to go into the nub configurator and swap the nubs around so that the left one is mouse clicks and the right nub is for scrolling.
 
Last edited by a moderator:
Good advice on the Quake3 nub setup. The sensitivity issues have put me off in the past, but we didn't have a nub configurator back then. I should revisit the game and try your method. I'll be interested to see how nubs configured for Q3 work in other environments (XFCE, other nub games).
 
I think my Pandora needs a FPS that supports both nubs (configurable). Specifically I am looking for:

  • Left nub: Look/aim (what the mouse usually does)
  • Right nub: Move (what the WASD keys normally do)

Also those sticks are backwards compared to most fps games arnt they normally its the left stick/nub to move and the right stick/nub to aim.


But If this is how you prefer it you again need to go into the nub configurator and swap the nubs around so that the left one is mouse clicks and the right nub is for scrolling.

Were can I adjust the brightness? its no were near where it should be
 
Last edited by a moderator:
there is a cog/sun image at the bottom of the screen (to the left of the wifi toggle) in the full xfce which you can click and it is a slider to ajust. or navigate to settings and choose lcd settings. or the hot keys are set as: hold the function key (key first right of the space bar) and press the U key to lower the brightness aand hold function I to increase brightness.


Hope one of those works ive never used the mini menu so not sure about there if thats your gui but the hotkeys should work in that mode too.


Good look


also if i have misinterperated this and you meen in the game itself for the quakes ibelieve it is in the options menu, i have to turn my brightness up in most games i play cause it helps my jarg colour blind eyes out.
 
Last edited by a moderator:
Also those sticks are backwards compared to most fps games arnt they normally its the left stick/nub to move and the right stick/nub to aim.


But If this is how you prefer it you again need to go into the nub configurator and swap the nubs around so that the left one is mouse clicks and the right nub is for scrolling.

Thanks for your valuable feedback! Of the Quakes I had indeed only tried #3. But surprisingly the nubs work really well in Quake 2! This is what most people will want.


As for myself, indeed I want southpaw (left-handed) mode for FPS (aim with left nub). Unfortunately the nub configurator settings are ignored by Quake 2, can't switch nubs that way.


I will play around with the config.cfg file. This looks like a useful guide for configuring Quake 2.


joy_advaxisr, joy_advaxisu, etc. sound promising.
 
Last edited by a moderator:
But If this is how you prefer it you again need to go into the nub configurator and swap the nubs around so that the left one is mouse clicks and the right nub is for scrolling.
Unfortunately the nub configurator settings are ignored by Quake 2, can't switch nubs that way.

Ah jarg soz i just assumed that would work, ive never jryed to change the sticks myself. i could possibly be mistaken so dont take this as the gospal, but i recall seeing the matter of the nubs being switched over in quake discussed somewhere on the boards already (however i cant appear to find it otherwise i would post a link) and i do believe that blueprotoman (this is the possibly mistaken part it might not have been blueprotoman that uploaded this) uploaded his config file which swapped the nubs. It could be worth while having a look through the boards for it am sure it was in a discussion about quake but not sure which one, or you could try sending a cheeky pm to blueprotoman about this.


If you do pm him and it turns out ive confused him with someone else please do appologise to him for me for wasting yours and his time.


good luck in your hunt for swapping the nubs over and if you do have any luck, would you be obligied to let us know all know. It could come in usefull if anyone else also has the desire to swap the nubs over in quake
 
Last edited by a moderator:
Right just had a ganders for tha file for you and i was semi correct blueprotoman did upload a config it was a quake3 config file. so sorry it wont help with your nubs however it wiil be useful if you would like to play quake3 i have been using this config file for ages now so should have realised it wouldnt help out with the nubs. this is the post which you want (for some reason i cant copy the link but i can the entire post WTF)

Here's my Quake 3 config file. Put it in /pandora/appdata/quake3/.q3a/baseq3. Paste it into a file called q3config.cfg.

Code:
// generated by quake, do not modify

unbindall

bind ESCAPE "togglemenu"

bind SPACE "+scores"

bind + "sizeup"

bind , "weapprev"

bind - "sizedown"

bind . "weapnext"

bind 0 "weapon 10"

bind 1 "weapon 1"

bind 2 "weapon 2"

bind 3 "weapon 3"

bind 4 "weapon 4"

bind 5 "weapon 5"

bind 6 "weapon 6"

bind 7 "weapon 7"

bind 8 "weapon 8"

bind 9 "weapon 9"

bind = "sizeup"

bind \ "+mlook"

bind _ "sizedown"

bind ` "toggleconsole"

bind a "+moveup"

bind b "+button2"

bind l "+zoom"

bind q "weapprev"

bind r "+attack"

bind t "messagemode"

bind w "weapnext"

bind x "+movedown"

bind y "centerview"

bind ~ "toggleconsole"

bind PAUSE "pause"

bind UPARROW "+forward"

bind DOWNARROW "+back"

bind LEFTARROW "+moveleft"

bind RIGHTARROW "+moveright"

bind F1 "vote yes"

bind F2 "vote no"

bind F3 "ui_teamorders"

bind F11 "screenshot"

seta net_socksPassword ""

seta net_socksUsername ""

seta net_socksPort "1080"

seta net_socksServer ""

seta net_socksEnabled "0"

seta net_mcast6iface ""

seta net_mcast6addr "ff04::696f:7175:616b:6533"

seta net_enabled "3"

seta s_sdlMixSamps "0"

seta s_sdlDevSamps "0"

seta s_sdlChannels "2"

seta s_sdlSpeed "0"

seta s_sdlBits "16"

seta s_useOpenAL "1"

seta s_muteWhenUnfocused "0"

seta s_muteWhenMinimized "0"

seta in_nograb "0"

seta in_mouse "1"

seta r_marksOnTriangleMeshes "0"

seta r_anaglyphMode "0"

seta r_stereoSeparation "64"

seta r_zproj "64"

seta r_greyscale "0"

seta r_stereoEnabled "0"

seta r_customPixelAspect "1"

seta r_noborder "0"

seta r_ext_multisample "0"

seta r_texturebits "0"

seta r_ext_max_anisotropy "2"

seta r_ext_texture_filter_anisotropic "0"

seta cg_stereoSeparation "0"

seta cl_consoleKeys "~ ` 0x7e 0x60"

seta cl_guidServerUniq "1"

seta cl_lanForcePackets "1"

seta cl_mouseAccelOffset "5"

seta cl_mouseAccelStyle "0"

seta cl_aviMotionJpeg "1"

seta cl_aviFrameRate "25"

seta cl_autoRecordDemo "0"

seta cl_timedemoLog ""

seta sv_banFile "serverbans.dat"

seta sv_dlURL ""

seta sv_minRate "0"

seta com_maxfpsMinimized "0"

seta com_maxfpsUnfocused "0"

seta com_ansiColor "0"

seta com_altivec "0"

seta com_hunkMegs "56"

seta com_maxfps "85"

seta com_blood "1"

seta com_introplayed "1"

seta in_subframe "1"

seta vm_cgame "0"

seta vm_game "0"

seta vm_ui "0"

seta sv_hostname "noname"

seta sv_maxRate "0"

seta sv_minPing "0"

seta sv_maxPing "0"

seta sv_floodProtect "1"

seta sv_master2 ""

seta sv_master3 ""

seta sv_master4 ""

seta sv_master5 ""

seta sv_lanForceRate "1"

seta sv_strictAuth "1"

seta cl_yawspeed "140"

seta cl_pitchspeed "140"

seta cl_maxpackets "30"

seta cl_packetdup "1"

seta cl_run "1"

seta sensitivity "4"

seta cl_mouseAccel "0"

seta cl_freelook "1"

seta cl_allowDownload "0"

seta r_inGameVideo "1"

seta cg_autoswitch "0"

seta m_pitch "0.022000"

seta m_yaw "0.022"

seta m_forward "0.25"

seta m_side "0.25"

seta m_filter "1"

seta cl_maxPing "800"

seta name "UnnamedPlayer"

seta rate "3000"

seta snaps "20"

seta model "anarki/blue"

seta headmodel "anarki/blue"

seta team_model "anarki/blue"

seta team_headmodel "anarki/blue"

seta g_redTeam "Stroggs"

seta g_blueTeam "Pagans"

seta color1 "4"

seta color2 "5"

seta handicap "100"

seta sex "male"

seta cl_anonymous "0"

seta cg_predictItems "1"

seta cg_viewsize "100"

seta r_glDriver "libGL.so.1"

seta r_allowExtensions "1"

seta r_ext_compressed_textures "0"

seta r_ext_gamma_control "1"

seta r_ext_multitexture "1"

seta r_ext_compiled_vertex_array "1"

seta r_ext_texture_env_add "0"

seta r_picmip "2"

seta r_roundImagesDown "1"

seta r_detailtextures "1"

seta r_fsaa "0"

seta r_colorbits "0"

seta r_stereo "0"

seta r_stencilbits "0"

seta r_depthbits "0"

seta r_overBrightBits "1"

seta r_ignorehwgamma "0"

seta r_mode "3"

seta r_fullscreen "1"

seta r_customwidth "1600"

seta r_customheight "1024"

seta r_customaspect "1"

seta r_simpleMipMaps "1"

seta r_vertexLight "1"

seta r_subdivisions "20"

seta r_smp "0"

seta r_ignoreFastPath "1"

seta r_lodCurveError "250"

seta r_lodbias "1"

seta r_flares "0"

seta r_ignoreGLErrors "1"

seta r_fastsky "1"

seta r_drawSun "0"

seta r_dynamiclight "0"

seta r_dlightBacks "1"

seta r_finish "0"

seta r_textureMode "GL_LINEAR_MIPMAP_NEAREST"

seta r_swapInterval "0"

seta r_gamma "1"

seta r_facePlaneCull "1"

seta r_railWidth "16"

seta r_railCoreWidth "6"

seta r_railSegmentLength "32"

seta r_primitives "3"

seta s_volume "0.8"

seta s_musicvolume "0.25"

seta s_separation "0.5"

seta s_doppler "1"

seta s_khz "22"

seta s_mixahead "0.2"

seta s_mixPreStep "0.05"

seta sndbits "16"

seta sndspeed "0"

seta sndchannels "2"

seta snddevice "/dev/dsp"

seta com_soundMegs "8"

seta ui_ffa_fraglimit "20"

seta ui_ffa_timelimit "0"

seta ui_tourney_fraglimit "0"

seta ui_tourney_timelimit "15"

seta ui_team_fraglimit "0"

seta ui_team_timelimit "20"

seta ui_team_friendly "1"

seta ui_ctf_capturelimit "8"

seta ui_ctf_timelimit "30"

seta ui_ctf_friendly "0"

seta g_spScores1 "\l2\1\l1\1\l0\1\l24\1"

seta g_spScores2 ""

seta g_spScores3 ""

seta g_spScores4 ""

seta g_spScores5 ""

seta g_spAwards "\a5\3\a4\40\a3\2"

seta g_spVideos "\tier1\1"

seta g_spSkill "1"

seta ui_browserMaster "6"

seta ui_browserGameType "0"

seta ui_browserSortKey "4"

seta ui_browserShowFull "1"

seta ui_browserShowEmpty "1"

seta cg_brassTime "2500"

seta cg_drawCrosshair "4"

seta cg_drawCrosshairNames "1"

seta cg_marks "1"

seta server1 ""

seta server2 ""

seta server3 ""

seta server4 ""

seta server5 ""

seta server6 ""

seta server7 ""

seta server8 ""

seta server9 ""

seta server10 ""

seta server11 ""

seta server12 ""

seta server13 ""

seta server14 ""

seta server15 ""

seta server16 ""

seta dmflags "0"

seta fraglimit "15"

seta timelimit "0"

seta sv_maxclients "8"

seta cg_shadows "0"

seta cm_playerCurveClip "1"

seta g_maxGameClients "0"

seta capturelimit "8"

seta g_friendlyFire "0"

seta g_teamAutoJoin "0"

seta g_teamForceBalance "0"

seta g_warmup "20"

seta g_log "games.log"

seta g_logsync "0"

seta g_banIPs ""

seta g_filterBan "1"

seta g_allowVote "1"

seta cg_drawGun "1"

seta cg_zoomfov "22.5"

seta cg_fov "90"

seta cg_gibs "1"

seta cg_draw2D "1"

seta cg_drawStatus "1"

seta cg_drawTimer "0"

seta cg_drawFPS "0"

seta cg_drawSnapshot "0"

seta cg_draw3dIcons "1"

seta cg_drawIcons "1"

seta cg_drawAmmoWarning "1"

seta cg_drawAttacker "1"

seta cg_drawRewards "1"

seta cg_crosshairSize "24"

seta cg_crosshairHealth "1"

seta cg_crosshairX "0"

seta cg_crosshairY "0"

seta cg_simpleItems "0"

seta cg_lagometer "1"

seta cg_railTrailTime "400"

seta cg_runpitch "0.002"

seta cg_runroll "0.005"

seta cg_bobpitch "0.002"

seta cg_bobroll "0.002"

seta cg_teamChatTime "3000"

seta cg_teamChatHeight "0"

seta cg_forceModel "0"

seta cg_deferPlayers "1"

seta cg_drawTeamOverlay "0"

seta cg_drawFriend "1"

seta cg_teamChatsOnly "0"

seta cg_noVoiceChats "0"

seta cg_noVoiceText "0"

seta cg_cameraOrbitDelay "50"

seta cg_scorePlums "1"

seta cg_smoothClients "0"

seta cg_noTaunt "0"

seta cg_noProjectileTrail "0"

seta ui_smallFont "0.25"

seta ui_bigFont "0.4"

seta cg_oldRail "1"

seta cg_oldRocket "1"

seta cg_oldPlasma "1"

seta cg_trueLightning "0.0"

seta com_zoneMegs "16"
 
Last edited by a moderator:
Right just had a ganders for tha file for you and i was semi correct blueprotoman did upload a config it was a quake3 config file. so sorry it wont help with your nubs however it wiil be useful if you would like to play quake3 i have been using this config file for ages now so should have realised it wouldnt help out with the nubs. this is the post which you want (for some reason i cant copy the link but i can the entire post WTF)

Thanks a lot for your help! Will try Quake 3 again when I have more time.


Found out that Quake 2 sets both nubs to joystick mode and that the nubs (probably) are called "js1" (left) and "js2" (right). When the game ends it restores the nub modes to what they were before starting the game.


Have been experimenting with the config.cfg file of Quake 2. Along these lines:



Code:
set joy_name "js2"

set in_initjoy "1"

set in_joystick "1"

set joy_advanced "1"

set joy_advaxisx "1"

set joy_advaxisy "3"

set joy_advaxisr "4"

set joy_advaxisz "2"

set joy_advaxisu "4"

joy_advancedupdate

joy_forwardsensitivity -1.0

joy_sidesensitivity 1.0

joy_pitchsensitivity 0.5 //negative number -0.5 gives inverted lookup/down

joy_yawsensitivity -1.8


But after a while I realized that Quake 2 itself overwrites/removes these settings from config.cfg :(


Some settings are left intact, like binding buttons. But, sadly enough, all the "joy" settings are removed. No joy there.


Looks like left-handed Quake 2 will require a code modification. Have to find out how to build it.


But first I will try Quake 3 again. Maybe with the example you so kindly found for me, I will be able to set up the nubs the way I want.
 
Last edited by a moderator:
I found that if I use the above file but with sensitivity set to 2, and two additional lines for y and x sensitivity as follows, then it is somewhat playable as long as I dont touch the left nub:


seta m_pitch "0.01"


seta m_yaw "0.033"


If you play with these settings, and also m_forward and m_side (default for both is 0.25), then you may be able to get even better control than I have. If so please let me know!


Also, delta force urban warfare works really well with dual nubs in PCSX rearmed.
 
No luck with southpaw nubs in Quake so far. Tried with Quake 3 and same problem as with Quake 2: All joystick related settings are ignored and automatically removed.


The procedure is correct, however. A simple setting like the following one works and is preserved in the q3config.cfg file:



Code:
bind m "+left"

Maybe it has something to do with the fact that all joystick commands listed in this guide are marked red. "Red Font: Removed or replaced in current version"


This leaves me wondering whether Quake configurations actually have working support for joystick settings.


Quake 2 seems to run somewhat smoother. I will invest my time in trying to adapt the source code, maybe board member Pickle who made the port is willing to provide the version he compiled.
 
Last edited by a moderator:
All source should be on the ftp, but at the moment I dont recall the name.


I used a common source file for raw event access to the pandora controls. In the case of the nubs each is opened and read directly. I use these values and put them into quakes mouse interface. I doubt the joystick quake settings would do anything.
 
All source should be on the ftp, but at the moment I dont recall the name.


I used a common source file for raw event access to the pandora controls. In the case of the nubs each is opened and read directly. I use these values and put them into quakes mouse interface. I doubt the joystick quake settings would do anything.

Thanks for answering!


Are you referring to Id's FTP server or is there a place where the source code of the Pandora ports are stored?
 
Back
Top