|
RomRaider
Documentation
Community
Developers
|
| Author |
Message |
|
dschultz
|
Post subject: Re: How to create xml document for ms43 Posted: Thu Feb 25, 2016 10:57 am |
|
 |
| RomRaider Developer |
Joined: Wed May 20, 2009 9:49 pm Posts: 7314 Location: Canada eh!
|
jcsbanks wrote: I added the following to his ECU definition and now the knock learning view shows but the x and y axes are wrong. The data is correct as I wrote some values to the RAM knock table to be sure. The axes show correctly when browsing the ROM. I suspect the problem is here: Code: if (tableAddrBase > 0x10000) { tableAddrBase -= 0x4000; } else { tableAddrBase += 0x10000; }
this code tries to deal with ecu_defs for full and partial MS41 ROM files. This code reads the table axis def from the ecu_def and tries to interpret what addresses to query from the ECU. If you look in the rr_system.log does it show the addresses of the axis being requested? I suspect it's pulling from 0x70095 & 0x7000C.
|
|
| Top |
|
 |
|
dschultz
|
Post subject: Re: How to create xml document for ms43 Posted: Thu Feb 25, 2016 2:29 pm |
|
 |
| RomRaider Developer |
Joined: Wed May 20, 2009 9:49 pm Posts: 7314 Location: Canada eh!
|
hobbit382 wrote: I'm not sure if it's the xml editor I'm Using but it won't save it in capital, always reverts back to lower case.
Fixed the scaling and was also able to figure out a way to have only one switch for the maf threshold I did a little reading and with XML the default character set encoding is UTF-8 which can support nearly all characters & symbols without using Entity encoding. So it should be okay to leave the ° symbol in the def. But you may still need to use encoding in the scaling calculation if you need to use complex If/Then and > or < symbols.
|
|
| Top |
|
 |
|
hobbit382
|
Post subject: Re: How to create xml document for ms43 Posted: Thu Feb 25, 2016 6:13 pm |
|
 |
| Experienced |
Joined: Thu Dec 04, 2014 6:37 pm Posts: 139
|
|
I switched to notepad++ as you suggested and was able to fix the ° correctly.
While we are on this subject, currently all the work is being done on the full 512kb, how do we add in the partial 64kb version and have it work correctly?
|
|
| Top |
|
 |
|
jcsbanks
|
Post subject: Re: How to create xml document for ms43 Posted: Thu Feb 25, 2016 6:38 pm |
|
|
|
dschultz wrote: jcsbanks wrote: I added the following to his ECU definition and now the knock learning view shows but the x and y axes are wrong. The data is correct as I wrote some values to the RAM knock table to be sure. The axes show correctly when browsing the ROM. I suspect the problem is here: Code: if (tableAddrBase > 0x10000) { tableAddrBase -= 0x4000; } else { tableAddrBase += 0x10000; }
this code tries to deal with ecu_defs for full and partial MS41 ROM files. This code reads the table axis def from the ecu_def and tries to interpret what addresses to query from the ECU. If you look in the rr_system.log does it show the addresses of the axis being requested? I suspect it's pulling from 0x70095 & 0x7000C. Thanks. Yes that is it. I will fake it by giving addresses of 78095 and 7800C tomorrow.
|
|
| Top |
|
 |
|
dschultz
|
Post subject: Re: How to create xml document for ms43 Posted: Thu Feb 25, 2016 9:25 pm |
|
 |
| RomRaider Developer |
Joined: Wed May 20, 2009 9:49 pm Posts: 7314 Location: Canada eh!
|
hobbit382 wrote: I switched to notepad++ as you suggested and was able to fix the ° correctly.
While we are on this subject, currently all the work is being done on the full 512kb, how do we add in the partial 64kb version and have it work correctly? You need to duplicate the ROM specific section, but change the <internalidaddress>6ffba</internalidaddress> and <filesize>512kb</filesize> (and maybe the description to indicate partial) and then adjust all the storageaddress= values to point to the correct location in the smaller file.
|
|
| Top |
|
 |
