History of MBBSEmu
The journey of The MajorBBS Emulation Project (MBBSEmu) began well before its first code was uploaded to GitHub in 2019. My name is Eric Nusbaum, and like many others in our community I grew up as a 90s kid fortunate to live in a home that had a computer with a modem. By 5th Grade I would spend most of my time with friends from school dialed into a local, family friendly BBS playing games and goofing around. As we got older, we started to venture out of our area code dailing boards all over the San Diego area with boards powered by MajorBBS becoming our favorite as they had the best multi-player games for us to play together. I have fond memories of earning credits by playing Farwest Trivia with my mothers help, and staying up all night with my friends on the weekends to jump into Tele-Arena after the nightly reset to adventure into the Flagstones.
With the 90s winding down and headed into Y2K, we had all moved on to the Internet and were playing games like Unreal Tournament instead of Tele-Arena, TradeWars, or Legend of the Red Dragon.
In the early 2000's, the nostalgia bug that infects all of us bit and I started looking back into MajorBBS and the games we played growing up. From this, I initiated my foray into reverse engineering modules for The Major BBS as early as 2006. At that time, my focus was primarily on deciphering how the SDK compiled modules to function within the Major BBS runtime environment. I used WIN32DASM, the leading disassembler for the 16-bit NE DLL files at the time, but it was becoming increasingly unstable with each new Windows release.
By 2018, the challenge had escalated: finding free, effective tools for disassembling Major BBS Modules was proving to be a formidable task. This led me to develop a specialized disassembler for these modules. It not only produced a disassembly but also auto-documented the Major BBS APIs used by the DOS Module DLLs. This tool, MBBSDASM, was released as open source in early 2018.
After completing my work on an NES emulator, XamariNES, I revisited MBBSDASM and began exploring the possibility of emulating the runtime environment for Major BBS Modules. This research culminated in the earnest development of MBBSEmu in late 2019, with a prototype announced on Reddit’s /r/bbs in early January 2020.
MBBSDASM was a solid foundation, but I soon realized the need for a more advanced disassembler. IDA Professional was the optimal choice, although not without its costs. To fund this, I started a Patreon for MBBSEmu, which received incredible support from the BBS community which reached over $320 per month in donations from the community at its peak. Interestingly, the 2020 global pandemic gave me unexpected extra time to devote to MBBSEmu, accelerating its development.
However, as 2020 drew to a close and my consulting work resumed, my time for the emulator project diminished. To keep the MBBSEmu vision alive, I decided to open source the project under the MIT License in August 2020 and shared it on GitHub. The response was heartening, with community members contributing code, documentation, and testing.
A notable milestone for MBBSEmu was the updated Btrieve implementation by @paladine. His expertise in Btrieve 5 & 6 File Structure enabled full compatibility with Btrieve files and facilitated the conversion of all Btrieve functions to SQLite databases, a crucial advancement for the project.
As MBBSEmu celebrates its fourth anniversary, I find myself reflecting on the journey so far and looking forward with optimism. The project has become more than just a tool; it's a beacon of collaboration and innovation within the BBS community. The support and engagement from community members have been nothing short of inspiring. As we move forward, my hope is to see this spirit of open sourcing grow even further, fostering a culture of preservation and sharing within the BBS community. It's about keeping the rich history of BBS alive for future generations, ensuring that this unique piece of digital heritage continues to inspire and educate. I am excited about the future possibilities as we continue to build on this foundation, driven by a community that values its past as much as its future.
- Eric Nusbaum