sh4
sh4.dev
sh4
@sh4.dev
Dreamcast GPU Researcher, FPGA, Emulation, Optimization, Math, Music

https://x.com/sh4forever
https://sh4.dev/dragon/architecture/
Sharing a fun visualization of what the early shader-based rasterizer on our custom #gpu looks like in-simulator. Threads walk over the bounding box area of a triangle. Next optimization here is: on a row, if you have seen some pixels and now you don't, skip to next row. #fpga #emulator
April 2, 2025 at 5:35 PM
More progress on #webgpu #dreamcast GPU simulation. This is opaque list-only rendering with just base colors (no texturing). You can see how Soul Calibur would multiply these base colors with albedo texture to produce per-vertex lighting. Progress!
December 3, 2024 at 4:56 PM
#webgpu -based simulation of the #dreamcast PowerVR GPU is making progress slowly. The entire ISP/TSP processing of lists is done via compute shader. The shader walks over TA-generated data structures in dreamcast VRAM. Stutters are understood and will be fixed. PROGRESS!!
December 2, 2024 at 11:05 PM
Here you can see some breakdown of how cell shading works in Jet Grind Radio. Body parts are drawn twice, with the second one drawn completely black and "expanded" size, with all screen space depth values moved away from the camera to give the appearance of an outline. Maybe I should make a video...
December 1, 2024 at 7:09 PM
Additionally, we have our own pipelined RISCV implementation now which is substantially faster and more fully-featured than the excellent picorv32 we were using before. Pictured here, we also created an emulator which can simulate the CPU and GPU at a very low level.
December 1, 2024 at 6:05 PM
Sharing here the first on-FPGA triangle we rendered. This was some time ago, and we have performed significant pipelining optimizations to the design at this point. Rasterization can be easily parallelized. It's based on a moving grid of rasterizers based on Pineda-style edge-equations.
December 1, 2024 at 6:01 PM