← Blog
RETROPIE · DRIVERS · FS · 0.6.0

RetroPie #59: Wii (Broadway PPC) + #60: Nintendo 3DS (ARM11 MPCore) + QEMU fw-cfg + PC Speaker + VFS Stat mtime

June 22, 2026 · sigil-retropie · sigil-drivers · sigil-fs · Sigil-Docs
retropie gaming drivers fs x86 0.6.0

Two consoles land: Nintendo Wii (#59, 2006) — IBM Broadway PowerPC 729MHz + Flipper+ GPU + 64MB MEM1+MEM2 + 640×480; Nintendo 3DS (#60, 2011) — ARM11 MPCore ARMv6K + 400×240 top screen + 320×240 bottom (first multi-core ARM in the fleet). sigil-drivers adds QEMU firmware config (fw-cfg, signature QEMU, DMA cap, 13 fw_cfg files enumerated) and PC speaker (port 0x61 + PIT ch2 1kHz beep, CLS_AUDIO). sigil-fs extends the unified stat struct with mtime@24 (Unix seconds from ext2/NTFS; zero-default for FAT/exFAT/HFS+/ISO). MANIFEST 366, ALL PASS. (sigil-retropie 219d117, b803eb3; sigil-drivers 14f06fa, 8eaaed3; sigil-fs 736cc8c)

Wii (system #59) — Broadway PowerPC 729MHz + 640×480, rainbow framebuffer demo
Wii (system #59) — Broadway PowerPC 729MHz + 640×480, rainbow framebuffer demo
Nintendo 3DS (system #60) — ARM11 MPCore + 400×240 top screen + 320×240 bottom, dual-screen demo
Nintendo 3DS (system #60) — ARM11 MPCore + 400×240 top screen + 320×240 bottom, dual-screen demo

Nintendo Wii — system #59 (219d117)

cores/wii.sg. The Wii is the third G3-derived console in the fleet, following the GameCube and preceding the Wii U. uart=59 PASS. apps/wii (EL0), loads /roms/game.wii.

PowerPC lineage: Broadway is the third G3-derived console CPU in the fleet — GameCube (Gekko 485MHz) → Wii (Broadway 729MHz) → future Wii U (Espresso 1.24GHz). All share the same HAL seam database (ppc_bat, ppc_htab, ppc_spr, ppc_tlb, ppc_altivec via the Wii's ES coprocessor).


Nintendo 3DS — system #60 (b803eb3)

cores/n3ds.sg. The 3DS is the first multi-core system in the fleet, and the first handheld with a glasses-free 3D display. uart=60 PASS. apps/n3ds (EL0), loads /roms/game.3ds.

Fleet milestone: with 60 LAUNCHABLE systems, sigilOS now targets more gaming platforms than many modern emulation OS solutions, all from a single capability-secure kernel.


QEMU fw-cfg driver (14f06fa — sigil-drivers)

drivers/platform/fw-cfg. QEMU's firmware configuration interface exposes the hypervisor's view of the hardware — RAM size, CPU count, boot device order, kernel command line — to the kernel via a simple I/O port pair.

Significance: fw-cfg is the x86 kernel's window into the hypervisor's view of the hardware. This is how a sigilOS kernel running under QEMU discovers how much RAM the machine has, how many CPUs are present, and what boot media is available — without reading BIOS tables or probing hardware directly.


PC speaker driver (8eaaed3 — sigil-drivers)

drivers/audio/pcspeaker. The PC speaker is the simplest possible audio output — one square-wave oscillator connected to a physical speaker via I/O port 0x61. No DMA, no interrupts, no audio HAL required.

Pairs with pit.sg: PIT ch0 (rate-gen, CLS_TIME) + PC speaker (CLS_AUDIO) together form the complete beeper stack. The kernel can now emit boot beeps and error tones without any audio HAL — just port I/O.


VFS stat mtime (736cc8c — sigil-fs)

The unified stat struct gains modification time — the last missing field needed for file managers and backup tools to display correct timestamps from real volumes.

The vfsdev_stat_path output buffer extends from 24 to 32 bytes: {otype@0, size@8, mode@16, mtime@24}. mtime is Unix epoch seconds (64-bit, little-endian). Initialized to 0 before dispatch so callers get a clean default on unsupported providers.

ext2
Reads i_mtime directly from the inode (offset 16) — always populated. Full Unix timestamp available on any ext2 volume.
NTFS
Reads $FILE_NAME LastModificationTime (FILETIME, 100ns intervals since 1601-01-01), converts to Unix via (ft / 10000000) - 11644473600. Guarded against zero FILETIME.
FAT / exFAT / HFS+ / ISO
mtime stays 0. DOS packed timestamps don't map cleanly to Unix epoch for the stat read surface. Exposed via the utime VFS contract (write path, wired in 1dceee1) instead.

Test: vfs_stat_mtime_test — ABCD (4/4). MANIFEST 366, ALL PASS.

Significance: File managers and backup tools can now read correct modification timestamps from ext2 and NTFS volumes. The stat struct is the standard read surface; the utime VFS contract (fully wired in 1dceee1) is the write surface.


Summary

RepoWhat shippedCommits
sigil-retropieWii #59 (Broadway 729MHz, 640×480) + 3DS #60 (ARM11 MPCore, dual-screen)219d117, b803eb3
sigil-driversQEMU fw-cfg (sig+DMA+13 files) + PC speaker (PIT ch2 1kHz, CLS_AUDIO)14f06fa, 8eaaed3
sigil-fsstat mtime@24 — ext2 (i_mtime) + NTFS (FILETIME→Unix); zero-default others736cc8c

MANIFEST 366, ALL PASS.