
Noks: Nokia 3310 emulator written in C#
Hi folks!
I made, with AI assistance, Noks (terrible name, ik. link is the live browser demo), an emulator of the venerable Nokia 3310, a phone that has a special place to the hearts of many here, mine included.
I used Avalonia UI Framework for C# and .NET and targets all of its supported platforms, including WebAssembly.
I made this because 1.) The MAME version (Nokia DCT-3) was sadly still incomplete after years since it was made. 2.) I wanted to play Space Impact authentically and everywhere. and 3.) I wanna push how far my skills can go, together with the latest agents, when it comes to reverse engineering a black-box, sparsely documented firmware and hardware.
I've started by pulling all the docs i can get my hands on old Nokia firmware modding forums, and also the prior work that MAME and Project Blacksphere did for the DCT-3 platform back in the day.
Then did a repeated loop of poking registers, memory, seeing where the firmware stops and back-tracing how me and the clanker can get pass that blocker. I also had to contend with the missing DSP Mask ROM functions that blocked the MAME effort by checking what conditions the firmware asked and responding to its requests accordingly.
Took a couple of months of on-off work but it was all worth it.
All outward facing features are implemented like the LCD, Keys, Sound, Power and RF. including an emulation of a minimal 2G GSM network that interfaces with the DSP/Baseband layer of the phone.
Text and calls were functional from my local tests using a P2P network called Waku but somehow it's broken again on deployment.
It is as fickle of a network as the real one did back in the day ;)
And the configuration panel is also bit of a jank work, UI-wise, but it does the job... for now.
Hope you'll find joy in playing with the emulator as much as i did in making it!
Source code here: https://github.com/jmacato/Noks
---
Special shout out to a fellow Nokia emulator dev and friend u/747djr !