Assets 3
  • Added config schema to allow configuration via mod manager.
  • Fixed detection of certain DirectInput devices by using SDL_JOYDEVICEADDED and SDL_JOYDEVICEREMOVED instead of SDL_CONTROLLERDEVICEADDED and SDL_CONTROLLERDEVICEREMOVED respectively.
  • Updated to SDL 2.0.8.

@SonicFreak94 SonicFreak94 released this Nov 28, 2017 · 11 commits to master since this release

Assets 3
  • Updated SDL2 to version 2.0.7

@SonicFreak94 SonicFreak94 released this Oct 21, 2017 · 14 commits to master since this release

Assets 3

(for real this time)

  • Fixed some weird mouse button shenanigans

@SonicFreak94 SonicFreak94 released this Oct 20, 2017 · 18 commits to master since this release

Assets 3
  • Automatically enable full range free camera if smooth-cam is detected
  • Cleaned up rumble a bit more
  • Implemented rudimentary keyboard and mouse control
  • Dynamically link SDL
  • Updated to SDL 2.0.6

Known issues

  • When playing in a window, if borderless window is still enabled, keyboard input may stop working when the window loses focus.

@SonicFreak94 SonicFreak94 released this Jun 11, 2016 · 61 commits to master since this release

Assets 3
  • Removed cutscene rumble toggle because that's not actually what that did
  • Fixed rumble inconsistencies when compared to the Dreamcast and GameCube versions. Fixes things like the tornado in Windy Valley. See issue #4
  • Other misc. rumble oversights
  • Added debug rumble test buttons (L/R when adjusting multiplier)

@SonicFreak94 SonicFreak94 released this Feb 21, 2016 · 72 commits to master since this release

Assets 3
  • Enabled rumble by default on new save creation.
  • Added toggle for rumble during cutscenes, enabled by default.1 Toggle by adding the field CutsceneRumble to your config's [Config] section.
  • Implemented optional minimum rumble time. This is to help controllers that can't spin up the motors quickly enough under certain conditions. Configure it by adding the field RumbleMinTime to your config. It accepts a duration in milliseconds. I recommend 250, which is the default behavior for v1.7.
  • Implemented optional "mega rumble" which makes both motors rumble instead of one or the other. This may also help certain controllers rumble correctly. Configure it by adding the field MegaRumble to your config. Accepted values are 0 and 1.

1 Certain cutscenes actually have rumble calls, but for some reason they specifically disabled it in Sonic Adventure DX. I was reminded that the Dreamcast version of Sonic Adventure had rumble during cutscenes normally, so I decided to add a toggle for it.

@SonicFreak94 SonicFreak94 released this Jan 23, 2016 · 77 commits to master since this release

Assets 3
  • Re-implemented rumble system1
  • Added Debug field to configuration file. Configure it by adding the field Debug to your config's [Config] section. Accepted values are 0 and 1.
  • Added error checking to controller database loading.
  • Re-enabled per-controller rumble.

1 Rumble time was previously erroneously interpreted as the rumble magnitude. This has been resolved by taking advantage of the game's built in object infrastructure.

@SonicFreak94 SonicFreak94 released this Nov 29, 2015 · 99 commits to master since this release

Assets 3
  • Renamed from xinput-mod to input-mod.
  • Switched from pure XInput to SDL2 for simultaneous DirectInput and XInput usage.
  • Removed analog scale hack and fixed underlying problem.1
  • Allowed use of keyboard/mouse when no controllers are connected.2
  • Increased theoretical maximum number of controllers from 4 (but sometimes 8) to 8.
  • Allowed loading of SDL controller databases for controllers that behave incorrectly.3

1 The problem as described in the last release seemed to be caused by the way SADX normalizes analog sticks. I've hacked around that and replaced it with the value that's calculated per controller poll which fixes the issue.

2 When no controllers are connected, the controller polling loop in the mod doesn't run. It lets the original DirectInput polling loop do its thing which allows you to use the keyboard and mouse again. Convenient, but still a cover up for the underlying problem: I need to implement it myself.

3 Say your right stick is causing the camera to rotate into oblivion, or your triggers make you run, or some other weird thing. You can create an SDL2 controller definition to be loaded by the mod. It looks for gamecontrollerdb.txt in the mod directory. For more information, as well as a great starting point, check out this repo. There's also an example in the Remarks section of this API documentation.

@SonicFreak94 SonicFreak94 released this Sep 16, 2015 · 146 commits to master since this release

Assets 3
  • Implemented configurable rumble multiplier (1.0 by default). Add the field RumbleFactor to your configuration file to change it.
  • Re-implemented per-controller rumble by detecting the enabled state of the controller.
  • Fixed a bug (with a hack1) which caused slow acceleration when running diagonally from a complete stop.

1 This is implemented by intentionally scaling the axis out of range, then clamping back down to the proper range. The game does this normally to some degree, but I intend to fix the issue ingame which causes the bug in the first place (assuming I can find it). This is configurable if you want to disable it, for example. Just add the ScaleFactor field to your configuration file. The minimum value is 1.0 (disabled, pre-hack behavior), and the default is 1.5 (post-hack default).

@SonicFreak94 SonicFreak94 released this Jul 22, 2015 · 156 commits to master since this release

Assets 3
  • Deadzone scaling & normalized input
  • Added extended button support (C, D, and Z buttons)