mbbsemu / MBBSEmu

The MajorBBS Emulation Project is an Open Source, Cross-Platform emulator for easily running The MajorBBS & Worldgroup Modules
https://www.mbbsemu.com
MIT License
128 stars 14 forks source link

[ELWNS] Number Shuffle - Module Crashes on Initialization #224

Closed tuday2 closed 3 years ago

tuday2 commented 3 years ago

Module Information

Describe the bug Module crashes on initialization

To Reproduce Steps to reproduce the behavior:

  1. Add module to moduleConfig.json
  2. Start MBBSEmu
  3. See error

Expected behavior Module loads

Screenshots

AUDIT SUMMARY: ELW Number Shuffle v1.00 Demo
AUDIT DETAIL: Copyright 2020 Elwynor Technologies - www.elwynor.com
AUDIT SUMMARY: ELW Number Shuffle 14 Demo Days Left
AUDIT DETAIL: Visit www.elwynor.com for a code!
2020-10-27 22:45:18.1649 Warn MBBSEmu.Btrieve.BtrieveFileProcessor.CreateSqliteDB Creating sqlite db D:\MbbsX64\modules\elwnsd\ELWNS.DB
Critical Exception has occurred:
System.ArgumentException: No record found in getbtvl, bombing
   at MBBSEmu.HostProcess.ExportedModules.Majorbbs.getbtvl()
   at MBBSEmu.HostProcess.ExportedModules.Majorbbs.Invoke(UInt16 ordinal, Boolean offsetsOnly)
   at MBBSEmu.HostProcess.ExecutionUnits.ExecutionUnit.ExternalFunctionDelegate(UInt16 ordinal, UInt16 functionOrdinal)
   at MBBSEmu.CPU.CpuCore.Op_Call()
   at MBBSEmu.CPU.CpuCore.Tick()
   at MBBSEmu.HostProcess.ExecutionUnits.ExecutionUnit.Execute(IntPtr16 entryPoint, UInt16 channelNumber, Boolean simulateCallFar, Boolean bypassState, Queue`1 initialStackValues, UInt16 initialStackPointer)
   at MBBSEmu.Module.MbbsModule.Execute(IntPtr16 entryPoint, UInt16 channelNumber, Boolean simulateCallFar, Boolean bypassSetState, Queue`1 initialStackValues, UInt16 initialStackPointer)
   at MBBSEmu.HostProcess.MbbsHost.AddModule(MbbsModule module)
   at MBBSEmu.HostProcess.MbbsHost.Start(List`1 moduleConfigurations)
   at MBBSEmu.Program.Run(String[] args)

Software Information:

enusbaum commented 3 years ago

This issue is due to the DAT file being used is Btrieve v6+ format. MBBSEmu only Support Btrieve <= 5, aligning with Worldgroup 2.0 (which ships with 5.00c)

We confirmed this module will crash Worldgroup 2.0 on startup.

image