User Tools

Site Tools


mbbsemu:faq:project

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
mbbsemu:faq:project [2020/11/16 10:16] tudaymbbsemu:faq:project [2023/11/27 22:03] (current) enusbaum
Line 1: Line 1:
-===== The MajorBBS Emulation Project - Frequently Asked Questions =====+===== The MajorBBS Emulation Project - In-Depth FAQs =====
  
 === What is The MajorBBS / Worldgroup? === === What is The MajorBBS / Worldgroup? ===
  
-The MajorBBS (later renamed to Worldgroupis 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.+The MajorBBSlater rebranded as Worldgroupis 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.
  
-It was the ability to handle multiple phone lines which made The MajorBBS so revolutionary and why it's remembered so fondly todayFor many individualssystems running The MajorBBS (or Worldgroup) were their first experiences interacting with other people, real-time, over a digital medium. The MajorBBS made software such as Chat Rooms and Multi-User Text Dungeons (MUDs) household names.+The MajorBBS gained prominence for its innovative capacity to manage multiple phone lines concurrently, a feature that was groundbreaking at the timeThis capability was a cornerstone in the evolution of digital communicationintroducing 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 does The MajorBBS or Worldgroup need a dedicated Emulator? ===+=== Why is an Emulator Necessary for The MajorBBS or Worldgroup? ===
  
-While The MajorBBS was powerful software at the timeit 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 properlyAdditionally, micro-optimizations at the x86 Assembly level cause issues for psudo-emulated DOS environments (such as DOSBox)so the only option is to run the software in a full virtual machine using VMWare or VirtualBox. Once you have the software installed, you have to configure not only the environment but MajorBBS/Worldgroup to work with TCP/IP to enable telnet connectivity. +Despite its historical significance, The MajorBBS and Worldgroup software, now over three decades old, are constrained by technological obsolescenceThe 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 functionalityFurthermore, 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.
  
-There are steps beyond this - but the goal here was to explain why MBBSEmu was created: to eliminate these requirements, and easily unlock access to all this great software without the need of MajorBBS and Worldgroup.+MBBSEmu was developed to circumvent these challengesoffering a streamlined solution to access and utilize this legacy software without the intricate setup requirements of MajorBBS and Worldgroup.
  
-=== Why not just build off Worldgroup 3.x for Windows? ===+=== Why Not Simply Upgrade 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 "recent"was also the last version to come towards the end of the BBS era. Most modules people remember and love were from the DOS versions of MajorBBS 6.25 through Worldgroup 2.0. While some modules were ported/upgraded to work with this new 32-bit version of Worldgroup (MajorMUD, T-LORD, Tradewars 2002)Worldgroup 3.x didn't have the same level of support from ISV's because by the time of its release the Internet was also taking over.+Worldgroup 3.x, designed for Windows NTis 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 (ISVsfor Worldgroup 3.x.
  
-Additionally, if an effort was undertaken to upgrade Worldgroup 3.x to modern 64-bit operating systems, it would no longer be compatible with existing Modules as they're compiled for 32-bit. Because of technical differences, 32-bit DLLs are unable to be loaded or called by a 64-bit process and vice versa. Along with a reliance on a 32-bit host process, these Modules also rely upon 32-bit calls to the Windows Kernel. The only way an updated version of Worldgroup 3.x to a modern operating system/platform would be of any value was also if all the available modules were recompiled from source and upgraded as well.+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.
  
-Because of these and other technical limitationsthe only viable method to continue enjoying the MajorBBS and Worldgroup modules we love and remember is through full emulation of the Modules in their current, 16-bit/32-bit form.+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 work? === +=== How Does MBBSEmu Function? ===
  
-MBBSEmu is an emulator inside an emulator. First, the Module itself (16-bit NE Windows 3.0 Format DLL File) is disassembled and decodedThen 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.+MBBSEmu operates as a dual-layer emulator. Initiallyit disassembles and decodes the Module (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 Worldgroupas well as those from the Galacticomm Software Breakthrough Library, are meticulously emulated. This complex process is the crux of MBBSEmu's functionality.
  
-The emulation of host APIs is similar to the implementations in other platform emulators such as [[https://www.winehq.org/|WINE]] and [[https://www.dosbox.com/|DOSBox]].+The emulation approach is akin to that used in other platform emulators like [[https://www.winehq.org/|WINE]] and [[https://www.dosbox.com/|DOSBox]]. As the emulator evolves with more APIs and x86 Opcodes supported, an increasing number of modules will become operational within MBBSEmu.
  
-As more APIs and Opcodes are implemented, and additional x86 Opcodes supported, more modules will be functional within MBBSEmu. So check back frequently for updates!+=== Does MBBSEmu Support Btrieve? ===
  
-=== 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.
  
-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 modulesbut also has full support for the Btrieve APIThis means modules that made extensive use of Btrieve will eventually be fully supported within MBBSEmu as additional functionality is continually added.+In MBBSEmuBtrieve data is converted to SQLite, with .DAT files being transformed into .DB SQLite databases. For instancea PLAYERS.DAT file becomes a PLAYERS.DB SQLite Database. This conversion process preserves the original Btrieve files, maintaining backward compatibilityThe 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.
  
-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 thereafterThis 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, because MBBSEmu stores the Btrieve data in an easily accessed SQLite tables, it's even easier now for Sysops and players to access and modify the information without having to rely on decades old tools or being Btrieve Wizards themselves!+For detailed insights into MBBSEmu's process of converting MajorBBS and Worldgroup Btrieve files to SQLite, refer to the [[mbbsemu:development:sqlite_database_specifications|SQLite Database Specifications]] article.
  
-For more information on how MBBSEmu handles converting MajorBBS and Worldgroup Btrieve files to SQLite, please see the article on [[mbbsemu:development:sqlite_database_specifications|SQLite Database Specifications]].+=== What Technology Powers MBBSEmu? ===
  
-=== What technology does MBBSEmu utilize? === +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.
- +
-MBBSEmu is written in C# using .Net Core. 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? === === Is MBBSEmu Open Source? ===
  
-YesMBBSEmu is Open Source and on GitHub for the entire community to help grow! You can check us out on [[https://github.com/enusbaum/MBBSEmu|GitHub]]!+YesMBBSEmu 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.1605521783.txt · Last modified: 2023/10/06 23:40 (external edit)