← Blog
RETROPIE · FS · 0.6.0

RetroPie #57: PSP (MIPS Allegrex + 480×272 Widescreen) + NTFS Timestamp Update

June 22, 2026 · sigil-retropie / sigil-fs · Sigil-Docs
retropie gaming fs ntfs 0.6.0

The PSP (#57, Sony, 2004) joins the fleet — MIPS Allegrex 32-bit CPU (custom MIPS32 r2 with VFPU) + 480×272 16:9 widescreen framebuffer, the first widescreen console in the sigilOS RetroPie fleet. sigil-fs adds ntfs_utime (modify-time write to $STANDARD_INFORMATION, Unix→FILETIME conversion) wired into vfsdev_utime_path — completing the VFS metadata-write surface alongside the already-wired content ops. MANIFEST 364, ALL PASS. (sigil-retropie 8b94b60; sigil-fs e1e7a52)

PSP (system #57) — MIPS Allegrex + 480×272 widescreen, 16:9 aspect ratio demo
PSP (system #57) — MIPS Allegrex + 480×272 widescreen, 16:9 aspect ratio demo

PSP — system #57 (8b94b60)

cores/psp.sg — Sony PlayStation Portable (2004). The PSP is the first widescreen console in the sigilOS fleet, and the first to carry a custom MIPS32 r2 core with a dedicated vector FPU.

CPU: MIPS Allegrex

The Allegrex is a 32-bit custom MIPS32 r2 core running at up to 333MHz. Its defining feature is the VFPU (Vector FPU): 128 vector registers arranged in a 4×4 matrix layout, designed for fast 3D math and DSP operations without touching the general-purpose register file. The VFPU is what allowed the PSP to run PlayStation-quality 3D games on a portable battery — software 3D transforms that would have required dozens of scalar FP instructions could be done in a single VFPU matrix multiply.

Framebuffer: 480×272 widescreen

480×272 pixels at 16:9 — the PSP was the first portable console to ship with a widescreen display. The render path supports both native modes:

psp_render copies the VRAM output buffer to the display framebuffer. First widescreen console in the fleet.


The PSP's place in the fleet

The PSP closes out the 6th-generation handheld slot. In context:

PSP 480×272
130,560 pixels. 16:9 widescreen. 2.7× the DS per screen, 5.3× the GBA. First widescreen portable.
DS 256×192 ×2
49,152 pixels per screen (two screens). 4:3 portrait. Dual framebuffer architecture.
GBA 240×160
38,400 pixels. 3:2. The ARM7TDMI predecessor to the DS.

The MIPS Allegrex is the first MIPS core in the fleet — joining ARM9, V810, SH-2, 68000, Z80, 6502, 65C02, 6809, and now MIPS. The fleet's ISA coverage now spans all six major CPU families used in retro consoles.


ntfs_utime (e1e7a52 — sigil-fs)

ntfs_utime(name_ptr, namelen, mtime_filetime) writes a modify timestamp directly into the NTFS metadata structures for a named file.

VFS wire: vfsdev_utime_path

vfsdev_utime_path takes a path + Unix timestamp (seconds since epoch) and dispatches to the correct per-FS implementation:

Test: ntfs_utime_test — ABCDE (5/5). MANIFEST 364 entries, ALL PASS.


VFS metadata surface

With utime wired across all four filesystems, the VFS now covers both the content ops layer (create/write/rename/unlink/mkdir/rmdir/truncate/append) and the metadata ops layer (utime). The complete metadata surface:

Op NTFS ext2 FAT exFAT
utime (mtime) ntfs_utime ext2_utime fat_utime exfat_utime
rename (same-dir) ntfs_rename_in fat_rename_in exfat_rename_in
rename (cross-dir) ntfs_move_in fat_cross_rename exfat_cross_rename
rmdir (nested) ntfs_rmdir_in

The VFS write + metadata surface is now the most complete it has ever been in sigil-fs history. MANIFEST 364, ALL PASS.