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

[SFAZRG] Zorgon - Module crashes when entering character name #113

Closed tuday2 closed 3 years ago

tuday2 commented 3 years ago

Module Information

Describe the bug Module crashes when entering character name

To Reproduce Steps to reproduce the behavior:

  1. Load Zorgon module
  2. Enter module from MBBSEmu menu
  3. Enter character name

Expected behavior Creates character and allows you to play game

Screenshots

Unhandled exception. System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. (Parameter 'Unable to locate FFFF:0039')
   at MBBSEmu.Memory.MemoryCore.GetWord(UInt16 segment, UInt16 offset)
   at MBBSEmu.CPU.CpuCore.GetOperandValueUInt16(OpKind opKind, EnumOperandType operandType)
   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.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 reference to MAJORBBS.55 which is ACCBB, which according to the documentation is a reference to the User Account Database. I BELIEVE this is BBSUSR.DAT for MajorBBS and Worldgroup <= 2.0

We'll need to create a new copy of this file using BUTIL and include it with the package same as GENBB. The only additional logic we'll need to also account for is when a new user signs up/is added to the system, we'll need to insert the record into this database as well.

enusbaum commented 3 years ago

When Registered, Mutants! for Major BBS/Worldgroup also requires ACCBB to lookup the MutantLink user.