Sitelet https://github.com/86Box/86Box/pull/8204
Skip to content

Add Sony CDU31A interface and its Creative interface support - #8204

Merged
OBattler merged 4 commits into
86Box:masterfrom
heavysink:feat/sony
Oct 4, 2026
Merged

OBattler merged 4 commits into
86Box:masterfrom
heavysink:feat/sony

Conversation

@heavysink

@heavysink heavysink commented Oct 4, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Here we go. For creative interface, address is 2xx with no IRQ and DMA. For SONY interface, it is 3xx address with IRQ and DMA.

Tested working with SLCD.SYS 1.27a, 1.61, 1.71, 1.73 and 1.74.

Added both CDU-31a and CDU-33a CD ROM

Checklist

References

Implement the Sony host protocol with PIO, selectable ISA IRQ/DMA,
CD-ROM reads, TOC, audio commands, and media-change handling. Add CDU31A
and CDU33A models and integrate them into storage configuration and Qt.
The Creative variant offers 230h/250h/270h/290h without IRQ or DMA.

Add register-level tests, a repeatable SLCD.SYS DOS smoke harness, and
hardware/setup documentation. Repair two existing test-build omissions.

Validation: full emulator build and 15 Sony tests pass on upstream
master. Five Sony driver versions passed 30 DOS configurations, with
six additional Creative-address cases passing using SLCD.SYS 1.74d.
The existing Philips media-change regression is documented separately.
Report the audio-playing flag in the second mechanical-status byte so
SLCD.SYS retains pause/resume state. Treat the play command's final-frame
address as inclusive, including single-frame ranges, and reject leadout.

Add repeatable DOS BIN/CUE and audio playback tests and document the
results. Sony retains bus ID 15; no storage bus-ID changes are included.

Validation: full emulator build, 16 Sony unit tests, ASan/UBSan checks,
and 44 DOS integration cases passed. Five Sony driver versions cover
CDU31A/CDU33A with Sony and Creative PIO; four additional cases cover
Sony DMA 3. File copies and captured OpenAL PCM match their sources.
@Cacodemon345

Copy link
Copy Markdown
Contributor

I couldn't get drivers from this to work here: https://apricot.retropc.se/files/area88/s31x86.exe.

NT 3.1 Setup fails to recognize it properly.

@heavysink

Copy link
Copy Markdown
Contributor Author

I couldn't get drivers from this to work here: https://apricot.retropc.se/files/area88/s31x86.exe.

NT 3.1 Setup fails to recognize it properly.

See if this fix. There is a bug in this driver causing a phantom drive. Use this to patch the driver

patch_slcd32.py

@Cacodemon345

Copy link
Copy Markdown
Contributor

Disc changes are not correctly detected in NT 3.5 drivers.

@Cacodemon345

Copy link
Copy Markdown
Contributor

Ok, seems fixed with NT 3.5 drivers now.

@Cacodemon345

Copy link
Copy Markdown
Contributor

OS/2 Warp 3.0 and 4.51 confirmed working.

@OBattler
OBattler merged commit 0e10690 into 86Box:master Oct 4, 2026
45 checks passed
@heavysink
heavysink deleted the feat/sony branch October 4, 2026 20:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants