Claim Free Space and Repoint Data in Temporal Flux

This tutorial needs Temporal Flux, a hex editor of your choice, and Geiger's Offsets. Written by Mauron

1) Determine the size of free space you need. For compressed data, Use the menu under File -> Compression... to compress it first, then reload the ROM. It doesn't matter where you stick it temporarily, we just need the size.

Compression message.png

2) Check Geiger's Offsets to find free space. JUNK and --- should be available to claim.

0CFC4F	0CFFFF	---	N	UNUSED SPACE (945 bytes)	2008.07.14

This address has 945 bytes we can work with. If you've expanded the ROM through the File -> Patches -> Expand ROM menu option, most space from 400000-5FFFFF will be available.

3) Go to Window > Custom Data, and click New to create a new Custom Data entry.

Custom data.png

For our purposes, we only need to concern ourselves with the Name, Start Offset, End Offset, and Override Free Space options. Name is just for you, so you can remember what this is later.

Start Offset should be the first byte you need, and End Offset will be the Start Offset plus the size, in Hexadecimal. Override Free Space should be true.

If the start and end offsets turn blue, as shown in the screenshot above, that space is already in use. Look for a different option from step 2. If not, you're good, and can insert the data from the compression menu for real this time. Save your ROM.

4) Now we need to repoint the existing packet. Hopefully the tutorial that led you here went over the specifics for the data you're working with. From here on out I'll be referencing Overworld Tiles.

06FE20	06FE9F	PTR	N	Pointers to Overworld tiles (first at 040000)	2004.06.21

If the parenthetical remark says local, you'll need more steps that are not covered in this tutorial. Take the packet index of whatever you were working, multiply it by 3, and add the first offset in the pointer set.

For example: For overworld tiles 1A, 1A * 3 + 06FE20 = 06FE6E.

5) Navigate to this address in a hex editor, and look at the next three bytes.

Hex pointer.png

The current packet is listed as C9 3C C5. First, we need to adjust our address if it's not using expanded ROM space. If the address you have is between 0 and 3FFFFF, add 0xC00000, so your new address is between C00000 and FFFFFF.

You'll need to reverse the byte order. Using the example of 0CFC4F from before:

0CFC4F becomes CCFC4F. CCFC4F becomes CC FC 4F. CC FC 4F beomces 4F FC CC.

Write that value to the area you located in the hex editor, then save your ROM. When you next open it in Temporal Flux, you should see your changes.