Sujet : Re: Got Quake 2 running on my MRISC32 FPGA computer
De : chris.m.thomasson.1 (at) *nospam* gmail.com (Chris M. Thomasson)
Groupes : comp.archDate : 17. Dec 2024, 05:58:23
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <vjr0de$1if3p$1@dont-email.me>
References : 1 2 3
User-Agent : Mozilla Thunderbird
On 12/16/2024 6:04 PM, BGB wrote:
On 12/16/2024 3:25 PM, Chris M. Thomasson wrote:
On 12/15/2024 3:32 PM, Marcus wrote:
Some progress...
>
Earlier this year I spent some time porting Quake 2 to my MRISC32 based
computer. It required some refactoring since Quake 2 used a modular
rendering and game logic system based on dynamically loaded libraries
(DLLs). My computer isn't that fancy, so I had to get everything
statically linked into a single executable ELF32 binary (and the
Quake 2 source code didn't support that at all).
>
My patched source code: https://gitlab.com/mbitsnbites/mc1-quake2
>
When I finally got a working build, it only worked in my simulator but
not on my FPGA board, so I dropped the effort.
>
Yesterday, however, I went and bumped my GNU toolchain to GCC 15.x and
fixed a few bugs in my MRISC32 back end, and lo and behold, the binary
actually started working on the FPGA (not sure if it was a compiler bug
or if it's a CPU implementation bug that got hidden by the compiler
update).
>
Video: https://vimeo.com/1039476687
>
It's not much (about 10 FPS at 320x180 resolution), but at least it's
progress.
>
Well done. :^)
I had failed to say so in my own response, but I will agree to the sentiment. Getting Quake 2 working at double-digit framerates, is a worthwhile achievement.
I have yet to get the Quake series games running at double-digit framerates at 50 MHz in my case (except in limited cases, like small rooms or looking at a wall).
Nor have I succeeded in implementing a 75 or 100 MHz core that does much better (things tend to get wrecked by other issues, like needing to use small cache sizes or increase instruction latency to pass timing, which ends up being worse for performance than just running at a lower clock speed).
Granted, I had been primarily focusing on 64-bit designs here.
If you can get it compile and work, well, great! I kind of like 60fps. Instancing uniform and or a vbo wrt array instance is fun as well. I am still not sure why the uniform version works with higher frame rates. Fwiw, I still need to post this to YouTube, but here it is over on the god damn FB:
https://www.facebook.com/chris.thomasson.31/videos/137377579736416660fps realtime dynamic field. Now, If 12 fps is okay, well, I can make this MUCH more complex! ;^)