`GPREL16` should behave identically to `GPREL16_LE`; it was
previously blanking the relocation out entirely.
This likely wasn't caught because according to testing, most
versions of `aspsx` (2.67 and earlier) produce `GPREL16_LE`
rather than `GPREL16`. It was only in 2.77 that `aspsx` switched
to `GPREL16` for some reloc exprs.
The AUR pcsx-redux-git package fetches PEGTL from taocpp/PEGTL and points
the submodule at that clone, so the fork-only pinned commit cannot be
fetched and the package stops building. Back to the previous pin until
that is settled.
restore() signals SaveStateLoaded synchronously. When the rewind runs
from the main loop, a listener calling rewindState() steps back right
away, while rewindStateNow() still held the snapshot at the back of the
ring: the nested call landed on it again, and with a single snapshot
the outer call then popped an empty ring.
The test helpers resumed on the emulation stack after a vsync pause,
and runIntoCallStack() paused before the guest ran when called from an
event loop callback; both are fixed so the new test can sit mid-suite.
Main's CD-ROM rewrite drops CDRom::load() and makes m_xa protected,
and load() now skips both under #if 0. restore() is its twin, so it
gets the same two blocks.
With -no-ui, -cli, -tui or -stdout the process always called AllocConsole and
reopened stdout onto it, so a parent capturing the output through a pipe got
nothing and a console window popped up beside it. Skip the console when the
standard output handle is already a pipe or a file.
Just like a few other files in this repository, gui.cc is now chonk
enough that it's going to be needing this flag for cl.exe builds
(Debug and Release).
The right thing would be to split the file up, but that's a much
bigger task.
Raises IRQ1 from code poked into RAM, saves, acks with GP1(02h), loads, and checks the flag is back. Fails with the restore in GPU::deserialize removed.
From a user report:
```
Pixel Shader compilation error: ERROR: 0:6: 'sampler/image' : type requires declaration of default precision qualifier
```
Their specs:
```
GPU - Radeon(TM) RX 460 Graphics - Primary/Discrete
VRAM - 4096 MB - GDDR5 1750 MHz
Driver Version - 22.20.27.09-230330a-390451C
AMD Windows Driver Version - 31.0.12015.1008
Direct3D API Version - 12.0
Vulkan™ API Version - 1.3.217
OpenCL™ API Version - 2.0
OpenGL® API Version - 4.6
Direct3D® Driver Version - 9.14.10.01523
Vulkan™ Driver Version - 2.0.233
OpenCL® Driver Version - 31.0.12027.9001
OpenGL® Driver Version - 23.03.220823_1f70af4
2D Driver Version - 8.1.1.1634
2D Driver File Path - /REGISTRY/MACHINE/SYSTEM/CurrentControlSet/Control/Class/{4d36e968-e325-11ce-bfc1-08002be10318}/0000
UI Version - 2022.0725.1438.1936
AMD Audio Driver Version - 10.0.1.24
Driver Provider - Advanced Micro Devices, Inc.
Windows Edition - Windows 10 Professional (64 bit)
Windows Version - 22H2
```
Bumps nugget to d9e0baca (pcsx-redux/nugget#161 on the current pin line): OpenBIOS waits long enough for Init's completion, and its free survives a user heap the game wrote over. Fixes WipEout (USA) under OpenBIOS (#1913). The new cdrom tests boot the test disc through OpenBIOS without -loadexe.
An acked response whose bytes were never read kept its slot, so the next one was never delivered. OpenBIOS's shell acks GetID's INT3 without reading it and sat waiting for INT2 forever; no disc booted. The unread bytes stay readable until the next response replaces them.