Jump to content
    1. Welcome to GTAForums!

    1. GTANet.com

    1. GTA Online

      1. Los Santos Drug Wars
      2. Updates
      3. Find Lobbies & Players
      4. Guides & Strategies
      5. Vehicles
      6. Content Creator
      7. Help & Support
    2. Red Dead Online

      1. Blood Money
      2. Frontier Pursuits
      3. Find Lobbies & Outlaws
      4. Help & Support
    3. Crews

    1. Grand Theft Auto Series

      1. Bugs*
      2. St. Andrews Cathedral
    2. GTA VI

    3. GTA V

      1. Guides & Strategies
      2. Help & Support
    4. GTA IV

      1. The Lost and Damned
      2. The Ballad of Gay Tony
      3. Guides & Strategies
      4. Help & Support
    5. GTA San Andreas

      1. Classic GTA SA
      2. Guides & Strategies
      3. Help & Support
    6. GTA Vice City

      1. Classic GTA VC
      2. Guides & Strategies
      3. Help & Support
    7. GTA III

      1. Classic GTA III
      2. Guides & Strategies
      3. Help & Support
    8. Portable Games

      1. GTA Chinatown Wars
      2. GTA Vice City Stories
      3. GTA Liberty City Stories
    9. Top-Down Games

      1. GTA Advance
      2. GTA 2
      3. GTA
    1. Red Dead Redemption 2

      1. PC
      2. Help & Support
    2. Red Dead Redemption

    1. GTA Mods

      1. GTA V
      2. GTA IV
      3. GTA III, VC & SA
      4. Tutorials
    2. Red Dead Mods

      1. Documentation
    3. Mod Showroom

      1. Scripts & Plugins
      2. Maps
      3. Total Conversions
      4. Vehicles
      5. Textures
      6. Characters
      7. Tools
      8. Other
      9. Workshop
    4. Featured Mods

      1. Design Your Own Mission
      2. OpenIV
      3. GTA: Underground
      4. GTA: Liberty City
      5. GTA: State of Liberty
    1. Rockstar Games

    2. Rockstar Collectors

    1. Off-Topic

      1. General Chat
      2. Gaming
      3. Technology
      4. Movies & TV
      5. Music
      6. Sports
      7. Vehicles
    2. Expression

      1. Graphics / Visual Arts
      2. GFX Requests & Tutorials
      3. Writers' Discussion
      4. Debates & Discussion
    1. Announcements

    2. Support

    3. Suggestions

Happy Holidays from the GTANet team!

Memory Address In GTA SA Mobile


Whytz SA
 Share

Recommended Posts

Whytz SA

Hi Guys, Can You help me?

in Yesterday i make cleo cheats but i getting problem in memory address

I want Make the player is immortal but is getting problem in opcodes :

0DD9: write_mem_addr 0x96916D value 1 size 1 add_ib 0 protect 0

I know infinite health addr is 0x96916D but i try in my gta sa mobile, isnt work

Please help me, have i wrong in implementation of opcodes?

Link to comment
Share on other sites

19 hours ago, Whytz SA said:

Please help me, have i wrong in implementation of opcodes?

The main problem is that the address you are working with is for PC. Android requires a much different strategy for finding addresses. It's too late to explain fully. Hopefully you can figure it out based on these notes. Also, I made quite a few guesses and have not verified anything. My confidence in these codes is not very high.

 

0DD0: [email protected] = get_label_addr @_ZN6CCheat15m_aCheatsActiveE
0DD1: [email protected] = get_func_addr_by_cstr_name [email protected]
000A: [email protected] += 0x7 // TogglePlayerInvincibility = 7
0DD9: write_mem_addr [email protected] value 1 size 1 add_ib 0 protect 0

004E: terminate_this_script 
//outside of the main body of the script
:_ZN6CCheat15m_aCheatsActiveE
hex
"_ZN6CCheat15m_aCheatsActiveE" 00
end

 

