User:Nicholatian
Alexander Nicholi | |
---|---|
Gender | Genderless |
Age | 113 |
Location | Antarctica |
Title | ASMAGICIAN |
I am a software developer and homebrew enthusiast; on the wiki I usually like to do aesthetic cleanup of articles. I am getting my first 3DS very soon, however I have spent years learning about assembly, ROM hacking, and homebrew dev on the Game Boy Advance.
Projects[edit]
Here are some summaries of the homebrew/hacking-related projects I am either currently working on or have worked on in the past.
Pokémon Citrite[edit]
A ROM hack of Pokémon Emerald that I started in 2014 on the Game Boy Advance. It evolved alongside my knowledge of ROM hacking and grew with how much I learned about the GBA and Game Freak's engine. Over time I learned many fundamental skills, including how to:
- Write ARMv4 Thumb assembly
- Reverse engineer code in IDA Pro
- Effectively manipulate the GBA's hardware
- Hack in C code into the existing Emerald binary
- Automate ROM hacking into a single "build step" using Make
Development of Pokémon Citrite gradually came to a halt however, as it dawned on me that my game would never see popular fruition, mainly because I was permanently banned from the PokéCommunity (a forum with the largest Pokémon ROM hacking scene) unjustly. After departing from the ROM hacking development scene I decided to get involved with homebrew on the GBA, and write my own game engine for it in C++; this allowed the essence of Citrite to live on, but without any connection to Pokémon so I could retain copyrights (See: Trinity).
Trinity[edit]
An independent continuation of Pokémon Citrite written in C++ for the GBA. Source code will be based on the fruits of libGBAmm and Saturn once those projects are ready for use.
libGBAmm[edit]
An object-oriented rewrite of the libGBA provided by devkitPro, currently available on GitHub as a work-in-progress.
Saturn[edit]
A generic framework that builds on libGBAmm, comprising a template project that can be used to jump-start other projects on the GBA. Will be written in C++, like libGBAmm, and will include:
- Classes and functions that make working with graphics more human
- A frame-based asynchronous task system
- A mainloop complete with a modifiable set of purposed callbacks
- A console interface that switches between input and output upon Select
- More abstractions for key input, sound, and link cable networking
libcthulhu[edit]
No details yet, but stay tuned. :)