A Raspberry Pi game console kernel with a fixed function render pipeline. The purpose of the GameSphere project is to provide a modern, well-documented, and maintained system for low-level graphics programming enthusiasts and those nostalgic for 6th gen gaming consoles.
cortex-a53
cortex-a72
make raspi3
make raspi4
Note: Defaults to cortex-a53 for QEMU debugging if none is specified.
qemu-system-aarch64 -M raspi3b -kernel kernel8.img -serial stdio -monitor none -nographic
qemu-system-aarch64 -M raspi3b -kernel kernel8.img -serial stdio -monitor none -nographic -d cpu_reset,int -D qemu-log.txt
qemu-system-aarch64 -M raspi3b -kernel kernel8.img -serial stdio -monitor none -nographic -S -s
gdb-multiarch kernel8.elf
target remote localhost:1234
b configure_mmio_base
continue
next # Step to the next line
print debug_reg # Print the value of the debug_reg pointer
print *debug_reg # Print the value stored in the debug register
x/x 0x3F003000 # Examine the memory at the debug register address (Pi 3B)
dtc -I dts -O dtb -o dt-blob.bin dt-blob.dts
set $pc=0x80000
info registers
x/4i $pc # Disassemble 4 instructions at the current PC
continue
aarch64-none-elf-objdump -D -b binary -m aarch64 kernel8.img
readelf -h bin/kernel8.elf | grep "Entry point"
Copy-Item -Path .\config.txt -Destination D:\
Copy-Item -Path .\dt-blob.bin -Destination D:\
Copy-Item -Path .\fixup4.dat -Destination D:\
Copy-Item -Path .\kernel8.img -Destination D:\
Copy-Item -Path .\start4.elf -Destination D:\