Basically you are trying to change one byte in a block of flags for each cheat. Sometimes setting the flag will implement a change to the environment; but sometimes the cheat requires a function that executes codes (like spawn a vehicle). In case I've missed the target flag, here's a list of cheats that might help you narrow the search for the proper flag.

 

Spoiler
WeaponCheat1 = 0
WeaponCheat2 = 1
WeaponCheat3 = 2
WeaponCheat4 = 3
TimeTravelCheat = 4
ScriptBypassCheat = 5
ShowMappingsCheat = 6
TogglePlayerInvincibility = 7
ToggleShowTapToTarget = 8
ToggleShowTargeting = 9

 

 

Edited by OrionSR
Link to comment
Share on other sites

Whytz SA
1 hour ago, OrionSR said:

The main problem is that the address you are working with is for PC. Android requires a much different strategy for finding addresses. It's too late to explain fully. Hopefully you can figure it out based on these notes. Also, I made quite a few guesses and have not verified anything. My confidence in these codes is not very high.

 

0DD0: [email protected] = get_label_addr @_ZN6CCheat15m_aCheatsActiveE
0DD1: [email protected] = get_func_addr_by_cstr_name [email protected]
000A: [email protected] += 0x7 // TogglePlayerInvincibility = 7
0DD9: write_mem_addr [email protected] value 1 size 1 add_ib 0 protect 0

004E: terminate_this_script 
//outside of the main body of the script
:_ZN6CCheat15m_aCheatsActiveE
hex
"_ZN6CCheat15m_aCheatsActiveE" 00
end

 

Basically you are trying to change one byte in a block of flags for each cheat. Sometimes setting the flag will implement a change to the environment; but sometimes the cheat requires a function that executes codes (like spawn a vehicle). In case I've missed the target flag, here's a list of cheats that might help you narrow the search for the proper flag.

 

  Reveal hidden contents
