]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/log
francis/winuae.git
2 weeks agoFix compilation
Toni Wilen [Fri, 19 Jun 2026 15:31:22 +0000 (18:31 +0300)]
Fix compilation

2 weeks agoMerge pull request #466 from reinauer/porting/prowizard
Toni Wilen [Fri, 19 Jun 2026 15:16:26 +0000 (18:16 +0300)]
Merge pull request #466 from reinauer/porting/prowizard

Update bundled ProWizard to 1.70a

2 weeks agoVortex ATonce plus merge
Toni Wilen [Fri, 19 Jun 2026 14:08:37 +0000 (17:08 +0300)]
Vortex ATonce plus merge

2 weeks agoFix ModeInfo PixelClock calculation
Toni Wilen [Thu, 18 Jun 2026 10:45:45 +0000 (13:45 +0300)]
Fix ModeInfo PixelClock calculation

2 weeks agoMerge pull request #465 from midwan/os4-examinedata-fallback
Toni Wilen [Thu, 18 Jun 2026 07:08:57 +0000 (10:08 +0300)]
Merge pull request #465 from midwan/os4-examinedata-fallback

filesys: handle OS4 examinedata fallback packets

2 weeks agoprowizard: fix GnuPlayer sample buffer size
Stefan Reinauer [Wed, 17 Jun 2026 20:57:46 +0000 (13:57 -0700)]
prowizard: fix GnuPlayer sample buffer size

GnuPlayer clears a 64 KiB scratch buffer before expanding sample data,
but allocated only 65436 bytes for it. Allocate the full 65536 bytes so
the clear and later sample writes stay inside the buffer.

2 weeks agoprowizard: update integrated ripper to 1.70a
Stefan Reinauer [Wed, 17 Jun 2026 20:21:35 +0000 (13:21 -0700)]
prowizard: update integrated ripper to 1.70a

Refresh the bundled ProWizard sources from the standalone 1.70a
tree and add the new ripper modules to the Unix and Visual Studio
build lists.

Keep the WinUAE entry point, module-ripper file hooks, logging,
and byte-order compatibility shims while updating the visible Pro
Wizard version labels.

Drop duplicate upstream source aliases from the integrated build lists
so the imported ripper objects link without duplicate definitions.

2 weeks agofilesys: handle OS4 examinedata fallback packets
Dimitris Panokostas [Wed, 17 Jun 2026 22:14:56 +0000 (00:14 +0200)]
filesys: handle OS4 examinedata fallback packets

2 weeks agoMerge pull request #462 from midwan/uaesnd-frame-pan-fixes
Toni Wilen [Wed, 17 Jun 2026 13:37:34 +0000 (16:37 +0300)]
Merge pull request #462 from midwan/uaesnd-frame-pan-fixes

Extend UAESND playback and capture ABI support

2 weeks ago"Internal CCK counter changed to 64-bit" didn't update counter variable to 64-bit.
Toni Wilen [Wed, 17 Jun 2026 13:22:31 +0000 (16:22 +0300)]
"Internal CCK counter changed to 64-bit" didn't update counter variable to 64-bit.

2 weeks agoMerge pull request #461 from reinauer/porting/unix-port
Toni Wilen [Wed, 17 Jun 2026 05:54:16 +0000 (08:54 +0300)]
Merge pull request #461 from reinauer/porting/unix-port

Add macOS/Linux target support

2 weeks agoHarden UAESND capture diagnostics
Dimitris Panokostas [Sun, 14 Jun 2026 21:27:28 +0000 (23:27 +0200)]
Harden UAESND capture diagnostics

2 weeks agoAdd UAESND capture ABI support
Dimitris Panokostas [Sun, 14 Jun 2026 11:31:36 +0000 (13:31 +0200)]
Add UAESND capture ABI support

2 weeks agoFix UAESND frame sizing and mono panning
Dimitris Panokostas [Sun, 14 Jun 2026 08:35:16 +0000 (10:35 +0200)]
Fix UAESND frame sizing and mono panning

2 weeks agoAdd queue for functions that must be called from main thread
Toni Wilen [Sun, 14 Jun 2026 07:55:34 +0000 (10:55 +0300)]
Add queue for functions that must be called from main thread

2 weeks agobsdsocket: preserve Unix trap context for host calls
Stefan Reinauer [Fri, 5 Jun 2026 04:41:33 +0000 (21:41 -0700)]
bsdsocket: preserve Unix trap context for host calls

The Unix shutdown and setsockopt paths need the active TrapContext when
they resolve guest socket descriptors and copy guest option data. Store
the current context in the socket base before dispatching those host
calls and when the deferred WaitSelect worker is armed.

