Jan 30 2012, 09:52 AM Post #21 | |
The Assistant Posts: 84 From: Matera, IT Joined: 16-June 11 | Thanks. It would help me to define a proper sintax. Strings are usually parenthesized but sometimes parentheses are omitted. Why in your opinion? I noticed they may interfere with loaded constants from data files. |
Jan 30 2012, 10:19 AM Post #22 | |
I will kill you Posts: 126 Joined: 13-May 11 | Wow, that is... no words, I'm very surprised! Thanks to share Deji edit: edited This post has been edited by LINK2012: Jan 30 2012, 10:39 AM |
Jan 30 2012, 10:38 PM Post #23 | |
Coding like a Rockstar! Posts: 1,468 From: ??? Joined: 28-May 09 | Thanks. It would help me to define a proper sintax. Strings are usually parenthesized but sometimes parentheses are omitted. Why in your opinion? I noticed they may interfere with loaded constants from data files. Indeed. I wondered if it was only constanted values that had to have the parenthesis, but I'm not too sure. What's more, real "long" strings didn't exist until SA. VC strings had a max of 8 chars, which was immediate data (no data type): CODE A4 03 49 5F 53 41 56 45 00 00 Wheras SA is more automated over how it decides to retrieve strings: CODE A4 03 09 50 53 41 56 45 31 00 00 And of course, 05B6 adds another factor to the mystery if strings in SCR syntax EDIT And yeah, SCR uses constants from files. AudioEvents.txt seems to be a perfect example of this (unused by the game, must be something sourcey for us modders). Unfortunately, Sanny Builder took nearly 2 minutes to process that list of constants before even building the rest of the SCM in compilation, so I decided not to use them for VJ's source, in fear I may have had to delay the next delay of that mod. Reason for edit: :) -------------------- | CLEO 4.3.22 | A?i?a?o?3D | UI SDK | Black Market Mod 1.0.1 | GInput 0.3 | Cheat Keyboard | Tactile Cheat Activation | Stream Ini Extender 0.7 | SuperVars | ScrDebug | Vigilante Justice: San Andreas | |
Feb 1 2012, 12:10 PM Post #24 | |
The Assistant Posts: 84 From: Matera, IT Joined: 16-June 11 | Actually, 05B6-05B7-05B8 does nothing as well as 03A7-03A8 and 03A9. No reference can be found about such opcodes in gta_sa.idb. An overview of a decompiled main.scm might point us to a likely aim they had before the game release. 05B6, 05B7 and 05B8 write a string into a debugging buffer, whose pointer probably differs between those. 03A7, 03A8 write respectively an integer value and a float. 03A9 writes a newline. Ofcourse, when either a value or a newline is written, the previously updated buffer (with 05B6, 05B7 or 05B8) gets changed. However, mine is just an assumption, eh. Here is the skipped data passed when an empty string is written: SANNY 20 20 20 20 20 20 20 20 00 00 00 00 00 00 00 00 09 2E 00 00 00 00 00 00 1C FB 12 00 D8 A8 41 00 00 00 41 00 09 2E 00 00 00 00 00 00 01 00 00 00 09 2E 00 00 00 00 00 00 1C FB 12 00 D8 A8 41 00 00 00 41 00 09 2E 00 00 00 00 00 00 02 00 00 00 09 2E 00 00 00 00 00 00 1C FB 12 00 D8 A8 41 00 00 00 41 00 09 2E 00 00 00 00 00 00 03 00 00 00 09 2E 00 00 00 00 00 00 1C FB 12 00 D8 A8 41 00 These bytes are replaced by the passed string, plus the null terminator. Don't know what they act for. This post has been edited by Wesser: Feb 1 2012, 02:43 PM |
Feb 1 2012, 03:17 PM Post #25 | |
Coding like a Rockstar! Posts: 1,468 From: ??? Joined: 28-May 09 | I (and a few other people) already knew what they did... ScrDebug restores em all. Even got 05B6 working and posted the output of the pool script (which uses these opcodes heavily): http://gtagmodding.com/forums/index.php?showtopic=529 (last post has pool log link). What I really wanna know is how 05B6 strings were originally implemented. Were they just coded how we code them now? Just an ID which the compiler reads and replaces from a table. It seems quite likely. -------------------- | CLEO 4.3.22 | A?i?a?o?3D | UI SDK | Black Market Mod 1.0.1 | GInput 0.3 | Cheat Keyboard | Tactile Cheat Activation | Stream Ini Extender 0.7 | SuperVars | ScrDebug | Vigilante Justice: San Andreas | |
Feb 3 2012, 10:45 AM Post #26 | |
The Assistant Posts: 84 From: Matera, IT Joined: 16-June 11 | Thanks for the info. I forgot it was already known. |
Mar 25 2012, 11:50 PM Post #27 | |
I will kill you Posts: 126 Joined: 13-May 11 | The discursion has a little time hum? I think that is good a topic for doc Rockstar syntax. Anyway, I'm posting here because... Rockstar used {} for something, that I couldn't understand well... I guess it is some scope operator shit, just for better human reading and the compiler ignores it... Any ideia? |
Mar 26 2012, 06:12 PM Post #28 | |
Coding like a Rockstar! Posts: 1,468 From: ??? Joined: 28-May 09 | The discursion has a little time hum? I think that is good a topic for doc Rockstar syntax. Anyway, I'm posting here because... Rockstar used {} for something, that I couldn't understand well... I guess it is some scope operator shit, just for better human reading and the compiler ignores it... Any ideia? http://www.gtaforums.com/index.php?amp;sho...mp;p=1060991122 And since this topic was a question which was answered. I don't think it's really a good topic for documentation of R* syntax. This one may be better. If not, feel free to make one. -------------------- | CLEO 4.3.22 | A?i?a?o?3D | UI SDK | Black Market Mod 1.0.1 | GInput 0.3 | Cheat Keyboard | Tactile Cheat Activation | Stream Ini Extender 0.7 | SuperVars | ScrDebug | Vigilante Justice: San Andreas | |
Apr 26 2012, 08:39 AM Post #29 | |
The Assistant Posts: 84 From: Matera, IT Joined: 16-June 11 | I know it's a bit off topic but... Could someone give me the GTAIII decompiled main.scm? I don't have the game installed. Also, does someone have LCS or VCS main sources? I tried to get them by myself with no luck. |
Apr 26 2012, 01:41 PM Post #30 | |
The master of cut retort Posts: 239 From: Warsaw, PL Joined: 21-July 10 | PMed them. |
Apr 28 2012, 09:32 AM Post #31 | |
The Assistant Posts: 84 From: Matera, IT Joined: 16-June 11 | Thank you. |