Jump to content
LaunchBox Community Forums

Gearbox: Seeking community input on designing a game controls viewer


Recommended Posts

Posted

I'm nearing the end of what's bee a long journey developing a plugin called "Gearbox" This does loads of stuff, but most pertinent to this thread is it allows you to design and display multiple custom layouts and display them on either additional screens or over the top of LB, BB or the currently playing game. Picture and a thousand words an all that (rough Layouts, but for illustration):

image.thumb.png.3c55c6bf87f383f1d78202f520e6db33.pngimage.thumb.png.e3fc9f9d07e5fe73b858df1bffd80139.png

The final stage is designing a game controls viewer (it's more than that, but just keeping it simple). This will auto-generate game controls on the layouts above without you having to make custom images for each game/emulator/system. There will be a database accessible to all and open to contributions. 

For those of you who know headkaze's amazing CPWizard from back in the day, it's a bit like that but for all games and systems, not just Mame. Also, it's a bit more fully featured allowing you to display controls for your PC (volume up), BigBox (quit emu), Emulator (think "screenshot" or something) - again all automatically. It also accommodates in-game and in-emulator per-game control remaps. I'm aiming for there essentially to be a controls.dat for all games, not just mame. Big aim I know, but one thing I do know is that when communities pull together, things can be short work. 

Anywhooos, here's where I come to you good folk. I'm at the systems design and implementation stage which involves some significant design decisions that could impact on user experience. Thus, I thought I'd seek your input to ensure it's created by the community, not just me! I'm off work at the moment trying to finish this, so development is quite rapid, but will post as I go regarding any decisions. 

The first is regarding ControlCodes. Without going into the entity design too much, I basically need a list of "codes" (just a string of text) that will cover all possible Controls coming out of all Controllers. For example, Nintendo and Xbox controllers have an A and B button (sometimes digital, sometimes analogue). I gave a lot of thought to levels of abstraction, but decided that we need to capture the difference between analogue and digital versions of the same control. Here's the controller editor at the moment:

image.thumb.png.669b099eef10d0a61fc54ca1b1a7ee55.png

So to start with GamePads (I will move onto other controls like Arcade, Joysticks etc in due course). I've made a starting list of all ways to describe a Control on a Controller. This included abstracted functions like 'DPad Left/Right' as a Control as games will often group these for GameActions like 'steer' etc. These abstracted controls are called ControllerGroups. I've included the nascent gamepad list below. ControlCodes are going to be bound to Controls and will be a standard in Gearbox, with any user-created controllers picking form this list - so it's important to get this right form the start. Afterall, "Well begun is half done" (Mary Poppins)

A couple of quesitons:

1. Can you think of any other controls that need to be added to it (I tried to be comprehensive in, for example, face buttons)?

2. Any other thoughts?

Said list:

Spoiler

[Pad.Analog]
pad_analog_button
pad_analog_button_Cross
pad_analog_button_Square
pad_analog_button_Triangle
pad_analog_button_Circle
pad_analog_button_A
pad_analog_button_B
pad_analog_button_X
pad_analog_button_Y
pad_analog_button_Black
pad_analog_button_White
pad_analog_button_L1
pad_analog_button_R1
pad_analog_button_L2
pad_analog_button_R2

pad_analog_dpad
pad_analog_dpad_X
pad_analog_dpad_Y
pad_analog_dpad_Up
pad_analog_dpad_Down
pad_analog_dpad_Left
pad_analog_dpad_Right

pad_analog_leftstick
pad_analog_leftstick_X
pad_analog_leftstick_Y
pad_analog_leftstick_Up
pad_analog_leftstick_Down
pad_analog_leftstick_Left
pad_analog_leftstick_Right

pad_analog_rightstick
pad_analog_rightstick_X    
pad_analog_rightstick_Y
pad_analog_rightstick_Up
pad_analog_rightstick_Down
pad_analog_rightstick_Left
pad_analog_rightstick_Right

pad_analog_trackpad
pad_analog_trackpad_X
pad_analog_trackpad_Y
pad_analog_trackpad_Up
pad_analog_trackpad_Down
pad_analog_trackpad_Left
pad_analog_trackpad_Right

pad_analog_motion_X
pad_analog_motion_X_increase
pad_analog_motion_X_decrease
pad_analog_motion_Y
pad_analog_motion_Y_increase
pad_analog_motion_Y_decrease
pad_analog_motion_Z
pad_analog_motion_Z_increase
pad_analog_motion_Z_decrease
pad_analog_accel_X
pad_analog_accel_X_increase
pad_analog_accel_X_decrease
pad_analog_accel_Y
pad_analog_accel_Y_increase
pad_analog_accel_Y_decrease
pad_analog_accel_Z
pad_analog_accel_Z_increase
pad_analog_accel_Z_decrease
pad_analog_trackpad_pressure

[Pad.Digital]
pad_digital_button
pad_digital_button_Fire
pad_digital_button_Fire2
pad_digital_button_Fire3
pad_digital_button_Fire4
pad_digital_button_Cross
pad_digital_button_Square
pad_digital_button_Triangle
pad_digital_button_Circle
pad_digital_button_A
pad_digital_button_B
pad_digital_button_C
pad_digital_button_D
pad_digital_button_E
pad_digital_button_F
pad_digital_button_O
pad_digital_button_U
pad_digital_button_X
pad_digital_button_Y
pad_digital_button_Z
pad_digital_button_I
pad_digital_button_II
pad_digital_button_1
pad_digital_button_2
pad_digital_button_3
pad_digital_button_4
pad_digital_button_5
pad_digital_button_6
pad_digital_button_7
pad_digital_button_8
pad_digital_button_9
pad_digital_button_0
pad_digital_button_Hash
pad_digital_button_Star
pad_digital_button_Slow
pad_digital_button_TurboA
pad_digital_button_TurboB
pad_digital_button_Center
pad_digital_button_Prog
pad_digital_button_Enter
pad_digital_button_Black
pad_digital_button_Green
pad_digital_button_Red
pad_digital_button_Blue
pad_digital_button_Yellow
pad_digital_button_Diamond
pad_digital_button_Sleep
pad_digital_button_Mode
pad_digital_button_Paddle1
pad_digital_button_Paddle2
pad_digital_button_Paddle3
pad_digital_button_Paddle4

pad_digital_button_Select
pad_digital_button_Start
pad_digital_button_Pause
pad_digital_button_Reset
pad_digital_button_Analog
pad_digital_button_Playstation
pad_digital_button_Steam
pad_digital_button_XBox
pad_digital_button_Guide
pad_digital_button_Plus
pad_digital_button_Minus
pad_digital_button_Home
pad_digital_button_Power
pad_digital_button_Move
pad_digital_button_View
pad_digital_button_Menu
pad_digital_button_Play
pad_digital_button_Stop
pad_digital_button_Option
pad_digital_button_Sound
pad_digital_button_Share
pad_digital_button_Options

pad_digital_button_ZL
pad_digital_button_ZR
pad_digital_button_L
pad_digital_button_R
pad_digital_button_L1
pad_digital_button_R1
pad_digital_button_L2
pad_digital_button_R2
pad_digital_button_L3
pad_digital_button_R3

pad_digital_stick
pad_digital_stick_x
pad_digital_stick_y
pad_digital_stick_up
pad_digital_stick_down
pad_digital_stick_left
pad_digital_stick_right

pad_digital_dpad
pad_digital_dpad_X
pad_digital_dpad_Y
pad_digital_dpad_Up
pad_digital_dpad_Down
pad_digital_dpad_Left
pad_digital_dpad_Right

pad_digital_dpad2
pad_digital_dpad2_X
pad_digital_dpad2_Y
pad_digital_dpad2_Up
pad_digital_dpad2_Down
pad_digital_dpad2_Left
pad_digital_dpad2_Right

pad_digital_cpad
pad_digital_cpad_X
pad_digital_cpad_Y
pad_digital_cpad_Up
pad_digital_cpad_Down
pad_digital_cpad_Left
pad_digital_cpad_Right

pad_switch_Position0
pad_switch_Position1
pad_switch_Position2
pad_switch_Position3

Cheers peeps. Stay Mega.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...