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
132 stars 14 forks source link

[ELWHORO] Horoscope - Module Crashes on Initialization #223

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. Load Module
  2. See error

Expected behavior Module Loads

Screenshots

AUDIT SUMMARY: ELW Horoscope v1.00 Demo
AUDIT DETAIL: (C) Copyright 2004 Elwynor Technologies - www.elwynor.com/elwynor
AUDIT SUMMARY: ELW Horoscope 14 Demo Days Left
AUDIT DETAIL: Contact www.elwynor.com/elwynor for a code!
2020-10-27 22:33:41.0242 Warn MBBSEmu.Btrieve.BtrieveFile.LoadBtrieveKeyDefinitions Btrieve Log Key Present in D:\MbbsX64\modules\elwhorod\ELWHORO.DAT
2020-10-27 22:33:41.0242 Warn MBBSEmu.Btrieve.BtrieveFileProcessor.CreateSqliteDB Creating sqlite db D:\MbbsX64\modules\elwhorod\ELWHORO.DB
Critical Exception has occurred:
System.SystemException: Unable to update btrieve record
   at MBBSEmu.HostProcess.ExportedModules.Majorbbs.updbtv()
   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