P04 Custom Code
- ProfessWRX
- Posts: 124
- Joined: Tue Oct 03, 2023 9:33 am
- Location: AZ USA
P04 Custom Code
I've created a "patch" to give myself a performance shift control in car without an actual button.
To Turn On Performance Shift:
Press Throttle above 60%
Or
Turn Off Traction Control.
Or
Hold Brake and Press Throttle above 4%.
To Turn Off Performance Shift:
Move Gear Shift to Neutral or Park for 3 seconds.
The only 'issue' is that the neutral switch is only updated about every 3 seconds it seems so neutral must be held a bit long to turn off performance shift.
This is the code for 12588500. The code is stock until Byte 50659.
To Turn On Performance Shift:
Press Throttle above 60%
Or
Turn Off Traction Control.
Or
Hold Brake and Press Throttle above 4%.
To Turn Off Performance Shift:
Move Gear Shift to Neutral or Park for 3 seconds.
The only 'issue' is that the neutral switch is only updated about every 3 seconds it seems so neutral must be held a bit long to turn off performance shift.
This is the code for 12588500. The code is stock until Byte 50659.
- Code: Select all
ROM:0005063E sub_5063E: ; CODE XREF: sub_5B878+4A2p
ROM:0005063E 000 movem.l d0-d1/a4,-(sp) ; Move Multiple Registers
ROM:00050642 00C movea.l a0,a4 ; Move Address
ROM:00050644 00C tst.b (byte_FFFFA550).w ; Test an Operand
ROM:00050648 00C beq.s loc_5065A ; Branch if Equal
ROM:0005064A 00C move.b #3,(a4) ; Move Data from Source to Destination
ROM:0005064E 00C clr.b (a1) ; Clear an Operand
ROM:00050650 00C move.w (word_FFFF9116).w,(pPerfShiftButtonDebounceTimer).w ; Move Data from Source to Destination
ROM:00050656 00C bra.w loc_50694 ; Branch Always
ROM:0005065A ; ---------------------------------------------------------------------------
ROM:0005065A
ROM:0005065A loc_5065A: ; CODE XREF: sub_5063E+Aj
ROM:0005065A 00C tst.b (pTransmissionShiftPattern).w ; Test If Performance Shift is On
ROM:0005065E 00C beq.s loc_5066E ; Branch if Off To Check for Turn On
ROM:00050660 00C tst.b (pGear_or_PN_Drive_Status).w ; Test for Park/Neutral
ROM:00050664 00C bne.s loc_50692 ; Branch if Not in Park/Neutral
ROM:00050666 00C moveq #0,d1 ; Turn Off Performance shift
ROM:00050668 00C move.b d1,(a4) ;
ROM:0005066A 00C bra.w loc_50692 ; Exit
ROM:0005066E ; ---------------------------------------------------------------------------
ROM:0005066E
ROM:0005066E loc_5066E: ; CODE XREF: sub_5063E+20j
ROM:0005066E 00C clr.l d0 ; Clear an Operand
ROM:00050670 00C tst.b (pTractionControlButton).w ; Test For Traction Control Turned Off
ROM:00050674 00C bne.s loc_5068E ; Branch if Turned Off --> Turn ON performance shift
ROM:00050676 00C move.w (pTPS_AD).w,d0 ; Check Throttle Position
ROM:0005067A 00C cmpi.b #144,d0 ;
ROM:0005067E 00C bhi.s loc_5068E ; Branch if Higher than 60% Throttle -----> Turn ON performance shift
ROM:00050680 00C cmpi.b #35,d0 ; Check Throttle Position Again
ROM:00050684 00C bls.s loc_50692 ; Branch if Below 4% throttle ----> Exit and Leave Performance Shift OFF
ROM:00050686 00C btst #7,(byte_FFFFAD16).w ; Test for Brake Pedal On
ROM:0005068C 00C beq.s loc_50692 ; Branch if Not Braking ---> Exit and Leave Performance Shift OFF
ROM:0005068E
ROM:0005068E loc_5068E: ; CODE XREF: sub_5063E+36j
ROM:0005068E ; sub_5063E+40j
ROM:0005068E 00C moveq #1,d1 ; Turn ON Performance Shift
ROM:00050690 00C move.b d1,(a4) ;
ROM:00050692
ROM:00050692 loc_50692: ; CODE XREF: sub_5063E+26j
ROM:00050692 ; sub_5063E+2Cj ...
ROM:00050692 00C clr.b (a1) ;
ROM:00050694
ROM:00050694 loc_50694: ; CODE XREF: sub_5063E+18j
ROM:00050694 00C movem.l (sp)+,d0-d1/a4 ;
ROM:00050698 000 rts ; EXIT
ROM:00050698 ; End of function sub_5063E
- Attachments
-
PerformanceShiftFinal12588500.txt
- (1.7 KiB) Downloaded 12 times
Last edited by ProfessWRX on Sat Nov 18, 2023 3:08 am, edited 10 times in total.
- ProfessWRX
- Posts: 124
- Joined: Tue Oct 03, 2023 9:33 am
- Location: AZ USA
Re: P04 Custom Code
I’m going to add a throttle only switch as well. Probably try it around 60% throttle switches in on also.
After that I think the meat of it is probably good to go.
Edit, Done.
After that I think the meat of it is probably good to go.
Edit, Done.
Last edited by ProfessWRX on Fri Nov 10, 2023 1:24 am, edited 1 time in total.
Re: P04 Custom Code
I am not sure what you are showing us here? Is this a stock routine, or your code? Is it a patched piece of code? Against what OS? Is it supposed to be something someone else can use? I am not sure what is what. Tthere are no additional comments beyond what IDA auto generates for 68k instructions.
Have you read the FAQ? For lots of information and links to significant threads see here: viewtopic.php?f=7&t=1396
- ProfessWRX
- Posts: 124
- Joined: Tue Oct 03, 2023 9:33 am
- Location: AZ USA
Re: P04 Custom Code
antus wrote:I am not sure what you are showing us here? Is this a stock routine, or your code? Is it a patched piece of code? Against what OS? Is it supposed to be something someone else can use? I am not sure what is what. Tthere are no additional comments beyond what IDA auto generates for 68k instructions.
That's the subroutine I wrote for 12588500. I've uploaded a dif file for 12588500.
I've also commented the code above. Should be easy to follow for anybody now.
Last edited by ProfessWRX on Fri Nov 10, 2023 1:25 am, edited 1 time in total.
Re: P04 Custom Code
Cool, thanks 