2 weeks agotarget: share WinUAE build date with Unix
Stefan Reinauer [Fri, 5 Jun 2026 04:41:16 +0000 (21:41 -0700)]
target: share WinUAE build date with Unix

The Unix target date was copied as a separate literal and had already
drifted from the date used by the Windows version macros. Move the
date macros to a small shared header and have both targets read the
same value.

2 weeks agocmake: add Unix build wiring
Stefan Reinauer [Thu, 4 Jun 2026 15:00:35 +0000 (08:00 -0700)]
cmake: add Unix build wiring

Add the CMake build graph for the Unix target, optional feature probes,
test targets, and package staging rules.

This ties the shared emulator sources and od-unix backends together for
macOS and Linux builds.

2 weeks agopackaging: add Debian install hooks
Stefan Reinauer [Thu, 4 Jun 2026 15:00:19 +0000 (08:00 -0700)]
packaging: add Debian install hooks

Add Debian maintainer hooks for registering and removing desktop MIME
metadata.

This keeps package installs integrated with the desktop environment
without requiring users to run update commands manually.

2 weeks agodocs: add Unix parity notes
Stefan Reinauer [Thu, 4 Jun 2026 15:00:07 +0000 (08:00 -0700)]
docs: add Unix parity notes

Document Unix runtime setup, expansion-card parity, and remaining
feature gaps.

The notes make the local porting status explicit so follow-up work can
separate implementation tasks from validation-only items.

3 weeks agotools: add package dependency helpers
Stefan Reinauer [Thu, 4 Jun 2026 14:59:48 +0000 (07:59 -0700)]
tools: add package dependency helpers

Add helpers for Debian package assembly, Linux package metadata checks,
and fetching the LZMA SDK used by archive support.

These scripts keep external dependency and package steps explicit for
CI and local release builds.

3 weeks agotools: add macOS packaging helpers
Stefan Reinauer [Thu, 4 Jun 2026 14:59:36 +0000 (07:59 -0700)]
tools: add macOS packaging helpers

Add helpers for building private macOS dependencies, bundling the app,
building the QEMU-PPC plugin, creating the DMG, and validating output.

This keeps the release packaging flow reproducible outside local shell
history.

3 weeks agotools: add Unix smoke tests
Stefan Reinauer [Thu, 4 Jun 2026 14:59:21 +0000 (07:59 -0700)]
tools: add Unix smoke tests

Add shell smoke tests for boot paths, RTG modes, networking, serial,
storage controllers, JIT, sound boards, and drive-click behavior.

These scripts give the Unix target repeatable coverage for the hardware
paths that are hard to validate from unit tests alone.

3 weeks agood-unix: add desktop metadata
Stefan Reinauer [Thu, 4 Jun 2026 14:59:07 +0000 (07:59 -0700)]
od-unix: add desktop metadata

Add the desktop entry used by Linux package installs.

This lets desktop environments expose the Unix build as a normal
application without package scripts generating the file at install time.

3 weeks agood-unix: add host device backends
Stefan Reinauer [Thu, 4 Jun 2026 14:58:53 +0000 (07:58 -0700)]
od-unix: add host device backends

Add Unix implementations for clipboard, bsdsocket, serial, uaeserial,
parallel, MIDI, networking, ROM scanning, and board helper glue.

These files back the target hooks and device interfaces used by the
shared emulator code.

3 weeks agood-unix: add storage and media backends
Stefan Reinauer [Thu, 4 Jun 2026 14:58:40 +0000 (07:58 -0700)]
od-unix: add storage and media backends

Add Unix CD, SCSI, SG_IO, CDDA, CHD, FLAC, and MP3 host-side helpers.

This provides the native device and media plumbing needed by the Unix
target without changing the shared storage controller emulation.

3 weeks agood-unix: add RTG and capture backends
Stefan Reinauer [Thu, 4 Jun 2026 14:58:25 +0000 (07:58 -0700)]
od-unix: add RTG and capture backends

Add Unix RTG presentation, Picasso96 host glue, screenshot support, and
AVI capture output.

These backends connect the shared RTG and capture code to the Unix video
surface and local file output.

3 weeks agood-unix: add Qt configuration frontend
Stefan Reinauer [Thu, 4 Jun 2026 14:58:14 +0000 (07:58 -0700)]
od-unix: add Qt configuration frontend

Add the Qt launcher, preferences adapter, mount configuration helpers,
and frontend tests for the Unix target.

The frontend reads and writes typed preferences while keeping
UI state out of the shared configuration parser.

3 weeks agood-unix: add SDL runtime backend
Stefan Reinauer [Thu, 4 Jun 2026 14:57:54 +0000 (07:57 -0700)]
od-unix: add SDL runtime backend

Add the SDL-backed video, input, audio, sampler, and drive-click runtime
implementation for the Unix target.

