Skip to content

Conversation

@Frank-Buss
Copy link

@Frank-Buss Frank-Buss commented Oct 3, 2025

This adds real VSYNC test from the graphics card instead of using the timer, because the timer is not in sync and causes a tearing effect. I also added a build script for Linux and a test script for running it with qemu. The game crashes in qemu after a few seconds, but otherwise it runs smoothly.

Video of it running on Linux in qemu:

2025-10-03.22-58-58.mp4

@jonathand-cf
Copy link

its becouse qemu runs on 1 cpu, QEMU must expose more than 1 vCPU to run correctly

@Frank-Buss
Copy link
Author

Frank-Buss commented Oct 5, 2025

No, this wasn't the problem. If there is only 1 core, it doesn't use the upscaling functionality. The problem was the missing RDRAND instruction. I changed the run script, works now with qemu.

@jonathand-cf
Copy link

It runs fine on my mac with

qemu-system-x86_64 \
  -machine q35,accel=tcg \
  -cpu max -smp 4 -m 1024 \
  -drive if=pflash,unit=0,format=raw,readonly=on,file="$QEMU_SHARE/edk2-x86_64-code.fd" \
  -drive if=pflash,unit=1,format=raw,file=OVMF_VARS.fd \
  -drive if=ide,media=disk,format=raw,file=fat:rw:$HOME/efidisk \
  -serial stdio

@Frank-Buss
Copy link
Author

Yes, "-cpu max" includes the RDRAND feature.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants