Skip to content

[pull] master from GerbilSoft:master#262

Merged
pull[bot] merged 19 commits into
bazzite-org:masterfrom
GerbilSoft:master
Jul 12, 2026
Merged

[pull] master from GerbilSoft:master#262
pull[bot] merged 19 commits into
bazzite-org:masterfrom
GerbilSoft:master

Conversation

@pull

@pull pull Bot commented Jul 12, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

GerbilSoft and others added 19 commits July 11, 2026 23:25
May end up using this elsewhere to disable Windows XP-specific
workarounds when building for Windows Vista or later.
… for Windows XP.

Since we're building separate DLLs for Windows XP and Windows Server 2003,
we can build the regular Windows 7 DLLs with thread-safe statics enabled.
…ad of calling IsWow64Process() directly.

Windows XP SP2 added IsWow64Process(), which explains why this didn't
cause problems in most cases. Regardless, we should use the function
pointer loaded from GetProcAddress() to prevent issues.
… separate functions.

These are more complicated than iNES or other versions due to the
exponent/multiplier notation option, and it's used for both loaded
ROMs and isRomSupported_static().
Since we're building two different versions now, one for XP/2003 and one
for Vista+ (actually Win7+), we can directly link to the Vista+ functions
in the Vista+ build.

Add RP_SUPPORTS_WINDOWS_XP to the various config.h.in files.

Use this macro to determine if GetProcAddress() is needed for functions
like GetFinalPathnameByHandle() and IsWow64Process().

Use std::call_once() to initialize function pointers if needed.

Tested the Windows XP builds (using v141_xp) and the programs still
load, which means they're still using GetProcAddress() correctly.
…ng symbols from bcrypt.dll as the other files.

NOTE: This requires linking in bcrypt.dll, which we aren't doing yet,
and doing so would require delay-load, which requires adding delay-load
handling. Maybe we shouldn't do this yet...
It's still counted as an error, but it's not as "serious" as e.g.
an incorrect key.
…ot compatibility.

This was partially fixed in commit b13b5a0
([libromdata] EXE_manifest.cpp: Update longPathAware to match.)
but a few lines were missed.

There's no actual effect on what the user sees, though.

Affects: v2.6 - v2.8 (but not really)
…to NTRBOOT images at the moment.

Don't add (or handle) the RomOps if the file is an NTRBOOT image.
This tells the compiler that the enum is intended to be used for flags,
i.e. bitfields.

Currently supported by:
- clang: 5.0
- gcc: 15.1

Added to a new file, compiler-attrs.h.

common.h: #include "compiler-attrs.h" for compatibility.
…riveLetter.hpp.

The IRpFile.hpp version had the non-templated functions call the templated
function. Since the code is very straightforward, there's no need to do
this, so those functions now implement the one-line check themselves.

TODO: Make IsDriveLetter() an overloaded function that takes either char
or wchar_t, and get rid of the macros and templated function? (Might not
work due to ambiguous function signatures, though...)
@pull pull Bot locked and limited conversation to collaborators Jul 12, 2026
@pull pull Bot added the ⤵️ pull label Jul 12, 2026
@pull pull Bot merged commit 7b2ccca into bazzite-org:master Jul 12, 2026
2 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants