Skip to content

Instantly share code, notes, and snippets.

@PedroAntoni0
Created February 20, 2024 15:59
Show Gist options
  • Save PedroAntoni0/05da50e31150ec7a0cecffc31726a433 to your computer and use it in GitHub Desktop.
Save PedroAntoni0/05da50e31150ec7a0cecffc31726a433 to your computer and use it in GitHub Desktop.
gametitle=Grand Theft Auto: San Andreas
comment=GTA San Andreas Modern Widescreen Fix by Daniel Santos + Mobile based HUD by Pedro_PAP
//------------------------------------------------Fixes------------------------------------------------//
//Linear Filtering for License Plates
patch=0,EE,204A48A4,extended,34630002 ori $v1, 2 //RWLINEARFILTER
//Fixed ammo for melee weapons in cheats
patch=0,EE,2059D88C,extended,24060001 li $s2 1 //knife
patch=0,EE,2059D998,extended,24060001 li $s2 1 //knife
patch=0,EE,2059DB60,extended,24060001 li $s2 1 //chainsaw
patch=0,EE,2059DC34,extended,24060001 li $s2 1 //chainsaw
patch=0,EE,2059F67C,extended,24060001 li $s2 1 //parachute
patch=0,EE,2059F3BC,extended,24060001 li $s2 1 //katana
//014C cargen counter fix (by spaceeinstein)
patch=0,EE,20295AF0,extended,2C61FFFF //slti => sltiu
patch=0,EE,20295AF4,extended,10000004 //beqz => b
// Don't clean the car BEFORE Pay 'n Spray doors close, as it gets cleaned later again anyway!
patch=0,EE,202E41CC,extended,00000000 nop
// Fixed muzzleflash not showing from last bullet
patch=0,EE,204071F4,extended,00000000 nop
// Help boxes showing with big message
// Game seems to assume they can show together
patch=0,EE,202AE3A0,extended,00000000 nop
// Impound garages working correctly
patch=0,EE,201C6088,extended,0C0BAA58 jal CGarages::IsPointWithinAnyGarage(CVector &)
patch=0,EE,201C63C0,extended,0C0BAA58 jal CGarages::IsPointWithinAnyGarage(CVector &)
patch=0,EE,201C6510,extended,0C0BAA58 jal CGarages::IsPointWithinAnyGarage(CVector &)
// Impounding after busted works
patch=0,EE,202A09A4,extended,00000000 nop
// Weapon icon fix (crosshairs mess up rwRENDERSTATEZWRITEENABLE)
patch=0,EE,202AAB44,extended,00000000 nop
patch=0,EE,202AB284,extended,00000000 nop
patch=0,EE,202AB2B4,extended,00000000 nop
//Fix 4th texture memory leak on effects
patch=0,EE,203D4D50,extended,8E240018
patch=0,EE,203D4D64,extended,AE200018
//-------------------------------------------------HUD-------------------------------------------------//
//patch=0,EE,20663C00,extended,3f666666 //Wanted Height
patch=0,EE,20663C04,extended,3ecccccd //Wanted Width
//patch=0,EE,20663C0C,extended,3f8a3d71 //Wanted Shadow Height
patch=0,EE,20663C10,extended,3ef5c28f //Wanted Shadow Width
//patch=0,EE,202AA78C,extended,3c023fc0 //Wanted Vertical Padding
patch=0,EE,2026E03C,extended,3c084270 //Radar Width
patch=0,EE,2026ED00,extended,3c024270 //Radar Mask Width
patch=0,EE,2026EE30,extended,3c034270 //Radar Mask Width
patch=0,EE,2026EF18,extended,3c034270 //Radar Mask Width
patch=0,EE,20269528,extended,3c024270 //Radar Width unknown
patch=0,EE,2026E658,extended,3c024270 //Radar Width plane green overlay
patch=0,EE,202AC8F8,extended,3c024248 //Radar Width plane overlay
patch=0,EE,202AC964,extended,3c024270 //Radar Heigth plane overlay
patch=0,EE,202ACC4C,extended,3c0341eb //Radar Disc Width left up - a esquerda dessa porra aqui
patch=0,EE,202ACC50,extended,3c0243aa //Radar Disc Width left up - a parte de cima dessa porra aqui
patch=0,EE,202ACC60,extended,3c034278 //Radar Disc Width left up - a direita dessa porra aqui
patch=0,EE,202ACC64,extended,3c0243bf //Radar Disc Width left up - a parte de baixo dessa porra aqui
patch=0,EE,202ACC98,extended,3c0342be //Radar Disc Width right up - a esquerda dessa porra aqui
patch=0,EE,202ACC9c,extended,3c0243aa //Radar Disc Width right up - a parte de cima dessa porra
patch=0,EE,202ACCac,extended,3c034278 //Radar Disc Width right up - a direita dessa porra aqui
patch=0,EE,202ACCb0,extended,3c0243bf //Radar Disc Width right up - a parte de baixo dessa porra
patch=0,EE,202ACCE4,extended,3c0341eb //Radar Disc Width left down - a esquerda dessa porra aqui
patch=0,EE,202ACCE8,extended,3c0243d4 //Radar Disc Width left down - a parte de cima dessa porra
patch=0,EE,202ACCF8,extended,3c034278 //Radar Disc Width left down - a direita dessa porra aqui
patch=0,EE,202ACCFC,extended,3c0243bf //Radar Disc Width left down - a parte de baixo dessa porra
patch=0,EE,202ACD30,extended,3c0342be //Radar Disc Width right down - a esquerda dessa porra aqui
patch=0,EE,202ACD34,extended,3c0243d4 //Radar Disc Width right down - a parte de cima dessa porra
patch=0,EE,202ACD44,extended,3c034278 //Radar Disc Width right down - a direita dessa porra aqui
patch=0,EE,202ACD48,extended,3c0243bf //Radar Disc Width right down - a parte de baixo dessa porra
patch=0,EE,2026AE54,extended,3c034270 //Radar Blip disc Width
patch=0,EE,2026E04C,extended,3c064278 //Radar X Pos
//patch=0,EE,2026E0A0,extended,3c0443BF //Radar Y Pos
patch=0,EE,2026ED10,extended,3c024278 //Radar Mask X Pos
patch=0,EE,2026EE3C,extended,3c044278 //Radar Mask X Pos
patch=0,EE,2026EF34,extended,3c044278 //Radar Mask X Pos
patch=0,EE,2026AE6C,extended,3c034278 //Radar Blip disc X Pos
patch=0,EE,2026E674,extended,3c024278 //Radar X Pos plane green overlay
patch=0,EE,202AC900,extended,3c034278 //Radar X Pos plane overlay
patch=0,EE,202A9EF4,extended,3C024210 //Fist Icon Width
patch=0,EE,202A9E34,extended,3c024190 //Weapon Icon Width
patch=0,EE,202ABA40,extended,2405020D //Weapon Icon Pos X
patch=0,EE,202ABA7C,extended,2405020D //Weapon Icon Pos X - Player 2
patch=0,EE,20663748,extended,3e800000 //Ammo Width
patch=0,EE,202ABA90,extended,2405021F //Ammo X Pos
patch=0,EE,202ABACC,extended,2405021F //Ammo X Pos - Player 2
patch=0,EE,202A9B84,extended,3c0242A8 //Health bar width
patch=0,EE,202A9904,extended,2404002F //Armour bar width
patch=0,EE,202A9A04,extended,2404002F //Breath bar width
patch=0,EE,202AB51C,extended,24050231 //Armour bar pos x
patch=0,EE,202AB560,extended,24050231 //Armour bar pos x
patch=0,EE,202AB6B0,extended,24050231 //Breath bar pos x
patch=0,EE,202AB6F8,extended,24050231 //Breath bar pos x
//CHud::DrawBustedWastedMessage width
patch=0,EE,202AF568,extended,3C033F90 //lui $v1, 0x3f90
patch=0,EE,202AF56C,extended,0C0AA200 //jal _ZN5CFont8SetScaleEf # Jump And Link
patch=0,EE,202AF570,extended,44836000 //mtc1 $v1, $f12
patch=0,EE,202AF574,extended,0C0AA2F4 //jal _ZN5CFont15SetProportionalEh # Jump And Link
patch=0,EE,202AF578,extended,24040001 //li $a0, 1 # Load Immediate
patch=0,EE,202AF57C,extended,0C0AA310 //jal _ZN5CFont10SetJustifyEh # Jump And Link
patch=0,EE,202AF580,extended,0000202D //move $a0, $zero
patch=0,EE,202AF584,extended,0C0AA314 //jal _ZN5CFont14SetOrientationEh # Jump And Link
patch=0,EE,202AF588,extended,0000202D //move $a0, $zero
patch=0,EE,202AF58C,extended,0C0AA27C //jal _ZN5CFont12SetFontStyleEh # Jump And Link
patch=0,EE,202AF590,extended,0000202D //move $a0, $zero
patch=0,EE,202AF594,extended,0C0AA2EC //jal _ZN5CFont7SetEdgeEa # Jump And Link
patch=0,EE,202AF598,extended,24040003 //li $a0, 3 # Load Immediate
patch=0,EE,202AF59C,extended,3C01007C //lui $at, 0x7C # '|' # Load Upper Immediate
patch=0,EE,202AF5A0,extended,3C024F00 //lui $v0, 0x4F00 # Load Upper Immediate
patch=0,EE,202AF5A4,extended,C42132D8 //lwc1 $f1, _styledText3Alpha # Load Word to FPU
patch=0,EE,202AF5A8,extended,44820000 //mtc1 $v0, $f0 # Move to FPU
//CHud::DrawSuccessFailedMessage width
patch=0,EE,202AF0FC,extended,3C033f59 //lui $v1, 0x3f59
patch=0,EE,202AF100,extended,0C0AA200 //jal _ZN5CFont8SetScaleEf # Jump And Link
patch=0,EE,202AF104,extended,44836000 //mtc1 $v1, $f12
patch=0,EE,202AF108,extended,0C0AA2F4 //jal _ZN5CFont15SetProportionalEh # Jump And Link
patch=0,EE,202AF10C,extended,24040001 //li $a0, 1 # Load Immediate
patch=0,EE,202AF110,extended,0C0AA310 //jal _ZN5CFont10SetJustifyEh # Jump And Link
patch=0,EE,202AF114,extended,0000202D //move $a0, $zero
patch=0,EE,202AF118,extended,0C0AA314 //jal _ZN5CFont14SetOrientationEh # Jump And Link
patch=0,EE,202AF11C,extended,0000202D //move $a0, $zero
patch=0,EE,202AF120,extended,2402024E //li $v0, 0x24E # Load Immediate
patch=0,EE,202AF124,extended,44820000 //mtc1 $v0, $f0 # Move to FPU
patch=0,EE,202AF128,extended,0C0AA29C //jal _ZN5CFont13SetCentreSizeEf # Jump And Link
patch=0,EE,202AF12C,extended,46800320 //cvt.s.w $f12, $f0 # Floating-point Convert to Single Fixed-Point Format
patch=0,EE,202AF130,extended,0C0AA27C //jal _ZN5CFont12SetFontStyleEh # Jump And Link
patch=0,EE,202AF134,extended,24040003 //li $a0, 3 # Load Immediate
patch=0,EE,202AF138,extended,0C0AA2EC //jal _ZN5CFont7SetEdgeEa # Jump And Link
patch=0,EE,202AF13C,extended,24040002 //li $a0, 2 # Load Immediate
patch=0,EE,202AF140,extended,3C01007C //lui $at, 0x7C # '|' # Load Upper Immediate
patch=0,EE,202AF144,extended,3C024F00 //lui $v0, 0x4F00 # Load Upper Immediate
patch=0,EE,202AF148,extended,C42132D0 //lwc1 $f1, flt_7C32D0 # Load Word to FPU
patch=0,EE,202AF14C,extended,44820000 //mtc1 $v0, $f0 # Move to FPU
//CRadar::DrawRadarSprite width
patch=0,EE,2026D384,extended,3C034100 //lui $v1, 0x4100 # Load Upper Immediate
patch=0,EE,2026D388,extended,0200102D //move $v0, $s0
patch=0,EE,2026D38C,extended,44831000 //mtc1 $v1, $f2 # Move to FPU
patch=0,EE,2026D390,extended,3C0340C6 //lui $v1, 0x40C6
patch=0,EE,2026D394,extended,44831800 //mtc1 $v1, $f3 # Move to FPU
patch=0,EE,2026D398,extended,27A50050 //addiu $a1, $sp, 0x70+var_20 # a2
patch=0,EE,2026D39C,extended,27A6006C //addiu $a2, $sp, 0x70+var_4 # rgbaColor
patch=0,EE,2026D3A0,extended,4603A801 //sub.s $f0, $f21, $f3 # Floating-point Subtract
patch=0,EE,2026D3A4,extended,00021880 //sll $v1, $v0, 2 # Shift Left Logical
patch=0,EE,2026D3A8,extended,3C020070 //li $v0, dword_703A70 # Load Immediate
patch=0,EE,2026D3AC,extended,24423A70 //
patch=0,EE,2026D3B0,extended,00432021 //addu $a0, $v0, $v1 # a1
patch=0,EE,2026D3B4,extended,E7A00050 //swc1 $f0, 0x70+var_20($sp) # Store Word from FPU
patch=0,EE,2026D3B8,extended,4603A800 //add.s $f0, $f21, $f3 # Floating-point Add
patch=0,EE,2026D3BC,extended,E7A00058 //swc1 $f0, 0x70+var_18($sp) # Store Word from FPU
patch=0,EE,2026D3C0,extended,4602A041 //sub.s $f1, $f20, $f2 # Floating-point Subtract
patch=0,EE,2026D3C4,extended,4602A000 //add.s $f0, $f20, $f2 # Floating-point Add
patch=0,EE,2026D3C8,extended,E7A1005C //swc1 $f1, 0x70+var_14($sp) # Store Word from FPU
patch=0,EE,2026D3CC,extended,0C0AC258 //jal _ZN9CSprite2d4DrawERK5CRectRK5CRGBA # Jump And Link
patch=0,EE,2026D3D0,extended,E7A00054 //swc1 $f0, 0x70+var_1C($sp) # Store Word from FPU
patch=0,EE,2026D3D4,extended,0200282D //move $a1, $s0
patch=0,EE,2026D3D8,extended,0C09A670 //jal _ZN6CRadar19AddBlipToLegendListEhi # Jump And Link
patch=0,EE,2026D3DC,extended,0000202D //move $a0, $zero
patch=0,EE,2026D3E0,extended,DFBF0040 //ld $ra, 0x70+var_30($sp) # Load Doubleword
patch=0,EE,2026D3E4,extended,C7B50004 //lwc1 $f21, 0x70+var_6C($sp) # Load Word to FPU
patch=0,EE,2026D3E8,extended,7BB20030 //lq $s2, 0x70+var_40($sp) # Load Quadword
patch=0,EE,2026D3EC,extended,C7B40000 //lwc1 $f20, 0x70+var_70($sp) # Load Word to FPU
patch=0,EE,2026D3F0,extended,7BB10020 //lq $s1, 0x70+var_50($sp) # Load Quadword
patch=0,EE,2026D3F4,extended,7BB00010 //lq $s0, 0x70+var_60($sp) # Load Quadword
patch=0,EE,2026D3F8,extended,03E00008 //jr $ra # Jump Register
patch=0,EE,2026D3FC,extended,27BD0070 //addiu $sp, 0x70 # Add Immediate Unsigned
//CRadar::DrawBlips - Radar Centre
patch=0,EE,2026863C,extended,24050006
patch=0,EE,20268644,extended,24060008
patch=0,EE,20268674,extended,24050006
patch=0,EE,2026867C,extended,24060008
patch=0,EE,202ADA20,extended,3c033ecc //mission timers
patch=0,EE,202AD82C,extended,3c023f33 //Vehicle name width
patch=0,EE,202AFCAC,extended,3c023f33 //Mission title width
patch=0,EE,202AD29C,extended,c78c8384 //Area name width hook - 0x663474
patch=0,EE,20663bc8,extended,3ecccccd //Money Width
patch=0,EE,20663C58,extended,3ecccccd //Subtitles Width
patch=0,EE,20663674,extended,3EB33333 //Help box Width
patch=0,EE,202AC440,extended,C78C82BC //DrawVitalStats weekday width hook
patch=0,EE,202AC438,extended,C78D899C //DrawVitalStats weekday height hook
patch=0,EE,2023E5C4,extended,3c023f33 //CMenuManager::DrawWindow title width
patch=0,EE,202ACAB4,extended,3C0341d4 //AltitudeBar width
patch=0,EE,202ACC10,extended,3C0241e5 //AltitudeCounter width
patch=0,EE,202ACC00,extended,3C034190 //AltitudeCounter X Pos
//Set drop shadows to outline
patch=0,EE,202A8B90,extended,3c01007c
patch=0,EE,202A8B94,extended,a0202346
patch=0,EE,202A8B98,extended,3c01007c
patch=0,EE,202A8B9C,extended,a024234b
patch=0,EE,202A8Ba8,extended,a024234c
//--------------------------------------------------FOV------------------------------------------------//
patch=0,EE,2021DF84,extended,0C044C2F //SetFOV Call
patch=0,EE,20242D54,extended,0C044C2F //SetFOV Call
patch=0,EE,2021DF84,extended,0C044C2F //SetFOV Call
patch=0,EE,201130BC,extended,3C013F9D //New SetFOV
patch=0,EE,201130C0,extended,44810000 //New SetFOV
patch=0,EE,201130C4,extended,46006302 //New SetFOV
patch=0,EE,201130C8,extended,03e00080 //New SetFOV
patch=0,EE,201130CC,extended,E78C9A90 //New SetFOV
patch=0,EE,2021DFE0,extended,3c0242a0 // Emergency Vehicles Fix
patch=0,EE,202EE0E0,extended,3C024120 // Fix sky multitude
patch=0,EE,202EE0E8,extended,00000000 // Fix sky multitude
patch=0,EE,2020A484,extended,3C024302 // Set vehicle max FOV
//-------------------------------------------------Menu------------------------------------------------//
patch=0,EE,20234A44,extended,24040001 //Set Menu Text Body
patch=0,EE,20234A14,extended,c78c8b68 //Hook Menu Items Width to Subtitles width
patch=0,EE,202354F8,extended,c78c8b68 //Hook Menu Items Width to Subtitles width
patch=0,EE,20242190,extended,3c023ecc //Set Menu Labels Width
//-------------------------------------------------Debug-----------------------------------------------//
patch=0,EE,20515870,extended,00000000 //Disable radiosity
//patch=0,EE,2039B53C,extended,24040001 //Set VSync Mode to 60 FPS
//patch=0,EE,20245790,extended,00000000 //Skip MPEG Decoder
//patch=0,EE,202457B0,extended,00000000 //Skip MPEG Decoder
patch=0,EE,202A911C,extended,03E00008 //disable CHud::GetYPosBasedOnHealth
patch=0,EE,202ABA40,extended,24050250 //Weapon Icon Pos X
patch=0,EE,202AB3F8,extended,3C024413 //clock pos x (float)
patch=0,EE,20663BCC,extended,41944433 //clock pos y dword
patch=0,EE,202AB390,extended,24040001 //clock edge
[No money zeros]
patch=0,EE,20666d50,extended,00642524
patch=0,EE,20666d54,extended,00000000
patch=0,EE,20666d58,extended,6425242d
patch=0,EE,20666d5c,extended,00000000
patch=0,EE,202AB9B8,extended,3C024413 //Money pos x
patch=0,EE,20663BE8,extended,42100000 //Money pos y dword
patch=0,EE,202AB948,extended,24040001 //money edge
patch=0,EE,202AB51C,extended,2405021e // armour pos x (int)
patch=0,EE,202AB4B4,extended,240501e0 // life pos x init point(int)
patch=0,EE,20663BD8,extended,42860000 // armour pos y
patch=0,EE,20663BD0,extended,42640000 // life pos y
patch=0,EE,202ABA90,extended,24050262 //Ammo X Pos
patch=0,EE,202AA270,extended,24060004 //Set ammo white color
patch=0,EE,202ABA94,extended,24060042 //Ammo Y Pos
patch=0,EE,202AA398,extended,24030274 //wanted pos X (int)
patch=0,EE,20663C08,extended,429c0000 //wanted pos y (float)
patch=0,EE,20663BE0,extended,42860000 //breath pos y (float) dword
patch=0,EE,202AB6B0,extended,2405021e //breath pos x (int)
patch=0,EE,202A99FC,extended,3C024316
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment