]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/log
francis/winuae.git
4 weeks agoMerge pull request #439 from reinauer/porting/slirp-networking
Toni Wilen [Wed, 3 Jun 2026 15:11:25 +0000 (18:11 +0300)]
Merge pull request #439 from reinauer/porting/slirp-networking

slirp: fix Unix portability and socket handling

4 weeks agoMerge pull request #447 from reinauer/porting/ppc-qemu-irq-lock
Toni Wilen [Wed, 3 Jun 2026 15:08:51 +0000 (18:08 +0300)]
Merge pull request #447 from reinauer/porting/ppc-qemu-irq-lock

Avoid a lock ordering inversion when injecting PPC external interrupts into QEMU.

4 weeks agoMerge pull request #446 from reinauer/porting/autoconfig-indirect-ram
Toni Wilen [Wed, 3 Jun 2026 15:07:55 +0000 (18:07 +0300)]
Merge pull request #446 from reinauer/porting/autoconfig-indirect-ram

Guard indirect autoconfig RAM allocation in `mapped_malloc()`.

4 weeks agoMerge pull request #444 from reinauer/porting/fsdb-unix-glue
Toni Wilen [Wed, 3 Jun 2026 15:07:09 +0000 (18:07 +0300)]
Merge pull request #444 from reinauer/porting/fsdb-unix-glue

fsdb: update Unix fsdb API glue

4 weeks agomemory: guard indirect autoconfig RAM allocation
Stefan Reinauer [Sun, 17 May 2026 16:28:47 +0000 (09:28 -0700)]
memory: guard indirect autoconfig RAM allocation

mapped_malloc() uses labels starting with "*" for indirect allocations.
Those allocations require a fixed start address.

Only enter that path when the caller opted in with canbang. This keeps
ordinary mappings from following that path because of label text alone.

4 weeks agoppc: avoid QEMU IRQ lock inversion
Stefan Reinauer [Mon, 25 May 2026 17:47:45 +0000 (10:47 -0700)]
ppc: avoid QEMU IRQ lock inversion

QEMU 10 and newer take the BQL inside ppc_set_irq(). The external
interrupt path can call into QEMU while still holding the UAE PPC
spinlock.

That can deadlock if the main thread waits for QEMU BQL while the
QEMU CPU thread waits for the UAE spinlock.

Use the release-spinlock path for external interrupt injection. This
matches the ordering used for QEMU memory mapping and state changes.

4 weeks agofsdb: update Unix fsdb API glue
Stefan Reinauer [Sun, 10 May 2026 16:40:13 +0000 (09:40 -0700)]
fsdb: update Unix fsdb API glue

Adapt the preexisting Unix fsdb implementation to the current
filesystem API before adding the new od-unix build target.

4 weeks agoslirp: avoid Unix thread sentinel in shared code
Stefan Reinauer [Thu, 28 May 2026 15:08:36 +0000 (08:08 -0700)]
slirp: avoid Unix thread sentinel in shared code

Track whether the builtin slirp helper thread was started. Do not
write BAD_THREAD into uae_thread_id from common code because Windows
uses HANDLE thread IDs and does not define that Unix sentinel.

4 weeks agoslirp: check TCP connect completion with SO_ERROR
Stefan Reinauer [Thu, 28 May 2026 00:38:28 +0000 (17:38 -0700)]
slirp: check TCP connect completion with SO_ERROR

The nonblocking connect path treated a writable socket as connected
and then used a zero-length send as the failure probe. That is not a
reliable completion check and can mis-handle failed or pending guest
TCP connects.

Use getsockopt(SO_ERROR) when select reports the socket writable. Keep
pending connects pending, and only clear SS_ISFCONNECTING after the
host socket has no pending error.

4 weeks agoslirp: forward ICMP through datagram sockets
Stefan Reinauer [Thu, 28 May 2026 00:21:35 +0000 (17:21 -0700)]
slirp: forward ICMP through datagram sockets

Enable datagram ICMP forwarding, keep the host sockets nonblocking,
and strip host IP headers before delivering ICMP replies back to the
emulated Ethernet device.

4 weeks agoMerge pull request #436 from reinauer/porting/pcem-bridgeboards
Toni Wilen [Tue, 2 Jun 2026 14:50:01 +0000 (17:50 +0300)]
Merge pull request #436 from reinauer/porting/pcem-bridgeboards

pcem: fix bridgeboard build integration

4 weeks agoMerge pull request #438 from midwan/fix-sana2-request-cleanup
Toni Wilen [Tue, 2 Jun 2026 11:44:26 +0000 (14:44 +0300)]
Merge pull request #438 from midwan/fix-sana2-request-cleanup

Fix SANA-II request cleanup bookkeeping

4 weeks agoMerge pull request #437 from midwan/fix-uaenet-vsync-wakeups
Toni Wilen [Tue, 2 Jun 2026 11:43:20 +0000 (14:43 +0300)]
Merge pull request #437 from midwan/fix-uaenet-vsync-wakeups

Fix uaenet vsync wakeups

4 weeks agoFix SANA-II request cleanup bookkeeping
Dimitris Panokostas [Tue, 2 Jun 2026 10:21:35 +0000 (12:21 +0200)]
Fix SANA-II request cleanup bookkeeping

4 weeks agoRetry uaenet online wakeups from vsync
Dimitris Panokostas [Tue, 2 Jun 2026 08:58:39 +0000 (10:58 +0200)]
Retry uaenet online wakeups from vsync

4 weeks agoFix uaenet vsync wakeups
Dimitris Panokostas [Tue, 2 Jun 2026 08:49:34 +0000 (10:49 +0200)]
Fix uaenet vsync wakeups

4 weeks agopcem: hide unused CPU catalog declarations
Stefan Reinauer [Sun, 31 May 2026 04:25:47 +0000 (21:25 -0700)]
pcem: hide unused CPU catalog declarations

The embedded bridgeboard glue provides its own file-local CPU tables
and model_init() helper. The public PCem header declarations are not
used by the UAE integration, and some of the names collide with those
local definitions when compiled as C++.

Disable the unused declarations in the imported headers instead of
removing individual entries. This avoids mixed-linkage conflicts while
leaving the original declarations visible in the source for reference.

4 weeks agopci: forward-declare bridge memory banks internally
Stefan Reinauer [Sun, 31 May 2026 04:15:10 +0000 (21:15 -0700)]
pci: forward-declare bridge memory banks internally

The PCI bridge code maps the config, I/O, memory, and bridge banks
before their definitions later in pci.cpp. Clang requires declarations
before those uses.

Keep the declarations and definitions in an anonymous namespace. The
objects remain private to pci.cpp even though the forward declarations
use extern syntax.

4 weeks agopcem: pass MIDI parser a byte buffer
Stefan Reinauer [Sun, 31 May 2026 04:15:01 +0000 (21:15 -0700)]
pcem: pass MIDI parser a byte buffer

Midi_Parse() takes a BYTE pointer. Store the uint8_t input in a local
BYTE before passing it on so the call does not depend on uint8_t and
BYTE being the same typedef on every host.

4 weeks agopcem: select Voodoo codegen by host capability
Stefan Reinauer [Mon, 1 Jun 2026 21:17:14 +0000 (14:17 -0700)]
pcem: select Voodoo codegen by host capability

The imported Voodoo code only enabled its x86 code generators through
Windows-oriented preprocessor checks. That left Unix x86 builds with
the recompiler disabled even when the matching generator was compiled.

Derive explicit PCEM_VOODOO_CODEGEN macros from the host CPU and use
those macros for init, close, rendering, and the default recompiler
configuration.

4 weeks agopcem: avoid dynamic offsetof in Voodoo codegen
Stefan Reinauer [Mon, 1 Jun 2026 21:15:51 +0000 (14:15 -0700)]
pcem: avoid dynamic offsetof in Voodoo codegen

The Voodoo x86 code generators compute offsets into array members
with offsetof(type, field[index]). Some compilers reject that
expression form.

Add helpers that derive the offset from field[0] plus an element
stride. That preserves the generated offsets without relying on a
runtime-indexed offsetof expression. This matches the same cleanup
merged upstream in 86Box.

4 weeks agopcem: fit bridgeboard glue into UAE builds
Stefan Reinauer [Sun, 31 May 2026 02:58:12 +0000 (19:58 -0700)]
pcem: fit bridgeboard glue into UAE builds