|
jcsbanks
|
Post subject: Re: How to create xml document for ms43 Posted: Fri Feb 26, 2016 6:01 am |
|
|
|
jcsbanks wrote: dschultz wrote: jcsbanks wrote: I added the following to his ECU definition and now the knock learning view shows but the x and y axes are wrong. The data is correct as I wrote some values to the RAM knock table to be sure. The axes show correctly when browsing the ROM. I suspect the problem is here: Code: if (tableAddrBase > 0x10000) { tableAddrBase -= 0x4000; } else { tableAddrBase += 0x10000; }
this code tries to deal with ecu_defs for full and partial MS41 ROM files. This code reads the table axis def from the ecu_def and tries to interpret what addresses to query from the ECU. If you look in the rr_system.log does it show the addresses of the axis being requested? I suspect it's pulling from 0x70095 & 0x7000C. Thanks. Yes that is it. I will fake it by giving addresses of 78095 and 7800C tomorrow. Works on car too.
|
|
| Top |
|
 |
|
dschultz
|
Post subject: Re: How to create xml document for ms43 Posted: Fri Feb 26, 2016 10:15 am |
|
 |
| RomRaider Developer |
Joined: Wed May 20, 2009 9:49 pm Posts: 7314 Location: Canada eh!
|
|
Great, I'll have to revise the code and figure out a better way to calculate the actual address from the full and partial ROM defs and for the differences in size between MS41 and 43. What are the addresses in the 430056 partial ROM dump? Full is: "Knock Tables X Axis (Load)" address=0x74095 "Knock Tables Y Axis (Engine Speed)" address=0x7400C
|
|
| Top |
|
 |
|
hobbit382
|
Post subject: Re: How to create xml document for ms43 Posted: Fri Feb 26, 2016 10:50 am |
|
 |
| Experienced |
Joined: Thu Dec 04, 2014 6:37 pm Posts: 139
|
dschultz wrote: Great, I'll have to revise the code and figure out a better way to calculate the actual address from the full and partial ROM defs and for the differences in size between MS41 and 43. What are the addresses in the 430056 partial ROM dump? Full is: "Knock Tables X Axis (Load)" address=0x74095 "Knock Tables Y Axis (Engine Speed)" address=0x7400C Should be able to just remove the 7, so 0x4095 and 0x400C respectively
|
|
| Top |
|
 |
|
Cloudforce
|
Post subject: Re: How to create xml document for ms43 Posted: Fri Feb 26, 2016 12:09 pm |
|
 |
| Experienced |
Joined: Wed Aug 27, 2014 7:57 am Posts: 259
|
hobbit382 wrote: dschultz wrote: Great, I'll have to revise the code and figure out a better way to calculate the actual address from the full and partial ROM defs and for the differences in size between MS41 and 43. What are the addresses in the 430056 partial ROM dump? Full is: "Knock Tables X Axis (Load)" address=0x74095 "Knock Tables Y Axis (Engine Speed)" address=0x7400C Should be able to just remove the 7, so 0x4095 and 0x400C respectively Exactly Do we currently have the ability to log single bits? I´m stuck at the variable Launch Control and i´m not shure if i simply set the wrong boolean and it gets used even though i can´t find any reference in the disassembly... It would be word_FDEE.0
_________________ MS43 wiki
MS42 wiki
|
|
| Top |
|
 |
|
dschultz
|
Post subject: Re: How to create xml document for ms43 Posted: Sat Feb 27, 2016 4:57 pm |
|
 |
| RomRaider Developer |
Joined: Wed May 20, 2009 9:49 pm Posts: 7314 Location: Canada eh!
|
Yes you can. Create a logging parameter that reads the Byte data at your address. Then use a conversion entry with the Bitwise funciton such as this: Code: <ecuparam id="E2017" name="Launch Control" desc="E2017-Launch Control" group="0x06" subgroup="0x00" target="1"> <ecu id="7511570,7519308,7545150"> <address>0x00FDEE</address> </ecu> <conversions> <conversion units="On/Off" expr="BitWise(mask,x,operation)" format="0" gauge_min="0" gauge_max="1" gauge_step="1" /> </conversions> </ecuparam> Mask (in decimal) is used with the response value x and one of the operation #s below: 1 - bitwise AND & 2 - bitwise inclusive OR | 3 - bitwise exclusive OR ^ 4 - signed left shift << 5 - signed right shift >> 6 - unsigned right shift >>> 7 - unary bitwise complement ~ Example: Perform the AND operation on the variable 'x' using a mask of 0x18 (24 decimal) Code: BitWise(24, x, 1)
|
|
| Top |
|
 |
