]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/log
francis/winuae.git
4 weeks agoRemoved #ifdef __cplusplus
Toni Wilen [Sat, 6 Jun 2026 13:05:14 +0000 (16:05 +0300)]
Removed #ifdef __cplusplus

4 weeks agoMerge pull request #449 from reinauer/porting/prowizard-host-save-callbacks
Toni Wilen [Sat, 6 Jun 2026 12:48:19 +0000 (15:48 +0300)]
Merge pull request #449 from reinauer/porting/prowizard-host-save-callbacks

Clean up Pro-Wizard   host declarations

4 weeks agoMerge pull request #440 from reinauer/porting/network-stability-os41fe
Toni Wilen [Sat, 6 Jun 2026 07:43:16 +0000 (10:43 +0300)]
Merge pull request #440 from reinauer/porting/network-stability-os41fe

ethernet: defer NIC receive injection to hsync

4 weeks agoMerge pull request #456 from reinauer/porting/sndboard-host-capture-hooks
Toni Wilen [Thu, 4 Jun 2026 15:14:08 +0000 (18:14 +0300)]
Merge pull request #456 from reinauer/porting/sndboard-host-capture-hooks

Add non-Windows sound-board capture hooks

4 weeks agoMerge pull request #458 from midwan/fix-arm-jit-branch-target-pc
Toni Wilen [Thu, 4 Jun 2026 14:50:00 +0000 (17:50 +0300)]
Merge pull request #458 from midwan/fix-arm-jit-branch-target-pc

Fix ARM JIT branch target PC state

4 weeks agoFix ARM JIT branch target PC state
Dimitris Panokostas [Thu, 4 Jun 2026 14:13:00 +0000 (16:13 +0200)]
Fix ARM JIT branch target PC state

4 weeks agoMerge pull request #457 from midwan/fix-arm-jit-link-a7-fallback
Toni Wilen [Thu, 4 Jun 2026 14:10:26 +0000 (17:10 +0300)]
Merge pull request #457 from midwan/fix-arm-jit-link-a7-fallback

Fix JIT LINK with A7 fallback

4 weeks agoFix JIT LINK with A7 fallback
Dimitris Panokostas [Thu, 4 Jun 2026 13:47:44 +0000 (15:47 +0200)]
Fix JIT LINK with A7 fallback

4 weeks agoMerge pull request #455 from reinauer/porting/ppc-std-mutex
Toni Wilen [Thu, 4 Jun 2026 11:11:56 +0000 (14:11 +0300)]
Merge pull request #455 from reinauer/porting/ppc-std-mutex

Use `std::mutex` for the non-Windows PPC host spinlock wrapper.

4 weeks agoMerge pull request #454 from reinauer/porting/slirp-reinitialization
Toni Wilen [Thu, 4 Jun 2026 11:11:10 +0000 (14:11 +0300)]
Merge pull request #454 from reinauer/porting/slirp-reinitialization

Harden SLIRP backend teardown and restart handling

4 weeks agoMerge pull request #443 from reinauer/porting/cpuboard-ppc-guards
Toni Wilen [Thu, 4 Jun 2026 11:09:41 +0000 (14:09 +0300)]
Merge pull request #443 from reinauer/porting/cpuboard-ppc-guards

cpuboard: guard PPC-only accelerator paths

Possibility without PPC is nice to have.

4 weeks agoprowizard: use C++ linkage for host callbacks
Stefan Reinauer [Thu, 4 Jun 2026 03:36:51 +0000 (20:36 -0700)]
prowizard: use C++ linkage for host callbacks

Pro-Wizard is built as C++ on Windows, so its host callback
declarations should use normal C++ linkage.

Drop the C-linkage guard around those callback declarations. Unix
builds should match Windows by compiling Pro-Wizard as C++ instead of
changing callback linkage.

4 weeks agoprowizard: avoid duplicate htonl and _cdecl definitions
Stefan Reinauer [Tue, 2 Jun 2026 23:59:00 +0000 (16:59 -0700)]
prowizard: avoid duplicate htonl and _cdecl definitions

Some hosts provide htonl as a macro through system headers. Avoid
redeclaring the Pro-Wizard helper in that case.

Also provide a no-op _cdecl definition for non-Windows builds so shared
Pro-Wizard declarations compile without Windows calling-convention
macros.

4 weeks agoslirp: harden backend reinitialization
Stefan Reinauer [Wed, 27 May 2026 16:06:10 +0000 (09:06 -0700)]
slirp: harden backend reinitialization

Ariadne can close and reopen the selected Ethernet backend while
guest software probes or retries card configuration. The SLIRP
backend destroyed callback state before the receive thread was known
to be stopped, and ignored initialization or thread start failures.

Join the receive thread before teardown, keep callback state alive
until shutdown completes, report SLIRP startup failures, and reset or
reuse BOOTP leases across backend restarts.

4 weeks agoppc: use std::mutex for host spinlocks
Stefan Reinauer [Wed, 3 Jun 2026 01:29:09 +0000 (18:29 -0700)]
ppc: use std::mutex for host spinlocks

Use the C++ standard mutex implementation for the non-Windows PPC
spinlock wrapper instead of depending on GLib mutex types.

This keeps the shared PPC coordinator free of an extra host runtime
dependency when it is built outside Windows.

4 weeks agosndboard: keep addrbank tables file-local
Stefan Reinauer [Thu, 4 Jun 2026 02:07:22 +0000 (19:07 -0700)]
sndboard: keep addrbank tables file-local

The sound-board addrbank tables are static, but earlier forward
declarations used external linkage. That breaks C++ builds when the
Unix port enables the shared sound-board sources.

Declare the memory callbacks first and move the static bank tables
before the accessors that reference them. This keeps the symbols
file-local without conflicting declarations.

4 weeks agosndboard: add Unix host capture hooks
Stefan Reinauer [Wed, 3 Jun 2026 01:28:39 +0000 (18:28 -0700)]
sndboard: add Unix host capture hooks

Include the Unix sound-board host hooks when building outside
Windows and route capture buffer operations through that backend.

Keep FM801 PCI helpers behind WITH_PCI so non-PCI Unix builds can
compile the shared sound-board source without pulling PCI state in.

4 weeks agoMerge pull request #441 from reinauer/porting/qemuvga-unix-glue
Toni Wilen [Wed, 3 Jun 2026 15:28:39 +0000 (18:28 +0300)]
Merge pull request #441 from reinauer/porting/qemuvga-unix-glue

qemuvga: make glue header usable on Unix

4 weeks agoMerge pull request #445 from reinauer/porting/network-backend-hooks
Toni Wilen [Wed, 3 Jun 2026 15:26:14 +0000 (18:26 +0300)]
Merge pull request #445 from reinauer/porting/network-backend-hooks

Add shared declarations for Unix networking backends.

4 weeks agoMerge pull request #452 from LIV2/add_aide
Toni Wilen [Wed, 3 Jun 2026 15:24:58 +0000 (18:24 +0300)]
Merge pull request #452 from LIV2/add_aide

Add Matze AIDE

4 weeks agoMerge pull request #451 from LIV2/serial_socket
Toni Wilen [Wed, 3 Jun 2026 15:15:06 +0000 (18:15 +0300)]
Merge pull request #451 from LIV2/serial_socket

Fix serial socket creation so that it works under WINE

4 weeks agoMerge pull request #450 from reinauer/porting/midiemu-munt-unix
Toni Wilen [Wed, 3 Jun 2026 15:14:22 +0000 (18:14 +0300)]
Merge pull request #450 from reinauer/porting/midiemu-munt-unix

Make the Munt MIDI emulation path usable on non-Windows hosts

4 weeks agoMerge pull request #448 from reinauer/porting/picasso96
Toni Wilen [Wed, 3 Jun 2026 15:13:06 +0000 (18:13 +0300)]
Merge pull request #448 from reinauer/porting/picasso96

picasso96: drop stale wrapper implementation

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 agoAdd AIDE
Matt Harlum [Fri, 29 May 2026 11:04:39 +0000 (23:04 +1200)]
Add AIDE