The embedded PCem sources are compiled as part of UAE's bridgeboard
integration, not as a standalone PCem binary.

Keep the standalone dynarec entry points behind the non-UAE build
guard, leave the shared block-end flag visible to the interpreter
code, and provide default device configuration values used by the
bridgeboard devices.

4 weeks agopcem: fit graphics sources into C++ builds
Stefan Reinauer [Mon, 1 Jun 2026 20:39:20 +0000 (13:39 -0700)]
pcem: fit graphics sources into C++ builds

WinUAE builds the imported PCem graphics sources as C++ files.
The MGA source includes C atomics directly, and the BT482 RAMDAC
source uses C allocation declarations through C++ headers.

Use C++ atomics when compiling MGA as C++, and include the C++
cstdlib wrapper where the BT482 RAMDAC needs those declarations.

4 weeks agopcem: make MGA high-bit masks unsigned
Stefan Reinauer [Mon, 1 Jun 2026 20:38:59 +0000 (13:38 -0700)]
pcem: make MGA high-bit masks unsigned

MGA defines several bit-31 masks from a signed int literal.
Shifting a signed 1 into the sign bit is undefined behavior in C.

Use UINT32_C(1) so the masks are built in unsigned arithmetic.
This matches the same cleanup merged upstream in 86Box, with the
extra OPTION_POWERPC mask that exists in this imported copy.

4 weeks agopcem: fix helper thread handles
Stefan Reinauer [Tue, 26 May 2026 07:19:35 +0000 (00:19 -0700)]
pcem: fix helper thread handles

The PCem compatibility layer returned a raw uae_thread_id as a
thread_t pointer and then waited on that value through the semaphore
API. That was pointer-shaped on some targets, but it was not a valid
wrapper around UAE's thread API.

Store the uae_thread_id in an explicit PCem handle object, join it
with uae_wait_thread(), and free the wrapper after wait or close. Reset
and signal PCem events through the existing semaphore object instead of
passing the address of a local pointer copy.

4 weeks agoFix typo (fixes AND/EOR/OR/MOVE SR + T0 trace tests)
Toni Wilen [Mon, 1 Jun 2026 18:34:43 +0000 (21:34 +0300)]
Fix typo (fixes AND/EOR/OR/MOVE SR + T0 trace tests)

4 weeks agoMerge branch 'master' of https://github.com/tonioni/WinUAE
Toni Wilen [Mon, 1 Jun 2026 17:56:03 +0000 (20:56 +0300)]
Merge branch 'master' of https://github.com/tonioni/WinUAE

4 weeks agoTemp build fix
Toni Wilen [Mon, 1 Jun 2026 17:55:58 +0000 (20:55 +0300)]
Temp build fix

4 weeks agoMerge pull request #435 from midwan/bugfix/arm64-jit-mvmle
Toni Wilen [Mon, 1 Jun 2026 17:53:53 +0000 (20:53 +0300)]
Merge pull request #435 from midwan/bugfix/arm64-jit-mvmle

Fix ARM64 JIT MOVEM predecrement base stores

4 weeks agofix: handle ARM64 JIT MOVEM predec base
Dimitris Panokostas [Mon, 1 Jun 2026 17:06:40 +0000 (19:06 +0200)]
fix: handle ARM64 JIT MOVEM predec base

4 weeks agoMerge pull request #433 from reinauer/porting/board-audio-fixes
Toni Wilen [Mon, 1 Jun 2026 15:00:40 +0000 (18:00 +0300)]
Merge pull request #433 from reinauer/porting/board-audio-fixes

sound: fix portable board audio helpers

4 weeks agoMerge pull request #432 from reinauer/porting/archive-media
Toni Wilen [Mon, 1 Jun 2026 12:12:05 +0000 (15:12 +0300)]
Merge pull request #432 from reinauer/porting/archive-media

archive: make media archive helpers portable

4 weeks agoMerge pull request #430 from reinauer/porting/core-correctness
Toni Wilen [Mon, 1 Jun 2026 11:08:58 +0000 (14:08 +0300)]
Merge pull request #430 from reinauer/porting/core-correctness

core: fix small portability and correctness issues

4 weeks agoMerge pull request #434 from midwan/fix/arm64-jit-divu-noflags
Toni Wilen [Mon, 1 Jun 2026 09:19:39 +0000 (12:19 +0300)]
Merge pull request #434 from midwan/fix/arm64-jit-divu-noflags

