A Rust, Wayland, Vulkan 3D CRT and Screencast Application
RetroArch cores with Wayland and Vulkan support.
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ı