| Age | Commit message (Collapse) | Author |
|
This has no effect now, as we've never bumped the database version.
Instead, it adds future proofing, and makes moving between a future
version with a bump and master clean.
|
|
Now that all inputs are corrected to zero-centered, we can use getFlat()
to ignore movements that are just noise.
This eliminates a lot of drift when the controller is at rest, notably
on the character select screen in Melee.
|
|
Android reports the same physical axis multiple times for analog
triggers, and this handles this case.
There are also some controllers with broken mappings (eg the analog
triggers on a PS4 DualShock 4). These axis don't center correctly.
There are also some controllers (again, the PS4) that send both a button
press and an axis movement. This ignores the buttons so we can use the
analog axis. Otherwise, since the button comes before the axis moves
far we would always take the button.
|
|
Android: Add Slot A and B Device settings to the settings UI
|
|
Revert "Convert to/from old EFB scale numbering"
|
|
This reverts commit 1fc910b3ea9eafcc3cc5132bdfc51731ba5fa9fd,
replacing the old INI setting EFBScale with a new INI setting
called InternalResolution, which has a simpler mapping:
| EFBScale | InternalResolution
----------------- | -------------------- | --------------------
Auto (fractional) | 0 |
Auto (integral) | 1 | 0
1x | 2 | 1
1.5x | 3 |
2x | 4 | 2
2.5x | 5 |
3x | 6 | 3
4x | 7 | 4
5x | 8 | 5
6x | 9 | 6
All the fractional IRs were removed in f090a943.
|
|
Android: minor UI changes
|
|
Emulation needs to be running when the surface is destroyed, but we want
to pause in onStop. So call the surfaceDestroyed callback, as this
accomplished both.
|
|
|
|
called.
The user will get a brief system popup tutorial the first time it's
used, so we don't need to show them the menu every time. Once they
enable it by pulling down, hide again after 3s.
|
|
|
|
This works the same, but only looks for the initial event and ignores
the keyup / return to home. It handles joystick diagonals smarter, in
that it ignore diagonals until the stick moves in a more cardinal
direction.
This fixes an odd bug where the dpad up/down were switched (thread post
I think found it -
https://forums.dolphin-emu.org/Thread-arm64-version-on-shield-tv-x1-local-multiplayer-not-working-d-pad-mappings?pid=379918#pid379918)
|
|
In its prior state, it had xor parameters, which is confusing.
|
|
|
|
Move the parameter extraction earlier on in onCreate. Mostly this moves
setting sIsGameCubeGame to before setContentView, which means
EmulationFragment will always see it in a consistent state. Previously,
there was a race, which mean the controller overlay would randomly be
Wii controls for a GameCube game (since the default is false).
Use the correct support version of things, ActivityOptionsCompat and
transitions
Rename static var mIsGameCubeGame to sIsGameCubeGame. s is static, m is
member.
|
|
Make the MenuFragment added and removed by fragment transactions only,
instead of being initially present in the XML. This fixes a glitch where
it doesn't animate correctly the first time it's used.
|
|
The Activity is responsible for just its views and menus and such. It
signals the Fragment via setGamePath, StartEmulation and StopEmulation.
The Fragment manages the actual emulation lifecycle. It is solely
responsible for calling the NativeLibrary lifecycle methods.
With this lifecycle simplification, the NativeLibrary no longer needs to
kill the Activity. It happens normally now.
This simplifies a lot of things, live handling rotation.
|
|
image.
Doing it on the preDraw for the View is too complicated. This works just
as well.
|
|
This is causing bugs (no UI is rendered) when the Activity is rotated.
|
|
Add in null checks as well.
|
|
SaveLoadStateFragment was refactored.
|
|
Without this View, the emulation SurfaceView acts like it has the
highest Z-value, blocking any other View. This includes the menu
fragments and the screenshot ImageView.
|
|
This makes it clear that the Activity is being cleared and removes null as
a valid param. This improves readability (and logging slightly).
Fix spacing between [Tag] and message. This matches the rest of the log
messages.
|
|
In the support lib, the code comes from the SDK, not the device like the
framework version. This means we're shipping a more recent and less buggy
version.
It's also a good idea to keep the entire project on one version. We have a bit
of a mix now. I think some of the Fragment animation issues were because of
this mixing.
For the leanback activities, AppCompatActivity requires AppCompat themes, which
they don't ship for Theme.Leanback. So use FragmentActivity instead (that's the
parent of AppCompatActivity, but still in the support library). For passed
around Activities, use FragmentActivity to work with both.
|
|
Other than what action they send back to
EmulationActivity.handleMenuAction(), they are the same.
Change the menu-handling logic in EmulationActivity to keep track of a
boolean for whether the submenu is visible, rather than keeping the
fragment tag. There's only one fragment visible, so this makes more
sense.
|
|
Following the style guide, constructors go before public methods.
newInstance and launch are basically constructors.
|
|
This will remove the 'all games' row on the TV view.
|
|
This is good practice (see Effective Java chapter 6), and adds
compile-time checks.
|
|
This allows us to use a real ImageCardView instead of extending the
class.
|
|
|
|
Prefixing everything with a constant packagename is not needed for
internal keys, and just adds complexity.
Rename ARGUMENT_ prefix to ARG_ to match (most) of the rest of the
codebase.
Restrict visiblity of above as much as possible.
|
|
Fix the hack of using the layout resource ID as a save/load ID, and
instead use a proper enum.
|
|
FRAGMENT_ID wasn't actually the fragment's ID (that's misleading, and
sounds like the tag). It's actually the layout resource ID. There's no point in making that a static constant.
|
|
Fix some Android UI crashes opening 'settings' menus
|
|
Android Studio wants to correct these automatically when editing files.
|
|
These can no longer happen during 'normal' use (IE if the setting was
missing)
|
|
Now the SettingsSection map constructs a new SettingsSection at .get()
time, these are no longer needed
|
|
If a SettingsFile had at least one section, it was assumed all sections
were correctly filled out. This caused crashes when opening the settings
menus if that was not the case - for example the GFX.ini settings empty
sections are removed by the main dolphin app, putting the .ini file in a
state that would crash the settings window if at least one setting was
changed in it from the default, some sections were left as default.
This adds a subclass of HashMap<String, SettingSection> that constructs a
new SettingSection instead of returning 'null' if the key isn't found,
so the mSettings.get(FILE).get(SECTION).get(SETTING) pattern can be
safely used.
|
|
[Android] Show the version number on the title for the Android TV UI
|
|
MainAndroid: Remove s_filename
|
|
It would fail on lines line "Value =" - IE a value set to emptystring.
This would cause the app to crash when trying to open the corresponding
settings window.
|
|
This fits better as a function parameter than as global state.
|
|
- Stop reading version number from native code and use the one from BuildConfig
- Show the version number on the title for the Android TV UI
|
|
|
|
|
|
|
|
|
|
|
|
Invalidate more often, display nub as pressed when in use, and implement
basic nub bounds.
|
|
Now the buttons will be shown in different color to indicate a press event
|