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

[WCCMMUD] Majormud - Megamud won't start scripting #499

Closed fletcherm closed 2 years ago

fletcherm commented 3 years ago

Module Information

Describe the bug

For some reason, when you tell Megamud to go into automatic mode (for scripting through an area, running somewhere, etc) it won't do anything.

Additionally, when Megamud is in automatic mode, it should be occasionally doing things like checking your character stat page, health, etc.

Instead, it just sits there like a lump, like it is waiting on something.

From recent Discord chatter, we think it has something to do with Telnet IAC negotiations. We're not certain of this, but it's a place to start looking.

To Reproduce

Enter Majormud using Megamud as your client.

Upon entry, Megamud should immediately look at your character stat sheet (st command, the list of players online (who command). But it's not doing either of those things.

Then, when starting a scripting loop, instead of moving and fighting, Megamud just sits there. Again, as if it is waiting on something.

Expected behavior

Megamud should be taking some actions on its own, but is just sitting there.

Wireshark captures

Reference capture

Attached is a Wireshark capture (megamud-mbbs4ever.pcapng.pcapng.gz) of Megamud connecting to a reference system - the mbbs4ever virtual machine.

The bbs is running on 192.168.1.221. The other IP, 192.168.51.131 is my Windows virtual machine running Megamud.

See entry 2 in the Wireshark log -- that's the BBS sending a bunch of IAC commands to Megamud. Megamud responds on entries 3-6.

I'm not seeing any particularly interesting chatter after that -- just ascii text going back and forth.

megamud-mbbs4ever.pcapng.pcapng.gz

MBBSEmu capture

Also attached is a Wireshark capture (megamud-mbbsemu.pcapng.gz) of Megamud connecting to MBBSEmu.

The bbs is running on 207.246.120.107. The other IP, 192.168.51.131 is my Windows virtual machine running Megamud.

megamud-mbbsemu.pcapng.gz

Software Information:

synacktic commented 2 years ago

@fletcherm could you do a test for me? assuming yes...

  1. Spin up your MBBSEmu and the MBBS4Ever systems
  2. Create an rlogin menu item from MBBS4Ever to MBBSEmu.
  3. Connect with Megamud to MBBS4Ever
  4. Enter MBBSEmu via the rlogin menu item you made
  5. See if scripting works

If if so, then it almost has to be that negotiation at the start...

Also, are you running 1.11p on the MBBS4Ever system?

If this is a major (hah) pain, then I'll try it at some point when I have time.

fletcherm commented 2 years ago

@synacktic Whoops, just noticed that I responded to you in discord but not here.

  1. I could try the rlogin approach, but will admit I'm clueless about 1) how that works and 2) how to set it up :). Never personally done rlogin.
  2. I am not running 1.11p on mbbs4ever. I'm using whatever it comes with - 1.1r or some such?
fletcherm commented 2 years ago

Here is some more discord chatter that may or may not be helpful:

The only thing jumping out to me, at the moment, is that mbbs4ever is leading off with Suppress Go Ahead and Don't Echo commands before Do Binary Tramission

MBBSEmu jumps straight to Do Binary Transmission

jnfisher commented 2 years ago

At the end of the Majormud in-game prompt (containing the characters stat line / hit points):

MBBSEmu: \033[79D\033[K\033[0;37m[HP=40\033[0;37m]:\001

MBBS4Ever: \033[79D\033[K\033[0;37m[HP=30\033[0;37m]:\033[0;37;40m

@paladine suggests we should remove the 0x01 that is being injected into the prompt at the end. If that's the issue, it might cause Megamud to never match the status line / prompt (and thus never take any action).

@enusbaum any idea where the 0x01 is coming from?

fletcherm commented 2 years ago

phdpepper in Discord posted the following.

unknown

This might be totally unrelated, but I noticed, while sitting in the door rooms in the pyramid, there are these 0's. Wondering if it could be similar to the 0x01 character, maybe megamud is stripping it? This is also on greatermud, which is a totally different engine. Just caught my eye. Those rooms give megamud a hard time.

As he notes, this is most likely a coincidence, but I think it's interesting enough to log here.

fletcherm commented 2 years ago

This item has been addressed in Discord chat over the last week.

@jnfisher was correct and indeed the extra 0x01 was tripping up Megamud. @paladine introduced some changes to get rid of it. Mud has another problem now that I will create a new item for.

Nice work everyone.