Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RTSLORD / CXO-LORD] T-LORD with Distant Places - Can't access IGM from within T-LORD, other weird stuff #491

Open
ryanfantus opened this issue Jun 1, 2021 · 1 comment
Labels
bug Something isn't working module Defect/Issue related to a specific Module

Comments

@ryanfantus
Copy link

Module Information

  • RTSLORD / CXO-LORD
  • T-LORD with Distant Places IGM
  • T-LORD 1.26, Distant Places 1.2d(?)

Describe the bug
There are a couple issues here, hopefully I can get away without having to file independent issues :) First off, installing via the included executable doesn't work (link to original archive: http://www.prowler-pro.com/majorbbs/cwdli12d.zip ). I tried MBBSEmu -exe and pointed at the executable and received the following error:

./MBBSEmu-stable -exe ./games/zip/distant/INSTALL.EXE
Critical Exception has occurred:
System.Collections.Generic.KeyNotFoundException: The given key '17' was not present in the dictionary.
   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   at MBBSEmu.CPU.CpuCore.Op_Int()
   at MBBSEmu.CPU.CpuCore.Tick()
   at MBBSEmu.DOS.ExeRuntime.Run()
   at MBBSEmu.Program.Run(String[] args)

I manually installed the module by unzipping it and reading INSTALL.CFG - all one needs to do to install it as an IGM into T-LORD is captured in there, however I'll paste the contents of interest directly here to speed things up (do this from T-LORD directory):

cd /path/to/t-lord
wget http://www.prowler-pro.com/majorbbs/cwdli12d.zip
unzip cwdli12d.zip
mv CXO-LORD.DOC CWD-LORD.DOC
mv CXO-LORD.NEW CWD-LORD.NEW
mv CXOLIGMS.CNF CWDLIGMS.CNF
mv CXOLIGMS.DAT CWDLIGMS.DAT
mv CXOLIGMS.SV1 CWDLIGMS.SV1
mv CXOLIGMS.SV2 CWDLIGMS.SV2
mv CXOLIGMS.SV3 CWDLIGMS.SV3
mv CXOLIGMS.TXT CWDLIGMS.TXT
mkdir CXOLIGMS
mv KNIGHTS.LOR CXOLIGMS
mv KNIGHTS1.IGM CXOLIGMS
mv KNIGHTS2.IGM CXOLIGMS
mv KNIGHTS3.IGM CXOLIGMS

Now, I'd expect to see the IGM listed as available when launching MBBSEmu and then launching T-LORD (as Sysop, from Sysop menu -> IGM) but it doesn't appear:

image

However, if I add CXO-LORD directly to my manifest json (identifier CXO-LORD) and relaunch MBBSEmu, I can see it - thing is, I can see it directly from inside MBBSEmu which feels incorrect as well as from within the T-LORD IGM setup thing.

image

image

Now, when launching T-LORD, the IGM is available in the (O)ther places menu. However when trying to launch it, it doesn't load the CXO-LORD dll, it actually relaunches T-LORD. Very strange.

I notice when it does this, it creates a TEMP0.TMP file - this actually is required for launching Distant Places. If you try to launch Distant Places from directly within MBBSEmu it won't work because that file is missing. If you manually create it or if you try to launch from within T-LORD, fail, then manually launch from MBBSEmu, it'll actually work. However, it has even more problems ... the math and values for things it awards you seems way off. It also doesn't seem to save anything to my character. So...yeah, pretty strange.

Thanks for reading.

@enusbaum enusbaum added bug Something isn't working module Defect/Issue related to a specific Module labels Jun 3, 2021
@enusbaum
Copy link
Member

enusbaum commented Jun 3, 2021

Couple interesting things happening here.

Installer EXE Support

EXE support is still in its early stages -- the error in this case is that INT 11h isn't supported. Depending on the build you're running this DOS Interrupt might be supported, but to date our only target for EXE support has been the MajorMUD Offline Utility. Other EXE scenarios (such as the installers) might require additional DOS support.

.IGM File Support

This one might be an issue with Tournament LORD finding the IGM's based on finding a file by a file pattern. This could be a defect with any number of methods which provide file search functionality. We need to take a look at this scenario to see what's happening.

DLL IGM Support

Honestly I'm curious how Tournament LORD does the inspection of other module DLL's loaded into the system and invokes them dynamically. One thing you do bring up here is that there are modules we might not want to display in the main menu, but still have loaded into the system.

For this item I feel like there are two take-aways from this defect report:

  1. We should add a new option to modules.json where people are able to specify if a module should be displayed as an option or not (perhaps DoNotDisplay to completely remove it from the menu or SysopOnly to only show people with the sysop key the menu option). In this case, I'm guessing Distant Places needs to be loaded as a module on the system for Tournament LORD to enumerate it, but not be a selectable menu item from the main menu.
  2. I need to look into Tournament LORD and how it's enumerating the module loaded on the system and how it is able to identify if a module is an IGM vs. any other type of module loaded. I'm sure there's some programming trickery happening here -- super curious how they're doing it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working module Defect/Issue related to a specific Module
Projects
None yet
Development

No branches or pull requests

2 participants