• Got Quake 2 running on my MRISC32 FPGA computer

    From Marcus@21:1/5 to All on Mon Dec 16 00:32:31 2024
    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.

    /Marcus

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Terje Mathisen@21:1/5 to Marcus on Mon Dec 16 15:32:26 2024
    Well done!

    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.

    /Marcus


    --
    - <Terje.Mathisen at tmsw.no>
    "almost all programming can be viewed as an exercise in caching"

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)