10th of June 2025 – Raspberry Pi 5

For diverse reasons I have been playing with a Raspberry Pi 5 lately.

What a lovely little device! So small, so fast!

I could not help myself and installed Vide on it – one never knows when one wants to develop something :-)!
There were two little things that did not work out of the box – the NI (native interface) library of the serial library I use – which in the end was a simple recompile on my pi.
And the “old” version of JOGL did not run with the OpenGL on the pi.
I downloaded a new version of it – and replaced the one I used befor.

Voila!
Vide on a Pi – emulation runs as fast as 220% – display using OpenGL. Sound and all…
Download it using the button below if you fancy to try it.
I even added the Java implementation “temurin-8-jre-arm64” – so you don’t need to be concerned about the right version yourself.
Just start “vide.sh” – and it should run!


Another Pi 5 thing.
Some time I did changes to the libretro Vectrex core. The changes never made it into any distribution – but it still runs very well.

I recently added Launchbox to my windows desktop – using for the vectrex emulation my own core.

I did the same thing for the raspberry. It was fairly easy going. Download from github – go to the directory and type “make” – and the core is compiled.
Find your retroarch core directory – and replace it.
If you care for a vectrex “overlay” place it under “overlays/vecx/screen.png” – and everything is set.

More information about compiling: https://github.com/malbanGit/libretro-vecx

You can also download and try it for yourself – a precompiled retroarch + vecx core at:
http://vectrex.malban.de/libretro/RetroArchPi5_vecx.zip

(see also readme.txt for more information)

