Quantcast
Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
    1. Welcome to GTAForums!

    1. GTANet.com

    1. GTA Online

      1. The Cayo Perico Heist
      2. Find Lobbies & Players
      3. Guides & Strategies
      4. Vehicles
      5. Content Creator
      6. Help & Support
    2. Red Dead Online

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

    1. Red Dead Redemption 2

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

    1. Grand Theft Auto Series

    2. GTA VI

      1. St. Andrews Cathedral
    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. Guides & Strategies
      2. Help & Support
    6. GTA Vice City

      1. Guides & Strategies
      2. Help & Support
    7. GTA III

      1. Guides & Strategies
      2. 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. 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
    3. Gangs

    1. Announcements

    2. Support

    3. Suggestions

Help with Codebreaker\Weather cheats (PS2)


FF_Sefirot

Recommended Posts

OrionSR

NTSCv2eCoords1DB - eCoords has been added to the save with the other three scripts running.

 

The technical goal of this save is to test custom GXT, the strategy of using short string keys to link to larger text strings in the database. However, the custom strings are pretty basic; just a place holder for an integer, a period and the decimal portion of the value. And, if the decimal value is less than 10 then another string with a 0 after the period is used so it displays as 909.09 instead of 909.9. 

 

The HUD is enabled on first use, and can be toggled on and off by holding Up for 4 seconds. The status should persist in the save.

 

I didn't waste any space trying to label the values. I figured the numbers would explain themselves and I'd just let you figure it out.

 

This script worked on the second try, which bodes well for the strategy of transposing addresses from PAL. The only problem was I forgot to edit the custom strings into the save. Then power went out for a couple of hours just after I got it running and started to test, and I haven't looked at it again. So, I don't have a test script ready for checking addresses in PAL and PS3 yet; this was my plan for debugging the larger script.

 

Added: Please test the Hijack save to see if it works on PAL and PS3. I'm expecting it to work, so I'm altering that save to test cheat-like memory addresses without issues with addressing getting in the way.

____________________________________

 

GXT_PS2v2DB - Hopefully, this save will display the message "Custom GXT" on NTSC and PAL. No guesses on PS3 but it's worth testing.

Edited by OrionSR
  • Like 2
Link to post
Share on other sites
FF_Sefirot

Ok, part by part:

 

-eCoords: works flawlessly. It displays the cords in the upper side of the screen in a narrow stripe. The cords remains when you load a save (if displayed when saving). The rest of the scripts keep working fine.

 

 

-Hijack: yes! It works in PAL displaying the message. No freezes or anything else.

 

 

-GXT: in NTSC it displays "Load succesful" and then "GXT". HOWEVER in Pal the message is "Load succesful" and then "1. Setup loaded" (or something similar).

 

Apart of the difference in the message the two versions works the same, no freezes.

 

But something strange happen in both NTSC and PAL. The save is loaded succesfully when the game is launched but (unlike the rest of the saves like Hijack, eSave, etc) it can´t be reloaded from the menu "Load" of the game. It displays the message "error, check memory card, etc". The game doesn´t freeze, you just can´t reload. Also the save is displayed in the game with the name "G" instead of "GXT°PS2v2DB".

 

What I did is save the game in a proppertie and then I was able to reload that one.

 

 

Edited by FF_Sefirot
  • Like 2
Link to post
Share on other sites
OrionSR
1 hour ago, FF_Sefirot said:

-eCoords: works flawlessly.

Sweet. Any problems figuring out the purpose of the yellow values?

 

1 hour ago, FF_Sefirot said:

-GXT: in NTSC it displays "Load succesful" and then "GXT".

Hm... It should have been "Custom GXT" followed by "Load Successful" on NTSC.

 

1 hour ago, FF_Sefirot said:

HOWEVER in Pal the message is "Load succesful" and then "1. Setup loaded"

This is a fail! "SetUp 1. Enabled" is the string I was trying to replace. No text would have at least indicated I had modified the expected address. I will re-examine the process and see if I can figure out what went wrong but, it's starting to look like a script will need to be region-aware if compatibility is desired.

 

1 hour ago, FF_Sefirot said:

But something strange happen in both NTSC and PAL.

I suspect these issues are related to the underscore I used in the save name and file name. I won't do that again and hopefully this issue will go away.

The save name displayed properly for me with a space instead of the underscore, and the file reloads without issue.

 

One fail is not conclusive. I think I'll try again but implement the slow-time codes instead. There's a lot that can go wrong with GXT.

 

If you can, please check the operation of eCoords and GXT on NTSC using alternate languages. I don't have an option for that.

 

Thanks again for the detailed observations.

____________________________________________

 

Added: The eCoords script was supposed to play a short slap/click sound when the display is toggled on or off. It worked on PC but not NTSC. This isn't terribly surprising; there are significant differences in the sound constants used on PS2. I need to remember to revisit this bit and fix or remove the code - hence the note. 

 

GXT - I'm slowly building a list of (hopefully) unused text strings, their hash IDs, and relative offsets that I can use for custom text. Something to be aware of when testing GXT modifications is the custom string being displayed inappropriately out of the script. So if can find someplace where "SetUp 1. Enabled" is displayed then I'll get into trouble using that string.

 

