Skip to content

Releases

Castation 0.4.0

Choose a tag to compare

@BrinooTk BrinooTk released this 09 Sep 12:51

A Dreamcast emulator that runs natively on a jailbroken PlayStation 5, built
around the Flycast core.

No BIOS and no game data is included. Supply your own disc images, from
discs you own.

Installing

Extract castation-0.4.0.zip into /data/homebrew/ on the console — the
archive carries its own Castation/ folder — then put your disc images in
/data/homebrew/Castation/games/ and open the Homebrew Launcher.

Full instructions, including the optional BIOS, are in the
README and in the
README.txt inside the archive.

What is new in 0.4.0

The graphics processor now draws the screen. Scaling the emulated picture
to 1920x1080 and storing it in the console's tiled display format is done by a
compute shader written in AMD GCN assembly, submitted through command packets
built by hand, because the console exposes its command processor and no
graphics API above it. Its output was checked against the processor routine it
replaced across the entire framebuffer and is byte-identical — zero of
4194304 words differ. It costs about 55 microseconds a frame where the
processor spent several milliseconds.

Half the emulated frames are no longer thrown away. A turn of the shell
draws once, but the loop running the emulator was running it twice, and the
first frame was overwritten before anyone saw it: six hundred frames emulated
for every three hundred shown. Measured on the same stretch of Sonic Adventure
2, that is now three hundred and five drawn per three hundred shown, and a turn
of 17.5 ms against 33.4 — about thirty frames a second to about fifty-seven.

Also in this release: internal resolution up to 1080p, persisted settings, hot
disc swapping, and a long list of software rasterizer corrections — blending,
shading instructions, fog, culling, tile clipping, modifier volumes,
render-to-texture, bilinear filtering and bump mapping.

Known problems

Stated plainly, because finding these yourself wastes your time:

  • Emulation runs at about 96% of full speed, so sound is about 4% flat in
    pitch. This is the price of the frame pacing change above: a turn that
    overruns a refresh now produces one frame where it used to produce two, and
    nothing repays it. The README explains the trade in full.
  • Hitching. Single frames stall for 50 to 100 ms while the recompiler
    translates new code, worst shortly after a scene changes.
  • Heavy 3D scenes fall short of 60. Sonic Adventure 2 holds around 57
    frames a second at native resolution.
  • Higher internal resolutions work but cost considerably more, because
    rasterization is still done on the processor.
  • Two-volume shadow modes, mipmap level selection and destination alpha in
    blending are not implemented.
  • Tested only by its authors, on their own consoles, running etaHEN with
    idlesauce's Homebrew Launcher. Other firmware and loader combinations are
    unverified.

Verifying the download

sha256  6b17a8feaf3a51c82c5bf572ebd54346457057d78bb25e274e97692f04bfdf6d

Licence

GPL-3.0-or-later. The complete corresponding source for this binary is this
repository, at the tag v0.4.0. Flycast is GPL-2.0 by flyinghead and the
reicast authors.

Dreamcast is a trademark of Sega. This project is not affiliated with or
endorsed by Sega or Sony.