User Tools

Site Tools


mbbsemu:configuration:softpatch

MBBSEmu SoftPatch

MBBSEmu presents an advanced technique, known as SoftPatch, which revolutionizes the process of modifying Major BBS/Worldgroup Modules. This method stands out as it allows users to implement byte-level adjustments to their preferred games without the traditional, more complex approach of directly altering the underlying Dynamic Link Library (DLL) files using hex editors or disassemblers.

SoftPatch operates through a streamlined process, utilizing the modules.json file. This file is the cornerstone of SoftPatch application, where users can input specific SoftPatch details within the Module record, specifically under the Patches array. This method ensures a user-friendly, efficient, and less error-prone process compared to conventional editing techniques.

Detailed Properties of SoftPatch Configuration

Name: This parameter represents the unique identifier of the Patch, facilitating easy recognition and management.

Description: Provides a concise yet comprehensive explanation of the Patch's functionality and its impact on the game or module.

Address: This field specifies the SEGMENT:OFFSET address, denoting the exact location within the module where the patch will be applied.

AbsoluteOffset: Represents the precise offset within the DLL, pinpointing where to apply the patch, thereby ensuring accuracy in modifications.

PatchType: This property delineates the nature of the patch, offering two options: Text for inserting ASCII characters at the designated location, or Hex for applying hexadecimal values.

CRC32: This checksum value of the DLL intended for patching serves as a verification tool. It ensures that the patch is applied exclusively to the correct version of the DLL, thus maintaining integrity and compatibility.

Patch: Dependent on the PatchType specified, this value is the actual content of the patch, either in ASCII Text or Hex format, to be implemented at the designated location.

Example

{
  "Modules": [
    {
      "Identifier": "EXAMPLE1",
      "Path": "c:\\bbsv6\\",
      "Patches": [
        {
          "Name": "Name To Caps",
          "Description": "Changes Displayed name of Module to all caps",
          "AbsoluteOffset": 12910,
          "PatchType": "Text",
          "Patch": "PATCHED"
        }
      ]
    }
  ]
}

In this illustrative example, the JSON structure distinctly outlines the application of a SoftPatch. It demonstrates how a module, identified as “EXAMPLE1”, located at a specified path, is being modified. The patch, named “Name To Caps”, aims to alter the displayed name of the module to all uppercase letters. The precise location for the patch is defined by the “AbsoluteOffset”, and the patch type is set as “Text” with the value “PATCHED” being applied. This example serves as a practical guide for users to understand and apply SoftPatch in their own contexts.

mbbsemu/configuration/softpatch.txt · Last modified: 2023/12/09 21:55 by enusbaum