The GBA was designed around having no cache. With a few exceptions (such as Internal RAM, Video RAM, IO registers, BIOS, OAM, Palettes), everything goes out to an external bus. Going out to an external bus with no cache will basically slow you down to 80s computer speeds. Fetching instructions from the cartridge ends up being around twice as fast as a GBC.
The way around that is using a cache, and sequentially fetching multiple words. Sequential fetches can be made faster, increasing throughput, and that can hide the latency if enough instructions/data gets cached.
I wonder how this system is designed, is it going to the memory bus for all fetches, or does it use a cache?
flopsamjetsam 18 hours ago [-]
From the GitHub page:
> It is a Gameboy Advance from a parallel universe where RISC-V existed in 2001. A love letter to the handheld consoles from my childhood, and a 3AM drunk text to the technology that powered them.
jihadjihad 16 hours ago [-]
Thank you to the author for writing a GitHub page in 2026 that is entirely devoid of emoji.
LukeShu 15 hours ago [-]
I mean no disrespect to Luke Wren, but he did not write it in 2026; he wrote it in 2018-2021. :)
tough 16 hours ago [-]
on the other hand having emoji on the readme is a great signal of llm-slop on my radar
jstanley 9 hours ago [-]
Isn't that the same hand?
lnxg33k1 9 hours ago [-]
[flagged]
bananaboy 16 hours ago [-]
Oh this is Luke Wren’s work. He’s an ASIC design engineer at Raspberry Pi. Amazing project, I love it!
LukeShu 15 hours ago [-]
I think "ASIC design" engineer is under-selling him--he's working on their CPU cores too!
He works at Raspberry Pi, and designed the Hazard3 RISC-V core that is at the heart of the RP2350--although he did Hazard3 in his spare time. It's actually a fork of the "Hazard5" core that he designed for the RISCBoy.
haebom 3 hours ago [-]
Is the greatest challenge in adopting this new hardware architecture the technology itself, or the lack of an existing developer ecosystem and software toolchains?
joshu 18 hours ago [-]
i love the "hardware from an alternate universe" projects.
LukeShu 15 hours ago [-]
I'm surprised to see that it's OK that he has opensource AHB/APB stuff in it--I'd avoided learning them too much about them assuming that they were ARM proprietary.
bri3d 15 hours ago [-]
AMBA has been an open standard for a really long time, I think maybe since it was released?
iFire 18 hours ago [-]
Does RISCBoy run Godot Engine? How can I make RISCBoy run Godot Engine?
ZiiS 8 hours ago [-]
This is a much smaller device then anyone has ever exported Godot to.
Its not a computer, its a small device. You dont have many unknown peripheral you dont have other programs. The memory and peripherals are there, just use them. Heap is complicated ? Preallocate everything. A peripheral is not used ? Just leave it there. Security ? Of what ? Thats the appeal of those devices.
bananaboy 16 hours ago [-]
If you set up the RISCBoy toolchain and port it then yeah.
wren6991 3 hours ago [-]
Why do you want an engine? Just write games
matheusmoreira 1 hours ago [-]
Your comment got downvoted but I think there's deep truth in it. I've been decompiling GBA games from my childhood and it's remarkable how engineless they seem to be.
Narishma 17 hours ago [-]
No. You can't.
emilfihlman 16 hours ago [-]
I'm quite willing to bet it can be done in this era of enabling developers with slob, which still usually works.
Narishma 16 hours ago [-]
How can you fit Godot into 512KB of RAM? And with no GPU?
Rendered at 16:46:27 GMT+0000 (Coordinated Universal Time) with Vercel.
The way around that is using a cache, and sequentially fetching multiple words. Sequential fetches can be made faster, increasing throughput, and that can hide the latency if enough instructions/data gets cached.
I wonder how this system is designed, is it going to the memory bus for all fetches, or does it use a cache?
> It is a Gameboy Advance from a parallel universe where RISC-V existed in 2001. A love letter to the handheld consoles from my childhood, and a 3AM drunk text to the technology that powered them.
https://github.com/Wren6991/PicoDVI
More practical would be to port https://github.com/gbdk-2020/gbdk-2020 so that https://github.com/chrismaltby/gb-studio could support it.