Frequently Asked Questions

MBBSEmu

This page contains information about MBBSEmu which should help answer questions around common features, exceptions or errors thrown by MBBSEmu. Please review this page for additional information on exceptions or errors you might be experiencing. If you're unable to locate your specific scenario, please reach out to us by visit the Contact page and let us know! Your reports help us continue to improve MBBSEmu!

How do I run multiple Modules?

Multiple modules can be loaded at runtime using a Module Configuration JSON File and the -C <jsonFile> command line switch.

Here is an example of a Module Configuration JSON file:

                {
    "Modules": [
    {
        "Identifier": "HVSXROAD",
        "Path": "c:\\dos\\modules\\xroads\\"
    },
    {
        "Identifier": "LUNATIX",
        "Path": "c:\\dos\\modules\\lunatix\\"
    },
    {
        "Identifier": "RTSLORD",
        "Path": "c:\\dos\\modules\\rtslord\\"
    },
    {
        "Identifier": "GWWARROW",
        "Path": "c:\\dos\\modules\\archery\\"
    },
    {
        "Identifier": "DIALCHAT",
        "Path": "c:\\dos\\modules\\dialchat\\"
    }]
}
                

Can MBBSEmu games be played from Mystic/Syncrhonet BBS?

Yes! As of Public Alpha 13, MBBSEmu supports Rlogin both into the MBBSMain menu as well as directly into each individual module loaded. The Rlogin options are configurable via the following options in the appconfig.json file:

"Rlogin.Enabled": "True",
"Rlogin.Port": "513",
"Rlogin.RemoteIP": "127.0.0.1",
"Rlogin.PortPerModule": "True",

Can MBBSEmu run within a Docker container?

Yes! A community member has taken the time to setup a Dockerfile for MBBSEmu which will allow you to run it within Docker! You can check out his repo on GitHub here.

Does MBBSEmu need to run as sudo/Administrator?

Yes -- for the time being. Currently to be able to bind to a non-loopback port for Telnet, MBBSEmu needs elevated privileges on the host operating system.

Warnings: Unable to Find File/Calling FCLOSE on a NULL File Stream Pointer

While a majority of modules should work by simply unzipping the files into a given folder, a few require files in a specific locations. Modules such as Tournament LORD or Lunatix place files in a specific sub-directory after installation. We're working on identifying these modules and giving ZIP files with the modules in a "post install" structure. For the time being, if you are experiencing these errors, you should be able to locate the file in question and put it in the desired location manually.

Exception: Unknown Exported Function

This Exception means that the module is trying to access exported functions in a library that currently isn't supported in MBBSEmu. Exported Functions are APIs exposed by specific libraries. Most of these libraries were internal to MajorBBS and Worldgroup provided by Galacticomm, such as MAJORBBS, GALGSBL, GALME, etc. These standard libraries will be supported in time as development of MBBSEmu continues. Additionally, some modules have their own libraries that get loaded along with the module. Farwest Trivia for example access its question server in a library outside of the Module. MBBSEmu currently doesn't support these dynamic external libraries, but support is planned.

Exception: Unknown Exported Function Ordinal

This Exception means that a specific API is being invoked from the module you're attempting to run that is currently not supported by MBBSEmu. You can view the currently supported APIs within MBBSEmu by visiting our API Information Knowledge Base. On this page you'll be able to look up the specific API by the ordinal in the exception to better understand what is being called. As more APIs within MajorBBS and Worldgroup are added to MBBSEmu, these errors will become fewer and further between.

Exception: Unable To Locate 65535:0000

This exception means that MBBSEmu is attempting to access a variable or pointer hosted within MajorBBS or Worldgroup that is currently not supported. MBBSEmu performs relocation patching at startup, while all supported variables hosted within MajorBBS and Worldgroup are patched and given valid addresses in the emulated memory space, unsupported variables are given a default Segment of 0xFFFF which isn't a valid memory Segment. Thus this error lets us know at runtime about an unsupported variable.

Exception: The given key 'sttrou'/'stsrou' was not present in the dictionary

This exception usually means that the given module didn't execute it's REGISTER_MODULE routine, where input and status routines get registered. While it's highly unusual for a module to successfully run its _INIT_ without calling REGISTER_MODULE, it's not impossible and has happened once or twice. This is usually an error in the logic within MBBSEmu where the emulator is causing a data condition that the module wasn't expecting.

Exception: Unsupported OpCode

This exception means that the module makes use of an x86 Opcode that is not currently supported by the x86-16 CPU Emulator within MBBSEmu.

Exception: Unknown Op

This exception means the Operation being executed in the x86 Emulator is not supported. Currently supported operations are Register, Immediate8, Immediate16, and Memory.