Featured image of post DuckStation: PlayStation-Emulator in v0.1-11752 veröffentlicht

DuckStation: PlayStation-Emulator in v0.1-11752 veröffentlicht

DuckStation, ein PlayStation-1-Emulator, wurde in der Version v0.1-11752 veröffentlicht.

Das Update umfasst 143 Commits mit deutlichem Schwerpunkt auf Sicherheitshärtung: zahlreiche Puffer- und Integer-Überläufe sowie Out-of-Bounds-Zugriffe in den CD-Image-Parsern (MDS, PBP, CUE) wurden abgesichert, dazu ein möglicher Pfad-Traversal-Fehler im Updater.

Weitere Highlights sind eine komplette Überarbeitung des GDB-Servers (Watchpoint-Details, GTE-Register, robustere Protokollbehandlung), ein neuer BIOS-Installer in der Qt-Oberfläche, eine genauere Timer-Emulation, die neue Controller-Option “Disable Simultaneous Opposing Cardinal Directions” (SOCD) sowie Textdarstellung für Hebräisch. Bei den Achievements wurde “Softcore” in “Casual” umbenannt, und die Media Capture nutzt nun standardmäßig H264.

Security & Stability:

  • Updater: Fix possible path traversal during preprocessing
  • Updater: Fix possible infinite loop
  • CDImageMDS: Fix a bunch of possible buffer overreads
  • CDImagePBP: Add missing validation of BCD digits / check SFO index table count before reading
  • CDImageCue: Validate bits-per-sample for wave files
  • ISOReader: Fix possible integer overflow in GetSizeInSectors()
  • PSFLoader: Add missing header size checks when loading
  • Cheats: Fix possible OOB reads in malformed instructions
  • Achievements: Fix possible read past end of memory in callback
  • GPU: Add missing serialization / simple checks to the polyline buffer
  • StateWrapper: Add max size checks, clamp enum values, avoid integer overflow on 32-bit
  • Image / AnimatedImage: Avoid integer overflow for dimensions
  • MDEC: Ensure direct FIFO writes don’t overflow
  • Misc: Fix under-allocation in sjis2utf8()

GDBServer:

  • Expose target memory map, registers and GTE registers
  • Report watchpoint stop details, expand watchpoint ranges
  • Support continue / single-step / signal resume addresses
  • Bound remote packet sizes, reject oversized incoming packets
  • Apply register writes atomically, invalidate code after memory writes
  • Notify host when first/last client connects/disconnects
  • Restore run state after disconnect, disable nagle buffering

BIOS & System:

  • Qt: Add BIOS Installer and improve BIOS setup page
  • BIOS: Add version information and filenames to list
  • System: Add option to install BIOS when missing
  • Timers: Improve emulation accuracy
  • SPU: Fix volume sweep termination conditions
  • DMA: Hardwire reverse direction for OTC

Qt / FullscreenUI:

  • Qt: Add CollapsibleWidget, refresh button for border overlay list
  • Qt: Rework media capture menu
  • Qt: Implement mouse capture using CoreGraphics, tie relative mouse state to active window
  • Qt: Fix crash opening game settings
  • FullscreenUI: Expose multitap memory cards, fix shared memory card selection
  • ImGuiManager: Support rendering Hebrew text

Controller & Achievements:

  • Controller: Add ‘Disable Simultaneous Opposing Cardinal Directions’ option
  • Achievements: Rename softcore to casual
  • Achievements: Make password login asynchronous
  • Achievements: Ensure callbacks run on core thread for RAIntegration

MediaCapture:

  • Fix incorrect samples on buffer wrap-around
  • Fix possible corruption in audio-only capture
  • Resample audio when encoder doesn’t support 44.1KHz (with OSD warning)
  • Default to H264 on all platforms

Graphics backends:

  • VulkanDevice: Numerous compute pipeline, texture upload and swapchain fixes
  • D3D12Device: Descriptor allocation, texture array and render-pass clear format fixes
  • MetalDevice: Fix a few leaky object retains

Localization: Spanish (Spain) and Brazilian Portuguese translation updates

DuckStation

Quelle: GitHub

PlayingTux – Playing Games on Linux - since 1995.