Fix ARM64 JIT DIVU noflags flag preservation

4 weeks agofix: preserve DIVU flags in noflags JIT path
Dimitris Panokostas [Mon, 1 Jun 2026 06:46:07 +0000 (08:46 +0200)]
fix: preserve DIVU flags in noflags JIT path

4 weeks agoMerge pull request #431 from midwan/fix/arm64-jit-cputester-followups
Toni Wilen [Mon, 1 Jun 2026 06:22:45 +0000 (09:22 +0300)]
Merge pull request #431 from midwan/fix/arm64-jit-cputester-followups

Fix ARM64 JIT cputester regressions

4 weeks agocd32_fmv: include libmpeg2 headers as C
Stefan Reinauer [Sun, 31 May 2026 02:59:04 +0000 (19:59 -0700)]
cd32_fmv: include libmpeg2 headers as C

The external libmpeg2 headers declare a C API. Wrap them in
extern "C" when they are included from C++ so the CD32 FMV decoder
links against the library's C symbols.

4 weeks agoprowizard: use C linkage for ripper hooks
Stefan Reinauer [Sun, 31 May 2026 02:57:32 +0000 (19:57 -0700)]
prowizard: use C linkage for ripper hooks

The ripper entry points are consumed from C++ code. Wrap the public
declarations and the compiled search entry point in C linkage so names
match across C and C++ builds.

4 weeks agoarchive: support official LZMA SDK 16.04 APIs
Stefan Reinauer [Sat, 23 May 2026 04:26:23 +0000 (21:26 -0700)]
archive: support official LZMA SDK 16.04 APIs

The bundled 7z reader used older SDK field names directly. Keep the
existing Windows SDK layout as the default path, and add an opt-in
UAE_7Z_SDK_1604 path for the public 16.04 headers.

Select the matching XZ finish constant by SDK family so the shared
archive code can build with either header set.

4 weeks agochd: make LZMA and inline helpers portable
Stefan Reinauer [Thu, 21 May 2026 23:11:14 +0000 (16:11 -0700)]
chd: make LZMA and inline helpers portable

Use the public LZMA property writer to build decoder properties
instead of the MAME-only allocator helper. This keeps the CHD LZMA
path compatible with the stock SDK interface.

Make ATTR_FORCE_INLINE produce inline definitions on GCC and Clang so
header-defined helpers can be included safely by multiple translation
units. Define PTR64 from CPU_64_BIT when the build has not already
provided it.

4 weeks agofix: address ARM64 JIT cputester regressions
Dimitris Panokostas [Sun, 31 May 2026 20:55:01 +0000 (22:55 +0200)]
fix: address ARM64 JIT cputester regressions

4 weeks agoMerge pull request #429 from midwan/fix/arm64-jit-flags
Toni Wilen [Sun, 31 May 2026 18:27:59 +0000 (21:27 +0300)]
Merge pull request #429 from midwan/fix/arm64-jit-flags

jit/arm64: fix instruction flag handling

4 weeks agojit/arm64: fix instruction flag handling
Dimitris Panokostas [Sun, 31 May 2026 17:53:24 +0000 (19:53 +0200)]
jit/arm64: fix instruction flag handling

Fix ARM64 JIT flag handling for register shifts and rotates, including zero-count X/C behavior and byte/word ASR/LSR counts 32..63.

Also correct DIV overflow flag cases and BFINS/MULL/NEG flag handling covered by the same cputester run.

4 weeks agoFix AGA sprite early and delayed SPRxDATx handling if immediately followed by SPRxPOS...
Toni Wilen [Sun, 31 May 2026 15:02:42 +0000 (18:02 +0300)]
Fix AGA sprite early and delayed SPRxDATx handling if immediately followed by SPRxPOS/CTL write

4 weeks agojit: use ucontext_t for gregset access
Stefan Reinauer [Sun, 31 May 2026 02:56:31 +0000 (19:56 -0700)]
jit: use ucontext_t for gregset access

The generic Unix exception path works with ucontext_t directly. Use that
typedef instead of struct ucontext so platforms that expose only
ucontext_t still build.

