stigzler Posted December 17, 2025 Posted December 17, 2025 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): 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: 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. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.