Have you read the FAQ? For lots of information and links to significant threads see here: viewtopic.php?f=7&t=1396
- ProfessWRX
- Posts: 124
- Joined: Tue Oct 03, 2023 9:33 am
- Location: AZ USA
Re: P04 Custom Code
I've updated the above to include the throttle only activation, though it has NOT been tested.
I've also swapped all of this completely over to 12588500 so there's no more confusion.
I've also swapped all of this completely over to 12588500 so there's no more confusion.
- ProfessWRX
- Posts: 124
- Joined: Tue Oct 03, 2023 9:33 am
- Location: AZ USA
Re: P04 Custom Code
Added in an Extra switch for Traction Control to turn ON performance shift. It does not turn it off.
Also, tested the heavy Throttle activation code in car above. Worked as expected.
After this is tested, I'm done with performance Mode switching. I will more than likely add in performance shift functionality as I need/want. (performance shift changes to fueling/timing etc.)
Also, tested the heavy Throttle activation code in car above. Worked as expected.
After this is tested, I'm done with performance Mode switching. I will more than likely add in performance shift functionality as I need/want. (performance shift changes to fueling/timing etc.)
Last edited by ProfessWRX on Sat Nov 18, 2023 7:45 am, edited 1 time in total.
- ProfessWRX
- Posts: 124
- Joined: Tue Oct 03, 2023 9:33 am
- Location: AZ USA
Re: P04 Custom Code
Traction Control Switch code works as expected.
Re: P04 Custom Code
good work 

Have you read the FAQ? For lots of information and links to significant threads see here: viewtopic.php?f=7&t=1396
- ProfessWRX
- Posts: 124
- Joined: Tue Oct 03, 2023 9:33 am
- Location: AZ USA
Re: P04 Custom Code
Wrote code to flash the change oil and low fuel lights when kr is over a threshold.
Run into one issue. My car seems to be so well tuned to 87 that either I’m not knocking long enough or enough at all to turn them on.
I do know the code works as I tried it at zero knock threshold (greater or equal to) and it lights up.
I will run this code as is and try to heat soak and see if I can get activity.
The other possibility is the subroutine I hooked doesn’t run at WOT.
I’ll probably change the lights it flashes down the road but with pcm hammer having issues I cant pin down yet I’m afraid to flash more than I have to do this was the first lights I got to react.
Run into one issue. My car seems to be so well tuned to 87 that either I’m not knocking long enough or enough at all to turn them on.
I do know the code works as I tried it at zero knock threshold (greater or equal to) and it lights up.
I will run this code as is and try to heat soak and see if I can get activity.
The other possibility is the subroutine I hooked doesn’t run at WOT.
I’ll probably change the lights it flashes down the road but with pcm hammer having issues I cant pin down yet I’m afraid to flash more than I have to do this was the first lights I got to react.
Who is online
Users browsing this forum: No registered users and 3 guests