The eCoords script is using:

  coord01 = 'CESAR_2'  //  Impounded hash: 8E32B43C
  coord1 = 'CESARC1'   //  Holed Up  hash: F14CB8DB

These are the names of Cesar missions that were removed in the final game. I figured that it's extremely unlikely a PS2 players will be playing the TTDISA mod that restores these missions so the strings would be safe to re-purpose. I've compiled a list of over 200 strings that look like they were used for debugging or as "cut" placeholders during development. It takes a while to fill in all the required data for each new string.

Edited by OrionSR
  • Like 2
Link to post
Share on other sites
FF_Sefirot
6 hours ago, OrionSR said:

If you can, please check the operation of eCoords and GXT on NTSC using alternate languages. I don't have an option for that

Sorry, I don't understand. What do you mean? In Ps2 Ntsc there's no others lenguages options. Just in Pal you can change in-game. I launched GXT (Pal), changed to spanish inmediatelly after Cj appears in the street, and then the message changed from "Load succesfull" to "Cargado correctamente" wich is the right translation.

 

Just in case you meant launch the game with Ps2 config. in other lenguage, I always do that. At first I get the message of "reading memory card whatever" in spanish and as soon as it reads the save changes to english.

 

 

About the yellow values...The top left I'm sure is the speed (cool feature by the way!!!) but the top right was "0" all the time, so no idea 🤔

Edited by FF_Sefirot
  • Like 2
Link to post
Share on other sites
OrionSR
1 hour ago, FF_Sefirot said:

In Ps2 Ntsc there's no others lenguages options.

Oh, yeah. My mistake. I don't have that option on NTSC either. Let's revisit this test on PAL if I can get things working on English first. And I suppose I could run a few tests on PC to see what happen too.

 

Yeah, I'm enjoying the speedometer too. I never had this feature either. The original script included the Interior ID, useful for coding projects where CJ is within an interior. I'm not sure it helps here but I left it in, and might add some more stuff later.

 

Currently I'm looking for a way to detect the difference between PAL and NTSC in a running game - not sure what I'm looking for so it might take a while.

 

 

Edited by OrionSR
  • Like 1
Link to post
Share on other sites
OrionSR

GXT2PS2v2DB - A new approach to managing addresses for compatible custom text

 

Qapla! Finally got it working on NTSC again, and again it's really late. Please teat on PAL and NTSC.

 

Pretty much the same hijack script as before as far as what you should see. The "Custom GXT" message is using a different style and should display at the same time as the music plays. There's a longer delay for the music to almost finish before the "Load Successful" message is shown. Then, 4 different sound events play in sequence. I can't turn up the sound this late so I'm not sure if the last two are playing. I'm looking for a nice click sound for the eCoords script. The first two are not appropriate.

I was looking for a way to determine the region so I could set the appropriate SCMoffset but instead I found a way to find that value directly. I'm using offsets relative to the SCMoffset for other addresses so no version specific values are required. The trick is to use a gosub from a known relative offset, like the variable space where I'm storing the script, and then subtract the known relative offset from the value in the ReturnStack of that script to get the SCMoffset. The SCMoffsets provide the required information to work with pointers.

 

Don't worry about the details; this is documentation for anyone trying to code this stuff. 

Edited by OrionSR
  • Like 2
Link to post
Share on other sites
FF_Sefirot
7 hours ago, OrionSR said:

! Finally got it working on NTSC again, and again it's really late. Please teat on PAL and NTSC

This time it works equally in Ntsc and Pal. After appearing and a couple of seconds the music hits with the message "Custom GTX". Then "Load successful" and a couple of sounds (a silenced shot, a photograph and something else).

 

Also no problems reloading!

Edited by FF_Sefirot
  • Like 2
Link to post
Share on other sites
OrionSR
1 hour ago, FF_Sefirot said:

This time it works equally in Ntsc and Pal.

Great news. Except... now there's a good reason to revisit the previous scripts and update them for the compatible addressing strategies. That process is liable to take quite a while as I'll need to develop a strategy for post-processing the compiled script to fix all the jump addresses.

Any luck with PAL and other languages? I'm not sure what to expect. It might work, but if not I could probably make it work by searching for the hashes instead of measuring fixed offsets.

 

 

  • Like 2
Link to post
Share on other sites
FF_Sefirot
1 hour ago, OrionSR said:

Any luck with PAL and other languages? I'm not sure what to expect. It might work, but if not I could probably make it work by searching for the hashes instead of measuring fixed offsets.

Once loaded and as soon as CJ appears in the street I change the lenguage and instead of "Custom GTX" the message is, translated, "Setup 1 loaded (or enabled)".

I tried this with all the options availables (german, french, italian, and spanish) and the message is the same (in its own lenguage). Appart from that the save works the same, the music, the "Load successful" and the sounds.

  • Like 2
Link to post
Share on other sites
OrionSR
4 hours ago, FF_Sefirot said:

I tried this with all the options availables (german, french, italian, and spanish) and the message is the same (in its own lenguage).

