├── .gitattributes ├── LICENSE ├── SLUS-20552 └── 20B19E49.pnach ├── SLUS-20062 └── 5E115FB6.pnach └── SLUS-20946 ├── SLUS_209.46.cht └── 399A49CA.pnach /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Daniel Santos 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /SLUS-20552/20B19E49.pnach: -------------------------------------------------------------------------------- 1 | 2 | 3 | patch=0,EE,20290EC4,extended,3c044270 //Radar Width 4 | 5 | patch=0,EE,20290AA8,extended,3c024270 //Radar Mask Width 6 | patch=0,EE,20290BD0,extended,3c024270 //Radar Mask Width 7 | 8 | patch=0,EE,20293690,extended,3c024270 //Radar stuff Width 9 | patch=0,EE,202938C4,extended,3c024270 //Radar stuff Width 10 | patch=0,EE,20293934,extended,3c024270 //Radar stuff Width 11 | patch=0,EE,202940B4,extended,3c024270 //Radar stuff Width 12 | patch=0,EE,20294124,extended,3c024270 //Radar stuff Width 13 | 14 | patch=0,EE,20294DD0,extended,3c034270 //Radar stuff Width 15 | 16 | patch=0,EE,20295458,extended,3c034270 //Radar Blip Disc Width 17 | 18 | patch=0,EE,202D39E8,extended,3c03424c //Radar Ring left 19 | patch=0,EE,202D3A90,extended,3c03424c //Radar Ring left 20 | 21 | patch=0,EE,202D39F8,extended,3c0342f6 //Radar Ring right 22 | patch=0,EE,202D3AA0,extended,3c0342f6 //Radar Ring right 23 | 24 | //CFont::SetScale hook 25 | patch=0,EE,202CD990,extended,3C013f40 //lui $at, 0x3f40 26 | patch=0,EE,202CD994,extended,44810000 //mtc1 $at, $f0 27 | patch=0,EE,202CD998,extended,46006302 //mul.s $f12, $f0 28 | patch=0,EE,202CD99C,extended,3c010069 //lui $at, 0x7C 29 | patch=0,EE,202CD9A0,extended,e42cd5f4 //swc1 $f12, flt_68D5F4 30 | patch=0,EE,202CD9A4,extended,3c010069 //lui $at, 0x7C 31 | patch=0,EE,202CD9A8,extended,03e00008 //jr ra 32 | patch=0,EE,202CD9AC,extended,e42dd5f8 //swc1 $f13, flt_68D5F8 33 | 34 | void CFont::SetScale(float w, float h){ 35 | globalWidth = w*0.75; 36 | globalHeight = h; 37 | } 38 | 39 | patch=0,EE,202D1CB4,extended,3c034409 // Fist Icon left 40 | 41 | patch=0,EE,202D1CC4,extended,3c024415 // Fist icon right 42 | patch=0,EE,202D1CC8,extended,3442a391 // Fist icon right 43 | 44 | patch=0,EE,202D1C54,extended,3c0341c7 // Weapon Icon width 45 | 46 | //--------------------------------------------------FOV------------------------------------------------// 47 | 48 | patch=0,EE,201325BC,extended,3C013F9D //New SetFOV 49 | patch=0,EE,201325C0,extended,44810000 //New SetFOV 50 | patch=0,EE,201325C4,extended,46006302 //New SetFOV 51 | patch=0,EE,201325C8,extended,03E00008 //New SetFOV 52 | patch=0,EE,201325CC,extended,E78C86F8 //New SetFOV 53 | 54 | patch=0,EE,202434EC,extended,0C04C96F //SetFOV Call 55 | patch=0,EE,2026FE1C,extended,0C04C972 //SetFOV Call 56 | patch=0,EE,202703F4,extended,0C04C972 //SetFOV Call 57 | 58 | //-------------------------------------------------Debug-----------------------------------------------// 59 | 60 | //patch=0,EE,20273988,extended,00000000 //Skip MPEG Decoder 61 | //patch=0,EE,202739A8,extended,00000000 //Skip MPEG Decoder -------------------------------------------------------------------------------- /SLUS-20062/5E115FB6.pnach: -------------------------------------------------------------------------------- 1 | 2 | //CFont::SetScale hook 3 | patch=0,EE,202CC700,extended,3C013f40 //lui $at, 0x3f40 4 | patch=0,EE,202CC704,extended,44810000 //mtc1 $at, $f0 5 | patch=0,EE,202CC708,extended,46006302 //mul.s $f12, $f0 6 | patch=0,EE,202CC70c,extended,3c01005F //lui $at, 0x5F 7 | patch=0,EE,202CC710,extended,e42cB674 //swc1 $f12, flt_5EB674 8 | patch=0,EE,202CC714,extended,3c01005F //lui $at, 0x5F 9 | patch=0,EE,202CC718,extended,03e00008 //jr ra 10 | patch=0,EE,202CC71C,extended,e42dB678 //swc1 $f13, flt_5EB678 11 | 12 | patch=0,EE,202CFE3C,extended,3c024419 //Fist Icon right 13 | patch=0,EE,202CFE54,extended,3c02440d //Fist Icon left 14 | 15 | patch=0,EE,202CFC98,extended,3c02440c //Money shadow text pos X 16 | patch=0,EE,202CFC58,extended,3c02440c //Money text pos X 17 | 18 | patch=0,EE,202D016C,extended,3c02440c //Health shadow text pos X 19 | patch=0,EE,202D0228,extended,3c02440c //Health text pos X 20 | patch=0,EE,202D01B8,extended,3C024401 //Health shadow icon pos X 21 | patch=0,EE,202D01E0,extended,3C024401 //Health shadow icon pos X 22 | patch=0,EE,202D0298,extended,3C024401 //Health icon pos X 23 | 24 | patch=0,EE,202D03C8,extended,3c0243f9 //Armour shadow text pos X 25 | patch=0,EE,202D0474,extended,3c0243f8 //Armour text pos X 26 | patch=0,EE,202D0410,extended,3C0243E3 //Armour shadow icon pos X 27 | patch=0,EE,202D0438,extended,3C0243E3 //Armour shadow icon pos X 28 | patch=0,EE,202D04BC,extended,3C0243E2 //Armour icon pos X 29 | 30 | patch=0,EE,202D0F6C,extended,3c02440c //Clock shadow text pos X 31 | patch=0,EE,202D0FAC,extended,3c02440b //Clock text pos X 32 | 33 | patch=0,EE,202CFF7C,extended,3c024413 //Weapon ammo text pos X 34 | patch=0,EE,202CFF80,extended,34420000 //Weapon ammo text pos X - 2 last bytes 35 | 36 | 37 | patch=0,EE,202D18F4,extended,3c0243D4 //Radar Ring down? 38 | patch=0,EE,202D18E4,extended,3c0243AB //Radar Ring up? 39 | patch=0,EE,202D18DC,extended,3c0241e0 //Radar Ring left 40 | patch=0,EE,202D18EC,extended,3c0242c0 //Radar Ring right 41 | 42 | patch=0,EE,2029619C,extended,3c024270 //CRadar::DrawRadarSection width 43 | //patch=0,EE,202961B8,extended,3c0242AE //CRadar::DrawRadarSection height 44 | patch=0,EE,202961A4,extended,3c044278 //CRadar::DrawRadarSection x 45 | patch=0,EE,202961C0,extended,3c0243BF //CRadar::DrawRadarSection y 46 | 47 | patch=0,EE,2029655C,extended,3c024270 //CRadar::DrawRadarSection width 48 | //patch=0,EE,2029657C,extended,3c0242AE //CRadar::DrawRadarSection height 49 | patch=0,EE,20296564,extended,3c034278 //CRadar::DrawRadarSection x 50 | patch=0,EE,20296590,extended,3c0243BF //CRadar::DrawRadarSection y 51 | 52 | patch=0,EE,20296250,extended,3c024270 //CRadar::DrawRadarMask width 53 | //patch=0,EE,20296250,extended,3c0242AE //CRadar::DrawRadarMask height 54 | patch=0,EE,20296268,extended,3c054278 //CRadar::DrawRadarMask x 55 | patch=0,EE,2029626C,extended,3c0243BF //CRadar::DrawRadarMask y 56 | 57 | patch=0,EE,20298508,extended,3c024270 //CRadar::DrawBlips width 58 | patch=0,EE,20298520,extended,3c024278 //CRadar::DrawBlips x 59 | patch=0,EE,20298538,extended,3c0242AE //CRadar::DrawBlips height 60 | patch=0,EE,20298540,extended,3c0243BF //CRadar::DrawBlips y 61 | 62 | patch=0,EE,202986A8,extended,3c024270 //CRadar::DrawBlips width 63 | patch=0,EE,202986D0,extended,3c024278 //CRadar::DrawBlips x 64 | patch=0,EE,202986E4,extended,3c0242AE //CRadar::DrawBlips height 65 | patch=0,EE,202986EC,extended,3c0243BF //CRadar::DrawBlips y 66 | 67 | patch=0,EE,20298bb0,extended,3c024270 //CRadar::DrawBlips width 68 | patch=0,EE,20298BCC,extended,3c024278 //CRadar::DrawBlips x 69 | patch=0,EE,20298BDC,extended,3c0242AE //CRadar::DrawBlips height 70 | patch=0,EE,20298BE4,extended,3c0243BF //CRadar::DrawBlips y 71 | 72 | patch=0,EE,20299338,extended,3c024270 //CRadar::DrawBlips width 73 | patch=0,EE,20299354,extended,3c024278 //CRadar::DrawBlips x 74 | patch=0,EE,20299364,extended,3c0242AE //CRadar::DrawBlips height 75 | patch=0,EE,2029936C,extended,3c0243BF //CRadar::DrawBlips y 76 | 77 | patch=0,EE,20299b28,extended,3c024270 //CRadar::DrawBlips width 78 | patch=0,EE,20299B44,extended,3c024278 //CRadar::DrawBlips x 79 | patch=0,EE,20299B54,extended,3c0242AE //CRadar::DrawBlips height 80 | patch=0,EE,20299B5C,extended,3c0243BF //CRadar::DrawBlips y 81 | 82 | patch=0,EE,2029a2c0,extended,3c024270 //CRadar::DrawBlips width 83 | patch=0,EE,2029A2DC,extended,3c024278 //CRadar::DrawBlips x 84 | patch=0,EE,2029A2EC,extended,3c0242AE //CRadar::DrawBlips height 85 | patch=0,EE,2029A2f4,extended,3c0243BF //CRadar::DrawBlips y 86 | 87 | patch=0,EE,20296FD8,extended,3C0240C6 //lui $v0, 0x40C6 - CRadar::DrawRotatingRadarSprite width 88 | 89 | CSprite2d::Draw((CRect const &, CRGBA const &)) = 0x2D4370 90 | 91 | //patch=0,EE,2029A69C,extended,00000000 92 | 93 | //Disable Movies - DEBUG 94 | //patch=0,EE,2037C020,extended,03e00008 95 | //patch=0,EE,2037C024,extended,00000000 -------------------------------------------------------------------------------- /SLUS-20946/SLUS_209.46.cht: -------------------------------------------------------------------------------- 1 | "GTA - San Andreas /ID SLUS_209.46" 2 | Mastercode 3 | 90532640 0C1538EC 4 | E002FFFF 00700942 5 | 2059D390 0C135858 6 | 2059D3A4 00000000 7 | 8 | 9 | //------------------------------------------------Fixes------------------------------------------------// 10 | 11 | //Linear Filtering for License Plates 12 | 204A48A4 34630002 ori $v1, 2 //RWLINEARFILTER 13 | 14 | //Fixed ammo for melee weapons in cheats 15 | 2059D88C 24060001 li $s2 1 //knife 16 | 2059D998 24060001 li $s2 1 //knife 17 | 2059DB60 24060001 li $s2 1 //chainsaw 18 | 2059DC34 24060001 li $s2 1 //chainsaw 19 | 2059F67C 24060001 li $s2 1 //parachute 20 | 2059F3BC 24060001 li $s2 1 //katana 21 | 22 | //014C cargen counter fix (by spaceeinstein) 23 | 20295AF0 2C61FFFF //slti => sltiu 24 | 20295AF4 10000004 //beqz => b 25 | 26 | // Don't clean the car BEFORE Pay 'n Spray doors close, as it gets cleaned later again anyway! 27 | 202E41CC 00000000 nop 28 | 29 | // Fixed muzzleflash not showing from last bullet 30 | 204071F4 00000000 nop 31 | 32 | // Help boxes showing with big message 33 | // Game seems to assume they can show together 34 | 202AE3A0 00000000 nop 35 | 36 | // Impound garages working correctly 37 | 201C6088 0C0BAA58 jal CGarages::IsPointWithinAnyGarage(CVector &) 38 | 201C63C0 0C0BAA58 jal CGarages::IsPointWithinAnyGarage(CVector &) 39 | 201C6510 0C0BAA58 jal CGarages::IsPointWithinAnyGarage(CVector &) 40 | 41 | // Impounding after busted works 42 | 202A09A4 00000000 nop 43 | 44 | // Weapon icon fix (crosshairs mess up rwRENDERSTATEZWRITEENABLE) 45 | 202AAB44 00000000 nop 46 | 202AB284 00000000 nop 47 | 202AB2B4 00000000 nop 48 | 49 | //Fix 4th texture memory leak on effects 50 | 203D4D50 8E240018 51 | 203D4D64 AE200018 52 | 53 | //-------------------------------------------------HUD-------------------------------------------------// 54 | 55 | //20663C00 3f666666 //Wanted Height 56 | 20663C04 3ecccccd //Wanted Width 57 | //20663C0C 3f8a3d71 //Wanted Shadow Height 58 | 20663C10 3ef5c28f //Wanted Shadow Width 59 | //202AA78C 3c023fc0 //Wanted Vertical Padding 60 | 61 | 2026E03C 3c084270 //Radar Width 62 | 2026ED00 3c024270 //Radar Mask Width 63 | 2026EE30 3c034270 //Radar Mask Width 64 | 2026EF18 3c034270 //Radar Mask Width 65 | 20269528 3c024270 //Radar Width unknown 66 | 2026E658 3c024270 //Radar Width plane green overlay 67 | 202AC8F8 3c024248 //Radar Width plane overlay 68 | 202AC964 3c024270 //Radar Heigth plane overlay 69 | 70 | 202ACC4C 3c0341eb //Radar Disc Width left up - a esquerda dessa porra aqui 71 | 202ACC50 3c0243aa //Radar Disc Width left up - a parte de cima dessa porra aqui 72 | 202ACC60 3c034278 //Radar Disc Width left up - a direita dessa porra aqui 73 | 202ACC64 3c0243bf //Radar Disc Width left up - a parte de baixo dessa porra aqui 74 | 75 | 202ACC98 3c0342be //Radar Disc Width right up - a esquerda dessa porra aqui 76 | 202ACC9c 3c0243aa //Radar Disc Width right up - a parte de cima dessa porra 77 | 202ACCac 3c034278 //Radar Disc Width right up - a direita dessa porra aqui 78 | 202ACCb0 3c0243bf //Radar Disc Width right up - a parte de baixo dessa porra 79 | 80 | 202ACCE4 3c0341eb //Radar Disc Width left down - a esquerda dessa porra aqui 81 | 202ACCE8 3c0243d4 //Radar Disc Width left down - a parte de cima dessa porra 82 | 202ACCF8 3c034278 //Radar Disc Width left down - a direita dessa porra aqui 83 | 202ACCFC 3c0243bf //Radar Disc Width left down - a parte de baixo dessa porra 84 | 85 | 202ACD30 3c0342be //Radar Disc Width right down - a esquerda dessa porra aqui 86 | 202ACD34 3c0243d4 //Radar Disc Width right down - a parte de cima dessa porra 87 | 202ACD44 3c034278 //Radar Disc Width right down - a direita dessa porra aqui 88 | 202ACD48 3c0243bf //Radar Disc Width right down - a parte de baixo dessa porra 89 | 90 | 2026AE54 3c034270 //Radar Blip disc Width 91 | 92 | 2026E04C 3c064278 //Radar X Pos 93 | //2026E0A0 3c0443BF //Radar Y Pos 94 | 2026ED10 3c024278 //Radar Mask X Pos 95 | 2026EE3C 3c044278 //Radar Mask X Pos 96 | 2026EF34 3c044278 //Radar Mask X Pos 97 | 2026AE6C 3c034278 //Radar Blip disc X Pos 98 | 2026E674 3c024278 //Radar X Pos plane green overlay 99 | 202AC900 3c034278 //Radar X Pos plane overlay 100 | 101 | 202A9EF4 3C024210 //Fist Icon Width 102 | 202A9E34 3c024190 //Weapon Icon Width 103 | 202ABA40 2405020D //Weapon Icon Pos X 104 | 202ABA7C 2405020D //Weapon Icon Pos X - Player 2 105 | 106 | 20663748 3e800000 //Ammo Width 107 | 202ABA90 2405021F //Ammo X Pos 108 | 202ABACC 2405021F //Ammo X Pos - Player 2 109 | 110 | 202A9B84 3c0242A8 //Health bar width 111 | 202A9904 2404002F //Armour bar width 112 | 202A9A04 2404002F //Breath bar width 113 | 114 | 202AB51C 24050231 //Armour bar pos x 115 | 202AB560 24050231 //Armour bar pos x 116 | 202AB6B0 24050231 //Breath bar pos x 117 | 202AB6F8 24050231 //Breath bar pos x 118 | 119 | //CHud::DrawBustedWastedMessage width 120 | 202AF568 3C033F90 //lui $v1, 0x3f90 121 | 202AF56C 0C0AA200 //jal _ZN5CFont8SetScaleEf # Jump And Link 122 | 202AF570 44836000 //mtc1 $v1, $f12 123 | 202AF574 0C0AA2F4 //jal _ZN5CFont15SetProportionalEh # Jump And Link 124 | 202AF578 24040001 //li $a0, 1 # Load Immediate 125 | 202AF57C 0C0AA310 //jal _ZN5CFont10SetJustifyEh # Jump And Link 126 | 202AF580 0000202D //move $a0, $zero 127 | 202AF584 0C0AA314 //jal _ZN5CFont14SetOrientationEh # Jump And Link 128 | 202AF588 0000202D //move $a0, $zero 129 | 202AF58C 0C0AA27C //jal _ZN5CFont12SetFontStyleEh # Jump And Link 130 | 202AF590 0000202D //move $a0, $zero 131 | 202AF594 0C0AA2EC //jal _ZN5CFont7SetEdgeEa # Jump And Link 132 | 202AF598 24040003 //li $a0, 3 # Load Immediate 133 | 202AF59C 3C01007C //lui $at, 0x7C # '|' # Load Upper Immediate 134 | 202AF5A0 3C024F00 //lui $v0, 0x4F00 # Load Upper Immediate 135 | 202AF5A4 C42132D8 //lwc1 $f1, _styledText3Alpha # Load Word to FPU 136 | 202AF5A8 44820000 //mtc1 $v0, $f0 # Move to FPU 137 | 138 | //CHud::DrawSuccessFailedMessage width 139 | 202AF0FC 3C033f59 //lui $v1, 0x3f59 140 | 202AF100 0C0AA200 //jal _ZN5CFont8SetScaleEf # Jump And Link 141 | 202AF104 44836000 //mtc1 $v1, $f12 142 | 202AF108 0C0AA2F4 //jal _ZN5CFont15SetProportionalEh # Jump And Link 143 | 202AF10C 24040001 //li $a0, 1 # Load Immediate 144 | 202AF110 0C0AA310 //jal _ZN5CFont10SetJustifyEh # Jump And Link 145 | 202AF114 0000202D //move $a0, $zero 146 | 202AF118 0C0AA314 //jal _ZN5CFont14SetOrientationEh # Jump And Link 147 | 202AF11C 0000202D //move $a0, $zero 148 | 202AF120 2402024E //li $v0, 0x24E # Load Immediate 149 | 202AF124 44820000 //mtc1 $v0, $f0 # Move to FPU 150 | 202AF128 0C0AA29C //jal _ZN5CFont13SetCentreSizeEf # Jump And Link 151 | 202AF12C 46800320 //cvt.s.w $f12, $f0 # Floating-point Convert to Single Fixed-Point Format 152 | 202AF130 0C0AA27C //jal _ZN5CFont12SetFontStyleEh # Jump And Link 153 | 202AF134 24040003 //li $a0, 3 # Load Immediate 154 | 202AF138 0C0AA2EC //jal _ZN5CFont7SetEdgeEa # Jump And Link 155 | 202AF13C 24040002 //li $a0, 2 # Load Immediate 156 | 202AF140 3C01007C //lui $at, 0x7C # '|' # Load Upper Immediate 157 | 202AF144 3C024F00 //lui $v0, 0x4F00 # Load Upper Immediate 158 | 202AF148 C42132D0 //lwc1 $f1, flt_7C32D0 # Load Word to FPU 159 | 202AF14C 44820000 //mtc1 $v0, $f0 # Move to FPU 160 | 161 | //CRadar::DrawRadarSprite width 162 | 2026D384 3C034100 //lui $v1, 0x4100 # Load Upper Immediate 163 | 2026D388 0200102D //move $v0, $s0 164 | 2026D38C 44831000 //mtc1 $v1, $f2 # Move to FPU 165 | 2026D390 3C0340C6 //lui $v1, 0x40C6 166 | 2026D394 44831800 //mtc1 $v1, $f3 # Move to FPU 167 | 2026D398 27A50050 //addiu $a1, $sp, 0x70+var_20 # a2 168 | 2026D39C 27A6006C //addiu $a2, $sp, 0x70+var_4 # rgbaColor 169 | 2026D3A0 4603A801 //sub.s $f0, $f21, $f3 # Floating-point Subtract 170 | 2026D3A4 00021880 //sll $v1, $v0, 2 # Shift Left Logical 171 | 2026D3A8 3C020070 //li $v0, dword_703A70 # Load Immediate 172 | 2026D3AC 24423A70 // 173 | 2026D3B0 00432021 //addu $a0, $v0, $v1 # a1 174 | 2026D3B4 E7A00050 //swc1 $f0, 0x70+var_20($sp) # Store Word from FPU 175 | 2026D3B8 4603A800 //add.s $f0, $f21, $f3 # Floating-point Add 176 | 2026D3BC E7A00058 //swc1 $f0, 0x70+var_18($sp) # Store Word from FPU 177 | 2026D3C0 4602A041 //sub.s $f1, $f20, $f2 # Floating-point Subtract 178 | 2026D3C4 4602A000 //add.s $f0, $f20, $f2 # Floating-point Add 179 | 2026D3C8 E7A1005C //swc1 $f1, 0x70+var_14($sp) # Store Word from FPU 180 | 2026D3CC 0C0AC258 //jal _ZN9CSprite2d4DrawERK5CRectRK5CRGBA # Jump And Link 181 | 2026D3D0 E7A00054 //swc1 $f0, 0x70+var_1C($sp) # Store Word from FPU 182 | 2026D3D4 0200282D //move $a1, $s0 183 | 2026D3D8 0C09A670 //jal _ZN6CRadar19AddBlipToLegendListEhi # Jump And Link 184 | 2026D3DC 0000202D //move $a0, $zero 185 | 2026D3E0 DFBF0040 //ld $ra, 0x70+var_30($sp) # Load Doubleword 186 | 2026D3E4 C7B50004 //lwc1 $f21, 0x70+var_6C($sp) # Load Word to FPU 187 | 2026D3E8 7BB20030 //lq $s2, 0x70+var_40($sp) # Load Quadword 188 | 2026D3EC C7B40000 //lwc1 $f20, 0x70+var_70($sp) # Load Word to FPU 189 | 2026D3F0 7BB10020 //lq $s1, 0x70+var_50($sp) # Load Quadword 190 | 2026D3F4 7BB00010 //lq $s0, 0x70+var_60($sp) # Load Quadword 191 | 2026D3F8 03E00008 //jr $ra # Jump Register 192 | 2026D3FC 27BD0070 //addiu $sp, 0x70 # Add Immediate Unsigned 193 | 194 | //CRadar::DrawBlips - Radar Centre 195 | 2026863C 24050006 196 | 20268644 24060008 197 | 20268674 24050006 198 | 2026867C 24060008 199 | 200 | 202ADA20 3c033ecc //mission timers 201 | 202AD82C 3c023f33 //Vehicle name width 202 | 202AFCAC 3c023f33 //Mission title width 203 | 204 | 202AD29C c78c8384 //Area name width hook - 0x663474 205 | 206 | 20663bc8 3ecccccd //Money Width 207 | 208 | 20663C58 3ecccccd //Subtitles Width 209 | 210 | 20663674 3EB33333 //Help box Width 211 | 212 | 202AC440 C78C82BC //DrawVitalStats weekday width hook 213 | 202AC438 C78D899C //DrawVitalStats weekday height hook 214 | 215 | 2023E5C4 3c023f33 //CMenuManager::DrawWindow title width 216 | 217 | 202ACAB4 3C0341d4 //AltitudeBar width 218 | 202ACC10 3C0241e5 //AltitudeCounter width 219 | 202ACC00 3C034190 //AltitudeCounter X Pos 220 | 221 | //Set drop shadows to outline 222 | 202A8B90 3c01007c 223 | 202A8B94 a0202346 224 | 202A8B98 3c01007c 225 | 202A8B9C a024234b 226 | 202A8Ba8 a024234c 227 | 228 | //--------------------------------------------------FOV------------------------------------------------// 229 | 230 | 2021DF84 0C044C2F //SetFOV Call 231 | 20242D54 0C044C2F //SetFOV Call 232 | 2021DF84 0C044C2F //SetFOV Call 233 | 234 | 201130BC 3C013F9D //New SetFOV 235 | 201130C0 44810000 //New SetFOV 236 | 201130C4 46006302 //New SetFOV 237 | 201130C8 03e00080 //New SetFOV 238 | 201130CC E78C9A90 //New SetFOV 239 | 240 | 2021DFE0 3c0242a0 // Emergency Vehicles Fix 241 | 242 | 202EE0E0 3C024120 // Fix sky multitude 243 | 202EE0E8 00000000 // Fix sky multitude 244 | 245 | 2020A484 3C024302 // Set vehicle max FOV 246 | 247 | //-------------------------------------------------Menu------------------------------------------------// 248 | 249 | 20234A44 24040001 //Set Menu Text Body 250 | 251 | 20234A14 c78c8b68 //Hook Menu Items Width to Subtitles width 252 | 202354F8 c78c8b68 //Hook Menu Items Width to Subtitles width 253 | 20242190 3c023ecc //Set Menu Labels Width 254 | 255 | //-------------------------------------------------Debug-----------------------------------------------// 256 | 257 | //20515870 00000000 //Disable radiosity 258 | //2039B53C 24040001 //Set VSync Mode to 60 FPS 259 | //20245790 00000000 //Skip MPEG Decoder 260 | //202457B0 00000000 //Skip MPEG Decoder 261 | -------------------------------------------------------------------------------- /SLUS-20946/399A49CA.pnach: -------------------------------------------------------------------------------- 1 | gametitle=Grand Theft Auto: San Andreas 2 | comment=GTA San Andreas Modern Widescreen Fix 3 | 4 | //------------------------------------------------Fixes------------------------------------------------// 5 | 6 | //Linear Filtering for License Plates 7 | patch=0,EE,204A48A4,extended,34630002 ori $v1, 2 //RWLINEARFILTER 8 | 9 | //Fixed ammo for melee weapons in cheats 10 | patch=0,EE,2059D88C,extended,24060001 li $s2 1 //knife 11 | patch=0,EE,2059D998,extended,24060001 li $s2 1 //knife 12 | patch=0,EE,2059DB60,extended,24060001 li $s2 1 //chainsaw 13 | patch=0,EE,2059DC34,extended,24060001 li $s2 1 //chainsaw 14 | patch=0,EE,2059F67C,extended,24060001 li $s2 1 //parachute 15 | patch=0,EE,2059F3BC,extended,24060001 li $s2 1 //katana 16 | 17 | //014C cargen counter fix (by spaceeinstein) 18 | patch=0,EE,20295AF0,extended,2C61FFFF //slti => sltiu 19 | patch=0,EE,20295AF4,extended,10000004 //beqz => b 20 | 21 | // Don't clean the car BEFORE Pay 'n Spray doors close, as it gets cleaned later again anyway! 22 | patch=0,EE,202E41CC,extended,00000000 nop 23 | 24 | // Fixed muzzleflash not showing from last bullet 25 | patch=0,EE,204071F4,extended,00000000 nop 26 | 27 | // Help boxes showing with big message 28 | // Game seems to assume they can show together 29 | patch=0,EE,202AE3A0,extended,00000000 nop 30 | 31 | // Impound garages working correctly 32 | patch=0,EE,201C6088,extended,0C0BAA58 jal CGarages::IsPointWithinAnyGarage(CVector &) 33 | patch=0,EE,201C63C0,extended,0C0BAA58 jal CGarages::IsPointWithinAnyGarage(CVector &) 34 | patch=0,EE,201C6510,extended,0C0BAA58 jal CGarages::IsPointWithinAnyGarage(CVector &) 35 | 36 | // Impounding after busted works 37 | patch=0,EE,202A09A4,extended,00000000 nop 38 | 39 | // Weapon icon fix (crosshairs mess up rwRENDERSTATEZWRITEENABLE) 40 | patch=0,EE,202AAB44,extended,00000000 nop 41 | patch=0,EE,202AB284,extended,00000000 nop 42 | patch=0,EE,202AB2B4,extended,00000000 nop 43 | 44 | //Fix 4th texture memory leak on effects 45 | patch=0,EE,203D4D50,extended,8E240018 46 | patch=0,EE,203D4D64,extended,AE200018 47 | 48 | //-------------------------------------------------HUD-------------------------------------------------// 49 | 50 | //patch=0,EE,20663C00,extended,3f666666 //Wanted Height 51 | patch=0,EE,20663C04,extended,3ecccccd //Wanted Width 52 | //patch=0,EE,20663C0C,extended,3f8a3d71 //Wanted Shadow Height 53 | patch=0,EE,20663C10,extended,3ef5c28f //Wanted Shadow Width 54 | //patch=0,EE,202AA78C,extended,3c023fc0 //Wanted Vertical Padding 55 | 56 | patch=0,EE,2026E03C,extended,3c084270 //Radar Width 57 | patch=0,EE,2026ED00,extended,3c024270 //Radar Mask Width 58 | patch=0,EE,2026EE30,extended,3c034270 //Radar Mask Width 59 | patch=0,EE,2026EF18,extended,3c034270 //Radar Mask Width 60 | patch=0,EE,20269528,extended,3c024270 //Radar Width unknown 61 | patch=0,EE,2026E658,extended,3c024270 //Radar Width plane green overlay 62 | patch=0,EE,202AC8F8,extended,3c024248 //Radar Width plane overlay 63 | patch=0,EE,202AC964,extended,3c024270 //Radar Heigth plane overlay 64 | 65 | patch=0,EE,202ACC4C,extended,3c0341eb //Radar Disc Width left up - a esquerda dessa porra aqui 66 | patch=0,EE,202ACC50,extended,3c0243aa //Radar Disc Width left up - a parte de cima dessa porra aqui 67 | patch=0,EE,202ACC60,extended,3c034278 //Radar Disc Width left up - a direita dessa porra aqui 68 | patch=0,EE,202ACC64,extended,3c0243bf //Radar Disc Width left up - a parte de baixo dessa porra aqui 69 | 70 | patch=0,EE,202ACC98,extended,3c0342be //Radar Disc Width right up - a esquerda dessa porra aqui 71 | patch=0,EE,202ACC9c,extended,3c0243aa //Radar Disc Width right up - a parte de cima dessa porra 72 | patch=0,EE,202ACCac,extended,3c034278 //Radar Disc Width right up - a direita dessa porra aqui 73 | patch=0,EE,202ACCb0,extended,3c0243bf //Radar Disc Width right up - a parte de baixo dessa porra 74 | 75 | patch=0,EE,202ACCE4,extended,3c0341eb //Radar Disc Width left down - a esquerda dessa porra aqui 76 | patch=0,EE,202ACCE8,extended,3c0243d4 //Radar Disc Width left down - a parte de cima dessa porra 77 | patch=0,EE,202ACCF8,extended,3c034278 //Radar Disc Width left down - a direita dessa porra aqui 78 | patch=0,EE,202ACCFC,extended,3c0243bf //Radar Disc Width left down - a parte de baixo dessa porra 79 | 80 | patch=0,EE,202ACD30,extended,3c0342be //Radar Disc Width right down - a esquerda dessa porra aqui 81 | patch=0,EE,202ACD34,extended,3c0243d4 //Radar Disc Width right down - a parte de cima dessa porra 82 | patch=0,EE,202ACD44,extended,3c034278 //Radar Disc Width right down - a direita dessa porra aqui 83 | patch=0,EE,202ACD48,extended,3c0243bf //Radar Disc Width right down - a parte de baixo dessa porra 84 | 85 | patch=0,EE,2026AE54,extended,3c034270 //Radar Blip disc Width 86 | 87 | patch=0,EE,2026E04C,extended,3c064278 //Radar X Pos 88 | //patch=0,EE,2026E0A0,extended,3c0443BF //Radar Y Pos 89 | patch=0,EE,2026ED10,extended,3c024278 //Radar Mask X Pos 90 | patch=0,EE,2026EE3C,extended,3c044278 //Radar Mask X Pos 91 | patch=0,EE,2026EF34,extended,3c044278 //Radar Mask X Pos 92 | patch=0,EE,2026AE6C,extended,3c034278 //Radar Blip disc X Pos 93 | patch=0,EE,2026E674,extended,3c024278 //Radar X Pos plane green overlay 94 | patch=0,EE,202AC900,extended,3c034278 //Radar X Pos plane overlay 95 | 96 | patch=0,EE,202A9EF4,extended,3C024210 //Fist Icon Width 97 | patch=0,EE,202A9E34,extended,3c024190 //Weapon Icon Width 98 | patch=0,EE,202ABA40,extended,2405020D //Weapon Icon Pos X 99 | patch=0,EE,202ABA7C,extended,2405020D //Weapon Icon Pos X - Player 2 100 | 101 | patch=0,EE,20663748,extended,3e800000 //Ammo Width 102 | patch=0,EE,202ABA90,extended,2405021F //Ammo X Pos 103 | patch=0,EE,202ABACC,extended,2405021F //Ammo X Pos - Player 2 104 | 105 | patch=0,EE,202A9B84,extended,3c0242A8 //Health bar width 106 | patch=0,EE,202A9904,extended,2404002F //Armour bar width 107 | patch=0,EE,202A9A04,extended,2404002F //Breath bar width 108 | 109 | patch=0,EE,202AB51C,extended,24050231 //Armour bar pos x 110 | patch=0,EE,202AB560,extended,24050231 //Armour bar pos x 111 | patch=0,EE,202AB6B0,extended,24050231 //Breath bar pos x 112 | patch=0,EE,202AB6F8,extended,24050231 //Breath bar pos x 113 | 114 | //CHud::DrawBustedWastedMessage width 115 | patch=0,EE,202AF568,extended,3C033F90 //lui $v1, 0x3f90 116 | patch=0,EE,202AF56C,extended,0C0AA200 //jal _ZN5CFont8SetScaleEf # Jump And Link 117 | patch=0,EE,202AF570,extended,44836000 //mtc1 $v1, $f12 118 | patch=0,EE,202AF574,extended,0C0AA2F4 //jal _ZN5CFont15SetProportionalEh # Jump And Link 119 | patch=0,EE,202AF578,extended,24040001 //li $a0, 1 # Load Immediate 120 | patch=0,EE,202AF57C,extended,0C0AA310 //jal _ZN5CFont10SetJustifyEh # Jump And Link 121 | patch=0,EE,202AF580,extended,0000202D //move $a0, $zero 122 | patch=0,EE,202AF584,extended,0C0AA314 //jal _ZN5CFont14SetOrientationEh # Jump And Link 123 | patch=0,EE,202AF588,extended,0000202D //move $a0, $zero 124 | patch=0,EE,202AF58C,extended,0C0AA27C //jal _ZN5CFont12SetFontStyleEh # Jump And Link 125 | patch=0,EE,202AF590,extended,0000202D //move $a0, $zero 126 | patch=0,EE,202AF594,extended,0C0AA2EC //jal _ZN5CFont7SetEdgeEa # Jump And Link 127 | patch=0,EE,202AF598,extended,24040003 //li $a0, 3 # Load Immediate 128 | patch=0,EE,202AF59C,extended,3C01007C //lui $at, 0x7C # '|' # Load Upper Immediate 129 | patch=0,EE,202AF5A0,extended,3C024F00 //lui $v0, 0x4F00 # Load Upper Immediate 130 | patch=0,EE,202AF5A4,extended,C42132D8 //lwc1 $f1, _styledText3Alpha # Load Word to FPU 131 | patch=0,EE,202AF5A8,extended,44820000 //mtc1 $v0, $f0 # Move to FPU 132 | 133 | //CHud::DrawSuccessFailedMessage width 134 | patch=0,EE,202AF0FC,extended,3C033f59 //lui $v1, 0x3f59 135 | patch=0,EE,202AF100,extended,0C0AA200 //jal _ZN5CFont8SetScaleEf # Jump And Link 136 | patch=0,EE,202AF104,extended,44836000 //mtc1 $v1, $f12 137 | patch=0,EE,202AF108,extended,0C0AA2F4 //jal _ZN5CFont15SetProportionalEh # Jump And Link 138 | patch=0,EE,202AF10C,extended,24040001 //li $a0, 1 # Load Immediate 139 | patch=0,EE,202AF110,extended,0C0AA310 //jal _ZN5CFont10SetJustifyEh # Jump And Link 140 | patch=0,EE,202AF114,extended,0000202D //move $a0, $zero 141 | patch=0,EE,202AF118,extended,0C0AA314 //jal _ZN5CFont14SetOrientationEh # Jump And Link 142 | patch=0,EE,202AF11C,extended,0000202D //move $a0, $zero 143 | patch=0,EE,202AF120,extended,2402024E //li $v0, 0x24E # Load Immediate 144 | patch=0,EE,202AF124,extended,44820000 //mtc1 $v0, $f0 # Move to FPU 145 | patch=0,EE,202AF128,extended,0C0AA29C //jal _ZN5CFont13SetCentreSizeEf # Jump And Link 146 | patch=0,EE,202AF12C,extended,46800320 //cvt.s.w $f12, $f0 # Floating-point Convert to Single Fixed-Point Format 147 | patch=0,EE,202AF130,extended,0C0AA27C //jal _ZN5CFont12SetFontStyleEh # Jump And Link 148 | patch=0,EE,202AF134,extended,24040003 //li $a0, 3 # Load Immediate 149 | patch=0,EE,202AF138,extended,0C0AA2EC //jal _ZN5CFont7SetEdgeEa # Jump And Link 150 | patch=0,EE,202AF13C,extended,24040002 //li $a0, 2 # Load Immediate 151 | patch=0,EE,202AF140,extended,3C01007C //lui $at, 0x7C # '|' # Load Upper Immediate 152 | patch=0,EE,202AF144,extended,3C024F00 //lui $v0, 0x4F00 # Load Upper Immediate 153 | patch=0,EE,202AF148,extended,C42132D0 //lwc1 $f1, flt_7C32D0 # Load Word to FPU 154 | patch=0,EE,202AF14C,extended,44820000 //mtc1 $v0, $f0 # Move to FPU 155 | 156 | //CRadar::DrawRadarSprite width 157 | patch=0,EE,2026D384,extended,3C034100 //lui $v1, 0x4100 # Load Upper Immediate 158 | patch=0,EE,2026D388,extended,0200102D //move $v0, $s0 159 | patch=0,EE,2026D38C,extended,44831000 //mtc1 $v1, $f2 # Move to FPU 160 | patch=0,EE,2026D390,extended,3C0340C6 //lui $v1, 0x40C6 161 | patch=0,EE,2026D394,extended,44831800 //mtc1 $v1, $f3 # Move to FPU 162 | patch=0,EE,2026D398,extended,27A50050 //addiu $a1, $sp, 0x70+var_20 # a2 163 | patch=0,EE,2026D39C,extended,27A6006C //addiu $a2, $sp, 0x70+var_4 # rgbaColor 164 | patch=0,EE,2026D3A0,extended,4603A801 //sub.s $f0, $f21, $f3 # Floating-point Subtract 165 | patch=0,EE,2026D3A4,extended,00021880 //sll $v1, $v0, 2 # Shift Left Logical 166 | patch=0,EE,2026D3A8,extended,3C020070 //li $v0, dword_703A70 # Load Immediate 167 | patch=0,EE,2026D3AC,extended,24423A70 // 168 | patch=0,EE,2026D3B0,extended,00432021 //addu $a0, $v0, $v1 # a1 169 | patch=0,EE,2026D3B4,extended,E7A00050 //swc1 $f0, 0x70+var_20($sp) # Store Word from FPU 170 | patch=0,EE,2026D3B8,extended,4603A800 //add.s $f0, $f21, $f3 # Floating-point Add 171 | patch=0,EE,2026D3BC,extended,E7A00058 //swc1 $f0, 0x70+var_18($sp) # Store Word from FPU 172 | patch=0,EE,2026D3C0,extended,4602A041 //sub.s $f1, $f20, $f2 # Floating-point Subtract 173 | patch=0,EE,2026D3C4,extended,4602A000 //add.s $f0, $f20, $f2 # Floating-point Add 174 | patch=0,EE,2026D3C8,extended,E7A1005C //swc1 $f1, 0x70+var_14($sp) # Store Word from FPU 175 | patch=0,EE,2026D3CC,extended,0C0AC258 //jal _ZN9CSprite2d4DrawERK5CRectRK5CRGBA # Jump And Link 176 | patch=0,EE,2026D3D0,extended,E7A00054 //swc1 $f0, 0x70+var_1C($sp) # Store Word from FPU 177 | patch=0,EE,2026D3D4,extended,0200282D //move $a1, $s0 178 | patch=0,EE,2026D3D8,extended,0C09A670 //jal _ZN6CRadar19AddBlipToLegendListEhi # Jump And Link 179 | patch=0,EE,2026D3DC,extended,0000202D //move $a0, $zero 180 | patch=0,EE,2026D3E0,extended,DFBF0040 //ld $ra, 0x70+var_30($sp) # Load Doubleword 181 | patch=0,EE,2026D3E4,extended,C7B50004 //lwc1 $f21, 0x70+var_6C($sp) # Load Word to FPU 182 | patch=0,EE,2026D3E8,extended,7BB20030 //lq $s2, 0x70+var_40($sp) # Load Quadword 183 | patch=0,EE,2026D3EC,extended,C7B40000 //lwc1 $f20, 0x70+var_70($sp) # Load Word to FPU 184 | patch=0,EE,2026D3F0,extended,7BB10020 //lq $s1, 0x70+var_50($sp) # Load Quadword 185 | patch=0,EE,2026D3F4,extended,7BB00010 //lq $s0, 0x70+var_60($sp) # Load Quadword 186 | patch=0,EE,2026D3F8,extended,03E00008 //jr $ra # Jump Register 187 | patch=0,EE,2026D3FC,extended,27BD0070 //addiu $sp, 0x70 # Add Immediate Unsigned 188 | 189 | //CRadar::DrawBlips - Radar Centre 190 | patch=0,EE,2026863C,extended,24050006 191 | patch=0,EE,20268644,extended,24060008 192 | patch=0,EE,20268674,extended,24050006 193 | patch=0,EE,2026867C,extended,24060008 194 | 195 | patch=0,EE,202ADA20,extended,3c033ecc //mission timers 196 | patch=0,EE,202AD82C,extended,3c023f33 //Vehicle name width 197 | patch=0,EE,202AFCAC,extended,3c023f33 //Mission title width 198 | 199 | patch=0,EE,202AD29C,extended,c78c8384 //Area name width hook - 0x663474 200 | 201 | patch=0,EE,20663bc8,extended,3ecccccd //Money Width 202 | 203 | patch=0,EE,20663C58,extended,3ecccccd //Subtitles Width 204 | 205 | patch=0,EE,20663674,extended,3EB33333 //Help box Width 206 | 207 | patch=0,EE,202AC440,extended,C78C82BC //DrawVitalStats weekday width hook 208 | patch=0,EE,202AC438,extended,C78D899C //DrawVitalStats weekday height hook 209 | 210 | patch=0,EE,2023E5C4,extended,3c023f33 //CMenuManager::DrawWindow title width 211 | 212 | patch=0,EE,202ACAB4,extended,3C0341d4 //AltitudeBar width 213 | patch=0,EE,202ACC10,extended,3C0241e5 //AltitudeCounter width 214 | patch=0,EE,202ACC00,extended,3C034190 //AltitudeCounter X Pos 215 | 216 | //Set drop shadows to outline 217 | patch=0,EE,202A8B90,extended,3c01007c 218 | patch=0,EE,202A8B94,extended,a0202346 219 | patch=0,EE,202A8B98,extended,3c01007c 220 | patch=0,EE,202A8B9C,extended,a024234b 221 | patch=0,EE,202A8Ba8,extended,a024234c 222 | 223 | //--------------------------------------------------FOV------------------------------------------------// 224 | 225 | patch=0,EE,2021DF84,extended,0C044C2F //SetFOV Call 226 | patch=0,EE,20242D54,extended,0C044C2F //SetFOV Call 227 | patch=0,EE,2021DF84,extended,0C044C2F //SetFOV Call 228 | 229 | patch=0,EE,201130BC,extended,3C013F9D //New SetFOV 230 | patch=0,EE,201130C0,extended,44810000 //New SetFOV 231 | patch=0,EE,201130C4,extended,46006302 //New SetFOV 232 | patch=0,EE,201130C8,extended,03e00080 //New SetFOV 233 | patch=0,EE,201130CC,extended,E78C9A90 //New SetFOV 234 | 235 | patch=0,EE,2021DFE0,extended,3c0242a0 // Emergency Vehicles Fix 236 | 237 | patch=0,EE,202EE0E0,extended,3C024120 // Fix sky multitude 238 | patch=0,EE,202EE0E8,extended,00000000 // Fix sky multitude 239 | 240 | patch=0,EE,2020A484,extended,3C024302 // Set vehicle max FOV 241 | 242 | //-------------------------------------------------Menu------------------------------------------------// 243 | 244 | patch=0,EE,20234A44,extended,24040001 //Set Menu Text Body 245 | 246 | patch=0,EE,20234A14,extended,c78c8b68 //Hook Menu Items Width to Subtitles width 247 | patch=0,EE,202354F8,extended,c78c8b68 //Hook Menu Items Width to Subtitles width 248 | patch=0,EE,20242190,extended,3c023ecc //Set Menu Labels Width 249 | 250 | //-------------------------------------------------Debug-----------------------------------------------// 251 | 252 | //patch=0,EE,20515870,extended,00000000 //Disable radiosity 253 | //patch=0,EE,2039B53C,extended,24040001 //Set VSync Mode to 60 FPS 254 | //patch=0,EE,20245790,extended,00000000 //Skip MPEG Decoder 255 | //patch=0,EE,202457B0,extended,00000000 //Skip MPEG Decoder 256 | --------------------------------------------------------------------------------