4 weeks agocfgfile: save DF0 ID hardware setting
Stefan Reinauer [Wed, 27 May 2026 03:58:48 +0000 (20:58 -0700)]
cfgfile: save DF0 ID hardware setting

Round-trip the DF0 ID hardware preference through the shared config
parser so saved configurations preserve it outside frontend startup.

4 weeks agogfxboard: rewind Picasso IV flash before autoconfig
Stefan Reinauer [Tue, 26 May 2026 01:14:33 +0000 (18:14 -0700)]
gfxboard: rewind Picasso IV flash before autoconfig

Picasso IV autoconfig is read from the flash image, but the
initializer can run more than once while the expansion list is
scanned and sorted. loadp4rom() leaves the flash zfile positioned
later in the image, so a later dry scan read all-0xff data and the
board looked like it had no autoconfig block.

Seek back to the beginning before reading the Picasso IV
autoconfig bytes so repeated scans see the same board data.

4 weeks agodms: include target configuration header
Stefan Reinauer [Thu, 21 May 2026 19:52:04 +0000 (12:52 -0700)]
dms: include target configuration header

crc_csum.cpp uses UAE target types through the DMS headers. Include
sysconfig.h first so those target type definitions are available
before the archive declarations are parsed.

4 weeks agoisofs: avoid undefined timezone sign extension
Stefan Reinauer [Thu, 21 May 2026 00:37:36 +0000 (17:37 -0700)]
isofs: avoid undefined timezone sign extension

make_date() sign-extends the ISO9660 timezone byte when the high
bit is set. (-1 << 8) shifts a negative signed value, which is
undefined behavior in C++.

Use ~0xff to build the same extension mask without relying on
that undefined shift.

4 weeks agouae/string: guard _strtoui64 compatibility macro
Stefan Reinauer [Thu, 21 May 2026 00:32:52 +0000 (17:32 -0700)]
uae/string: guard _strtoui64 compatibility macro

Some host C libraries or compatibility headers can provide
_strtoui64 before this header defines the TCHAR-style aliases.

Only provide the fallback when it is missing, and map it to
strtoull so the unsigned conversion matches the name.

4 weeks agonative2amiga: pass signal state as pipe pointer
Stefan Reinauer [Sun, 31 May 2026 02:55:32 +0000 (19:55 -0700)]
native2amiga: pass signal state as pipe pointer

write_comm_pipe_pvoid stores a pointer-sized value. Cast the
processed-state token through void * at the call site so the helper
receives the type it expects.

4 weeks agoscsi: keep AIC DMA helpers static
Stefan Reinauer [Sun, 31 May 2026 02:55:27 +0000 (19:55 -0700)]
scsi: keep AIC DMA helpers static

The AIC DMA helpers are only used in scsi.cpp. Keep the forward
declarations static so they match the definitions and avoid exporting
private symbols.

4 weeks agokbmcu: include cstring for memset
Stefan Reinauer [Sun, 31 May 2026 02:54:39 +0000 (19:54 -0700)]
kbmcu: include cstring for memset

co8048.cpp uses memset directly. Include <cstring> so the file builds
with compilers that do not expose it through another header.

4 weeks agosoftfloat: drop stale float_raise declaration
Stefan Reinauer [Sun, 31 May 2026 07:32:59 +0000 (00:32 -0700)]
softfloat: drop stale float_raise declaration

float_raise() is provided as a static inline helper by
softfloat-specialize.h. Remove the separate external prototype from
softfloat.h so the header does not advertise a non-existent external
definition.

4 weeks agosoftfloat: copy mod/rem quotient through uint64_t
Stefan Reinauer [Sun, 31 May 2026 07:32:30 +0000 (00:32 -0700)]
softfloat: copy mod/rem quotient through uint64_t

floatx80_mod() and floatx80_rem() take a uint64_t quotient pointer,
while the FPU wrapper stores the quotient in uae_u64. Copy through a
temporary so the call does not depend on those typedefs being the same
type on every host.

4 weeks agosoftfloat: use lowercase macro header name
Stefan Reinauer [Sun, 31 May 2026 07:28:39 +0000 (00:28 -0700)]
softfloat: use lowercase macro header name

The source already includes the macro helper as softfloat-macros.h.
Rename the tracked file to match that spelling so case-sensitive file
systems do not depend on the old all-caps name.