I consider this to be another successful test; we have a strategy for testing a more robust script. I skipped one issue with addressing so I could test if the end results would work, but that meant the script couldn't make any decisions. I should probably build an improved test script before moving on to rebuilding all of the previous scripts. 

 

Okay, I've got a plan, and I don't see any barriers ahead, just a long road to haul. This is turning out better than I'd hoped. I wasn't expecting the NTSC and PAL saves to be compatible when we started.

 

Can the GXT2 save be tested on PS3? (Added: Any save last played on PS3 would provide me with useful information.)

Thanks again for the detailed reports.

 

Edited by OrionSR
  • Like 2
Link to post
Share on other sites
FF_Sefirot
19 hours ago, OrionSR said:

Thanks again for the detailed reports.

No, thank you for you amazing work!!!

 

About Ps3, yes, I works perfectly. I think we can assume that if it works in Pal Ps2 it will work in Pal Ps3, after all is the same game and version, just emulated via Ps3 hardware.

  • Like 1
Link to post
Share on other sites
OrionSR
On 6/15/2020 at 2:25 PM, FF_Sefirot said:

The top left I'm sure is the speed

Yeah, but what speed. The good opcode reference went offline recently so it took a while to look this up. The value reported is described as meters (map units) per second. I want to convert this to miles per hours, and was wondering if you'd prefer kph. Reports suggest that metric units should be use for stunt jumps and stats, for example, when the language file is not English. When I revisit the hud I'll use the same evaluation, but I could customize it to use kph in English if you'd prefer.

 

2 hours ago, FF_Sefirot said:

I think we can assume that if it works in Pal Ps2 it will work in Pal Ps3

That's a fair hypothesis given the limited data but I'm a long ways from assuming anything. Again, a save last played on PS3 (PAL) would provide me with useful information on the internal addressing of the system.

 

2 hours ago, FF_Sefirot said:

after all is the same game and version, just emulated via Ps3 hardware

Is it the same disk? That'll increase the likelyhood of compatibility significantly.

 

I think I found all the information I need to progress, but I need to relearn how to script with the 010 editor again so I can generate the proper hashes for a list of GXT keys and... <grimace> accurately post-process cleo scripts to use relative addresses instead of local.

I'm having a tough time finding a proper definitions for the various addressing: 

  • Local: As defined by Sanny's help documentation; the $EXTERNAL directive describes the offsets used in external scripts as "local" This addressing is used when the baseIP of the script is not 0. The values are the negative of the offset relative to the start of the script. Local addressing is also used in cleo scripts. Manipulating the baseIP is the trick that allows the cleo-like scripts to work when embedded, and is causing issues with NTSC/PAL compatibility.
  • Relative: As defined by the relativeIP. The RelativeIP and RelativeReturnStack of are stored in the save file, and converted to to "base" addressing for use when the save is loaded (CurrentIP and ReturnStack). Relative offsets are relative to the start of SCM.
  • Base: As defined by baseIP. The baseIP of a script is the relative offset of the start of the script plus the base offset to the start of SCM. The SCM offset of PAL is NTSC +0x100, which is causing the issues with the script compatibility using the previous strategy.
  • Image: Borrowing from the term "image base" used in mobile coding. On mobile, there's an additional image base offset added to the base offset for things like pointers. The image base offset describes the offset from... whatever environment mobile is using to run the game (?) to the start of the "image base," which I'm pretty sure is supposed to describe the start of "base" addressing as previously described. So... for lack of a better term, I figure "image" is the unique word introduced in this context for mobile, may as well run with it.

 There! Having described the terms as best I can't I'll try to stick with them unless someone would care to straighten me out with better descriptors.

 

Edited by OrionSR
  • Like 2
Link to post
Share on other sites
FF_Sefirot
1 hour ago, OrionSR said:

Is it the same disk? That'll increase the likelyhood of compatibility significantly.

Yes. In Ps3 you can play either with the original Ps2 disk/dvd or with the digital version of the store.

 

Well, only Fat Ps3 read Ps2 disks, but the digital version is available for all the models. And by the way is the same version in Ps4. The only difference is a better emulation. 

 

Anyways Ps2-dvd and digital are the same and saves are compatibles and can be converted. I mean, if you play with the dvd the saves are stored in a different way than the digital, but both can be converted to the Ps2 formats we have been working with and viceversa.

 

So long all the working saves in Ps2 Pal have worked fine in Ps3. After all is the same game and version.

 

About the speed...I'm european so Kph are a more familiar format for me, but I wouldn't be picky. If it's easy to implement great, but don't worry.

Edited by FF_Sefirot
  • Like 1
Link to post
Share on other sites
OrionSR
On 6/17/2020 at 5:51 PM, FF_Sefirot said:

I'm european so Kph are a more familiar format for me, but I wouldn't be picky.

Then I'll work in metric the way the game usually does and you can have Kph with the Spanish language. 

 

I've been making some progress. I found the address (TKEY-0x10) that defines the size of the TKEY block I need to search, so I know how to limit the search for hashes. And last night I managed to compile a list of hashes for the long list of keys I might want to mess with. I cheated a bit. 010 easily produced standard CRC-32 hex string hashes for the gxt keys but lacking a hex2dec() function I couldn't make the final transitions to XOR the value into a GTA hash. However, a spreadsheet with math functions enabled has no trouble with this conversion and I wanted the data in a google sheet anyway, so... done with that for now. I'll worry about hex byte hashes later.

