Iāve had so much fun with the 486 SX-33 lately that I havenāt even touched the Switch 2 I got over the weekend.
Iām putting together a devkit for the MiSTeR FPGA ao486 core, and more generally an environment for retro game and demo-style projects. Toolchains in this space have been fairly grim so far: DJGPP, Turbo C++, or Watcom C/C++.
AO486 DEVKIT0x66 and 0x67 prefixes used for 32-bit instructions already eat into performance on what is still a fairly modest CPU. The pipeline is only 16 bytes long.486.md covers 486-specific assembly optimisation details. In practice, it is quite a different beast from either a 386 or a Pentium. This is the sort of material that is fun to read on its own, so it felt worth writing.tmodplay, a MOD player. Unfortunately, the Sound Blaster 16 implementation in ao486 is pretty awful. For that era of PC hardware, the only really good option was the Gravis Ultrasound.Iām not really a game or demo developer myself, but I can at least provide much better SDKs, so I felt like fixing one long-standing problem in the retro scene. It is released under the MIT license so people can do whatever they like with it.
I should also check whether that FPGA core supports VESA 2.0, because that would allow 320x240 with chunky pixels. VESA 1.x was awful.
OK so you can without v4l2loopback.
Smoke test:
gst-launch-1.0 \
videotestsrc ! \
video/x-raw,format=YUY2 ! \
pipewiresink mode=provide \
stream-properties="properties,media.class=Video/Source,media.role=Camera"
iPhone/Airplay:
uxplay -vs 0 -vrtp "config-interval=1 ! udpsink host=127.0.0.1 port=6000"
gst-launch-1.0 -v \
udpsrc port=6000 caps="application/x-rtp,media=video,clock-rate=90000,encoding-name=H264,payload=96" ! \
rtph264depay ! decodebin ! videoconvert ! \
video/x-raw,format=YUY2 ! \
pipewiresink mode=provide \
stream-properties="properties,media.class=Video/Source,media.role=Camera,node.description=iPhone Camera"
Test page used: mozilla.github.io/webrtc-landing/gum_test.html
In Firefox the config option youāre looking for is called media.webrtc.camera.allow-pipewire.