RomRaider Logo

RomRaider

Open Source ECU Tools
 FAQ •  Register •  Login 

RomRaider

Documentation

Community

Developers

It is currently Tue Dec 23, 2025 9:01 am

All times are UTC - 5 hours [ DST ]





Post new topic This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 
Author Message
 Post subject: Creating ECU Definitions
PostPosted: Sun Apr 02, 2006 8:24 pm 
Offline
Administrator
User avatar

Joined: Fri Jan 13, 2006 12:33 pm
Posts: 2079
Location: Palo, IA
Currently, creating ECU definitions is a bit intimidating and cumbersome, and most of the people doing it seem to be having trouble while most tend to just stay away to begin with. Creating an ECU definition editor for RomRaider that will allow users to create ROM and table definitions easily is planned, but it will be some time before it is finished. To make the ECU definition format a little less cryptic, I'm creating this guide to help describe the process, what you need to do, and what you don't.

While supporting as many ECU definitions as possible is important, at the same time, it's not absolutely necessary. More often than not, I think it would be best concentrate more on the latest revision (or CalID) for each ECU version. A wiki describing this better and with actual lists of ECU versions and revisions will be available in the next couple weeks.

ECU definitions are created in XML, in the ecu_defs.xml file (note: future versions of RomRaider will allow multiple definition files). If you don't know XML, a quick look at the definition file will make it pretty self explanatory. If not, search google -- there are a good number of XML primers out there. Assuming you understand XML well enough, let's continue.

A simple diagram
Code:
<roms>
   <rom>
      <romid>
         <...[i]other nodes[/i] />
      </romid>
      <table type="3D">
         <scaling units="PSI" />
         <table type="X Axis" />
         <table type="Y Axis" />
      </table>
   </rom>
</roms>

This diagram shows the basic nodes of the XML file with some dummy attributes. The list of nodes and attributes below states whether each field is mandatory or optional. If a node or attribute is mandatory in all instances, it must be present in every node of its' parent's type. ie, every <romid> must have a child [xmlid]. If the node or attribute is only mandatory once, it need only be present in a ancestor or child rom.

For example, if you have one rom with the xmlid WRXBASE and filesize of 192kb, a rom inheriting WRXBASE must have it's own unique xmlid, but may inherit WRXBASE's filesize. If the inheriting rom has a different filesize, the base rom's filesize can be overridden.

I'll start by talking about the <rom> tag.

<rom> -- Each ECU revision will reside within a <rom> tag, which is the highest level node you will be modifying. A rom can inherit all data from another rom with the base tag. ie <rom base="WRXBASE"> When inheriting, all child nodes (tables, romid) can be extended (by adding attribute not present in the original) or overridded, by giving the same attribute a different value.

rom attributes:
base -- optional; rom to inherit and extend
rom child nodes
:
romid -- mandatory in all instances; information about rom

<romid> -- This mandatory child node of rom stores all of it's data, used for opening an image, and viewable in the Rom Properties screen in RomRaider.

romid attributes:
none
romid child nodes:
<xmlid> -- mandatory in all instances; this field is used as the display name for the rom, and the name used in the base attribute of a rom.
<internalidstring> -- mandatory; the unique name identifier found within the ROM. On Subaru ECUs, the revision number is found at 0x200, an 8 letter CalID, ie A4TC300L. Other ECUs, such as Hondas, don't have a common or reliable method for storing this ID, so a unique string if bytes will need to be used. This string is used searched for upon opening an image.
<internalidaddress> -- mandatory; the memory location at which the internal id string is found. ie, 0x200
<caseid> -- optional; the ECU version this revision is from.
<make> -- optional; the car manufacturer. ie, Subaru
<market> -- optional; market car is sold in. ie, USDM, JDM
<year> -- optional; year of car
<model> -- optional; model of car. ie, Impreza
<submodel> -- optional; trim of car. ie, WRX, STi
<transmission> -- optional; transmission of car. ie, AT, MT
<flashmethod> -- optional; flash method used by ECUFlash. ie, wrx04. This will be used in RomRaider 1.5.0 when flashing an image to an ECU.
<memmodel> -- optional; memory model of image. Used when flashing and opening an image in future versions of RomRaider. ie, AH792.
<filesize> -- mandatory; size of file map is based on. ie, 192kb. This is used for determining whether the RAM portion of memory has been included in the image.

Table definition will be discussed after RomRaider 0.2.6b is released later this week.

_________________
- Jared


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 

All times are UTC - 5 hours [ DST ]


Who is online

Users browsing this forum: Carlosrsj23 and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Style based on FI Subsilver by phpBBservice.nl