- Fixes a few bugs in the existing C interpreter
- Adds a state abstraction layer to switch between engines at runtime
and maintain snapshot compatibility
Fix Windows build issues in both Python env setup and UI C++ headers.
- Use a plain path for pip --find-links in python/scripts/mkvenv.py instead of a file:// URL, which is unreliable on Windows paths.
- Move qemu/osdep.h outside extern "C" blocks in ui/xemu-snapshots.h and ui/xui/common.hh so C++ compilation sees expected declarations/types without C-linkage wrapping side effects.
Passing two levels of invalid paths to `SDL_ShowOpenFileDialog` on Windows
causes a crash. E.g., given a directory `d:\foo` that exists, passing
`D:\foo\bar\baz` will trigger the crash.
In this case, the `FileDialogCallbackWrapper` callback is invoked twice,
leading to a double-free.
Fixes#2785
- Cleanup various dead code and minor restructure for clarity
- Separate host and guest updates
- Fix freezes while moving or resizing the main window on Windows by
registering event watch callback
When a new controller mapping is added to the controller mapping array
in the xemu config, the array is reallocated, and any existing pointers
become invalid and must be reset.
Adds a new config option to control number of workers. If the value of
the option is 0 (default), then the logical CPU count, as reported by
SDL, is used.
Allows multiple frames to be captured at once by holding shift while pressing
F10.
Temporarily toggles nv2a trace messages if control is held while pressing F10.
Voice Processor (VP) multipass feature allows configuring lists of voices
that are first mixed (in order) into a designated mixbin which is then used
as a sample source when processing voices with multipass flag set to true
in NV_PAVS_VOICE_CFG_FMT. Setting correct voice order in lists is the
responsibility of the game/application and in practice is handled by the
DirectSound library. The multipass mixbin is hardcoded to 31 in
DirectSound, but hardware would allow other bins.
This implementation also adds additional info to audio debug UI to see what
the source and destination voices involved are. The info is only shown
when DSP processing is off, i.e. "VP Only" (MON_VP) is selected. This is
because storing the voice numbers requires additional digging which is
required for MON_VP anyway and therefore is free. The multipass feature
itself works fine with DSP (i.e. GP and EP) enabled, only the additional
debug info is not shown.