
🧩 CameBoy: A Minimalist Game Boy Emulator in C99
A clean, from-scratch Game Boy emulator written in pure C99, with a focus on simplicity, clarity, and low-level accuracy.
📚 Resources that shaped this project
- Pan Docs, the most complete technical reference
- Rodrigo Copetti’s Console Architecture Guide
- Gekkio’s Hardware Research
- The Ultimate Game Boy Talk (33C3)
- Game Boy Emulator Dev Series on YouTube
🕹️ Dura2D Running on a Nintendo Switch
Got Dura2D
, my custom 2D physics engine, running natively on a modded Nintendo Switch using the devkitPro homebrew toolchain.
What’s been achieved:
- Ported core physics loop.
- Ran physics demos in real time on handheld mode.
- Kept it fast, small, and fully self-contained.
The project is an exercise in pushing homebrew boundaries while keeping the architecture minimal and portable.
⚡ Pathfinding Performance: A Testbed Optimizations
I built a custom pathfinding testbed and explored 16,310 nodes in about 0.33 ms. Each colored pixel shows low‑level tweaks at work:
Key experiments that unlocked speed:
Memory layout
- Pack structs to remove padding
- Align hot functions to cut cache misses
- Pack frequent data tightly
- Add manual prefetching in A* loops
Compute optimizations
- Inline distance math and use SSE2
- Ensure proper loop order for better cache locality
Task control
- Simple fiber‑based job system
- Time slicing to balance work
- Delay result gathering
Big thanks to Perf Ninja for the low‑level inspiration. Still room to push this further.
🛠️ Unreal Engine 5: Multithreaded + Time Slicing + Delayed Result Gathering
Experimenting with FRunnable to speed up line casts on a grid and update an exposure map in UE5. By combining FRunnable, delayed result gathering, and time slicing, I hit some impressive numbers:
What’s implemented:
- FRunnable tasks for parallel line casts
- Delayed result gathering to avoid main‑thread stalls
- Time slicing to split work across frames
Inspiration: Adapted the Unity Job System approach from Ming‑Lun “Allen” Chou’s blog to Unreal Engine.
🚀 Dura2D: Building a 2D Physics Engine for Learning
I set out to discover how games simulate rigid bodies and collisions by coding my own 2D physics engine from scratch. Dura2D grew from a question: how do games deliver realistic motion and interactions?
Inspired by Pikuma’s course, Ming-Lun "Allen" Chou Game Physics blog posts and Erin Catto’s Box2D code, Dura2D offers:
- Constraint System for joints and contacts
- Warm Starting to reuse previous frame impulses and boost stability
- Stable, real‑time simulation across different scenarios
🛠️ Unity: Multithreaded + Time Slicing + Delayed Result Gathering
Experimenting with Unity’s Job System and Burst compiler to speed up line casts on a grid and update an exposure map in Unity. By leveraging IJobParallelFor, delayed result gathering, and frame slicing, I’ve hit some impressive numbers:
What’s implemented:
- IJobParallelFor jobs for parallel line casts
- Delayed result gathering on the main thread to avoid stalls
- Time slicing to spread work over multiple frames
Inspiration: Based on Ming‑Lun “Allen” Chou’s approach in Unity’s Job System.