|
dschultz
|
Post subject: Re: How to create xml document for ms43 Posted: Sat Feb 27, 2016 5:16 pm |
|
 |
| RomRaider Developer |
Joined: Wed May 20, 2009 9:49 pm Posts: 7314 Location: Canada eh!
|
hobbit382 wrote: dschultz wrote: Great, I'll have to revise the code and figure out a better way to calculate the actual address from the full and partial ROM defs and for the differences in size between MS41 and 43. What are the addresses in the 430056 partial ROM dump? Full is: "Knock Tables X Axis (Load)" address=0x74095 "Knock Tables Y Axis (Engine Speed)" address=0x7400C Should be able to just remove the 7, so 0x4095 and 0x400C respectively Perfect. And how big is a partial, do you have one I can reference? I suggest you change your def to use address: <internalidaddress>70042</internalidaddress> so that -0x70000 gives: <internalidaddress>42</internalidaddress> for the partial.
|
|
| Top |
|
 |
|
Cloudforce
|
Post subject: Re: How to create xml document for ms43 Posted: Sun Feb 28, 2016 9:58 am |
|
 |
| Experienced |
Joined: Wed Aug 27, 2014 7:57 am Posts: 259
|
dschultz wrote: hobbit382 wrote: dschultz wrote: Great, I'll have to revise the code and figure out a better way to calculate the actual address from the full and partial ROM defs and for the differences in size between MS41 and 43. What are the addresses in the 430056 partial ROM dump? Full is: "Knock Tables X Axis (Load)" address=0x74095 "Knock Tables Y Axis (Engine Speed)" address=0x7400C Should be able to just remove the 7, so 0x4095 and 0x400C respectively Perfect. And how big is a partial, do you have one I can reference? I suggest you change your def to use address: <internalidaddress>70042</internalidaddress> so that -0x70000 gives: <internalidaddress>42</internalidaddress> for the partial. Partial file is the last 64kb from the 512kb full flash, so its from 0x70000-0x7FFFF
_________________ MS43 wiki
MS42 wiki
|
|
| Top |
|
 |
|
dschultz
|
Post subject: Re: How to create xml document for ms43 Posted: Sun Feb 28, 2016 12:25 pm |
|
 |
