586e24c...
by
Fabrice de Gans <email address hidden>
[GBA] Disable part of SoundDriverVsyncOff()
The official BIOS executes a copy from the stack pointer data to another
area in the internal working RAM. This is problematic to emulate because
our emulated BIOS does not touch the stack. In addition, the official
BIOS overwrites the first word in the stack with "0". While this is fine
with an official BIOS (the stack points to some internal BIOS data at
this point), this results in a user stack corruption with an emulated
BIOS.
Reproducing the BIOS behavior when doing this copy is near impossible
since the stack and CPU states are very different with the emulated
BIOS. Furthermore, the reason why this copy is done by the official BIOS
is unknown. The most likely explanation is that this a leftover from a
debug attempt and is not actually required for most intents and purposes
so this patch disables the copy.
This fixes Shrek games on trunk.
0f4ec57...
by
Fabrice de Gans <email address hidden>
[Build] Fix the NO_LINK build
The NO_LINK build had bitrot and was no longer building. This fixes the
issue by properly disabling Link-related code, including unreachable
functions when the project is built with ENABLE_LINK=FALSE
Update installdeps for Debian to find the new version wx packages, but
still use the -gtk3 variants on very old versions of Debian.
Signed-off-by: Rafael Kitover <email address hidden>
803ab35...
by
Fabrice de Gans <email address hidden>
[GB] Save MBC7 EEPROM data to `gbRam`
Previously, MBC7 EEPROM was saved at address 0xa000 in memory, rather
than inside the `gbRam` data buffer. This was inconsistent with other
mappers, resulting in issues like the EEPROM data being cleared on
`gbReset`.
Fixes #1173
24b6ac5...
by
Fabrice de Gans <email address hidden>
[GBA] Implement missing Thumb instruction
The CMP Thumb instruction was missing one variant. This is used in the
Chinese fan translation of Mega Man Battle Network 2.
Fix Mac build regression caused by 2407923f (build: fix cmake version
warnings, 2023-08-26) due to vbamcore and vbam targets using C++11 but
no longer being compatible with it.
When cmake_minimum_required() was set to a much older version, the
CXX_STANDARD property for vbamcore and vbam were ignored.
With the change mentioned above setting a higher
cmake_minimum_required(), the -std=gnu++11 flag started being passed when
compiling these two targets, making them fail due to recent changes no
longer being C++11 compatible.
Set cmake_minimum_required() to 3.8.2, the first version of cmake
supporting C++17, remove the CXX_STANDARD and CXX_STANDARD_REQUIRED
properties from these two targets, and set CMAKE_CXX_STANDARD to 17 to
set this property to C++17 for all targets in the project.
Signed-off-by: Rafael Kitover <email address hidden>
To fix some cmake dev warnings in recent cmake versions, move
cmake_minimum_required() to before project() and set the minimum
required cmake version to 3.5.
Signed-off-by: Rafael Kitover <email address hidden>