P04 Custom Code

For discussion and distribution of custom code and hacks
Posts: 124
Joined: Tue Oct 03, 2023 9:33 am
Location: AZ USA

P04 Custom Code

Postby ProfessWRX » Wed Nov 08, 2023 12:41 pm

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.
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.

Posts: 124
Joined: Tue Oct 03, 2023 9:33 am
Location: AZ USA

Re: P04 Custom Code

Postby ProfessWRX » Wed Nov 08, 2023 3:17 pm

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.
Last edited by ProfessWRX on Fri Nov 10, 2023 1:24 am, edited 1 time in total.

Site Admin
User avatar
Posts: 8117
Joined: Sat Feb 28, 2009 8:34 pm

Re: P04 Custom Code

Postby antus » Wed Nov 08, 2023 3:47 pm

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

Posts: 124
Joined: Tue Oct 03, 2023 9:33 am
Location: AZ USA

Re: P04 Custom Code

Postby ProfessWRX » Thu Nov 09, 2023 12:12 am

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.

Site Admin
User avatar
Posts: 8117
Joined: Sat Feb 28, 2009 8:34 pm

Re: P04 Custom Code

Postby antus » Thu Nov 09, 2023 12:05 pm

Cool, thanks :thumbup:
Have you read the FAQ? For lots of information and links to significant threads see here: viewtopic.php?f=7&t=1396

Posts: 124
Joined: Tue Oct 03, 2023 9:33 am
Location: AZ USA

Re: P04 Custom Code

Postby ProfessWRX » Fri Nov 10, 2023 1:30 am

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.

Posts: 124
Joined: Tue Oct 03, 2023 9:33 am
Location: AZ USA

Re: P04 Custom Code

Postby ProfessWRX » Tue Nov 14, 2023 8:13 am

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.)
Last edited by ProfessWRX on Sat Nov 18, 2023 7:45 am, edited 1 time in total.

Posts: 124
Joined: Tue Oct 03, 2023 9:33 am
Location: AZ USA

Re: P04 Custom Code

Postby ProfessWRX » Sat Nov 18, 2023 2:40 am

Traction Control Switch code works as expected.

Site Admin
User avatar
Posts: 8117
Joined: Sat Feb 28, 2009 8:34 pm

Re: P04 Custom Code

Postby antus » Sat Nov 18, 2023 10:01 am

good work :thumbup:
Have you read the FAQ? For lots of information and links to significant threads see here: viewtopic.php?f=7&t=1396

Posts: 124
Joined: Tue Oct 03, 2023 9:33 am
Location: AZ USA

Re: P04 Custom Code

Postby ProfessWRX » Sun Nov 19, 2023 9:26 am

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.

Next

Return to Custom Code

Who is online

Users browsing this forum: No registered users and 3 guests