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

[EWEPNT] Phantasia - Crashes entering world after character creation #295

Closed tuday2 closed 3 years ago

tuday2 commented 3 years ago

Module Information

Describe the bug Crashes entering world after character creation

To Reproduce Steps to reproduce the behavior:

  1. Load Module
  2. Enter Module
  3. Create Character
  4. See error

Expected behavior Ability to create character and enter world

Screenshots

2020-11-15 17:24:53.7480 Warn MBBSEmu.HostProcess.ExportedModules.Majorbbs.prfmsg prfmsg() unable to locate message number 1973 in current MCV file EWEPNT.MCV
Unhandled exception. System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. (Parameter 'Unsupported OpCode: Fchs')
   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.ThreadHelper.ThreadStart()

Software Information:

bsimser commented 3 years ago

Wanted to let you know I'm the original author of Phantasia back in the MBBS days. Not sure I still have the source code anymore (and not sure it would even help). The error message looks like the MSG isn't in the MCV file. This might be a bug that the MSG is missing the message or the MCV is out of sync with the MSG.

enusbaum commented 3 years ago

Hey Bil! Welcome to the fun! 😄

The warning of the missing message above is a bit of a red herring, the line after it is the exception being thrown that the x86 core is missing the opcode implementation for FCHS.

We'll need to get FCHS added, which changes the sign value in ST(0) (negative->positive, positive->negative) in the x87 FPU Stack

tuday2 commented 3 years ago

I found a new version 0.3Beta ... it throws this OPCode -- guessing it will need both though

2020-11-17 06:45:36.9601 Error MBBSEmu.HostProcess.ExportedModules.ExportedModuleBase.FormatPrintf Invalid Pointer: 2061:6E61
Unhandled exception. System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. (Parameter 'Unsupported OpCode: Fsubp')
   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.ThreadHelper.ThreadStart()
enusbaum commented 3 years ago

I'm working on a new branch right now with new opcodes for Crossroads of the Elements, I'll get these two added to that as well! 👍

enusbaum commented 3 years ago

@bsimser Hey Bil -- If you're able to locate the source code (for this or other modules) let me know! It would be a huge help to getting it emulated properly 😄

You can reach me directly at eric@nusbaum.me