So I graduated college at the beginning of this month. It still feels kind of surreal that I’ve spent the last two decades of my life in school! Granted, I am going to NYU for another 5-6 years for grad school, hence the academic journey is not finished yet. But for now, it’s over.
I spent the last 4 summers either doing research/ working, so I’m planning on spending this summer just relaxing. Of course, “relaxing” doesn’t mean doing nothing (although I do admit to doing just that for a couple of weeks after graduation). Here’s what I’m planning on doing over the summer:
- GBA emulator: I’ve previously made a CHIP8 emulator during the last couple of weeks of my final semester in college. That was relatively easy, so the obvious next step is to do something more complex. I want to emulate the GBA, since I grew up on the games from that console. I’ve managed to grok a good amount of the technical hardware specs ( see here), and have skeletons of a bunch of classes that emulate the various parts of the system. The two big ticket items that need to be done are the instruction implementations for the ARM7TDMI CPU, and the PPU. I need both of these things so that I can start running the myriad of test ROMs that are out in the wild. Both of these things are massive undertaking, so we shall see how far along I am in a month’s time.
- Crafting Interpreters: I had a friend recommend the book Crafting Interpreters which is a more modern take on the classic dragon compiler book (Yes, despite the name, Crafting Interpreters covers the basic principles behind building compilers; it stops just short of the tedious part of converting the intermediate language into machine specific assembly code). In the first half of the book, Nystrom implements a tree-walk interpreter in Java. I don’t know Java. I’m going to try and write it in Go (I don’t know Go either, but I’m more willing to learn Go than Java)
- POV Fan: I got an itch to make something more physical as well, and a POV fan scratches that itch. As a preliminary step, I’ll try making a tiny monochrome one with an arduino that can be attached to any fan. After that, I’ll try making an 10 LED RGB one to learn SMD board design and fabrication.
It remains to be seen how many of these I actually get done by the end of the summer, but it will keep me busy! Other than the above, I’ll try to get back to a more normal sleep schedule, bike around a lot more, and spend time with my family. Hopefully I bear good news come next month!