github tomvita/Breeze-Beta beta116.00
New code cave allocation scheme. New Game Maker cheat making tool.

pre-release5 hours ago

Overhauled Assemble All ASM

This release changes how this button works. If you make ASM cheats, this may be a very useful button that changes the way you work.

  • The foundation: establishing virgin code-cave space. Breeze now measures where each executable segment's free space actually starts—once per build, on an untouched game—and stores it in cave_floor.txt, keyed by module name and segment size so it survives ASLR. It refuses to measure while any cheat is applied, because a cheat's writes could be recorded as game code and poison every placement based on that measurement. Let it measure on a clean game first; everything else in this overhaul depends on it. This is triggered when you open the Code Cave Map from the Game Info menu or use Assemble All ASM for the first time. To redo the measurement, delete cave_floor.txt.

  • Enrollment: which cheats get reassembled. Assemble All ASM now rebuilds every enrolled cheat in one pass and packs their caves together as a set. A cheat becomes enrolled when it gains a script—either by saving it in ASM Composer or by assembling it with Add ASM from its own .txt file. Enrollment is recorded in <build id>.ini.

  • Alert: unenrolled cheats become rocks. A cave-bearing cheat with no enrollment entry is left completely alone. Its cave space stays reserved, it shows as NO SOURCE, cannot be moved on the Code Cave Map, and everything else packs around it. It is never removed, but it can never be repositioned. If you want a cheat to remain movable, enroll it.

  • This is generic, not just for GameMaker. The new GM tool below is what prompted this change, but enrollment and cave packing benefit every cheat that shares a code cave.

  • Caves are allocated, not guessed. Placement now reads what cheats claim instead of scanning game memory. Two cheats created back-to-back can no longer be assigned the same address and silently overwrite each other.

  • See it all. The Code Cave Map screen, available from the Game Info menu next to Segment Map, shows free space per segment, the recorded floor, where the next cave would go, which cheats have claimed what, and branch reachability. Write map to file dumps the information to cave_map.txt.

  • Add ASM is unchanged. It still works as before, but now warns you which cheat its cave collides with instead of refusing.

New: GameMaker Tool

  • Make GM Cheat (Gen2 More menu) builds a cheat for a specific GameMaker variable directly from a capture row, named after the variable. It can distinguish the same field on different objects, such as hero HP and boss HP.

  • Variable cheats can be renamed freely in the editor and disabled individually by putting // in front of their section= line. The cheat is kept rather than lost.

Heads Up

  • A cave_start pinned in a script is ignored by Assemble All—cave packing is now a whole-set decision.

  • A cheat hooked into another cheat's cave must stay behind its owner in the cheat list. The Assemble All summary tells you how many cheats had to be moved.

Don't miss a new Breeze-Beta release

NewReleases is sending notifications on new releases.