4 weeks agoFix serial socket creation so that it works under WINE
Matt Harlum [Fri, 29 May 2026 12:43:21 +0000 (00:43 +1200)]
Fix serial socket creation so that it works under WINE

4 weeks agomidiemu: reopen Unix Munt output devices
Stefan Reinauer [Wed, 3 Jun 2026 00:59:07 +0000 (17:59 -0700)]
midiemu: reopen Unix Munt output devices

midi_emu_reopen() looked up the active Munt output device through the
Windows MIDI port table.

Use the Unix MIDI device lookup helper on non-Windows hosts so reopened
Munt devices use the same configured device names as initial opens.

4 weeks agomidiemu: use a valid report handler initializer
Stefan Reinauer [Wed, 3 Jun 2026 00:58:14 +0000 (17:58 -0700)]
midiemu: use a valid report handler initializer

mt32emu_create_context() expects a report-handler interface value, not a
casted NULL pointer.

Initialize an empty handler object and pass that to the mt32emu API.

4 weeks agomidiemu: build MT-32 ROM paths portably
Stefan Reinauer [Wed, 3 Jun 2026 00:57:42 +0000 (17:57 -0700)]
midiemu: build MT-32 ROM paths portably

Use fixtrailing() when constructing the mt32-roms directory path instead
of embedding a Windows directory separator.

Keep the legacy C:\mt32-rom-data fallback on Windows only. Non-Windows
hosts should not probe that path while checking Munt availability.

4 weeks agopicasso96: drop stale wrapper implementation
Stefan Reinauer [Tue, 2 Jun 2026 23:30:20 +0000 (16:30 -0700)]
picasso96: drop stale wrapper implementation

picasso96.cpp is no longer built. Toni confirmed it is out of date.

Remove the dead implementation and stale wrapper declarations.

Keep the P96 ABI structures and constants consumed by active RTG code.

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 agoethernet: add TAP and TUN backend slots
Stefan Reinauer [Fri, 22 May 2026 23:00:32 +0000 (16:00 -0700)]
ethernet: add TAP and TUN backend slots

Extend the shared Ethernet backend enumeration with TAP and TUN slots
that Unix targets can implement.

4 weeks agoethernet: add Unix packet backend hooks
Stefan Reinauer [Fri, 22 May 2026 14:37:22 +0000 (07:37 -0700)]
ethernet: add Unix packet backend hooks

Add shared Ethernet enumeration hooks for Unix packet backends and keep
the existing Windows backend path unchanged.

4 weeks agobsdsocket: expose Unix target hooks
Stefan Reinauer [Fri, 22 May 2026 14:13:07 +0000 (07:13 -0700)]
bsdsocket: expose Unix target hooks

Add the shared declarations needed for a Unix bsdsocket.library target
backend.

4 weeks agocpuboard: guard PPC-only accelerator paths
Stefan Reinauer [Thu, 21 May 2026 22:49:19 +0000 (15:49 -0700)]
cpuboard: guard PPC-only accelerator paths

Keep non-PPC CPU board support buildable when WITH_PPC is disabled by
guarding PPC reset, interrupt, and CPU detection paths.

4 weeks agoqemuvga: make glue header usable on Unix
Stefan Reinauer [Sun, 17 May 2026 16:09:02 +0000 (09:09 -0700)]
qemuvga: make glue header usable on Unix

Include the standard Unix type declarations needed by qemuuaeglue.h
and keep the local ssize_t typedef restricted to MSVC builds.

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 agoethernet: defer NIC receive injection to hsync
Stefan Reinauer [Sat, 30 May 2026 06:45:21 +0000 (23:45 -0700)]
ethernet: defer NIC receive injection to hsync

A2065/Ariadne injected packets directly from the host network
callback. With SLIRP or pcap this callback can run on a helper
thread, so receive DMA and interrupt updates could race PPC I/O
callbacks.

Queue received frames and drain them from the device hsync
handler, where the rest of the emulated card state is updated. Also
stop the NE2000 host callback from draining its queue, leaving that
work to the existing hsync path.

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.