Jit64::dcbz's fast path bypasses the dcache, so we shouldn't use it if
accurate dcache is turned on. This fixes the graphical corruption that
would occur in Mario Kart Wii's menu FMVs with accurate dcache.
JitArm64 never had this problem, because it implements dcbz in a
different way. It calls EmitBackpatchRoutine, which already has a check
for accurate dcache.
Rename `AUTO_UPDATE_BETA_INDEX` to `AUTO_UPDATE_RELEASE_INDEX` and
`AUTO_UPDATE_BETA_STRING` to `AUTO_UPDATE_RELEASE_STRING`.
Add a comment explaining that `AUTO_UPDATE_RELEASE_STRING = "beta"` for
backward compatibility reasons.
`OpenModeToAndroid("r")` is conceptually wrong, since we're opening a
binary file. It should be either `OpenModeToAndroid("rb")` or just
`"r"`. But either way it evaluates to `"r"`, so this doesn't affect
behavior.
SAF for save files is a huge can of worms because they're managed in a
more complicated way than asking the user to select an existing file,
so I won't be touching save files for now.
We used to create User/Logs/ as a side effect of creating
User/Logs/Mail/, but the creation of User/Logs/Mail/ was removed in
8cbfee2, so now nothing is creating User/Logs/ anymore. Let's explicitly
create it.
Give MixerFifo a variable sample rate dividend.
Handle byte-swapping and stereo channel construction outside of MixerFifo to better handle the custom layouts of each stream.
- Row height is no longer hardcoded to `24`; instead, the height is
determined by the font height of the currently selected debug font.
- Header height has been reduced (a factor of the font height) as it
only serves as a column resizer.
- A `OnDebugFontChanged()` slot has been connected to properly update
the widget on debug font changes.
| Before | After |
| --- | --- |
| <img alt="Registers widget (before)" title="Registers widget (before)" src="https://github.com/user-attachments/assets/8a6644f9-1081-4ac8-9fff-c79ddb73e103" /> | <img alt="Registers widget (after)" title="Registers widget (after)" src="https://github.com/user-attachments/assets/67f799d0-8afd-4081-bb40-3d7a76ddc705" /> |
Moved JVS IO emulation from SI_DeviceAMBaseboard into new JVSIOBoard class.
Sega/Namco board-specific functionality is handled by derived JVSIOBoard classes.
Game input is now sourced from IOPorts rather than being hard coded into JVS IO handlers.
SI_DeviceAMBaseboard: Use IOPorts for status switch input.