Segment Swap utility

They go by many names, P01, P59, VPW, '0411 etc. Also covering E38 and newer here.
User avatar
joukoy
Posts: 392
Joined: Tue Dec 17, 2019 3:27 am
cars: --
Contact:

Re: Segment Swap utility

Post by joukoy »

kur4o wrote:Again excellent work.

I did play with the new dtc search and managed to fix and add some new pcms.

I tried to configure e40 pcm for dtc search. It founds the tables but the dtc status is a little different format. It is 2bytes status, first is always 0, something like this

00 06, 00 03, 00 00, 00 01 and so on. If there is a step for mil status will fix it perfectly. Or specify dtc status size 1 byte or 2 byte. It also seems to not recognize the 0-6 format. There is no mil on/off too.

If we can make that configurable I will look for some patterns for e38 too. There migth be something similar.

Can we also add alternative xmlfile field. A search that will work on more than on xmlfile.

Here is the current dtc search.xml I have. I still need to confirm that dtc status and mil on/off offset is correct. It looks like the first byte is always omitted for some reason.
0.15.3
MilTable = "combined", if Status is in format 0-7 / Status & MIL in one table.
Added config for StatusSteps and MilSteps.
Almost untested, I don't have searchstrings for e38, try to search e40 files somewhere
ironduke
Posts: 583
Joined: Thu Feb 13, 2020 11:32 pm
cars: Mainly GM trucks, a Cruze and an Equinox for dailys..

Re: Segment Swap utility

Post by ironduke »

Aren't we all set for E38 DTC's?? I haven't tried the latest couple revisions but it was working for every E38 bin I threw at it..

Nevermind.. I see there's now an XML for searcing, E38 isn't there so it is broken.. ok..
User avatar
joukoy
Posts: 392
Joined: Tue Dec 17, 2019 3:27 am
cars: --
Contact:

Re: Segment Swap utility

Post by joukoy »

0.15.4
Fixed bugs in Dtc Search/combined table
Edit: modified DtcSearch.xml for E40-wsl

Yes, e38 DTC search is now broken, until config is added. You can use version 0.15.2 meanwhile.
User avatar
joukoy
Posts: 392
Joined: Tue Dec 17, 2019 3:27 am
cars: --
Contact:

Re: Segment Swap utility

Post by joukoy »

kur4o wrote: Can we also add alternative xmlfile field. A search that will work on more than on xmlfile.
I think it makes too much extra work.
You can open DtcSearch.xml with notepad and:
- copy-paste block
- Change XmlFile
User avatar
joukoy
Posts: 392
Joined: Tue Dec 17, 2019 3:27 am
cars: --
Contact:

Re: Segment Swap utility

Post by joukoy »

0.15.5

Small bug, forget to reset "dtcCombined" variable
kur4o
Posts: 951
Joined: Sun Apr 10, 2016 9:20 pm

Re: Segment Swap utility

Post by kur4o »

I made a quick disassembly of e38 just to see how code is referenced.

It is really weird how the table is picked. I almost figured how to find the dtc Status table but the dtc list is giving me trouble.

the search string will look something like this.

xx xx * * xx xx * * [[example xx xx 00 1c xx xx 38 58] =001c3858 will be the DTC status address.]]

Combining the ** ** will give the relative offset table for dtc status

For dtc table there is more than that and I am still fighting with the powerPC processor opcodes.

For now just keep hardcoded stuff for e38, since it may take a while to figure reliable search method.
ironduke
Posts: 583
Joined: Thu Feb 13, 2020 11:32 pm
cars: Mainly GM trucks, a Cruze and an Equinox for dailys..

Re: Segment Swap utility

Post by ironduke »

I've been playing with the new configurable search, my brain is melting, but I might have figured out how it works..

Your now looking in the OS code for where the actual address information is stored for the DTC list? Your not looking for the actual dtc list itself now??
User avatar
joukoy
Posts: 392
Joined: Tue Dec 17, 2019 3:27 am
cars: --
Contact:

Re: Segment Swap utility

Post by joukoy »

ironduke wrote:I've been playing with the new configurable search, my brain is melting, but I might have figured out how it works..

Your now looking in the OS code for where the actual address information is stored for the DTC list? Your not looking for the actual dtc list itself now??
Correct.

Version 0.15.6 have now fallback: If there is no configuration for e38/e67 (or table not found), it uses old harcoded search.
But combined status & MIL is displayed as separate values, like LS1, for compatibility.
ironduke
Posts: 583
Joined: Thu Feb 13, 2020 11:32 pm
cars: Mainly GM trucks, a Cruze and an Equinox for dailys..

Re: Segment Swap utility

Post by ironduke »

joukoy wrote:
ironduke wrote:I've been playing with the new configurable search, my brain is melting, but I might have figured out how it works..

Your now looking in the OS code for where the actual address information is stored for the DTC list? Your not looking for the actual dtc list itself now??
Correct.

Version 0.15.6 have now fallback: If there is no configuration for e38/e67 (or table not found), it uses old harcoded search.
But combined status & MIL is displayed as separate values, like LS1, for compatibility.
Damn!!! That is some good work, I started this with just the idea of getting the E38's done, you and Kur40 have taking it a LOT further than I ever intended, awesome!! Thanks for the fallback, I'll have to try and figure out how to use it..

I tried loading your source into visual studio to help me see how your searching but it crashes with "Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index" so that was a bust, lol..
User avatar
joukoy
Posts: 392
Joined: Tue Dec 17, 2019 3:27 am
cars: --
Contact:

Re: Segment Swap utility

Post by joukoy »

ironduke wrote:
joukoy wrote:
ironduke wrote:I've been playing with the new configurable search, my brain is melting, but I might have figured out how it works..

Your now looking in the OS code for where the actual address information is stored for the DTC list? Your not looking for the actual dtc list itself now??
Correct.

Version 0.15.6 have now fallback: If there is no configuration for e38/e67 (or table not found), it uses old harcoded search.
But combined status & MIL is displayed as separate values, like LS1, for compatibility.
Damn!!! That is some good work, I started this with just the idea of getting the E38's done, you and Kur40 have taking it a LOT further than I ever intended, awesome!! Thanks for the fallback, I'll have to try and figure out how to use it..

I tried loading your source into visual studio to help me see how your searching but it crashes with "Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index" so that was a bust, lol..
XML files are missing from folder bin\debug\XML\
?

I think there is still bug in decoding status + MIL to separate values, let's see if I can fix it.
Post Reply