Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 28 million developers.Sign up
- Added config schema to allow configuration via mod manager.
- Fixed detection of certain DirectInput devices by using
- Updated to SDL 2.0.8.
- 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
- When playing in a window, if borderless window is still enabled, keyboard input may stop working when the window loses focus.
- 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)
- Enabled rumble by default on new save creation.
- Added toggle for rumble during cutscenes, enabled by default.1 Toggle by adding the field
CutsceneRumbleto your config's
- 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
RumbleMinTimeto 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
MegaRumbleto your config. Accepted values are
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.
- Re-implemented rumble system1
- Added Debug field to configuration file. Configure it by adding the field
Debugto your config's
[Config]section. Accepted values are
- 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.
- Renamed from
- 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.
- Implemented configurable rumble multiplier (
1.0by default). Add the field
RumbleFactorto 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).