| RomRaider Developer |
Joined: Wed May 20, 2009 9:49 pm Posts: 7314 Location: Canada eh!
|
This seems to work with the partial... I removed the 2048 MAF scaling and Threshold. Code: <rom base="BMWMS43BASE"> <!-- In this ROM specific section define only the attributes missing or that need to be changed compared to the common table data and axis attributes in the BASE. This will typically be the storageaddress and sometimes the size entries. --> <romid> <internalidaddress>42</internalidaddress> <internalidstring>430056</internalidstring> <xmlid>430056</xmlid> <ecuid>7519308</ecuid> <year>2001</year> <market>USDM</market> <make>BMW</make> <model>325i</model> <submodel>Partial E46 5WK90015 430056</submodel> <transmission>MT/AT</transmission> <memmodel>SAK-C167CR-LM</memmodel> <filesize>64kb</filesize> </romid> <table name="Fuel Injection - Base" storageaddress="0xD764"> <table type="X Axis" storageaddress="0x5676" /> <table type="Y Axis" storageaddress="0x4B0E" /> </table> <table name="Basic Ignition Load Axis" storageaddress="0x4F70"></table> <table name="Main Ignition Load Axis" storageaddress="0x4FB4"></table> <table name="Main Fuel Load Axis" storageaddress="0x5676"></table> <table name="Basic Ignition RPM Axis" storageaddress="0x4F4E"></table> <table name="Main Ignition RPM Axis" storageaddress="0x4F8A"></table> <table name="Main Fuel RPM axis" storageaddress="0x4B0E"></table> <table name="Fuel Injector Dead Time" storageaddress="0x844E"> <table type="Y Axis" storageaddress="0x426F" /> </table> <table name="Fuel Injection part load bank 1 cold engine" storageaddress="0xD11C"> <table type="X Axis" storageaddress="0x5676" /> <table type="Y Axis" storageaddress="0x4B0E" /> </table> <table name="Fuel Injection part load bank 2 cold engine" storageaddress="0xD29C"> <table type="X Axis" storageaddress="0x5676" /> <table type="Y Axis" storageaddress="0x4B0E" /> </table> <table name="Fuel Injection part load bank 1 warm engine" storageaddress="0xD464"> <table type="X Axis" storageaddress="0x5676" /> <table type="Y Axis" storageaddress="0x4B0E" /> </table> <table name="Fuel Injection part load bank 2 warm engine" storageaddress="0xD5E4"> <table type="X Axis" storageaddress="0x5676" /> <table type="Y Axis" storageaddress="0x4B0E" /> </table> <table name="Fuel Injection idlespeed cold engine" storageaddress="0xD0D4"> <table type="X Axis" storageaddress="0x5668" /> <table type="Y Axis" storageaddress="0x4FDE" /> </table> <table name="Fuel Injection idlespeed warm engine" storageaddress="0xD41C"> <table type="X Axis" storageaddress="0x5668" /> <table type="Y Axis" storageaddress="0x4FDE" /> </table> <table name="Ignition Basic" storageaddress="0x75D6"> <table type="X Axis" storageaddress="0x4F70"></table> <table type="Y Axis" storageaddress="0x4F4E" /> </table> <table name="Ignition basic idlespeed" storageaddress="0x769A"> <table type="X Axis" storageaddress="0x5016"></table> <table type="Y Axis" storageaddress="0x500C" /> </table> <table name="Ignition advance idle speed warm engine" storageaddress="0x7444"> <table type="X Axis" storageaddress="0x4FEC"></table> <table type="Y Axis" storageaddress="0x4FDE" /> </table> <table name="Ignition advance idle speed cold engine" storageaddress="0x72E0"> <table type="X Axis" storageaddress="0x4FEC"></table> <table type="Y Axis" storageaddress="0x4FDE" /> </table> <table name="Ignition advance optimal warm engine" storageaddress="0x6F15"> <table type="X Axis" storageaddress="0x4F70"></table> <table type="Y Axis" storageaddress="0x4F4E" /> </table> <table name="Ignition advance optimal cold engine" storageaddress="0x6E55"> <table type="X Axis" storageaddress="0x4F70"></table> <table type="Y Axis" storageaddress="0x4F4E" /> </table> <table name="Ignition Part load cold engine" storageaddress="0x7304"> <table type="X Axis" storageaddress="0x4FB4"></table> <table type="Y Axis" storageaddress="0x4F8A" /> </table> <table name="Ignition Part load RON 98" storageaddress="0x7185"> <table type="X Axis" storageaddress="0x4FB4"></table> <table type="Y Axis" storageaddress="0x4F8A" /> </table> <table name="Ignition Part load RON 91" storageaddress="0x7045"> <table type="X Axis" storageaddress="0x4FB4"></table> <table type="Y Axis" storageaddress="0x4F8A" /> </table> <table name="Intake Vanos Idle Speed Cold Engine" storageaddress="0x6000"> <table type="X Axis" storageaddress="0x4BCA"></table> <table type="Y Axis" storageaddress="0x4BBC" /> </table> <table name="Intake Vanos Idle Speed Warm Engine" storageaddress="0x61E8"> <table type="X Axis" storageaddress="0x4BCA"></table> <table type="Y Axis" storageaddress="0x4BBC" /> </table> <table name="Intake Vanos Part Load Cold Engine" storageaddress="0x6024"> <table type="X Axis" storageaddress="0x4BD8"></table> <table type="Y Axis" storageaddress="0x4B9A" /> </table> <table name="Intake Vanos Part Load Warm Engine" storageaddress="0x620C"> <table type="X Axis" storageaddress="0x4BD8"></table> <table type="Y Axis" storageaddress="0x4B9A" /> </table> <table name="Intake Vanos Full Load Cold Engine" storageaddress="0x5FF0"> <table type="X Axis" storageaddress="0x4B9A" /> </table> <table name="Intake Vanos Full Load Warm Engine" storageaddress="0x61D8"> <table type="X Axis" storageaddress="0x4B9A" /> </table> <table name="Exhaust Vanos Idle Speed Cold Engine" storageaddress="0x5F0C"> <table type="X Axis" storageaddress="0x4BCA"></table> <table type="Y Axis" storageaddress="0x4BBC" /> </table> <table name="Exhaust Vanos Idle Speed Warm Engine" storageaddress="0x60F4"> <table type="X Axis" storageaddress="0x4BCA"></table> <table type="Y Axis" storageaddress="0x4BBC" /> </table> <table name="Exhaust Vanos Part Load Cold Engine" storageaddress="0x5F30"> <table type="X Axis" storageaddress="0x4BD8"></table> <table type="Y Axis" storageaddress="0x4B9A" /> </table> <table name="Exhaust Vanos Part Load Warm Engine" storageaddress="0x6118"> <table type="X Axis" storageaddress="0x4BD8"></table> <table type="Y Axis" storageaddress="0x4B9A" /> </table> <table name="Exhaust Vanos Full Load Cold Engine" storageaddress="0x5EFC"> <table type="X Axis" storageaddress="0x4B9A" /> </table> <table name="Exhaust Vanos Full Load Warm Engine" storageaddress="0x60EF"> <table type="X Axis" storageaddress="0x4B9A" /> </table> <table name="Throttle Angle Reaction on Driver Wish" storageaddress="0xDF5C"> <table type="X Axis" storageaddress="0x459A"></table> <table type="Y Axis" storageaddress="0x56C0" /> </table> <table name="Engine Speed Limiter (AT)" storageaddress="0x5BE9"> <table type="Y Axis" storageaddress="0x40E0" /> </table> <table name="Engine Speed Limiter 2 (AT)" storageaddress="0x5BDA"> <table type="Y Axis" storageaddress="0x40E0" /> </table> <table name="Engine Speed Limiter (MT)" storageaddress="0x5BEF"> <table type="Y Axis" storageaddress="0x40E0" /> </table> <table name="Engine Speed Limiter 2 (MT)" storageaddress="0x5BF5"> <table type="Y Axis" storageaddress="0x40E0" /> </table> <table name="Engine Speed Limiter Heavy Load (AT)" storageaddress="0x8F40"> <table type="Y Axis" storageaddress="0x40E0" /> </table> <table name="Engine Speed Limiter Heavy Load (MT)" storageaddress="0x8F4C"> <table type="Y Axis" storageaddress="0x40E0" /> </table> <table name="DISA- On/Off (Part Throttle)" storageaddress="0x5E0F"> <table type="X Axis" storageaddress="0x4B54" /> <table type="Y Axis" storageaddress="0x4B42" /> </table> <table name="ECT Sensor Scaling" storageaddress="0x8178"> <table type="Y Axis" storageaddress="0x5500" /> </table> <table name="IAT Sensor Scaling" storageaddress="0x8CA9"> <table type="Y Axis" storageaddress="0x4932" /> </table> <table name="MAF sensor scaling" storageaddress="0x0E3A" /> <table name="O2 Sensor Configuration" storageaddress="0x0ABB" /> <table name="Knock Tables X Axis (Load)" storageaddress="0x4095" /> <table name="Knock Tables Y Axis (Engine Speed)" storageaddress="0x400C" /> <table name="DISA Valve" storageaddress="0x0A1E" /> </rom>
|
|
| Top |
|
 |