4 weeks agoa2410: drop unused TMS bank declaration
Stefan Reinauer [Sun, 31 May 2026 04:14:51 +0000 (21:14 -0700)]
a2410: drop unused TMS bank declaration

The A2410 emulation does not reference tms_bank from this file. Drop
the stale extern declaration while keeping the bank definition local to
the TMS34010 code that owns it.

4 weeks agocfgfile: map legacy toccata_mixer setting
Stefan Reinauer [Sun, 31 May 2026 07:20:57 +0000 (00:20 -0700)]
cfgfile: map legacy toccata_mixer setting

The old toccata_mixer option enabled the board but did not carry the
current per-board mixer setting. Map the legacy key onto the Toccata
ROM config bit so older configurations preserve the same mixer state.

4 weeks agosndboard: disable recording if capture setup fails
Stefan Reinauer [Sun, 31 May 2026 07:19:10 +0000 (00:19 -0700)]
sndboard: disable recording if capture setup fails

codec_start() allocated the record buffer even when host capture setup
failed. Treat that as recording unavailable, clear the record bit, free
the buffer, and leave playback running.

4 weeks agosound: track QEMU output voices separately
Stefan Reinauer [Sun, 31 May 2026 07:18:38 +0000 (00:18 -0700)]
sound: track QEMU output voices separately

Keep every QEMU output voice on a small linked list instead of
replacing a single global pointer. Pass the voice through the audio
callback so each active stream reads its own buffer.

Update all active QEMU voice volumes, only run QEMU board audio when a
voice is active, clamp writes to the sample buffer, and return no input
data until the capture path has a real backend.

4 weeks agodsp3210: fix portable host declarations
Stefan Reinauer [Sun, 31 May 2026 02:58:07 +0000 (19:58 -0700)]
dsp3210: fix portable host declarations

Declare the onboard ROM as external from the emulation file and use the
common byte-swap helpers in the host glue. This avoids Windows-only
byteswap names in shared code.

4 weeks agoslirp: add Unix libc compatibility fallbacks
Stefan Reinauer [Sun, 31 May 2026 02:55:38 +0000 (19:55 -0700)]
slirp: add Unix libc compatibility fallbacks

Provide container_of when the bundled SLIRP code needs it, and avoid
redeclaring the libc index function on Unix hosts that expose it.

5 weeks ago6100b7
Toni Wilen [Sat, 30 May 2026 17:40:24 +0000 (20:40 +0300)]
6100b7

5 weeks agoCheck also vertical and horizontal changes
Toni Wilen [Sat, 30 May 2026 17:28:19 +0000 (20:28 +0300)]
Check also vertical and horizontal changes

5 weeks agoDo not recalculate vertical changes if only single field has different parameters.
Toni Wilen [Sat, 30 May 2026 17:21:54 +0000 (20:21 +0300)]
Do not recalculate vertical changes if only single field has different parameters.

5 weeks agoMerge pull request #428 from midwan/fix/jit-x86-64-fpu-fldcw-crash
Toni Wilen [Sat, 30 May 2026 17:13:57 +0000 (20:13 +0300)]
Merge pull request #428 from midwan/fix/jit-x86-64-fpu-fldcw-crash

jit/x86-64: fix FPU FLDCW codegen crashes (NULL deref + RAX clobber)

5 weeks agojit/x86-64: fix FPU FLDCW codegen crashes on 64-bit hosts
Dimitris Panokostas [Sat, 30 May 2026 16:49:28 +0000 (18:49 +0200)]
jit/x86-64: fix FPU FLDCW codegen crashes on 64-bit hosts

The x86-64 JIT could crash when compiling FPU rounding-mode changes
(FLDCW with an indexed operand) via two defects in codegen_x86.cpp:

1. x86_64_rex() dereferenced its 'b' (REX.B) pointer unconditionally and
   ignored 'r'/'x'. raw_fldcw_m_indexed() passes its index register in the
   'x' (REX.X) slot with b == NULL, so the function read through a NULL
   pointer; an index register in r8-r15 would also have been mis-encoded.
   x86_64_rex() now null-guards each pointer and emits REX.R/X/B (and W).

