View Single Post
Old Sat, Dec-08-2012, 11:02:19 PM   #344
Join Date: Dec 2010
Posts: 11,911
In the garage:
Reputation: 11 terraphantm is on a distinguished road
Location: Philadelphia

United States

Default Re: Comprehensive MSS54/MSS54HP DME Information

Originally Posted by m3new View Post

Excellent work. All this is very impressive and all of us who arnt involved in the process are all very greatful!

What would be really nice is a walk through guide for some who arnt familiar with the shift lights and editing hex files and uploading to the dme. For example once a dump has been made from galetto, where do you find the .0da file?

I think a few of us will really appriciate this, as I have been following this thread from day one and having direct contact with evc germany they have agreed to calculate a checksum on any file I send them as I one off. If this could help the process in anyway let me know
The 0DA files are found in official BMW software packages. If you already have a galleto interface, you don't need to worry about the 0da files. The method with the 0da files mentioned in the last few posts is intended for those that already have the BMW software and interface, and don't want to buy yet another interface.

If you have a galletto cable, then all you have to do is dump your ROM, modify the appropriate bits, correct the checksums, and write that back to the DME.

Correcting the checksums isn't too big of an issue - a few of us already have WinOLS... and I think soon I'll be able to figure out how the checksums are calculated. I'd say I'm 90% there for the non-HP ECUs. HP variant will take a bit more work. That said, until I (or someone else) solves the checksum algorithm, I'm sure your contact could be very helpful for those who don't have WinOLS already

Edit: Solved MSS54HP checksum algorithm, it's actually quite simple.
It's easier to think of the MSS54HP file as two separate 32KB files. Method for calculating the checksum for either half is the same.

Take the first 0x4000 bytes and move them to the end. So what was byte 0 is now byte 4000, etc...
Now select the first 7FFC bytes. Calculate the CRC16 value for these bytes.
That's your checksum.

That method worked for 4 different MSS54HP ROMs that I tested, including the CSL tune -- I believe it'll work for all of them

Last edited by terraphantm; Sun, Dec-09-2012 at 12:52:44 AM.
Jump to top terraphantm is offline   Reply With Quote