User Tools

Site Tools


mbbsemu:faq:project

The MajorBBS Emulation Project - In-Depth FAQs

What is The MajorBBS / Worldgroup?

The MajorBBS, later rebranded as Worldgroup, is a Bulletin Board System (BBS) software initially developed by Tim Stryker and released in 1986 for DOS by Galacticomm Inc. This software was a pioneering demonstration of the Galacticomm Software Breakthrough Library (GSBL), a library entirely coded in x86 Assembly. Its primary function was to enable a multitude of simultaneous serial connections to be managed by a single instance of software, obviating the need for third-party multitasking environments like Windows.

The MajorBBS gained prominence for its innovative capacity to manage multiple phone lines concurrently, a feature that was groundbreaking at the time. This capability was a cornerstone in the evolution of digital communication, introducing many to their first real-time, online interactions with others. The software facilitated the rise of online chat rooms and Multi-User Dungeons (MUDs), contributing significantly to their mainstream recognition.

Why is an Emulator Necessary for The MajorBBS or Worldgroup?

Despite its historical significance, The MajorBBS and Worldgroup software, now over three decades old, are constrained by technological obsolescence. The DOS versions of these systems were compiled using a 16-bit Borland C++ compiler (except for WG3 for DOS, which is 32-bit and introduced compatibility issues). These versions necessitate either DOS or an early Windows environment for proper functionality. Furthermore, micro-optimizations at the x86 Assembly level present compatibility challenges in pseudo-emulated DOS environments like DOSBox, necessitating the use of a full virtual machine (VM) such as VMWare or VirtualBox. Configuring these VMs for TCP/IP support to enable telnet connectivity adds another layer of complexity.

MBBSEmu was developed to circumvent these challenges, offering a streamlined solution to access and utilize this legacy software without the intricate setup requirements of MajorBBS and Worldgroup.

Why Not Simply Upgrade Worldgroup 3.x for Windows?

Worldgroup 3.x, designed for Windows NT, is a 32-bit application incompatible with modern 64-bit systems. This version, while the most recent, arrived at the tail end of the BBS era. Many beloved modules from the DOS versions of MajorBBS 6.25 through Worldgroup 2.0 were not supported or upgraded for this 32-bit environment. The internet's rise further diminished the support from Independent Software Vendors (ISVs) for Worldgroup 3.x.

Upgrading Worldgroup 3.x to function on contemporary 64-bit operating systems would entail a complete overhaul, as 32-bit DLLs cannot interact with 64-bit processes and vice versa. This upgrade would necessitate not only modifying the Worldgroup 3.x software but also recompiling and upgrading all associated modules to be compatible with 64-bit architecture.

Given these technical constraints, full emulation of the original 16-bit and 32-bit modules remains the most feasible approach to preserving and enjoying the MajorBBS and Worldgroup modules.

How Does MBBSEmu Function?

MBBSEmu operates as a dual-layer emulator. Initially, it disassembles and decodes the Module (a 16-bit NE Windows 3.0 Format DLL File). The disassembled x86 code is then executed on an emulated Intel 16-bit 80286 processor. External calls to MajorBBS and Worldgroup APIs are routed to the second layer of the emulator, which simulates the host software. Over 1300 APIs from both The MajorBBS and Worldgroup, as well as those from the Galacticomm Software Breakthrough Library, are meticulously emulated. This complex process is the crux of MBBSEmu's functionality.

The emulation approach is akin to that used in other platform emulators like WINE and DOSBox. As the emulator evolves with more APIs and x86 Opcodes supported, an increasing number of modules will become operational within MBBSEmu.

Does MBBSEmu Support Btrieve?

Absolutely! MBBSEmu has developed a robust Btrieve engine capable of extracting data from original Btrieve .DAT files used in MajorBBS & Worldgroup modules, as well as offering full support for the Btrieve API. This functionality ensures comprehensive support for modules that extensively utilize Btrieve.

In MBBSEmu, Btrieve data is converted to SQLite, with .DAT files being transformed into .DB SQLite databases. For instance, a PLAYERS.DAT file becomes a PLAYERS.DB SQLite Database. This conversion process preserves the original Btrieve files, maintaining backward compatibility. The use of SQLite databases facilitates easier access and modification of data for system operators and players, eliminating the need for outdated tools or extensive Btrieve expertise.

For detailed insights into MBBSEmu's process of converting MajorBBS and Worldgroup Btrieve files to SQLite, refer to the SQLite Database Specifications article.

What Technology Powers MBBSEmu?

MBBSEmu is crafted in C# using the latest Microsoft .NET technology. This choice of technology endows MBBSEmu with cross-platform capabilities, enabling it to run on various operating systems like Windows and Linux and on multiple hardware platforms, including x86-64 and ARM. This versatility means that MBBSEmu can host your favorite MajorBBS or Worldgroup modules on devices as compact as a Raspberry Pi.

Is MBBSEmu Open Source?

Yes, MBBSEmu is an open-source project, licensed under the MIT License. The source code is available on GitHub, inviting community collaboration and contributions to its ongoing development.

https://github.com/mbbsemu/MBBSEmu

mbbsemu/faq/project.txt · Last modified: 2023/11/27 22:03 by enusbaum