2. raw_fldcw_m_indexed() loaded the 64-bit base of the x87 control-word
   table into RAX. RAX is allocatable (not in always_used[]) and may hold a
   live m68k value mid-block, and a LOWFUNC cannot declare a register
   clobber, so the allocator's view of RAX was silently corrupted; a later
   access through that register (e.g. MOVEM.L ...,-(An)) then dereferenced
   the table pointer as an m68k address and faulted. The base is now
   materialized in a push/pop-preserved scratch register chosen to differ
   from the index register.

Only x86-64 is affected; the 32-bit path uses a direct FLDCW [reg] encoding
and ARM64 uses different codegen.

5 weeks agocputester update
Toni Wilen [Fri, 29 May 2026 16:00:38 +0000 (19:00 +0300)]
cputester update

5 weeks agoRemoved ARM64EC
Toni Wilen [Fri, 29 May 2026 15:58:48 +0000 (18:58 +0300)]
Removed ARM64EC

5 weeks ago68020/030 AND/EOR/OR #x,CCR + T1 trace: trace exception is generated.
Toni Wilen [Thu, 28 May 2026 19:49:21 +0000 (22:49 +0300)]
68020/030 AND/EOR/OR #x,CCR + T1 trace: trace exception is generated.

5 weeks agoGenerate fastest possible CPU mode 020/030 LINK“special case.
Toni Wilen [Thu, 28 May 2026 18:34:20 +0000 (21:34 +0300)]
Generate fastest possible CPU mode 020/030 LINKĀ“special case.

5 weeks agoFast CPU mode approximate serial port transmit throttling to selected baud rate
Toni Wilen [Sun, 24 May 2026 18:17:21 +0000 (21:17 +0300)]
Fast CPU mode approximate serial port transmit throttling to selected baud rate

6 weeks agoSpecialmonitors wip
Toni Wilen [Fri, 22 May 2026 15:23:22 +0000 (18:23 +0300)]
Specialmonitors wip

6 weeks agoRemove interlace artifacts wip
Toni Wilen [Fri, 22 May 2026 15:22:40 +0000 (18:22 +0300)]
Remove interlace artifacts wip

6 weeks agoRTG non-squarepixels, not yet implemented
Toni Wilen [Fri, 22 May 2026 15:19:32 +0000 (18:19 +0300)]
RTG non-squarepixels, not yet implemented

6 weeks agoPAL/NTSC scaling cleanup
Toni Wilen [Fri, 22 May 2026 15:16:48 +0000 (18:16 +0300)]
PAL/NTSC scaling cleanup

6 weeks agoMerge pull request #427 from midwan/jit-generator-output-parity
Toni Wilen [Thu, 21 May 2026 19:42:20 +0000 (22:42 +0300)]
Merge pull request #427 from midwan/jit-generator-output-parity

Generate current JIT wrapper output

6 weeks agoGenerate current JIT wrapper output
Dimitris Panokostas [Thu, 21 May 2026 19:04:51 +0000 (21:04 +0200)]
Generate current JIT wrapper output

6 weeks agoMerge pull request #426 from midwan/arm64-jit-build-fixes
Toni Wilen [Thu, 21 May 2026 16:04:51 +0000 (19:04 +0300)]
Merge pull request #426 from midwan/arm64-jit-build-fixes

Fix Windows ARM64 JIT startup

6 weeks agoMerge pull request #425 from midwan/jit-high-natmem-exception-handler
Toni Wilen [Thu, 21 May 2026 16:01:31 +0000 (19:01 +0300)]
Merge pull request #425 from midwan/jit-high-natmem-exception-handler

Fix x64 JIT high natmem exception handling

6 weeks agoFix Windows ARM64 JIT startup
Dimitris Panokostas [Thu, 21 May 2026 13:06:23 +0000 (15:06 +0200)]
Fix Windows ARM64 JIT startup

Enable the ARM64 JIT build path, keep natmem above 4GB, reserve the full direct-memory window, commit read-only natmem gaps, and install a Windows ARM64 vectored exception handler for JIT access faults.

Add a GitHub Actions Windows ARM64 binary job that installs the ARM64 MSVC tools and builds winuae_msvc.vcxproj directly without ARM64-building host generator projects.

Validated with ARM64 Release and FullRelease MSBuild builds, plus VMware Windows ARM64 runtime logs showing the handler catching ramsey_low probes instead of crashing.