Nothing left to do but the post-processing. I've been dreading this part. Maybe if won't be so bad if I can just get started.

______________________________________


Update: Not so bad after all. The 010 help files had a simple example that was easy to adapt. The post processor seems to be working as hoped for jumps, elsejumps, and gosubs.  Eventually I'll need to work something up for jumptables and tablejumps but I'm not using any at the moment. I haven't tested anything yet, but hope to start rebuilding a compatible save soon.

Edited by OrionSR
  • Like 2
Link to post
Share on other sites
OrionSR

PS2v2eSave5DB - Starting over with post-processing so embedded scripts should be compatible with NTSCv2 and PALv2.

 

The previous test was for compatibility of reading and writing relative addresses. This save tests the addressing used by the scripts. Previous examples were using a local addressing strategy. The scripts in this series of tests will use relative addressing.

 

Hold Down for 4 seconds to ShowSaveScreen. Should not work on missions.

(Still no glitch prevention for basketballs and pool players.)

 

@FF_Sefirot Please test on PALv2. The save seems to be working properly on NTSCv2.

_________________________________________
 

PS2v2Teatime3DB - Weather and Time control added to the save with eSave running. Please test on PAL.

 

This should work on PAL. I didn't rework the equations because it shouldn't matter. Since I'm not working with pointers in this script the difference between NTSC and PAL should balance out - and that's the primary test for this save.

 

I ran into a little trouble with a false positive for a jump instruction and manually straightened it out for this test. However, the false positive explains why Sanny throws an error when I try to decompile the embedded scripts. I'm think I can avoid both issues by reworking my scripts without using local variable [email protected] as an array index.  

 

Edited by OrionSR
  • Like 2
Link to post
Share on other sites
FF_Sefirot
6 hours ago, OrionSR said:

This should work on PAL. 

Success!!

-eSave5DB: it works the same in Ntsc and Pal. No problem using the save feature and reloading. Also tested changing lenguages, nothing to remark.

-TeaTime3DB: tested on Pal and it works perfect. All the scripts acts in the same way that the Ntsc version. Observation: the "Dive underwater" weather is translated to the other lenguages.

Edited by FF_Sefirot
  • Like 2
Link to post
Share on other sites
OrionSR
On 6/19/2020 at 7:48 PM, FF_Sefirot said:

Observation: the "Dive underwater" weather is translated to the other lenguages.

Thanks. That key is unique in that there isn't a proper weather description for underwater weather so I borrowed from the most descriptive text I could find in the main table. "Dive underwater" is used in the controller menu so it makes sense that it would need to be translated. I think the other weather text keys were probably only used in development.

 

Thanks for the report. The next script, eWarp, needs to be aware of the current offset to SCM so it can work with pointers, and the eCoords script will too. I'm trying to decide on a strategy to update both scripts with this value so I don't need to duplicate code.

________________________________________

 

Notes:

Highest standard global: PC $10947, PS2v1 $10937, PS2v2 $10943

Last usable global: PC $15011, PS2v1 $15044, PS2v2 $15051

Edited by OrionSR
  • Like 2
Link to post
Share on other sites
OrionSR

Notes on the CheatActive Array: 

 

I've decided to abandon this strategy but did a little testing and wanted to document what I learned. I was looking for someplace in memory that would reset when a save is reloaded - some cheat flags would seem to fit the requirements. The CheatActive array is a series of bytes that tell the game an environmental type cheat is active. Many cheats, like vehicle spawn cheats, never set or clear this flag. Other cheats can't be activated. I wanted to know if I could reuse these bytes to flag that required settings have been made so embedded scripts may continue.

 

Cheats that use the Active array always write the whole byte, 01 or 00, so if any other bits are set they would be lost in the transition.

 

If a byte for a car spawn cheat is altered the cheat still works, but the message displayed will be "Cheat Deactivated," but it doesn't try to deactivate the flag.

 

