Finding & defining tables
A ROM with no definition is just bytes. These tools help you find the tables in it and write them down as a definition.
1. Start from what you have
- The ROM Database on this site has reverse-engineered definition and dump files for Unisia Jecs, Hitachi and Denso ECUs. Look for your ROM first: ROM Database. The same page has a way to request definition work.
- A similar ROM with a definition: another version of the same calibration. Use Compare ROMs › Port the definition to carry its definition over.
2. Find the tables
Open the ROM, go to the Hex editor and press Find tables. It looks for the shape of a table (axes followed by smooth cells) and lists hits by score. Also useful:
- Structure shows which parts of the ROM look like code and which like calibration data, so you know where to look.
- Show strings lists the text in the ROM: IDs, part numbers and copyright lines.
- Find looks for hex bytes or text. Go to jumps to an address.
3. Name the table
Select the bytes and press Add to definition…. Give it a value type and byte order, its shape, a category and a scaling. For a ROM with no definition at all it first asks for the ROM id header and makes a new definition in your Custom definitions folder. The new table appears in the sidebar and as an outline in the dump.
4. Check your work
- Open the table on the Calibration page. A real table looks smooth and the numbers make sense for what it should be (timing in degrees, fuel in air/fuel ratio and so on).
- On the Definitions page, Check the definition against this ROM lists tables that run past the end of the ROM, sit over erased flash or have axes that turn round.
- Use Bumps on a table to see cells that do not fit their neighbours.
5. Find out what the code does with it
To learn what a table is for, or to confirm a guess, use the Disassembler or ask the AI assistant to find the code that reads the table.