6 weeks agoFix x64 JIT high natmem exception handling
Dimitris Panokostas [Thu, 21 May 2026 07:38:49 +0000 (09:38 +0200)]
Fix x64 JIT high natmem exception handling

6 weeks agoMerge pull request #423 from midwan/jit-pcp-truncation
Toni Wilen [Wed, 20 May 2026 16:25:41 +0000 (19:25 +0300)]
Merge pull request #423 from midwan/jit-pcp-truncation

Fix x64 JIT pointer-width codegen

6 weeks agoMerge pull request #424 from midwan/fix-build-warning-cleanups
Toni Wilen [Wed, 20 May 2026 13:37:23 +0000 (16:37 +0300)]
Merge pull request #424 from midwan/fix-build-warning-cleanups

Fix build warning cleanups

6 weeks agoAdd shared JIT warning cleanups
Dimitris Panokostas [Wed, 20 May 2026 10:24:54 +0000 (12:24 +0200)]
Add shared JIT warning cleanups

6 weeks agoFix build warning cleanups
Dimitris Panokostas [Wed, 20 May 2026 10:13:52 +0000 (12:13 +0200)]
Fix build warning cleanups

6 weeks agoInclude ModRM byte in x64 RIP range check
Dimitris Panokostas [Tue, 19 May 2026 21:56:20 +0000 (23:56 +0200)]
Include ModRM byte in x64 RIP range check

6 weeks agoTighten x64 JIT address checks
Dimitris Panokostas [Tue, 19 May 2026 21:48:00 +0000 (23:48 +0200)]
Tighten x64 JIT address checks

6 weeks agoFix x64 JIT pointer-width codegen
Dimitris Panokostas [Tue, 19 May 2026 21:00:04 +0000 (23:00 +0200)]
Fix x64 JIT pointer-width codegen

6 weeks agoMerge pull request #422 from midwan/jit-msvc-followups
Toni Wilen [Tue, 19 May 2026 20:20:27 +0000 (23:20 +0300)]
Merge pull request #422 from midwan/jit-msvc-followups

Fix x64 FPU control word setup

6 weeks agoFix x64 FPU control word setup
Dimitris Panokostas [Tue, 19 May 2026 17:59:55 +0000 (19:59 +0200)]
Fix x64 FPU control word setup

6 weeks agoMerge pull request #421 from midwan/jit-amiberry-fixes
Toni Wilen [Tue, 19 May 2026 16:05:40 +0000 (19:05 +0300)]
Merge pull request #421 from midwan/jit-amiberry-fixes

Port Amiberry ARM64 and x86-64 JIT fixes

6 weeks agoPort Amiberry ARM64 and x86-64 JIT fixes
Dimitris Panokostas [Mon, 18 May 2026 22:14:35 +0000 (00:14 +0200)]
Port Amiberry ARM64 and x86-64 JIT fixes

7 weeks agoCCK difference can be negative, debug checks
Toni Wilen [Sat, 16 May 2026 09:09:16 +0000 (12:09 +0300)]
CCK difference can be negative, debug checks

7 weeks agoDebugger info text address off by one
Toni Wilen [Sat, 16 May 2026 08:57:57 +0000 (11:57 +0300)]
Debugger info text address off by one

7 weeks agoChange CCK counter to 64-bit
Toni Wilen [Sat, 16 May 2026 08:57:25 +0000 (11:57 +0300)]
Change CCK counter to 64-bit

7 weeks agoRemove interlace artifacts wip
Toni Wilen [Sat, 16 May 2026 08:55:18 +0000 (11:55 +0300)]
Remove interlace artifacts wip

7 weeks agoPAL/NTSC pixel aspect ratio updates
Toni Wilen [Thu, 14 May 2026 07:35:05 +0000 (10:35 +0300)]
PAL/NTSC pixel aspect ratio updates

7 weeks agoRemoved unused function
Toni Wilen [Thu, 14 May 2026 07:30:55 +0000 (10:30 +0300)]
Removed unused function

7 weeks agoAdded scanline offset and rotation to filter presets
Toni Wilen [Wed, 13 May 2026 18:49:48 +0000 (21:49 +0300)]
Added scanline offset and rotation to filter presets