So most of the bits in the CheatActive array aren't particularly useful. There are still a couple of bytes from unused cheats that could be used for this purpose, but 16 bits didn't seem like much to work with, and would require awkward bitmask opcodes. However, I think I found a better place, the global variable space just beyond the variables used and below what damages the main loop in SCM. Basically, all I need to do is limit the varspace to 60000 and reserve $15000 through $15011 for temporary global variables (that aren't empty, but will be a consistent value that isn't what I'm testing for either).

  • Like 1
Link to post
Share on other sites
OrionSR

PS2v2FindSCM2DB - Test version of the FindSCM script added to the save. (eSave and Teatime were previously added.)

 

@FF_Sefirot Please test on NTSC and PAL. Also, re-save on one version and test on the other.

Added: A test of the last save is good enough for all the rest. Check the other saves if you run into trouble.

 

This script has been modified from it's final form to display a New High Score of the differences between the SCMoffset it finds and the SCM offset for NTSCv2. The score should be 0 for NTSC and 256 for PAL. Anything else would be an interesting result.

 

After a short delay the high score should display, and after a few seconds it should fade away and not display again while playing. The message should display again whenever the save is reloaded, but there won't be a delay so the message will fade rather quickly after the fade-in.

________________________________

 

PS2v2eWarp4DB - Added eWarp4 to the save above. This time it should work on PAL as well.

 

I was wrong about the use of pointers in this script, I could have run this test before working on FindSCM. No matter. In addition to testing if eWarp is compatible with PAL, the FindSCM had it's test message removed.

__________________________________

 

PS2v2eCoords2DB - Added eCoords2 to the save above. Should work on NTSC and PAL.

 

The primary test is that this save should display custom text for the HUD. The script is designed to use pointers by referencing the SCMbaseIP supplied by the FindSCM script. The script has not yet been updated to support languages other than English (American.gxt). 

 

eCoords2 has been updated to display miles per hour instead of meters per second in the speed field for NTSC, or kilometers per hour for PAL. I plan to change the evaluation to Is_System_Metric once I get the hash search working properly so the gxt is compatible with other languages.

 

A quiet sound should play when the hud is enabled or disabled.

 

I'm thinking about trying to slow down the update rate of the hud. I'm finding it really hard to read CJ's foot speed.

Edited by OrionSR
  • Like 2
Link to post
Share on other sites
FF_Sefirot
6 hours ago, OrionSR said:

@FF_Sefirot Please test on NTSC and PAL. Also, re-save on one version and test on the other.

Added: A test of the last save is good enough for all the rest. Check the other saves if you run into trouble.

Ok, I just finished testing all the scripts and I can say it´s a complete success. 

 

-The three scrips (FindSCM2, eWarp4 and eCords2) works as supossed in both NTSC and PAL. No freezes or glitches. All the functions works correctly.

 

-In FindSCM2: NTSC shows "New high score 0" and PAL "New high score 256". The message change to other lenguages in PAL. Curiosity: the colour of the message "New high score" change form yellow to white depending of the lenguage.

 

-The speed value in eCords2 is higher in PAL (because of the KM/h instead).

 

-I re-saved in all the three scripts (NTSC) and transferred to PAL. All of them worked well. So you can play in NTSC with any of the scripts and then keep playing on PAL.

 

-With the FindSCM2 re-save transferred from NTSC to PAL I did a test: I re-save again in PAL and tried to use it back to NTSC.

As I imagined there is no problem as long as you keep the lenguage in english.

 

BUT...If in PAL you set to other lenguage and save, that one won´t work in NTSC. Actually the game freezes during the black screen of "Loading memory card...".

Thats the only caution to take when changing from PAL to NTSC, keep the lenguage in english.

Other than that all the saves are fully compatibles.

  • Like 2
Link to post
Share on other sites
OrionSR
6 hours ago, FF_Sefirot said:

Ok, I just finished testing all the scripts and I can say it´s a complete success. 

Definitely. I consider discovering the language glitch this early to be a successful tests. Awesome find. Well done.

 

Please run the same test on the Teatime3 and eSave5 saves. I want to isolate this problem to a particular script. Probably FindSCM, but best to be sure. What happens if you try to repeat the glitch on PAL by loading the alt-language re-save into PAL that is already configured to expect English?

 

Please link to the earliest save with the Alt-Language glitch.

 

Re-save tests will become increasingly important. I've got the scripts staggered to wake up one after the next in the test saves. They'll all wake at the same time on a re-save, and might not be parked at the top of the script. 

 

Please comment on the sound played when toggling the coords hud on and off. It's supposed to be subtle; the debug code becomes a little flourish in the final script.

 

6 hours ago, FF_Sefirot said:

Curiosity: the colour of the message "New high score" change form yellow to white depending of the lenguage.

Interesting. This "high priority" text command and style displays in gold, by default, unless a color code is included in the string. For example, the number (~1~) portion of New High Score includes the White color code (~w~).  I poked through the gxt files and noticed that Italian.gxt has the Standard (white) color code (~s~) issued at the start of the of the string.

~s~NUOVO RECORD!!~n~~w~~1~

FYI, ~n~ is a New Line code. (GXT References)

Edited by OrionSR
  • Like 2
Link to post
Share on other sites
1 hour ago, OrionSR said:

Seguro. Considero que descubrir el problema técnico del lenguaje tan temprano es una prueba exitosa. Impresionante hallazgo. Bien hecho.

 

Ejecute la misma prueba en Teatime3 y eSave5 guarda. Quiero aislar este problema a un script en particular. Probablemente FindSCM, pero lo mejor es estar seguro. ¿Qué sucede si intentas repetir la falla en PAL cargando el re-save en lenguaje alternativo en PAL que ya está configurado para esperar inglés?

 

Enlace al primer guardado con la falla de Alt-Language.

 

Volver a guardar las pruebas será cada vez más importante. Tengo los scripts escalonados para despertar uno después del siguiente en el guardado de prueba. Todos se despertarán al mismo tiempo al volver a guardar, y es posible que no estén estacionados en la parte superior del guión. 

 

Comente sobre el sonido que se reproduce cuando se activan y desactivan los cables. Se supone que es sutil; el código de depuración se vuelve un poco floreciente en el guión final.

 

Interesante. Este comando y estilo de texto de "alta prioridad" se muestra en dorado, de manera predeterminada, a menos que se incluya un código de color en la cadena. Por ejemplo, la parte del número (~ 1 ~) de New High Score incluye el código de color Blanco (~ w ~). Revisé los archivos gxt y noté que Italian.gxt tiene el código de color Estándar (blanco) (~ s ~) emitido al comienzo de la cadena.

FYI, ~ n ~ es un código de Nueva Línea. ( Referencias GXT )

Good afternoon dear Orionsr, I introduce myself I am GokUMODSZ I am currently learning English because I live in Colombia, bro I am honestly a little new to gta sa android modding bro I know that you are a person with work and projects in your life, but bro I would really love that Would you give some classes or at least memory management address bases of gta sa android, currently I use IDA pro v7.2, I use editor hex 010, I have knowledge in java, android and a little bit of c ++, bro I have gta v1.08 lite, on the pc I use gta sa v1.0, and on the ps2 game gta sa modified, bro I have many tools I can try anything I just need to learn bro, I know it is not easy and I know you are busy but please if you are interested help me do not forget me, I hope we are good friends bro god bless you very much, take care of yourself for the covid19. If you are interested you can write me in a private message please :)

Link to post
Share on other sites
FF_Sefirot
5 hours ago, OrionSR said:

Please comment on the sound played when toggling the coords hud on and off. It's supposed to be subtle; the debug code becomes a little flourish in the final script.

Oh yes, I forgot to mention that in my original "report".

There´s a slight sound, but is so subtle that you have to turn up the volume. Is similar to the help popups, but much more silent.

 

Another thing that I forgot is the fact that the "new high score" message appears everytime you load a re-save from FindScm, just as you said.

 

About the "glitch"...Well, I guess it´s logical that the NTSC freezes as it tries to load an info that doesn´t exist (other lenguage).

 

As expected both eWarp and eCords freezes when changed to other lenguage in PAL and tranferred to NTSC (like happened with FindScm).

 

I provide the three scripts in PAL-spanish resaves. In GTASnP they appear as Playstation 2 V2 NTSC-U, but I took the ".b" saves directly from the PAL folder.

 

-FindScm: launched in PAL, changed to spanish and resaved: https://gtasnp.com/6Yb2dY

-eWarp launched in PAL, changed to spanish and resaved: https://gtasnp.com/3ULMR1

-eCords launched in PAL, changed to spanish and resaved: https://gtasnp.com/e7QbIN

 

The name has change to "In the beginning" in all the three by default. I didn´t wanted to change it just in case it mess something. 

 

 

Would it be possible to embed the PAL-compatible scripts in the save I sent you ( https://gtasnp.com/eotMYY ) or are you gonna work in more improvements?

In the meantime I´ll keep messing with eCords in PAL!

 

 

Edited by FF_Sefirot
  • Like 1
Link to post
Share on other sites
OrionSR
3 hours ago, FF_Sefirot said:

About the "glitch"...Well, I guess it´s logical that the NTSC freezes as it tries to load an info that doesn´t exist (other lenguage).

Maybe. You might be on the right track, but... On PC, I'm pretty sure that the language setting is stored in an .ini file and is not part of the save. If this info is part of a PS2 save file then, 1) I don't know where, 2) is a reasonable explanation for the freezes, and 3) would effect normal saves too. Can you please test if the language glitch occurs on normal saves too.

 

Never mind. I figured it out. I'll update in the next post.

 

There are a few tests I can run on the current saves but if this is a normal-game glitch then it would help if I had more examples that are as similar as possible except for the current language setting. 

 

For example, starting from a new game that didn't load a previous save first, use cheats or codes to increase the available cash and save in slot 1 at the Jefferson safehouse as quickly as possible. Load slot 1, just check the language settings and resave in slot 2. Load slot 1 and change to Spanish and resave in slot 3. Load slot 1 and change to French and resave in slot 4. German and Italian would round out the languages I can match on PC, but lets worry about the set if the hypothesis is correct. Slots 1 through 4 should be enough to isolate a rouge setting.

 

3 hours ago, FF_Sefirot said:

In GTASnP they appear as Playstation 2 V2 NTSC-U, but I took the ".b" saves directly from the PAL folder.

GTASnP's description could be clearer but, the other format is NTSC-J, for Japan. Until recently I couldn't tell the difference between a PAL and NTSC save on PS2, so SnP can't either. I'll discuss the issue with Samutz if it ends up being important. Perhaps a language tweak in the save will fix the issue for everyone.

 

3 hours ago, FF_Sefirot said:

The name has change to "In the beginning" in all the three by default. I didn´t wanted to change it just in case it mess something. 

You can change the save file name to anything you want, but this info will be lost when sharing with SnP. The save slot routine will name the downloaded file based on the save name stored in the beginning of the save. IIRC, the game displays the name taken from the save file name. It hasn't mattered before now, but I can probably get the game to name the save whatever I want by messing with the gxt key in the stats block. Usually the key is only set at the end of most missions. It's blank for new games, which gets redirected to ITBEG, the gxt key that points to "In the Beginning." SnP has a custom name tool in modifications.

 

