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

[ELWBAK] Pro Backgammon - Crashes on selection from menu #179

Closed tuday2 closed 3 years ago

tuday2 commented 3 years ago

Module Information

Describe the bug Crashes on selection from menu

To Reproduce Steps to reproduce the behavior:

  1. Add Pro Backgammon module to config
  2. Start MBBSemu
  3. Select menu item for Pro Backgammon

Expected behavior Module runs without crashing

Screenshots

Warning when loading:

AUDIT SUMMARY: ELW Pro Backgammon v3.06 Demo
AUDIT DETAIL: Copyright (C) 2008 Elwynor - www.elwynor.com
AUDIT SUMMARY: ELW Pro Backgammon 10 Demo Days Left
AUDIT DETAIL: Copyright (C) 2008 Elwynor - www.elwynor.com
2020-10-09 19:34:03.5590 Warn MBBSEmu.Btrieve.BtrieveFileProcessor.LoadBtrieveKeyDefinitions Btireve Log Key Present in ELWBKHI2.DAT
2020-10-09 19:34:03.5839 Warn MBBSEmu.Btrieve.BtrieveFileProcessor.GetByKeyFirstNumeric Unable to locate First record by key ELWBKGM2.DAT:2:2
2020-10-09 19:34:03.5839 Info MBBSEmu.HostProcess.MbbsHost.AddModule Module ELWBAK added!

Crash Error:

Unhandled exception. System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. (Parameter 'Unable to locate FFFF:047A')
   at MBBSEmu.Memory.MemoryCore.GetWord(UInt16 segment, UInt16 offset)
   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.WorkerThread()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

Software Information:

enusbaum commented 3 years ago

This is a missing ordinal for NAMTMP

It looks like it's taking a value from this struct and constructing a command string of sorts. We need to noodle out what this string is and if it's even needed (if it's a system value that's used only by the host software, MBBSEmu might not need it).

Screen Shot 2020-10-23 at 3 31 32 PM
tuday2 commented 3 years ago

v6 btrieve game, not designed for dos mbbs