User Tools

Site Tools


mbbsemu:configuration:softpatch

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
mbbsemu:configuration:softpatch [2023/12/09 21:08] enusbaummbbsemu:configuration:softpatch [2023/12/09 21:55] (current) enusbaum
Line 1: Line 1:
-====== SoftPatch ====== +====== MBBSEmu SoftPatch ======
-MBBSEmu suppports a method of modifying the original Major BBS/Worldgroup Modules through a process called SoftPatch, which allows users to apply byte level patches to their favorite games without having to modify the underlying DLL file with hex editors or disassemblers.+
  
-SoftPatch is enabled and used through the modules.json file, where you specify the SoftPatch information within the Module record. +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 [[mbbsemu:configuration:modules.json|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 ===== 
 + 
 +<markdown> 
 +```json 
 +
 +  "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" 
 +        } 
 +      ] 
 +    } 
 +  ] 
 +
 +``` 
 +</markdown> 
 +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.1702156138.txt · Last modified: 2023/12/09 21:08 by enusbaum