3 hours ago, FF_Sefirot said:

Would it be possible to embed the PAL-compatible scripts in the save I sent you or are you gonna work in more improvements?

Still working on the current phase of improvements. Once I get the language bug isolated I want to improve GXT handling so custom text works in other languages. And in the process, work out a strategy so any script can quickly add some custom text. I'm considering a strategy to launch a script as needed to process the gxt. I got away from launching scripts early in this process but it should work without issue with the relative addressing currently being used. A demonstration on the flexibility of the strategy.

 

But yes, the plan is to update your save at the end of this phase.

 

 

7 hours ago, GoKUMOdZ said:

I know it is not easy and I know you are busy but please if you are interested help me do not forget me,

I have not forgotten, but we are quite busy in this topic. Please start a new topic for your questions. If you give your topic a descriptive title I'll probably visit and help if I can. (Hint: I seldom click on topic with titles like, "Please Help" or, "I Have a Question." )

 

Edited by OrionSR
  • Like 1
Link to post
Share on other sites
OrionSR

@FF_Sefirot Good call. You zeroed in on the heart of the issue right away.

 

LanguageFix1 - This was your eWarp save. I changed one byte from 04 (Spanish) to 00 (English) and the save now loads correctly on NTSC.

(I tried to get eCoords but I think the names of the last two ITBEG saves were mixed up in your post.)

PALGermanTest - And if the .set documentation continues to be accurate then this save should load... French text in PAL. Whoops!

PALGermanTest2 - Try again; German this time.

 

unknown15 - My save template includes unknown blocks of data in the SimpleVars block 0 for PS2 and mobile that isn't present on PC. I'm not sure what's up with mobile but on PS2 this data appears to be similar to the .set data for PC. unknown15[7] can be penciled in as a GXT ID for PS2. With a bit of time I can probably identify settings for audio, gallery and display. 

 

Anyway, setting the GXT ID to 0 fixed the save on NTSC. This is exactly the sort of thing that Samutz likes to fix automatically with GTASnP. Any objections to having your PAL saves converted to English whenever they are shared with SnP unless you tell it not to? Any particular reason to have a language selection option?

Edited by OrionSR
  • Like 1
Link to post
Share on other sites
FF_Sefirot
10 hours ago, OrionSR said:

For example, starting from a new game that didn't load a previous save first, use cheats or codes to increase the available cash and save in slot 1 at the Jefferson safehouse as quickly as possible. Load slot 1, just check the language settings and resave in slot 2. Load slot 1 and change to Spanish and resave in slot 3. Load slot 1 and change to French and resave in slot 4. German and Italian would round out the languages I can match on PC, but lets worry about the set if the hypothesis is correct. Slots 1 through 4 should be enough to isolate a rouge setting.

Not sure if this is what you wanted to test, but what I did: I started a new game (PAL) with no saves, went to Jefferson safehouse right after the beggining and bought it.

-Then saved in slot 1 in english: https://gtasnp.com/fW8QSB

-Load slot 1 and resaved in slot 2 (also in english, no changes): https://gtasnp.com/f2rSUB

-Load slot 1, changed to spanish and resaved in slot 3: https://gtasnp.com/UTjCUn

-Load slot 1, changed to french and resaved in slot 4: https://gtasnp.com/Q299oY

And also, just in case:

-Load slot 1, changed to german and resaved in slot 5: https://gtasnp.com/XLmf7e

-Load slot 1, changed to italian and resaved in slot 6: https://gtasnp.com/OMuGnm

 

8 hours ago, OrionSR said:

LanguageFix1 - This was your eWarp save. I changed one byte from 04 (Spanish) to 00 (English) and the save now loads correctly on NTSC.

(I tried to get eCoords but I think the names of the last two ITBEG saves were mixed up in your post.)

PALGermanTest - And if the .set documentation continues to be accurate then this save should load... French text in PAL. Whoops!

PALGermanTest2 - Try again; German this time.

Tested all of them. Works fine, no big remarks:

-LenguageFix works perfectly in NTSC. Also tested in PAL, loads in english, works fine.

-PALGermanTest: when loaded lenguage is french in PAL.

-PALGermanTest2: when loaded lenguage is german actually, in PAL.

 

8 hours ago, OrionSR said:

Anyway, setting the GXT ID to 0 fixed the save on NTSC. This is exactly the sort of thing that Samutz likes to fix automatically with GTASnP. Any objections to having your PAL saves converted to English whenever they are shared with SnP unless you tell it not to? Any particular reason to have a language selection option?

What do you mean? If I would care, in the hypothetical case that I upload a nonenglish-PAL save, to have it converted to english? As long as I know PAL will always have the lenguage selection option, so even if the lenguage change you will always be able to change it back in-game.

If we are talking about having the lenguage option in GTASnP, well, I don´t thing is that usefull. 

 

Personally, no, I don´t care about lenguage selection. Actually I always play in english. Also as I´ve been messing with saves and conversions, I always keep english to advoid problems. The only time using other lenguages is now to make the tests.

 

