Bare Metal Assembly Raspberry Pi Starfox Tribute
In this technical retrospective (2014), @thisisnkp shares practical architectural lessons learned from running, scaling, or migrating production software under lean constraints.
Core Principles for Independent Builders:
Defaulting to simpler architectures (such as monolithic frameworks, SQLite, or managed VPS) prevents early engineering bankruptcy.
Evaluating true compute and egress costs reveals that high cloud bills can often be slashed by 80%+ through judicious re-platforming.
Code you write at 2 AM as a solo engineer must be easy to debug six months later without complex microservice dependencies.
Community Debate Themes:
HN engineers debated the tradeoffs between cloud convenience and raw server economics, database indexing strategies, and resisting premature architectural complexity.
CATEGORY Frugal Engineering →
HISTORICAL ERA Cloud & Mobile Era (2014–2019)
COMMUNITY SCORE ★ 139 points
TOTAL DISCUSSIONS 36 comments
Great work, it's always nice to see more Asm projects!
"Bare Metal" - does this mean the RPi can run blob-free?
A possible improvement I suggest is to gfx_draw_line in gfx.s - using a fixed-point algorithm could be simpler and faster: http://hbfs.wordpress.com/2009/07/28/faster-than-bresenhams-algorithm/
Oh wow. This is awesome.
And here I am sitting here, with little x86 asm and z80 asm knowledge, reversing windows binaries and messing with Pokémon arbitrary code execution exploits. (optimizing my payloads for the 8F/"ws m" exploit is fun though!)
Been meaning to learn ARM asm for some time, but haven't got around to it.
This is extremely impressive - well done all!
There is a bare metal chess game [0] for the Pi that was presumably another teams entry for the same assignment (they are both from Imperial).
[0] https://github.com/xu-ji/assembly_chess/
Looks like there's a tiny little emulator for this, too.
https://github.com/ICTeam28/PiEmu
I've got as far as installing the SDL headers (you're looking for SDL.h from SDL 1.2) and running cmake . but not much further.
I have to say, this assignment in general has been my favourite part of first year (my group extended our assembler to look enough like GNU as that we could assemble the output of GCC, so we could compile CSUD).
Nice work - love it (might play it at some point to see if I'm any good).