I can only add to the vending machines patches that support relocation. This essentially rules out all third-party patches.This might be changed
if I had source code to said patches.
The insertor operates on two kinds of blobs (sequences of bytes that must be written in the ROM):
— Blobs that must be placed at some particular fixed address
— Blobs that must be placed anywhere within some particular set of banks.
These blobs may have any number of labels (publics) in them, pointing to particular offsets inside those blobs, and references
(externs) to other blobs, which are usually either 16-bit, bank-number, or both, but other options are supported too. Fixups are not currently supported, so if you need one, your blob must define both an extern and a public that resolve to the same blob.
There is also an option for placing a group of blobs in whatever bank as long as they are all placed in the same bank, but this option is not used in the Simon’s Quest project.
The usual manner is that you have a two-byte blob, holding a pointer; it contains just a two-byte reference, by name, to a secondary blob; and a secondary blob, which defines that name at offset 0, at it can be placed by the insertor in any address within some select banks. This allows the latter to be relocated, and the pointer in a fixed address to be automatically adjusted to point to the second blob. The insertor does all sorts of sanity checking to make sure that the same address is not written to twice, but it requires that all writes that must
target a particular address are declared in a particular way.
If the secondary blob is a rewrite of some existing function or data structure in the game, usually the original location of that data must be also marked as free space, so that the insertor can repurpose it.
August 14, 2020, 12:02:08 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
I'd also like to have the clue browser without the whip selection.
Added support for that. Effective all versions that support the clue browser.
EDIT: It looks like the insertor does not actually add the clue browser code unless the whips feature is enabled, so this combination is not supported.
EDIT 2: Addressed in release version 220.127.116.11.