This is the runtime path used by the standalone emulator window outside
the Qt configuration frontend.

3 weeks agood-unix: add platform support layer
Stefan Reinauer [Thu, 4 Jun 2026 14:57:41 +0000 (07:57 -0700)]
od-unix: add platform support layer

Add the Unix target base layer for paths, threading, time, logging,
character conversion, memory mapping, filesystems, and hardfiles.

These files provide the host services used by the shared emulator core
through the existing target interfaces.

3 weeks agotarget: add startup and plugin hooks
Stefan Reinauer [Thu, 4 Jun 2026 14:57:12 +0000 (07:57 -0700)]
target: add startup and plugin hooks

Add narrow target hooks for early startup handling and plugin lookup.

Unix needs these integration points for Qt startup commands and local
plugin discovery without embedding Unix paths in common code.

3 weeks agoclipboard: expose host text polling hook
Stefan Reinauer [Thu, 4 Jun 2026 14:55:29 +0000 (07:55 -0700)]
clipboard: expose host text polling hook

Declare the host-side text polling entry point in the shared header.
This lets target backends report clipboard text changes without private
header dependencies.

3 weeks agoFix AMD LANCE chip ID byteswap
Toni Wilen [Thu, 11 Jun 2026 17:29:13 +0000 (20:29 +0300)]
Fix AMD LANCE chip ID byteswap

3 weeks ago6100b8
Toni Wilen [Thu, 11 Jun 2026 14:37:05 +0000 (17:37 +0300)]
6100b8

3 weeks agoMerge pull request #460 from midwan/uaesnd-volume-fixes
Toni Wilen [Wed, 10 Jun 2026 06:02:08 +0000 (09:02 +0300)]
Merge pull request #460 from midwan/uaesnd-volume-fixes

Fix UAESND stream volume handling

3 weeks agoMerge pull request #459 from midwan/fix-arm-jit-ram-trap-pc
Toni Wilen [Wed, 10 Jun 2026 06:01:22 +0000 (09:01 +0300)]
Merge pull request #459 from midwan/fix-arm-jit-ram-trap-pc

Merge Amiberry JIT ARM64 changes

3 weeks agoMerge pull request #453 from reinauer/porting/arm-jit-host-hooks
Toni Wilen [Wed, 10 Jun 2026 06:00:48 +0000 (09:00 +0300)]
Merge pull request #453 from reinauer/porting/arm-jit-host-hooks

Complete the host-side plumbing needed by the imported ARM JIT backend

3 weeks agoFix UAESND stream volume handling
Dimitris Panokostas [Tue, 9 Jun 2026 21:30:41 +0000 (23:30 +0200)]
Fix UAESND stream volume handling

- Apply writes to the current sample set volume register immediately.
  The stream volume was only loaded when a sample set was (re)loaded,
  so volume changes during playback (e.g. AHI volume fades on a
  looping sound) were silently ignored, even though current-set
  register writes are documented to take effect on the next sample
  period.
- Scale samples by the set volume and board channel volume
  multiplicatively. The previous averaging formula had a 0.5 gain
  floor, so volume 0 still played at half loudness.
- Initialize the board channel volumes for all stream channels, not
  just the first two.

3 weeks agoMerge Amiberry JIT ARM64 changes
Dimitris Panokostas [Tue, 9 Jun 2026 20:01:02 +0000 (22:01 +0200)]
Merge Amiberry JIT ARM64 changes

3 weeks agojit: add ARM host mapping hooks
Dimitris Panokostas [Mon, 8 Jun 2026 20:18:30 +0000 (13:18 -0700)]
jit: add ARM host mapping hooks

Add the host ABI marker needed by ARM JIT backends.

Teach the VM allocator how to request host JIT mappings.

The platform backend still owns executable memory policy.

Shared JIT code only needs a portable call convention and mapping hook.

3 weeks agojit: split x86 compiler files into platform directory
Dimitris Panokostas [Mon, 8 Jun 2026 20:05:42 +0000 (13:05 -0700)]
jit: split x86 compiler files into platform directory

Keep the root JIT files as dispatchers and move the x86 compiler
implementation under jit/x86. This mirrors the Amiberry split and keeps
platform-specific JIT code out of the shared wrapper files.

Update the x86 generator paths so regenerated x86 tables do not
overwrite the root dispatchers.

3 weeks agoA1060 2.07 BIOS added to ROM scanner
Toni Wilen [Sun, 7 Jun 2026 09:58:08 +0000 (12:58 +0300)]
A1060 2.07 BIOS added to ROM scanner

3 weeks agoRemoved remaining ARM64EC project file blocks
Toni Wilen [Sun, 7 Jun 2026 07:42:04 +0000 (10:42 +0300)]
Removed remaining ARM64EC project file blocks

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.