> For the complete documentation index, see [llms.txt](https://knifour.gitbook.io/dosbox-x-game-cheater/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://knifour.gitbook.io/dosbox-x-game-cheater/preface.md).

# Preface

This project originated many years ago when I wrote a save file editor for DOS games. This editor could search for where character attributes were stored in the files and provided the functionality to modify save files. The program was quite simple, and I never published it—it was just for personal entertainment.

I've been consistently searching for game trainers that could work with DOSBox-X. Of course, I'm aware of tools like Game Buster and FPE, but on one hand, there were copyright concerns, and on the other hand, they needed to reside in the DOS environment, which often led to compatibility issues. Once, while entering the Debugger mode in DOSBox-X—which opens a separate window to monitor the currently running program—I discovered that it could dump a segment of memory content and save it as a file. By using my previous program to treat this memory dump as a game save file, I could identify the memory addresses where character attributes were stored. Combined with the memory modification commands in Debugger mode, I could then alter character attributes in the game.

Using this program has a bit of a learning curve. Users need some understanding of hexadecimal and how values are stored in memory. One wrong move could easily crash the system.

So I began studying the source code of the DOSBox-X Debugger and developed a Game Cheater that operates within the Debugger mode. The biggest advantage of this approach is that it solves the complex memory access patterns of the 80x86 CPU. For general users, if you struggle to understand the segment:offset address access method, using the linear memory mode for memory searches makes things much simpler. You also don’t need to worry about how to search memory in EMS, XMS, or even protected mode—linear memory mode resolves all these issues for you.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://knifour.gitbook.io/dosbox-x-game-cheater/preface.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