|
hobbit382
|
Post subject: Re: How to create xml document for ms43 Posted: Sun Feb 28, 2016 6:36 pm |
|
 |
| Experienced |
Joined: Thu Dec 04, 2014 6:37 pm Posts: 139
|
|
awesome! it works perfectly. Ill add it to the definitions.
|
|
| Top |
|
 |
|
dschultz
|
Post subject: Re: How to create xml document for ms43 Posted: Fri Sep 30, 2016 8:49 am |
|
 |
| RomRaider Developer |
Joined: Wed May 20, 2009 9:49 pm Posts: 7314 Location: Canada eh!
|
hobbit382 wrote: dschultz wrote: Great, I'll have to revise the code and figure out a better way to calculate the actual address from the full and partial ROM defs and for the differences in size between MS41 and 43. What are the addresses in the 430056 partial ROM dump? Full is: "Knock Tables X Axis (Load)" address=0x74095 "Knock Tables Y Axis (Engine Speed)" address=0x7400C Should be able to just remove the 7, so 0x4095 and 0x400C respectively This should be fixed in the latest release of RR Logger, no workaround should be needed anymore. http://www.romraider.com/RomRaider/Download
|
|
| Top |
|
 |
Who is online |
Users browsing this forum: No registered users and 0 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
|
|