Brifing

A Rust, Wayland, Vulkan 3D CRT and Screencast Application

RetroArch cores with Wayland and Vulkan support.

Hacker News: Show HN2 min

1Introduction

This application captures the output of programs like RetroArch, terminal, browser, or video player and projects it onto a 3D Trinitron tube. It offers a real CRT experience using Wayland and Vulkan technologies.

2Installation and Running

To run the application, the current Rust toolchain is required. The 'cargo run -- --capture' command opens the screencast picker and allows selecting the window to capture.

3Taking Screenshots

If window capture is not possible, the 'cargo run -- --shot out.png 1000x800' command can be used to take a screenshot. This feature is useful when tools like wlr-screencopy and grim fail.

4Gaming Experience

The application allows playing games on the CRT tube using RetroArch cores. Games can be started with the 'cargo run --release -- --play game.sfc' command and controlled with a keyboard or gamepad.

5CRT Controls

CRT controls remain active during gameplay. You can rotate the tube with the mouse, change presets with number keys, and cut power with the P key.

6Audio and Performance Monitoring

Audio is provided by the core and resampled according to your audio device. The CRTULUM_PLAY_STATS=1 command allows monitoring the emulated rate and audio buffer amount.

7Video Export

The application can process sources through the CRT tube and export them as video files. The 'cargo run --release -- --render clip.mp4 out.mp4' command processes video files.

8Script Usage

Scripts automate processes like camera movements, tube swaps, and power cycles on a timeline. The 'cargo run --release -- --render out.mp4 --script run.crts' command runs scripts.

9ROM and Emulator Recordings

Scripts can also work on ROMs. The emulator core is loaded, and exactly which buttons are pressed in each frame is controlled. This provides frame-exact and deterministic experience.

10Debugging

The CRTULUM_DEBUG_INPUT=1 command prints a line for each change during the run. This is particularly useful for understanding why jumps were missed.

11Pre-authored Recordings

Pre-authored recordings can be handed over to RetroArch with the '--movie run.bsv' command. This allows executing the entire run with a single command.

12Conclusion

This application offers a real CRT experience using Rust, Wayland, and Vulkan technologies. It stands out as a unique tool for both gamers and developers.

Original article: Hacker News: Show HN — Rust ile Geliştirilen 3D CRT ve Ekran Kayıt Uygulaması