| Age | Commit message (Collapse) | Author |
|
PerformanceMetrics: Fix compiling using clang&libstdc++
|
|
Custom composable that switched between compact and medium size app bar depending on a combination of orientation and screen size. (Small app bar when horizontal on small devices, medium app bar otherwise. Medium app bar supports collapse on scroll.
|
|
Dentomologist/windows_git_bash_fix_command_line_output
Windows: Fix command line output not displaying when using Git Bash
|
|
GameINI: Add codes to NiGHTS Journey of Dreams
|
|
Android: Update dependencies and build tools
|
|
Android: Convert ContentHandler to Kotlin and fix warnings
|
|
When using clang and libstdc++, compiling fails with these errors:
```
FAILED: [code=1] Source/Core/VideoCommon/CMakeFiles/videocommon.dir/PerformanceMetrics.cpp.o
/usr/sbin/ccache /usr/sbin/clang++ -DAUTOUPDATE=1 -DDATA_DIR=\"/usr/local/share/dolphin-emu/\" -DHAS_OPENGL -DHAS_VULKAN -DHAVE_CPPIPC -DHAVE_LIBSYSTEMD -DIMGUI_USER_CONFIG=\"imgui_user_config.h\" -DLZMA_API_STATIC -DOFF -DPUGIXML_NO_EXCEPTIONS -DRC_CLIENT_SUPPORTS_HASH -DSFML_STATIC -DSPNG_STATIC -DTINYGLTF_NOEXCEPTION -DTINYGLTF_NO_EXTERNAL_IMAGE -DTINYGLTF_USE_CPP14 -DUSE_ANALYTICS=1 -DUSE_MEMORYWATCHER=1 -DUSE_PIPES=1 -DUSE_RETRO_ACHIEVEMENTS -DZSTD_MULTITHREAD -D_ARCH_64=1 -D_DEFAULT_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_M_X86_64=1 -D__LIBUSB__ -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -I/dolphin-local/Source/Core -I/dolphin-local/Externals/picojson -I/dolphin-local/build/release/x64/Source/Core -I/dolphin-local/Externals/enet/enet/include -I/dolphin-local/Externals/fmt/fmt/include -I/dolphin-local/Externals/mbedtls/include -I/dolphin-local/Externals/minizip-ng/minizip-ng -I/dolphin-local/Externals/liblzma/api -I/dolphin-local/Externals/zstd/zstd/build/cmake/../../lib -I/dolphin-local/Externals/libiconv/include -I/dolphin-local/build/release/x64/Externals/libiconv/lib -I/dolphin-local/Externals/libiconv/libcharset/include -I/dolphin-local/build/release/x64/Externals/libiconv/libcharset -I/dolphin-local/Externals/SFML/SFML/include -I/dolphin-local/Externals/bzip2/bzip2 -I/dolphin-local/Externals/expr/include -I/dolphin-local/Externals/hidapi/hidapi-src/hidapi -I/dolphin-local/Externals/pugixml/pugixml/src -I/dolphin-local/Externals/glslang/glslang/glslang/.. -I/dolphin-local/build/release/x64/include -I/dolphin-local/Externals/rcheevos -I/dolphin-local/Externals/libspng/libspng/spng -I/dolphin-local/Externals/xxhash/xxHash -I/dolphin-local/Externals/imgui -I/dolphin-local/Externals/imgui/imgui -I/dolphin-local/Externals/implot/implot -I/dolphin-local/Externals/glslang/glslang/SPIRV/.. -I/dolphin-local/Externals/tinygltf -isystem /dolphin-local/Externals/libusb/libusb/libusb -isystem /dolphin-local/Externals/glslang/glslang -isystem /dolphin-local/Externals/glslang/glslang/Public -isystem /dolphin-local/Externals/glslang -Qunused-arguments -fcolor-diagnostics -O3 -DNDEBUG -std=c++23 -msse2 -fdiagnostics-color -fno-strict-aliasing -fno-exceptions -fvisibility-inlines-hidden -fvisibility=hidden -fomit-frame-pointer -Wall -Wtype-limits -Wsign-compare -Wignored-qualifiers -Wuninitialized -Wshadow -Wshadow-field-in-constructor -Winit-self -Wmissing-declarations-Wmissing-variable-declarations -Werror=format -Wno-trigraphs -MD -MT Source/Core/VideoCommon/CMakeFiles/videocommon.dir/PerformanceMetrics.cpp.o -MF Source/Core/VideoCommon/CMakeFiles/videocommon.dir/PerformanceMetrics.cpp.o.d -o Source/Core/VideoCommon/CMakeFiles/videocommon.dir/PerformanceMetrics.cpp.o -c /dolphin-local/Source/Core/VideoCommon/PerformanceMetrics.cpp
In file included from /dolphin-local/Source/Core/VideoCommon/PerformanceMetrics.cpp:4:
/dolphin-local/Source/Core/VideoCommon/PerformanceMetrics.h:69:51: error: no matching constructor for initialization of 'std::atomic<FrameBufferSize>'
69 | std::atomic<FrameBufferSize> m_frame_buffer_size{};
| ^~
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/16/../../../../include/c++/16/atomic:237:17: note: candidate constructor not viable: constraints not satisfied
237 | constexpr atomic() noexcept(is_nothrow_default_constructible_v<_Tp>)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/16/../../../../include/c++/16/atomic:238:11: note: because 'is_default_constructible_v<PerformanceMetrics::FrameBufferSize>' evaluated to false
238 | requires is_default_constructible_v<_Tp>
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/16/../../../../include/c++/16/atomic:246:7: note: candidate constructor not viable: requires 1 argument, but 0 were provided
246 | atomic(const atomic&) = delete;
| ^ ~~~~~~~~~~~~~
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/16/../../../../include/c++/16/atomic:252:17: note: candidate constructor not viable: requires single argument '__i', but no arguments were provided
252 | constexpr atomic(_Tp __i) noexcept : _M_i(__i)
| ^ ~~~~~~~
1 error generated.
```
This was tested and occurs on both Arch and Alpine Linux.
|
|
GameINI: Add codes to Sonic Storybook games
|
|
Update Android dependencies and build tools to their latest available versions.
Rename the GameCube save magic constant to avoid a collision with the NDK 30 ARM64 signal context header.
|
|
|
|
We were registering the hotplug callback when starting the thread, but
deregistering it when shutting down GCAdapter as a whole. Because the
thread can start and stop potentially many times before GCAdapter shuts
down, this led to callbacks being registered when we already have
callbacks. On Android, this was making Dolphin's Kotlin code for
registering the callback throw an IllegalStateException.
To fix this, deregister the callback when stopping the thread.
|
|
Core: Adjust emulated memory size automatically.
|
|
|
|
|
|
Dolphin now uses the simulated memory size defined in `bi2.bin` to
adjust the memory size in the emulated console automatically.
If **Enable Emulated Memory Size Override** has been enabled by the
user, the fixed memory size specified for **MEM1** and **MEM2** are
still used as they were before.
Most retail games do not define the simulated memory size (Wii or
Triforce games), or define it to a value that matches the default 24 MiB
(GameCube games), so, in the general case, there is no behavior change.
One game that sets the simulated memory to a non-default value is the
debug build of _Mario Kart: Double Dash!!_, where the value is set to
48 MiB.
This enhancement is focused mainly to the modding community. Prior to
these changes, modded games with extended memory requirements would
fail to launch in Dolphin [with no indication of what the problem is] if
the user failed to set the emulated memory override to the correct
value. Now, modding tools can specify the simulated memory size in the
`bi2.bin` file to produce extended games that _just work_ in Dolphin,
without cumbersome instructions that can be overlooked by the user.
|
|
This is the 32-bit unsigned integer that is seen at offset `0x04` in the
`bi2.bin` file.
The intent is to study what games define values that departure from the
norm. Common values are 0 MiB (Wii games) and 24 MiB (GameCube games),
with some debug and demo builds featuring 48 MiB (e.g. the debug build
of _Mario Kart: Double Dash!!_).
|
|
This makes the simulated memory size of the running game accessible via
the `SConfig` singleton.
|
|
The data structure of the `bi2.bin` file in which the simulated memory
size is set:
> **13.2 Disk header Information**
>
> this is loaded to the Address in `0x800000f4` when a disc is initialized by the IPL
>
> | offset | end | size | Description |
> | :------: | --- | :--: | --------------------- |
> | `0x0000` | | 4 | Debug-monitor Size |
> | `0x0004` | | 4 | Simulated Memory Size |
> | `0x0008` | | 4 | Argument offset |
> | `0x000c` | | 4 | Debug flag |
> | `0x0010` | | 4 | Track Location |
> | `0x0014` | | 4 | Track size |
> | `0x0018` | | 4 | Countrycode |
> | `0x001c` | | 4 | ? |
See https://hitmen.c02.at/files/yagcd/yagcd/chap13.html#sec13.2.
Most GameCube games set the value to `24 MiB`, which matches the
physical memory size. Most Wii games set the value to `0 MiB` (unset).
The debug build of _Mario Kart: Double Dash!!_ is one game that sets the
value to `48 MiB`.
|
|
Erase a removed pack from ResourcePack::<anonymous namespace>::packs
instead of only deleting the pack file from the disk.
This causes the repopulated table to actually display that the pack has
been removed (which previously only happened after restarting Dolphin or
hitting `Refresh`), and also removes the pack from the `Packs.ini` file.
|
|
Avoid accessing destroyed `QTableWidgetItem` by retrieving the desired
path from the item before it's destroyed.
In `ResourcePackManager::Remove` pointers to the selected items in `m_table_widget`
were saved in the local variable `items` before calling `Uninstall`.
`Uninstall` called `RepopulateTable` which called
`m_table_widget->clear()`, destroying the table's descendants. Upon
returning to `Remove` `items` then pointed to some of those destroyed descendants, and
passing `items[0]` to `GetResourcePackIndex` resulted in a call to
`item->row()` which was a use-after-free.
Fixes https://bugs.dolphin-emu.org/issues/14095.
|
|
|
|
|
|
Android: Coloured netplay chat messages
|
|
The ifdef made it so this was never called on Android, but we do want it
to be called on Android.
There are ifdefs inside the function implementation but not around the
function declaration or definition, so there's no need for ifdefs when
calling it.
|
|
Previously we would vibrate for 100 ms on every vibration, which was
especially annoying if a game was doing a bunch of vibrations that were
supposed to be much shorter than that. Now we tell Android to vibrate
for 10 s, then cancel the vibration as soon as the game turns the
vibration off.
|
|
docs/DSP: Remove DSP_InterC
|
|
Android: Set USAGE_MEDIA for rumble
|
|
We have to use the deprecated APIs when running on old devices.
|
|
GameSettings: Approve speed hacks for RetroAchievements
|
|
Some of the speed hacks were not approved for RetroAchievements, meaning that users had to choose between not getting hardcore achievements, or having poor performance.
Also, renamed the instances of `$Limit internal FPS to VPS (improves performance)` to `$Limit internal frame rate (speed hack)` for consistency. They are enabled by default, so unless the user disabled them, it won't break the configuration.
|
|
Android: Enable USE_UPNP in android builds
|
|
mingw: lower case windows includes
|
|
Externals: Update cpp-ipc to latest
|
|
|
|
|
|
WiimoteScannerAndroid::FindAttachedWiimotes() added every device
connected through the DolphinBar to the Wii Remote results, with a
TODO noting that balance boards were not differentiated. As a result,
a Wii Balance Board connected through the DolphinBar was always
assigned to a Wii Remote slot (Player 1), and games that request a
Balance Board never detected it.
Use Wiimote::IsBalanceBoard() to route balance boards into the
balance_boards results, matching the Linux and Windows scanner
backends. Tested on an AYN Thor (Android 13) with a Mayflash
DolphinBar in Mode 4 running Wii Fit Plus: the board is now detected
in the Balance Board slot.
|
|
VideoCommon: Use XFB for internal resolution stats
|
|
Bugfix: Cheat codes: Make newly added codes start disabled.
|
|
Core: Implement automatic symbol demangling
|
|
Core: Remove SerialInterfaceManager::ChangeDevice
|
|
Android: Convert EGLHelper to Kotlin
|
|
Simonx22/android/convert-filebrowserhelper-to-kotlin
Android: Convert FileBrowserHelper to Kotlin
|
|
MenuBar: Add missing Alt shortcuts in Tools
|
|
JitArm64: Minor subfzex optimizations
|
|
Jit64: Early flush in ComputeRC even when `needs_test`
|
|
This lets rumble work even if the user has turned off the Android
setting Sound and vibration > Vibration and haptics > Interactive
haptics > Touch feedback. Rumble can still be disabled through Dolphin's
controller bindings and through in-game settings (GameCube) or SYSCONF
(Wii).
|
|
To make it extra clear that this is measuring the XFB, not the EFB.
|
|
These are available in DolphinQt, so let's make them available in the
Android GUI too.
|
|
fb4ff3e put all the code for the show internal resolution setting right
next to the code for the show FPS setting, presumably because an earlier
version of that commit had them next to each other in the GUI. It makes
more conceptual sense to put the code next to the code for the show
statistics settings, matching what the GUI looks like now.
|
|
It looked a bit out of place wedged in between the FPS and VPS.
|