Maybe if your goal is having the best and most complete converting tool, but I think that is not a great problem go to the menu of the game and change the lenguage. English is a good standar.

Edited by FF_Sefirot
  • Like 1
Link to post
Share on other sites
13 hours ago, OrionSR said:

@FF_Sefirot Good call. You zeroed in on the heart of the issue right away.

 

LanguageFix1 - This was your eWarp save. I changed one byte from 04 (Spanish) to 00 (English) and the save now loads correctly on NTSC.

(I tried to get eCoords but I think the names of the last two ITBEG saves were mixed up in your post.)

PALGermanTest - And if the .set documentation continues to be accurate then this save should load... French text in PAL. Whoops!

PALGermanTest2 - Try again; German this time.

 

unknown15 - My save template includes unknown blocks of data in the SimpleVars block 0 for PS2 and mobile that isn't present on PC. I'm not sure what's up with mobile but on PS2 this data appears to be similar to the .set data for PC. unknown15[7] can be penciled in as a GXT ID for PS2. With a bit of time I can probably identify settings for audio, gallery and display. 

 

Anyway, setting the GXT ID to 0 fixed the save on NTSC. This is exactly the sort of thing that Samutz likes to fix automatically with GTASnP. Any objections to having your PAL saves converted to English whenever they are shared with SnP unless you tell it not to? Any particular reason to have a language selection option?

Good afternoon dear Orionsr, I introduce myself I am GokUMODSZ I am currently learning English because I live in Colombia, bro I am honestly a little new to gta sa android modding bro I know that you are a person with work and projects in your life, but bro I would really love that Would you give some classes or at least memory management address bases of gta sa android, currently I use IDA pro v7.2, I use editor hex 010, I have knowledge in java, android and a little bit of c ++, bro I have gta v1.08 lite, on the pc I use gta sa v1.0, and on the ps2 game gta sa modified, bro I have many tools I can try anything I just need to learn bro, I know it is not easy and I know you are busy but please if you are interested help me do not forget me, I hope we are good friends bro god bless you very much, take care of yourself for the covid19. If you are interested you can write me in a private message please

 

 

Excuse me Orionsr for asking you again but if you need help on ps2 I can join also I have gtasa on my ps2, well bro I just ask that we be friends and please help me.

Link to post
Share on other sites
OrionSR
2 hours ago, FF_Sefirot said:

t sure if this is what you wanted to test, but what I did

Oh no. I'm sorry. I thought I warned you off this testing phase. That's okay, I can confirm the Italian setting. This test was designed to help me identify one byte in 200000, but I was able to narrow my search and made some lucky guesses.

 

I think we have all the information we need for the Language glitch on PS2v2, I still need to isolate this byte in v1 but I'm not sure where I can find a PALv1 tester anymore. I'm trying to fill in some of this data and related settings for my 010 template, but that is delaying finishing the current phase so you can do some proper testing on your good save. I'll finish the current test, maybe you can confirm, correct or fill in some gaps for me while I try to get eCoords working in other languages. Would you care to take a shot at exploring a save with a hex editor?

 

 

 

 

  • Like 1
Link to post
Share on other sites
OrionSR
3 hours ago, GoKUMOdZ said:

if you need help on ps2 I can join also

I'm looking for a PALv1 save with a language setting of Spanish. If you can make this save please upload to GTASnP.com and post the link here.

 

Do you have SA PS2v2 on the PCSX2 emulator? I'm looking for a Save State created just after double pressing a lot of buttons. I hope to learn where cheat strings are buffered so I can make scripts that respond to button combos similar to the standard cheats, or maybe even activate cheats with embedded scripts. Since I'm not sure what I'm looking for yet, double pressing buttons will help be zero in on the correct address. Something like;

 

Up,Up, Down,Down, Up,Up, X,X, Up,Up, L1,L1, Up,Up, R2,R2 <create save state>

 

@GoKUMOdZ I cannot find the topic you created for your questions.

 

Edited by OrionSR
  • Like 1
Link to post
Share on other sites
FF_Sefirot
2 hours ago, OrionSR said:

Would you care to take a shot at exploring a save with a hex editor?

Sorry, I've never used a hex editor or studied the question deeply 😐 I'm pretty useless in that regard. 

 

Doing tests I found a "glitch" in eCords PAL. I don't know what I did, but after a save I reloaded, I displayed eCoords and the values weren't there, but a "Holed something" message in its places (not sure what the message was exactly). I made the mistake of trying to replicate the glitch repiting the previous actions and I save in the same spot so I can't provide the corrupted file.

Needless to say, I fail. I haven't been able to get that error again. 

 

I did nothing special, just fly with the hydra, landing in an airport, hide the eCoords and saving using esave. Then when I reloaded and displayed the eCoords I have that messsge in the place of every value. I commited suicide, but that didn't fixed it.

 

I loaded a previous save and repited what I did step by step, but this time everything was fine, so I don't know what created the problem. I even tried to make combinations using the warp function, etc, but nothing. 

 

I've been playing for quite some hours and had no more problems.

Edited by FF_Sefirot
Link to post
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
  • 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.