CWeaponCheat1 = 0
CWeaponCheat2 = 1
CWeaponCheat3 = 2
CWeaponCheat4 = 3
CTimeTravelCheat = 4
CScriptBypassCheat = 5
CShowMappingsCheat = 6
CTogglePlayerInvincibility = 7
CToggleShowTapToTarget = 8
CToggleShowTargeting = 9
CMoneyArmourHealthCheat = 10
CWantedLevelUpCheat = 11
CWantedLevelDownCheat = 12
CSunnyWeatherCheat = 13
CExtraSunnyWeatherCheat = 14
CCloudyWeatherCheat = 15
CRainyWeatherCheat = 16
CFoggyWeatherCheat = 17
CFastTimeCheat = 18
CSlowTimeCheat = 19
CMayhemCheat = 20
CEverybodyAttacksPlayerCheat = 21
CTankCheat = 22
CStockCarCheat = 23
CStockCar2Cheat = 24
CStockCar3Cheat = 25
CStockCar4Cheat = 26
CHearseCheat = 27
CLovefistCheat = 28
CTrashmasterCheat = 29
CGolfcartCheat = 30
CBlowUpCarsCheat = 31
CSuicideCheat = 32
CPinkCarsCheat = 33
CBlackCarsCheat = 34
CFatCheat = 35
CMuscleCheat = 36
CTheGamblerCheat = 37
CSkinnyCheat = 38
CElvisLivesCheat = 39
CVillagePeopleCheat = 40
CBeachPartyCheat = 41
CGangsCheat = 42
CGangLandCheat = 43
CNinjaCheat = 44
CLoveConquersAllCheat = 45
CAllCarsAresh*tCheat = 46
CAllCarsAreGreatCheat = 47
CFlyboyCheat = 48
CVortexCheat = 49
CMidnightCheat = 50
CDuskCheat = 51
CStormCheat = 52
CSandstormCheat = 53
CPredatorCheat = 54
CParachuteCheat = 55
CJetpackCheat = 56
CNotWantedCheat = 57
CWantedCheat(CCheat = 58
CRiotCheat = 59
CFunhouseCheat = 60
CAdrenalineCheat = 61
CDrivebyCheat = 62
CCountrysideInvasionCheat = 63
CStaminaCheat = 64
CWeaponSkillsCheat = 65
CVehicleSkillsCheat = 66
CApacheCheat = 67
CQuadCheat = 68
CTankerCheat = 69
CDozerCheat = 70
CStuntPlaneCheat = 71
CMonsterTruckCheat = 72
CWeaponSlotCheat = 73
CxboxHelperCheat = 74

 

 

Thank You OrionSR for Replying, but can you share example of script? I try this but isnt work :

 

{$CLEO .csi}

 

thread 'Immortal'

 

 

 

:IMMOR

 

0DD0: [email protected] = get_label_addr @_ZN6CCheat15m_aCheatsActiveE

 

0DD1: [email protected] = get_func_addr_by_cstr_name [email protected]

 

000A: [email protected] += 0x7 // TogglePlayerInvincibility = 7

 

0DD9: write_mem_addr [email protected] value 1 size 1 add_ib 0 protect 0

 

end_thread

 

 

 

:_ZN6CCheat15m_aCheatsActiveE

 

hex

 

"_ZN6CCheat15m_aCheatsActiveE" 00

 

end

Link to comment
Share on other sites

6 hours ago, Whytz SA said:

I try this but isnt work

That is disappointing but not a big surprise. Your script looks fine. I think the problem is due to unlucky guesses.

 

Let's try another guess. This code is very likely to crash or do nothing but the label sounds promising. Maybe we'll be lucky. If this script does not work then throw it out. The previous strategy is more flexible.

{$CLEO .csi}
0000:

0DD0: [email protected] = get_label_addr @_ZN10CPlayerPed22bDebugPlayerInvincibleE_ptr
0DD1: [email protected] = get_func_addr_by_cstr_name [email protected]
0DD8: [email protected] = read_mem_addr [email protected] size 1 add_ib 0
0DD9: write_mem_addr [email protected] value 1 size 1 add_ib 0 protect 0
00BB: show_text_lowpriority GXT 'FESZ_LS' time 2000 flag 1  // Load Successful.

004E: terminate_this_script 

:_ZN10CPlayerPed22bDebugPlayerInvincibleE_ptr
hex
"_ZN10CPlayerPed22bDebugPlayerInvincibleE_ptr" 00
end

 

I'll do some more research; maybe I can find a reference that has done something similar. In the meantime, you could try enabling other cheat flags that change weather, ped behavior or game environment, to verify the overall strategy is working. The flags for cheats that spawn cars or give stuff to the player won't do anything using this strategy. If some cheat flags work, then you should eventually find the immortal flag by testing them one at a time, or in batches.

 

Added: Do you have a way to enter cheat strings with a keyboard?

Edited by OrionSR
Link to comment
Share on other sites

Cheats are a difficult subject to research; far too many false hits. But I think I managed to track down everything I was hoping to find, which only verified my initial guesses.

 

Alexander Blade, the original author of Cleo for Android, wrote a cheat activation script that was included with CleoA. I managed to track down the source script. This snippet from the cheat flag section of the script seems to confirm the strategy I posted. From Scripts\gtasa.cheats.txt:

        0DD0: [email protected] = get_label_addr @earr_bool_cheats
        0DD1: [email protected] = get_func_addr_by_cstr_name [email protected]
        [email protected] += [email protected]
        0DD8: [email protected] = read_mem_addr [email protected] size 1 add_ib 0
        if 
            [email protected] == 0
        then
            [email protected] = 1
        else
            [email protected] = 0
        end
{...}
0DD9: write_mem_addr [email protected] value [email protected] size 1 add_ib 0 protect 0
{...}
:earr_bool_cheats
hex
    "_ZN6CCheat15m_aCheatsActiveE" 00
end

 

And I finally tracked down this Google Sheet that has technical details for each cheat in the pre-DE versions of GTASA for in the original order. It looks like 7 is the proper index, so I'm not sure what the problem might be.

Edited by OrionSR
Link to comment
Share on other sites

Whytz SA
1 hour ago, OrionSR said:

Alexander Blade, the original author of Cleo for Android, wrote a cheat activation script that was included with CleoA. I managed to track down the source script. This snippet from the cheat flag section of the script seems to confirm the strategy I posted.

I just Try But Its make my gta crash

Link to comment
Share on other sites

Whytz SA

In 3 days i experiment with Memory Addresess but the result is Crash or Not Working huh.... I feel like giving up

Link to comment
Share on other sites

crashoverride93

No need for a hardcoded address on this one 

{$CLEO .cs}

thread 'HEALTH'

:HEALTH_00
wait 100 ms
0256:   player $PLAYER_CHAR defined
jf @HEALTH_00

0223: set_actor $PLAYER_ACTOR health_to 1000
jump @HEALTH_00

 

I know how to use memory write opcodes but the ones in the documenttation mostly apply to 1.0 hoodlum patch on pc.

So bassicly you would have to use some kind of android debugger to get the mobile addresses.

 

Edited by crashoverride93
Link to comment
Share on other sites

I'm stumped. I thought I was close but can't get it to work.

 

I can set cheat flags for stuff like Rainy Weather or Cars Drive on Water but it doesn't work for the immortal cheat. According to what I learned from Alexander Blade's cheat code script, the immortal cheat should be implemented with a function. However, I can't get the functions to work for immortality or any other cheat function that I tried. For that matter, I've never been able to implement a function on Android, so maybe my game is broken.

 

This version of the script will read the function pointers and will set a cheat flag if none is found, otherwise it tries to call the function. Maybe it'll work for you.

{$CLEO .csi}
0000:

[email protected] = 7 // CCheat__TogglePlayerInvincibility = 7

0DD0: [email protected] = get_label_addr @_ZN6CCheat17m_aCheatFunctionsE
0DD1: [email protected] = get_func_addr_by_cstr_name [email protected]        
[email protected] *= 4
005A: [email protected] += [email protected]
[email protected] /= 4
0DD8: [email protected] = read_mem_addr [email protected] size 4 add_ib 0
if
  [email protected] == 0
then
  0DD0: [email protected] = get_label_addr @_ZN6CCheat15m_aCheatsActiveE  
  0DD1: [email protected] = get_func_addr_by_cstr_name [email protected]
  005A: [email protected] += [email protected]
  0DD9: write_mem_addr [email protected] value 1 size 1 add_ib 0 protect 0
  00BB: show_text_lowpriority GXT 'BEEFY' time 2000 flag 1  // Beefy Baron
else
  //0DDE: call_func [email protected] add_ib 0 // WRONG
  0DD2: context_call_func [email protected]
  00BB: show_text_lowpriority GXT 'FESZ_LS' time 2000 flag 1  // Load Successful.
end

004E: end_thread

:_ZN6CCheat17m_aCheatFunctionsE
hex
"_ZN6CCheat17m_aCheatFunctionsE" 00
end     

:_ZN6CCheat15m_aCheatsActiveE
hex
"_ZN6CCheat15m_aCheatsActiveE" 00
end

 

Edited by OrionSR
Updated with working function call
Link to comment
Share on other sites

crashoverride93

cleo .csi? orion? remove the I its cleo .cs unless thats a diffrence between mobile I dont know about.

Link to comment
Share on other sites

Whytz SA
2 hours ago, OrionSR said:

Maybe it'll work for you.

Yes no crash, but the script not make the player immortal

Link to comment
Share on other sites

20 hours ago, crashoverride93 said:

cleo .csi? orion? remove the I its cleo .cs unless thats a diffrence between mobile I dont know about.

Yeah, that's a feature of Cleo for Android. *.csa scripts run automatically, like *.cs scripts for PC. *.csi scripts are launched from a built-in cleo menu. It's a nice feature as I don't need to worry about triggering with widgets and conflicts with other tools.

 

On 8/13/2022 at 7:22 PM, Whytz SA said:

I feel like giving up

I'm not a big fan of giving up, but I think it might be time to change to another strategy. I tracked down a few stray leads and managed to track your original PC address to "0x96916D – Infinite Health" from the memory wiki. This corresponds to CHEAT_BULLETPROOF, index 69, on the cheat sheet. I've been tracking the wrong cheat, a new to mobile and remastered cheat, this whole time. So, one more try for the original request.

 

{$CLEO .csi}
0000:

[email protected] = 0x45 // CHEAT_BULLETPROOF = 69
0DD0: [email protected] = get_label_addr @_ZN6CCheat15m_aCheatsActiveE  
0DD1: [email protected] = get_func_addr_by_cstr_name [email protected]
005A: [email protected] += [email protected]
0DD9: write_mem_addr [email protected] value 1 size 1 add_ib 0 protect 0
03E5: show_text_box 'CHEAT1'

004E: end_thread

:_ZN6CCheat15m_aCheatsActiveE
hex
"_ZN6CCheat15m_aCheatsActiveE" 00
end

This cheat flag seems to be working as described. It makes CJ bulletproof. It does not protect CJ from damage from satchel charge explosions or fall damage. If bulletproof is all the cheat is going to do then you may as well implement it with standard SCM commands.

 

02AB: set_actor $Player_Actor immunities BP 1 FP 1 EP 1 CP 1 MP 1 
02A9: set_actor $Player_Actor immune_to_nonplayer 1 
04D8: set_actor $Player_Actor drowns_in_water 0 

 

Added: No Food cheat (so the work on memory addresses isn't a complete waste): 

Spoiler
{$CLEO .csi}
0000:

[email protected] = 0x4C // CHEAT_NOFOOD = 76
0DD0: [email protected] = get_label_addr @_ZN6CCheat15m_aCheatsActiveE  
0DD1: [email protected] = get_func_addr_by_cstr_name [email protected]
005A: [email protected] += [email protected]
0DD9: write_mem_addr [email protected] value 1 size 1 add_ib 0 protect 0
03E5: show_text_box 'CHEAT1'

004E: end_thread

:_ZN6CCheat15m_aCheatsActiveE
hex
"_ZN6CCheat15m_aCheatsActiveE" 00
end

 

 

Other deaths not addressed:

  • Vehicle health, immunities, jacking, etc. (see God Mode mod, PC/Android)
  • Death by plane crashing into water (built into game engine)
  • Death by failing to deploy parachute (parachute script in main.scm)
Edited by OrionSR
Link to comment
Share on other sites

crashoverride93

@OrionSR so if I understand you correctly .csa is for android and .csi is for IOS? Thats cool if so.

 

 

 

Also the immunitys cheat would get canceled out very quickly anytime main scm

 

01B4: set_player $PLAYER_CHAR can_move 1

 Which happens a lot.

Edited by crashoverride93
Link to comment
Share on other sites

3 hours ago, crashoverride93 said:

so if I understand you correctly .csa is for android and .csi is for IOS?

No, strictly speaking, cleo scripts don't work on iOS. The primary difference is that the .csi files won't activate when you start the game or load a save. Instead, they are discovered by the cleo menu. Swipe the screen to activate the menu, and choose the script from the list. It's a nice feature as you can have multiple scripts ready to activate when needed.

 

 

Link to comment
Share on other sites

crashoverride93

Oh thats intresting I guess thats to make up for the fact on mobile you cant use a keyboard to load them when needed like on the pc.

Link to comment
Share on other sites

  • 2 weeks later...
On 8/14/2022 at 1:20 AM, Whytz SA said:

Yes no crash, but the script not make the player immortal

 

Give the immortal script posted above another try. The code has been fixed and updated, but only tested for the weapon set 1 cheat.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • 1 User Currently Viewing
    0 members, 0 Anonymous, 1 Guest

×
×
  • Create New...

Important Information

By using GTAForums.com, you agree to our Terms of Use and Privacy Policy.