Anyone want to create a schema for tracking tables in ROMs?
I'm very close to releasing a reflashing tool that will allow you to replace the code / data in WRX ecu's. The next big step after that will be to start creating tools to edit the various tables / data in ROM. One of the difficulties with this is that each version of the ECU code potentially stores this data in different places. We need to create some kind of definition file / database schema to populate over time which holds information about what all of the data is, and where it is for each ROM version. Something open source that we can use across platforms. Maybe XML or SQL. e.g.
...you get the idea. In some ways a relational DB could be better than this XML, particularly when a table is essentially the same in many ROMs except for the address it is located at. We could do this in XML too - we just need to use the table info by reference. Once we have something like this, we can start making table editors and the like relatively easily. Is anyone up for tackling this side of the project? It would be nice to use a data storage format and code to read/write it that are cross-platform compatible...
- Code: Select all
<rom>
<versionrom>A4SGD10C_US</versionrom>
<versioncase>AF423</versioncase>
<versioncar>WRX USDM 2002 MT</versioncar>
<romfilesize>163840</romfilesize>
<romarea name="FB1" start=0x00000 end=0x0FFFF></romarea>
<romarea name="FB2" start=0x10000 end=0x1FFFF></romarea>
<romarea name="FB3" start=0x28000 end=0x2FFFF></romarea>
<tables>
<table type="3D" name="Main Ignition Map" units="degrees" scalefactor=12.2 offset=0 storagetype="unsigned byte" storageaddress=0x283BA>
<axis type="X" name="Engine Load in Air per Cylinder Charge" units="grams" scalefactor=1.1 offset=0 storagetype="unsigned byte" storageaddress=0x283A0 length=16></axis>
<axis type="Y" name="Engine RPM" units="RPM" scalefactor=100 offset=0 storagetype="unsigned byte" storageaddress=0x283B0 length=16></axis>
<description>"This is a map of base ignition values"</description>
</table>
<table>
.
.
</table>
</tables>
</rom>
...you get the idea. In some ways a relational DB could be better than this XML, particularly when a table is essentially the same in many ROMs except for the address it is located at. We could do this in XML too - we just need to use the table info by reference. Once we have something like this, we can start making table editors and the like relatively easily. Is anyone up for tackling this side of the project? It would be nice to use a data storage format and code to read/write it that are cross-platform compatible...