Closed tuday2 closed 3 years ago
We define the max volatile data size as 16K
It looks like War of Worlds! is trying to allocate more than that. We can up this number to 32k, 64k, etc. One thing to keep in mind is that one area of volatile data is declared per channel, so on 256+ line mbbsemu setups, this could consume a bunch of memory if we over allocate.
This module is not the VDA pig I thought it was 🐷
Based on this, it takes the output buffer size (OUTBSZ
) which is 8k by default on WG2, then adds 0xFE80
, overflowing to 7809 bytes, then adds 294 which gives us a total of 8469 bytes... on a default set.
The issue with MBBEmu? We declare ushort.MaxValue
as our OUTBSZ
. If we modify that to be the same as WG2 (and also modify GSBL.BTUOBA
in kind), we should be good to go on this one.
This was fixed in #147
To get War Of Worlds starting, you'll need to manually create the Btrieve Files for the different games. If you're only running one game, you'll need to rename the .VIR
files to 0.DAT
, with 0
being the Btrieve file for Game 1.
Once doing this, you'll get an error trying to get a record from a Btrieve file where the record doesn't exist. MBBSEmu will throw an exception. We'll log this as another defect as it's unrelated to this one and it's Btrieve specific.
Module Information
Describe the bug Module crashes on initialization
To Reproduce Steps to reproduce the behavior:
Expected behavior Module loads
Screenshots
Software Information: