Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: DCurrent/openbor
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: f5261e7
Choose a base ref
...
head repository: DCurrent/openbor
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 3caaddd
Choose a head ref
  • 15 commits
  • 17 files changed
  • 1 contributor

Commits on Jul 19, 2021

  1. Configuration menu
    Copy the full SHA
    7a4f778 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    fc339ca View commit details
    Browse the repository at this point in the history
  3. Enable VSync by default and remove SDL_gfx framerate limiter.

    The SDL_gfx framerate limiter offers no advantages over VSync. Syncing
    updates to the display looks better (no risk of judder) and uses less
    power, since most displays are less than 200 Hz. (And we especially
    wouldn't want a 200 FPS limit on any displays with a higher refresh rate
    than 200 Hz.)
    
    The option to disable VSync remains intact. If you disable VSync, there
    will be no framerate cap, so you can test performance.
    Plombo committed Jul 19, 2021
    Configuration menu
    Copy the full SHA
    7d752cb View commit details
    Browse the repository at this point in the history
  4. Rework input interface and rewrite SDL input code.

    This is a big one. Rework the input interface to have the concept of
    separate input devices instead of treating all input devices like
    extensions of a giant keyboard. A single input device is now assigned to
    each player.
    
    The rewrite of the SDL input code also adds support for the SDL game
    controller (XInput) interface, so XInput-compatible controllers can have
    sane default mappings.
    
    There are some things incomplete (saving/loading control mappings,
    reassigning devices to players) but games are playable.
    
    This change will break consoles until their input code is rewritten. It
    probably also breaks Android, but hopefully it will not be too hard to
    fix since Android-specific code has been taken from the original
    control.c.
    Plombo committed Jul 19, 2021
    Configuration menu
    Copy the full SHA
    c978d0f View commit details
    Browse the repository at this point in the history
  5. Add back support for saving and loading controls.

    Control mappings are now saved to a separate file from the main save
    data.
    Plombo committed Jul 19, 2021
    Configuration menu
    Copy the full SHA
    f63b270 View commit details
    Browse the repository at this point in the history
  6. Remove some debug logging.

    Plombo committed Jul 19, 2021
    Configuration menu
    Copy the full SHA
    de00f1d View commit details
    Browse the repository at this point in the history
  7. Fix bug in control configuration.

    When changing the input config for a button, it would pick up the newly
    configured button as a "newly pressed button" on the next update, so it
    would go right back into waiting for a button press again.
    Plombo committed Jul 19, 2021
    Configuration menu
    Copy the full SHA
    0bf0750 View commit details
    Browse the repository at this point in the history
  8. Allow the "cancel" button to be configured to an action button as well

    Now the only way to cancel out of input config when it's waiting for a
    key/button press is for another player to press "cancel".
    Plombo committed Jul 19, 2021
    Configuration menu
    Copy the full SHA
    38b064d View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    bdd3faf View commit details
    Browse the repository at this point in the history
  10. Fix compilation for Android.

    It compiles and runs now, but control config doesn't pick up on-screen
    button presses yet.
    Plombo committed Jul 19, 2021
    Configuration menu
    Copy the full SHA
    4967eec View commit details
    Browse the repository at this point in the history
  11. Make control config respond to on-screen buttons on Android.

    This isn't super useful since on-screen buttons are actually mapped
    directly to directions, Jump, Special, Attack 1, etc. But it's better
    than having to cancel out of control config with the Esc button.
    Plombo committed Jul 19, 2021
    Configuration menu
    Copy the full SHA
    e198aef View commit details
    Browse the repository at this point in the history
  12. Don't count the Android accelerometer as an input device.

    SDL uses the joystick interface to expose the functionality of the
    accelerometer on Android devices. Since the accelerometer is not
    actually a joystick/controller, blacklist it from being counted as an
    input device.
    Plombo committed Jul 19, 2021
    Configuration menu
    Copy the full SHA
    f7d2b99 View commit details
    Browse the repository at this point in the history
  13. Implement the input rework for the Wii port.

    The implementation is buggy and incomplete, but it at least compiles and
    runs okay.
    Plombo committed Jul 19, 2021
    Configuration menu
    Copy the full SHA
    fc1a4ae View commit details
    Browse the repository at this point in the history
  14. Merge pull request #234 from DCurrent/july-2021-fixes

    July 2021 fixes
    Plombo authored Jul 19, 2021
    Configuration menu
    Copy the full SHA
    3b76de4 View commit details
    Browse the repository at this point in the history
  15. Merge pull request #235 from DCurrent/input-rework-rebased

    Completely reworks the input system. The platform-specific control code for SDL and Wii has been completely rewritten. Input devices are now assigned to individual players, controller hotplugging is handled gracefully, and it is easy to reassign which player uses which device. This should fix most of the control issues people have traditionally had with OpenBOR. The days of OpenBOR treating all input devices like pieces of a giant imaginary keyboard are over!
    
    The new input subsystem works very well on Windows/Linux. I haven't been able to test controller support on Android, but these changes at least don't break the regular touch-based input system. The Wii implementation is in worse shape; it is still incomplete and buggy, and will need someone to improve it in the future.
    Plombo authored Jul 19, 2021
    Configuration menu
    Copy the full SHA
    3caaddd View commit details
    Browse the repository at this point in the history
Loading