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

[ELWWL2] WilderLands II - Crashes on Initialization #102

Closed tuday2 closed 3 years ago

tuday2 commented 3 years ago

Module Information

Describe the bug Crashes on Initialization

To Reproduce Steps to reproduce the behavior:

  1. Add WilderLandsII module to config

Expected behavior Module runs without crashing

Screenshots

Critical Exception has occurred:
System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. (Parameter 'Unknown Exported Function Ordinal in MAJORBBS: 998')
   at MBBSEmu.HostProcess.ExportedModules.Majorbbs.Invoke(UInt16 ordinal, Boolean offsetsOnly)
   at MBBSEmu.HostProcess.ExecutionUnits.ExecutionUnit.ExternalFunctionDelegate(UInt16 ordinal, UInt16 functionOrdinal)
   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.Program.Run(String[] args)

Software Information:

API REPORT {"UniqueIdentifier":"ELWWL2","File":"ELWWL2.DLL","Imports":{"DOSCALLS":[89],"PHAPI":[16],"MAJORBBS":[1217,628,534,543,516,158,413,559,650,574,566,441,389,492,589,331,68,437,455,550,601,357,757,997,520,456,624,411,463,476,335,629,622,996,403,474,77,401,578,350,511,467,205,210,225,571,560,459,241,641,238,260,878,117,119,659,486,561,162,573,654,522,340,603,625,713,113,435,505,582,430,439,270,440,132,895,288,637,212,584,572,617,1191,122,87,191,226,998,196,701,11,604,420,402,366,553,377,137,249,263,234,640,261],"GALGSBL":[72]}}

enusbaum commented 3 years ago

Ordinal MAJORBBS.998 is ANPBTVLK which based on its usage looks like an acquire operation that steps based on the option passed in. Additionally there seems to be a case sensitive check on the key. Will need to research further how this operation is handled within a module.

tuday2 commented 3 years ago

@paladine adding some info for you :) The #1 Btrieve coder in America

ANPBTVLK Ordinal: 998

Signature: int anpbtvlk (void *recptr, int chkcas, int anpopt, int loktyp);