Skip to content

December 29, 2010

Xbox 360 Rapid Fire Trigger Mod

I love to play my Xbox 360, but I needed a little edge over the people that spend all day and night playing. Because I have to work during the day, I can’t do that.

So I wrote some code in PicBasic for a PIC12F683. The basic code is below, you are welcome to use it, you will need to compile it to a HEX file and flash it to the chip. It comes with NO warranty’s. This mod may not work with all controllers, but it worked for me!

Once installed you use a quick press of the sync button to toggle the mod off and on. The mod is indicated by the lower left quadrant LED of the controller.

Device 12F683

Declare XTAL 4
REMINDERS 0
Config FCMEN_OFF, IESO_OFF, BOD_OFF, CPD_ON, CP_ON, MCLRE_OFF, PWRTE_ON, WDT_OFF, INTRC_OSC_NOCLKOUT
CMCON0 = %00000000
ALL_DIGITAL = true

‘*********** Interrupt/TRIS Settings ***********’
IOC = %00010000
OPTION_REG = %01011111
INTCON = %10001000
WPU = %00010000
TRISIO = %00010111
‘******************************************’

Dim modeAs As Byte
Dim modeVar As Byte
Dim RFspeed As Byte

RFspeed = 48                ‘ Rapid Fire speed setting in Milliseconds
modeVar = 0
modeAs = 1                  ‘ on/off mode {0 = off}
High GPIO.5                 ‘ Indicator LED
DelayMS 250                 ‘ Let the controller boot up…

On Interrupt  GoTo MODE     ‘ Interrupt goto…

MAIN:
If modeAs = 1 Then GoTo RUN :Else: TRISIO.0 = 1
GoTo MAIN               ‘ Loop…

RUN:
TRISIO.0 = 1            ‘ Tri-state float … Low of PWM
DelayMS RFspeed         ‘ FireRate
TRISIO.0 = 0            ‘ TRIS to output … High of PWM
DelayMS RFspeed         ‘ FireRate
GoTo MAIN               ‘ Loop…

‘*********** Interrupt routine ***********’
Disable
MODE:
INTCON = $88                ‘ Turn off Interrupts, while we change the mode.
DelayMS 75                ‘ debounce
Select modeAs
Case 0                    ‘ Is modeAs equal to 0 ?
modeVar = 1              ‘ Load modeVar with 1 if yes
Case Else                 ‘ Otherwise…
modeVar = 0              ‘ Load modeVar with 0
EndSelect
Let modeAs = modeVar
If modeVar = 0 Then High GPIO.5 : TRISIO.0 = 1  :Else: Low GPIO.5
INTCON.3 = 1
DelayMS 75
Resume
Enable

Read more from Electronics

Comments are closed.