MBBSEmu News - April 6th, 2021

I'm not a Lawyer, but I play one on the Internet

If you've been following tech news recently, you'll by now have heard The United States Supreme Court ruled this past week in the case of Oracle v. Google that Google's reimplementation of Oracles Java API's was "fair use as a matter of law." The MajorBBS Emulation project has long held that MBBSEmu and Emulator Development are legal and protected by Fair Use laws in the United States. This latest ruling by the United States Supreme Court will hopefully put to rest those who still, to this day, scream into the wind about MBBSEmu constituting "Copyright Violation" or theft of "Intellectual Property".

This latest Supreme Court Ruling reaffirms our steadfast belief in the legality of our project. The MajorBBS Emulation Project will continue on as a community run effort to preserve access to the Software we love for future generations.

Speaking of APIs...

While the news section of our Website doesn't get updated very frequently, there's always a flurry of activity over on GitHub! Since our last official release, we've been hard at work not only squashing bugs submitted by our users (91 commits to master since!), but also working towards getting full DOS EXE support implemented in MBBSEmu as well! This means going through and implementing the required DOS APIs (called Interrupts) within MBBSEmu to allow DOS programs to do things such as print text and accept user input.

These DOS EXE support is required to run utilities packaged with some modules. Some examples include:

  • MajorMUD using an offline utility to perform direct Database Operations and Cleanup
  • Lunatix for Offline Configuration
  • TradeWars for Configuration and Universe Building

The benefit of having DOS EXE support directly in MBBSEmu is you won't need any additional external tools (DOSBox, QEMU, etc.) to run these old, 16-bit DOS programs on your platform of choice. They'll all run seamlessly within the context of your MBBSEmu instance! One of the advantages of having a fully emulated x86 CPU core 🤓

You can experiment with this new feature in our latest automated builds using the "-EXE" flag. While primary support is targeted for offline utilities, there's no reason in the near future DOS EXE support can be expanded to also run/offer your favorite DOS Door games alongside your Major BBS/Worldgroup Modules in MBBSEmu as well! More to come on this feature in the near future.

MBBSEmu x86 CPU Core Gets an Upgrade!

If you've been watching GitHub, you've seen several PR's going in over the past month or so extending the x86 core to support 32-bit operations. While initially required to support modules compiled using "newer" compilers which took advantage of some 32-bit Opcodes, it became apparent that the next logical step for MBBSEmu was to begin the work towards full 32-bit support.

As of the latest builds, the MBBSEmu CPU core has been extended to support both 32-bit Registers and 32-bit Operands. Our initial pass at this upgrade resulted in a small performance hit (as we doubled the size of the data it would process), but with the latest rounds of optimization from @paladine, the CPU core is not only back up to speed but ~1-2% faster than it was previously! MBBSEmu can easily emulate the performance of a 486DX2 CPU on modern hardware and even match the performance of a 386 on a Raspberry Pi! We're not going to be breaking any emulation speed records with MBBSEmu, but that's more than enough horsepower to run 40+ modules on a single instance of MBBSEmu even hosted on a $20 Raspberry Pi.

The roadmap for 32-bit support has MBBSEmu eventually supporting full emulation of WG3NT modules as well. This had not been on our roadmap, but current ISV's have decided to begin re-releasing software originally written and released for MBBS exclusively for WG3NT. We question this decision from a preservation standpoint, but we'll continue to do our best to ensure the community has a choice in how they access these games. So while WG3NT support is eventual, it's low priority until there is a need to run these games from the community.