• src/doors/syncretro/main.c retro_core.c retro_core.h syncretro.h syncr

    From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Tuesday, July 21, 2026 22:33:23
    https://gitlab.synchro.net/main/sbbs/-/commit/3a9fb3c143e7a079afd76189
    Modified Files:
    src/doors/syncretro/main.c retro_core.c retro_core.h syncretro.h syncretro_binds.c syncretro_config.c syncretro_door.c syncretro_profile.c syncretro_profile.h xtrn/syncarcade/lobby.js
    Log Message:
    syncretro: an arcade controller profile, and controller-device selection

    TWO CHANGES, both about input, neither about the wiring.

    The arcade profile binds EXACTLY what `pad` binds -- a control panel is a
    stick and a row of buttons, which is what a RetroPad already is -- and exists for the words. `pad`'s labels are a console's: it calls Backspace "Select"
    when on a cabinet it is the COIN SLOT and nothing happens at all until it is pressed, calls the stick a "d-pad", and names six buttons "B/A/Y/X/L/R" after
    a gamepad's face rather than the six a fighting game has. It also drops the
    Tab controller-swap, which on a cabinet only moves the player onto player
    two's controls -- where his coin and start are different inputs again -- and leaves him with a dead machine and no clue why.

    Buttons are numbered 1-6, not named. MAME 2003-Plus reports what a driver
    wants ("Supports 6 distinct button controls" for Street Fighter II, 0 for Pac-Man) but sends no SET_INPUT_DESCRIPTORS, so the core cannot say WHICH arcade button each RetroPad id became. Numbering them in the core's own order is the most the door can honestly claim; "punch" and "kick" would be a guess, and a wrong guess on a help screen is worse than a vague one.

    Separately, retro_set_controller_port_device() is now resolved and callable.
    It never was, so a core offering alternative controllers stayed on its default forever -- MAME 2003-Plus advertises RetroPad, Fightstick, 8-Button and 6-Button through SET_CONTROLLER_INFO and we could select none of them. Driven by [input] device, defaulting to 0 = say nothing, which is exactly the
    previous behaviour: a wrong device id silently rewires every button, so this
    is opt-in rather than a guess applied to every console.

    Verified: -profile arcade resolves and an unknown profile still falls back to pad with a warning; [input] device = 769 selects 6-Button on sf2 and, with the section absent, the door emits no selection at all.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net