mbbsemu:faq:project
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
mbbsemu:faq:project [2020/11/15 19:19] – enusbaum | mbbsemu:faq:project [2023/10/21 20:55] – enusbaum | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ===== The MajorBBS Emulation Project - Frequently Asked Questions ===== | ||
+ | |||
+ | === What is The MajorBBS / Worldgroup? === | ||
+ | |||
+ | The MajorBBS (later renamed to Worldgroup) is Bulletin Board Software originally written by Tim Stryker and first released in 1986 for DOS by Galacticomm Inc. Originally the software was written as a demonstration of the Galacticomm Software Breakthrough Library (GSBL), which was a library written entirely in x86 Assembly which allowed many simultaneous serial connections to be managed by a single software instance without the need for a 3rd Party Multi-Tasker such as Windows. | ||
+ | |||
+ | It was the ability to handle multiple phone lines which made The MajorBBS so revolutionary and why it's remembered so fondly today. For many individuals, | ||
+ | |||
+ | === Why does The MajorBBS or Worldgroup need a dedicated Emulator? === | ||
+ | |||
+ | While The MajorBBS was powerful software at the time, it is showing its age at over 30 years old. DOS versions of The MajorBBS and Worldgroup were compiled using a 16-bit version of Borland C++ (with the exception of WG3 for DOS, which is 32-bit -- and broke everything). These versions require DOS or an early version of Windows to run properly. Additionally, | ||
+ | |||
+ | There are steps beyond this - but the goal here was to explain why MBBSEmu was created: to eliminate these requirements, | ||
+ | |||
+ | === Why not just build off Worldgroup 3.x for Windows? === | ||
+ | |||
+ | Worldgroup 3.x for Windows NT is a 32-bit application built for 32-bit Windows. This specific version of Worldgroup, while the most " | ||
+ | |||
+ | Additionally, | ||
+ | |||
+ | Because of these and other technical limitations, | ||
+ | |||
+ | === How does MBBSEmu work? === | ||
+ | |||
+ | MBBSEmu is an emulator inside an emulator. First, the Module itself (16-bit NE Windows 3.0 Format DLL File) is disassembled and decoded. Then the disassembled x86 is executed on an emulated Intel 16-bit 80286 processor, with external calls to MajorBBS and Worldgroup APIs being routed to the second layer of the emulator, which emulates the host software. APIs for both The MajorBBS and Worldgroup (over 1300+!) need to be emulated as well as those APIs included in the Galacticomm Software Breakthrough Library. This is where the lions share of work lies. The diagram on the left visualizes how the x86 Code and The MajorBBS Emulator components interact with one another. | ||
+ | |||
+ | The emulation of host APIs is similar to the implementations in other platform emulators such as [[https:// | ||
+ | |||
+ | As more APIs and Opcodes are implemented, | ||
+ | |||
+ | === Does MBBSEmu support Btrieve? === | ||
+ | |||
+ | Yes! While it took several months over the beginning of the project, MBBSEmu now has a very robust Btrieve engine that is able to not only extract information from the original Btrieve .DAT files included with MajorBBS & Worldgroup modules, but also has full support for the Btrieve API. This means modules that made extensive use of Btrieve will be fully supported within MBBSEmu! | ||
+ | |||
+ | MBBSEmu supports Btrieve by converting the original .DAT files to SQLite using the .DB extension. This means a PLAYERS.DAT file will be converted to a PLAYERS.DB SQLite Database the first time the file is opened, and the .DB SQLite Database will be used from thereafter. This leaves original Btrieve files copied in from backups or from other sources in their original state without having to worry about maintaining backwards compatibility. Additionally, | ||
+ | |||
+ | For more information on how MBBSEmu handles converting MajorBBS and Worldgroup Btrieve files to SQLite, please see the article on [[mbbsemu: | ||
+ | |||
+ | === What technology does MBBSEmu utilize? === | ||
+ | |||
+ | MBBSEmu is written in C# using the latest Microsoft dotnet technology. This allows MBBSEmu to be cross-platform and support multiple operating systems such as Windows and Linux, as well as multiple hardware platforms such as x86-64 and ARM. This means you'll be able to host your favorite MajorBBS or Worldgroup modules on even a Raspberry Pi! | ||
+ | |||
+ | === Is MBBSEmu Open Source? === | ||
+ | |||
+ | Yes! MBBSEmu is Open Source and licensed under the permissive MIT License. You can find the source code on GitHub for the entire community to help grow! | ||
+ | |||
+ | [[https:// | ||
mbbsemu/faq/project.txt · Last modified: 2023/11/27 22:03 by enusbaum