13 thoughts on “10th of June 2025 – Raspberry Pi 5

  1. Phillip Eaton

    Nice update! Will it also work out the RPi4 or 3? I guess the emulator might struggle, esp. on the 3. You could also use the Raspberry Pi500 as a dev station, that would be cool.👍

    1. Malban Post author

      I guess it will work – how “fast”, I cannot say.
      I’d say my Pi 5 is already pretty “upscaled”, probably better than a standard pi500.

      I have 16GB RAM and a 2 TB SSD installed (from which I also boot). I really like my little Pi-box!

      At the moment I am trying to get to run NetBeans, so I will not only be able to program with Vide – but also update Vide :-).

      1. Graham Toal

        Adding x86 emulation turns out to be relatively easy:

        sudo apt-get install binfmt-support qemu-user-static
        sudo dpkg –add-architecture amd64
        sudo apt-get update
        sudo apt-get upgrade
        sudo update-binfmts –display

      2. Graham Toal

        Got it all working now. Binfmt setup wasn’t as easy as I originally thought:

        # basic binfmt setup
        sudo apt-get install binfmt-support qemu-user-static
        sudo dpkg –add-architecture amd64
        sudo apt-get update
        sudo apt-get upgrade

        # added i386 to also allow running the binaries in Linux32
        sudo dpkg –add-architecture i386
        sudo apt-get update
        sudo apt-get upgrade

        # also tried this but didn’t appear to entirely succeed. May not be needed,
        # although it actually looks like x86_64 is being used by Linux64 rather than amd64
        sudo dpkg –add-architecture x86-64
        sudo apt-get update
        sudo apt-get upgrade

        sudo update-binfmts –display

        # there’s probably a better way to get these but I couldn’t find it…

        # this was needed to run all the 64-bit Intel binaries in Linux64. Obviously you can’t copy these from my system but you should be able to find them elsewhere.
        sudo mkdir -p /etc/qemu-binfmt/x86_64/lib64
        sudo scp gtoal@192.168.2.251:/lib64/ld-2.27.so /etc/qemu-binfmt/x86_64/lib64/ld-linux-x86-64.so.2
        sudo scp gtoal@192.168.2.251:/lib64/libc.so.6 /etc/qemu-binfmt/x86_64/lib64/libc.so.6

        # and also i386
        sudo mkdir -p /etc/qemu-binfmt/i386/lib
        sudo scp gtoal@192.168.2.251:/lib/i386-linux-gnu/ld-2.27.so /etc/qemu-binfmt/i386/lib/ld-linux.so.2
        sudo scp gtoal@192.168.2.251:/lib/i386-linux-gnu/libc-2.27.so /etc/qemu-binfmt/i386/lib/libc.so.6

  2. Graham Toal

    Do you do baremetal development for the Pitrex on a Pi now too? I’ld quite like to get back in to writing for the Pitrex but I was never able to use your Windows/Mac VM environment. If it were all hosted on a Pi, I would find it a lot easier. Even if it needed a separate Pi and wasn’t hosted on the Pitrex itself, a command-line pi-based environment would still make developing a lot simpler. I basically had to give up writing for the Pitrex when we dropped linux in favour of the bare metal environment because I found it just too difficult to work in.

  3. Graham Toal

    Here’s what I did: I created a new user on my pi5 called ‘vide’.
    (not relevant, but I then took about 3 hrs to get VNC working to access the GUI under that username. Wasn’t trivial. I eventually got vncserver-x11 to run after disabling Wayland graphics. God knows if I’ll ever manage to convince VNC give me a larger window – Vide is all but unusable with the small window I’m currently working in. Part of that difficulty comes from usually using this machine headless, but I did temporarily attach a small portable display while trying to get one of the VNC’s to run.)
    I unpacked Vide.RPI5 in the home directory, and started it up by cd’ing to Vide.RPI5 and running the vide.sh script supplied. (starting up vide.sh outputs a lot of lines like these below to the command window, but that’s probably not a significant problem:
    db 158, 0, 101 ; radius, angle(512) in degree, from: -1 rad, y,x: -150, 50
    db 180, 0, 80 ; radius, angle(512) in degree, from: -1 rad, y,x: -150, 100
    db 212, 0, 64 ; radius, angle(512) in degree, from: -1 rad, y,x: -150, 150
    )
    I created a new project, ‘Peer C’ style. No parameter tweaks.
    I then tried to compile the default ‘hello world’ source that Vide creates in main.c
    It gave this…

    Cleaned…
    Preprocessing: /source/main.c Preprocessing failed
    /home/vide/Vide.RPI5/C/Linux64/bin/cc1: 1: Syntax error: “(” unexpected
    Error preprocessing: /home/vide/Vide.RPI5/newproj/source/main.c

    I checked main.c, there’s no random accidentally typed character in the file.

    So, doesn’t work in a completely clean virgin environment. I’ll work on it myself but I thought you’ld want to know and I was wondering if anyone else here has tried it yet? (Maybe we can work it out ourselves before you get back from your trip.)

  4. Graham Toal

    Your Libretro package worked. It did seem a little faster than a real Pi (playing Vectorblade) but that may just be perception and maybe related to playing over VNC. Doesn’t really matter if it is.

  5. Graham Toal

    Solved… the binaries in the Vide.RPI5 package all appear to be Intel binaries! Do you have your Pi5 set up to execute Intel binaries under emulation by any chance? (i.e. using binfmt + qemu?) The only other options I can think of are that you either uploaded the wrong package after recompiling everything for ARM, or when you built Vide for the Pi you were only looking at the emulation and not at assembling or compiling anything? (Or you do have ARM binaries elsewhere in your path that are being found in preference to the ones in the Vide.RPI5 tree? But that seems unlikely as I think you use absolute paths when you invoke a binary from within Vide…)

    file `find . -name cc1`
    ./C/Linux32/bin/cc1: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.32, BuildID[sha1]=8ac0828314aa523fc22fabb4e124f8b095dd7787, with debug_info, not stripped
    ./C/Mac/bin/cc1: Mach-O 64-bit x86_64 executable, flags:
    ./C/Linux64/bin/cc1: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.32, BuildID[sha1]=78c0a67471680cc73a7088b80fc3fa5bd09bd64b, with debug_info, not stripped

  6. Malban Post author

    I have not tried „C“ with Vide …
    My first go is always assembler.

    Yes most probably I would need to recompile the cc and linker… have to place that on my todo list.
    Sorry for the inconvenience…

    1. Graham Toal

      Not a problem, running Intel binaries works a treat and also I’ve finally worked out the kinks in invoking gcc6809 from a Makefile that will go through the same build procedure that Vide does. (there’s a copy of an example working makefile at https://gtoal.com/vectrex/Makefile-VIDE ) It’ll be so nice to work on Vectrex sources in Emacs and Ecce (my two go-to editors), which I know my way around much better than I do Vide’s editor, and where I can invoke utilities such as clang-format with the touch of a key.

  7. Graham Toal

    btw I’ve rebuilt the assembler and linker from source. I had 5 different versions of the linker source lying around so I did them all – there wasn’t much work involved.

    I wasn’t sure how you generate the .cnt file but I found an old copy of make_cnt.cpp in your oldies web site and converted it to modern C but I have no idea what files it takes as input. I’ll put the sources online tomorrow.