need Evo 9 owner to test rear O2 *heater* sim patch
So WTF..... this isn't one or the other? I was under the impression I could do it Mrfreds in #59 or I could do it the acamus way in #117. If this truely is a combination of both then that is why its not working.
Mrfreds is the rear O2 heater patch so you can eliminate the rear O2 completely with no CEL, as long as you also run the rear O2 sim along with it.
They both work perfect.....but they each do there own thing.
Just a word of thanks to acamus, mrfred, and quite a few others: my USDM '05 running 96530006 (er, actually 96530706t5) with no cat, rear O2, EGR, or resistor simulator just passed Illinois OBD-II testing without difficulty thanks to a few disabled periphery values and a some adjusted available/passed bits.
Edit: I should point out that it was only good enough to get me through emissions testing; about a mile down the road afterward, I threw a P0125, as expected, since I just disabled the rear O2 check in the periphery to get rid of the CEL long enough for the test to complete.
A proper heater simulation/removal would be greatly appreciated for 96530006, but this was certainly good enough to get me past the immediate problem.
Edit: I should point out that it was only good enough to get me through emissions testing; about a mile down the road afterward, I threw a P0125, as expected, since I just disabled the rear O2 check in the periphery to get rid of the CEL long enough for the test to complete.
A proper heater simulation/removal would be greatly appreciated for 96530006, but this was certainly good enough to get me past the immediate problem.
Last edited by logic; May 12, 2009 at 07:08 PM.
So I have read both threads and I still am a little confused about how to disable the rear o2 heater. Can I simply use Amacus's patch to remove cel/pass emissions for the rear o2 heater (I am running the o2 sim) or do I need to use both Mr. Fred's and Amacus's patches. I am attempting to do it on the 94170015 rom. Thank you for your help.
Mrfred's patch trick *** the computer into thinking the O2 is there when its not.
Amacus's patch trick *** the computer into sending "pass" result when queried.
They work together but the Amacus patch is not required unless you get tested.
Amacus's patch trick *** the computer into sending "pass" result when queried.
They work together but the Amacus patch is not required unless you get tested.
Comparing the original subroutine (not your modified version) in 88590015 to the one in 96530006, there appears to be a bit of difference between the VIII and IX code, although I haven't done an in-depth comparison yet. So before I get into this any further: did you ever port this over to a non-IX ROM, and I just missed the post?
Or, would we be able to tempt you to dig into it just a little bit? 
Also, it looks like nothing between 0x2F9C0 through 0x2FD49 (and the same chunk of subroutines in 8859) is referenced anywhere but as part of the heater circuit code; unless I'm missing something obvious, couldn't you yank the entire block of code, replace it with your (much shorter) sim, and use the remaining space for "other code"?
Did you keep the old code around because it gets called from somewhere I'm missing, or was it just for safety/ease of reverting back?tephra: do you still have plans to integrate this into a future release, if the details get worked out?
if you want it integrated into V7 then i need to know exactly how it works...
does it disable the heating function - ie if you install it onto a car WITH a rear02 will it break anything?
does it disable the heating function - ie if you install it onto a car WITH a rear02 will it break anything?
I don't believe this affects anything but the readiness testing for the heater circuit, but I'd have to defer to mrfred and acamus for a definitive answer. (I might be able to mash the keys, but it doesn't necessarily mean I know what I'm typing.
)
)
You know, I'm looking at the code for 96530006 and comparing it to 88590015:
For 96530006:
For 88590015:
Assuming you already have acamus' readiness patch in place, is there any reason that these whole routines couldn't just be replaced with NOPs? That would effectively prevent the test from running, the same as setting FCA #8 (bit 3) to 0 would, but without the side effect of disabling all the other tests wrapped with that same periphery bit.
For a more refined approach, you could replace the MUT_D3 #8 comparison with a comparison to another location, to make it a toggle of it's own. (I'm thinking a "tephramod option" here.
)
I may give this a try at lunch today, and see if the simple approach is "good enough".
For 96530006:
Code:
loc_2C61E: ! CODE XREF: sub_2C55C+48
mov.l @(0x1CC,pc), r0 ! [0002C7EC] = MUT_D3
mov.w @r0, r0
shlr8 r0
tst #8, r0
bt loc_2C62E
mov.l @(0x178,pc), r10 ! [0002C7A4] = sub_2F9C0
jsr @r10 ! sub_2F9C0
nop
Code:
loc_2DAF4: ! CODE XREF: sub_2C4F0+15E6
! sub_2C4F0+15F8
mov.l @(0x154,pc), r0 ! [0002DC4C] = 0xFFFF6BB8
mov.w @r0, r0
shlr8 r0
tst #8, r0
bt loc_2DB08
mov.l @(0x154,pc), r4 ! [0002DC54] = unk_9DE0
mov #1, r5
mov.l @(0x14C,pc), r10 ! [0002DC50] = sub_47E30
jsr @r10 ! sub_47E30
nop
For a more refined approach, you could replace the MUT_D3 #8 comparison with a comparison to another location, to make it a toggle of it's own. (I'm thinking a "tephramod option" here.
)I may give this a try at lunch today, and see if the simple approach is "good enough".
As far as I understand it, MrFred's code just essentially clears the CEL when inside the parameters for it to occur.



