randyrossi / bmc64

A bare metal Commodore 64 emulator for the Raspberry Pi with true 50hz/60hz smooth scrolling, low input latency and better audio/video sync.
GNU General Public License v3.0
474 stars 56 forks source link

successful build using Arm GNU Toolchain (12.3.rel1) report #250

Closed theflyingape closed 8 months ago

theflyingape commented 8 months ago

On my Fedora 39 workstation, I'd like to report that I can build off your latest git pull for my Pi 3B+ running off a Commodore 1902 composite monitor by using the latest Arm GNU Toolchain with the environment setup:

# Arm Developer: https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
export ARM_VERSION=12.3.rel1
export ARM_HOME="$HOME/BIG/arm-gnu-toolchain-${ARM_VERSION}-x86_64-arm-none-eabi"
export PATH="$PATH:${ARM_HOME}/bin"

... and also the packages sudo install automake bison compat-flex flex libfl-static xa

That said, the VICE 3.3 configure generated does not work with the newer toolchain, so I ran autoupdate and autoreconf -i -f as a first defense. Next, I hacked by commenting out the lines for AC_CHECK_PROGS for byacc, yacc or bison because these tests were failing despite being detected earlier as installed. :+1:

The resulting configure was closer, but had some mangled lines needing manual hygiene. I am attaching the result of thse edits as configure.txt here for any compare/diff for possible use as a patch: configure.txt

After copying the resulting kernel files over to the SD card, it booted into VIC 20 composite and showed me "4.1" in the menu's About.

$  ll kernel*.img*
-rwxr-xr-x 1 rhurst rhurst 2437456 Oct 29 20:25 kernel8-32.img
-rwxr-xr-x 1 rhurst rhurst 3061936 Oct 29 20:25 kernel8-32.img.c64
-rwxr-xr-x 1 rhurst rhurst 2437456 Oct 29 20:25 kernel8-32.img.pet
-rwxr-xr-x 1 rhurst rhurst 2393092 Oct 29 20:25 kernel8-32.img.plus4
-rwxr-xr-x 1 rhurst rhurst 1302672 Oct 29 20:25 kernel8-32.img.plus4emu
-rwxr-xr-x 1 rhurst rhurst 2447736 Oct 29 20:25 kernel8-32.img.vic20

There was also this elf file built, but I did not copy that over the start.elf that came with the 3.9 image:

$ ll *.elf
-rwxr-xr-x 1 rhurst rhurst 5486628 Oct 29 20:25 kernel8-32.elf

image

rhester72 commented 8 months ago

I suspect you will find the resulting build for the Pi Zero hangs with a black screen - all later toolchains have has this effect for reasons I never really bothered to examine. Builds for all other models (except 4, of course) work as expected.

theflyingape commented 8 months ago

Sure, all of the 3.x releases are for "Not Recommended for New Design" Pi boards. Being new to this "bare metal" scene, I won't invest much for my tinkering trying to use an old toolchain.

I am curious about the 4.x code tree on where it might be headed and figured I give this a workout, if only to use as a reference. I am infatuated with the 8BitDo Retro Mechanical Keyboard, which does not work with bmc64 v3.9, and would like to inspect further as to why/how and if ...

If anything, I can always re-make this into a VIC 20 kiosk running Mega-Cart! :100: