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

    1. Red Dead Redemption 2

      1. PC
      2. Gameplay
      3. Missions
      4. Help & Support
    2. Red Dead Online

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

      1. Recruitment
    2. Events

    1. GTA Online

      1. Diamond Casino & Resort
      2. DLC
      3. Find Lobbies & Players
      4. Guides & Strategies
      5. Vehicles
      6. Content Creator
      7. Help & Support
    2. Grand Theft Auto Series

    3. GTA 6

    4. GTA V

      1. PC
      2. Guides & Strategies
      3. Help & Support
    5. GTA IV

      1. Episodes from Liberty City
      2. Multiplayer
      3. Guides & Strategies
      4. Help & Support
      5. GTA IV Mods
    6. GTA Chinatown Wars

    7. GTA Vice City Stories

    8. GTA Liberty City Stories

    9. GTA San Andreas

      1. Guides & Strategies
      2. Help & Support
      3. GTA SA Mods
    10. GTA Vice City

      1. Guides & Strategies
      2. Help & Support
      3. GTA VC Mods
    11. GTA III

      1. Guides & Strategies
      2. Help & Support
      3. GTA III Mods
    12. Top Down Games

      1. GTA Advance
      2. GTA 2
      3. GTA
    13. Wiki

      1. Merchandising
    1. GTA Modding

      1. GTA V
      2. GTA IV
      3. GTA III, VC & SA
      4. Tutorials
    2. Mod Showroom

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

      1. DYOM
      2. OpenIV
      3. GTA: Underground
      4. GTA: Liberty City
      5. GTA: State of Liberty
    1. Red Dead Redemption

    2. Rockstar Games

    1. Off-Topic

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

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

    2. Forum Support

    3. Site Suggestions

PLPynton

Unified opcodes database

Recommended Posts

Seemann

First of all, I should say that I've nearly finished my own way to maintain different opcode versions in the only ini and compiling them without any issues.

 

The latest Sanny introduced new directive {$VERSION} that defined in SASCM.INI. Now, I've understand that with using of this directive in a code we can change opcode params order without any compatibility issues.

 

So, how it works.

 

SASCM.INI of mine now contain two opcodes lists: sanny's default on 25.11.2005 and PLPython's one. The first list in the custom order, so the file begins with VERSION=3.1.0000. After the first opcodes list there is a new version: VERSION=3.0.0001. After it there is the second list.

 

 

VERSION=3.1.0000; sanny's default opcodes list0000=0,nop0001=1,wait %1d% ms...0A4D=0,  false0A4E=0,unknown_increment_useless_flagVERSION=3.0.0001; PLPython's list.0000=0,nop0001=1,wait %1d% ms...

 

 

So, when Sanny starts it knows that there are two different lists and keeps in memory their versions.

 

When you decompile a SCM file the decompiler takes the latest list in a file (should be more detailed and complete). you get the decompilled source with the latest ini changes. It looks like this:

 

 

{$VERSION 3.0.0001}thread 'MAIN' var                          $PLAYER_CHAR: Playerend // var01F0: set_max_wanted_level_to 6 set_wb_check_to 0 

 

 

take a note: there is directive $version in the beginning of the file. If you start to compile such file the compiler select the opcodes list in accordance with specified version. If there is no such version in the ini the compiler ask you to update it. So, all ini's changes should be made here, we need for the only official opcodes source.

 

If there's no any specified version in the source file the compiler select the default opcodes list with custom params order (X.1.0000). It allows to avoid the compilling issues for old codes written in Sanny or converted from SAMB.

 

When we discover new opcode and want to change its params order (I still like the opcodes when result storing to the first parameter, not to the last one, e.g. 0053: $player_char = create_player...) we do not need to rewrite a whole list. The only we need to do is to specify new version in the ini and write new opcodes description.

 

Example (pseudo-ini)

 

 

VERSION=3.1.0000...other opcodes0053=5,unknown_create %1t% at %2d% %3d% %4d% var %5d%...other opcodesVERSION=3.1.00010053=5,%5d% = create_player %1t% at %2d% %3d% %4d%

 

 

Sanny loads the first full list, then copied it once more and replace the opcode 0053 with new mnemonic. And when decompile you will get the last mnemonic for 0053. The compiler, I repeat, will choose the correct order in accordance with specified version.

 

And the last. When you will publish your code in the forums, you should write the ini version that was used for this one.

 

 

{$VERSION 3.0.0010}$PLAYER_CHAR.SetClothes("PLAYER_FACE", "HEAD", Head)$PLAYER_CHAR.SetClothes("JEANSDENIM", "JEANS", Legs)$PLAYER_CHAR.SetClothes("SNEAKERBINCBLK", "SNEAKER", Shoes)$PLAYER_CHAR.SetClothes("VEST", "VEST", Torso){$VERSION_RESTORE} // sets compiler current version to previous value

 

 

When another user take this code, insert them in his own one and start to compile there are two possible consequences:

 

1. If he has the latest ini containing such version the code will be compiled just fine.

2. If he has not such version the compiler ask them to update the ini.

 

---

Hope you understand what I tried to say smile.gif

 

 

 

@ PLPython

 

 

an opcode picker that works like excel formula picker, with classes and all

Still have no idea how it will work. The screen shows a tool to find opcode's hint.

 

 

it will use not sascm.ini but another file that EVERYBODY can edit and keep in is own way but the sascm.ini stays basically unchanged

 

And what everybody can change in this file? And what the format of this file?

 

Share this post


Link to post
Share on other sites
PLPynton

that is exactly what it is just get opcode hints app. it gets from your sanny process offset 0x0012ED10 to get opcode... that is not important.

 

the real app like this one that is a part of excel does not exist yet:

 

user posted image

 

what will it do should be clear for now. what file format: text. what inside: containment of hints, descriptions for opcodes. i do not know.

 

speaking of your last post: i like that idea.

Edited by PLPynton

Share this post


Link to post
Share on other sites
Seemann

 

the real app like this one that is a part of excel does not exist yet

 

I know a tool that is very similar to yours. But it's written in russian language. Take a look:

http://progta.h16.ru/downloads/soft/opcodes_4.zip

 

Also, if it's not important to split the opcodes onto different groups (math, text...), I can improve my Opcode Search Tool to make it shows the hint for specified opcode.

Share this post


Link to post
Share on other sites
PLPynton

i can not check it 'cause i am redirected to http://top.jdu.ru/?link_id=177

 

anyway you could improve opcode search tool so it takes opcode from current line (1/0 or when it stays active in the progress of writing)

 

later if people like it, you could add more additional functions to it. especially taking informations for hints from separate than sascm.ini file (e.x. sascm.txt)

 

Edit: share at the beginning

-the file name for opcode hints

-structure. i understand XXXX=

but what then. i think about: opcode text name, then in different lines its every parameter (name and description). mind that some parameters need few words to describe and some several lines and most probably table like

1 - do something

2,22 - do something else (because 2 and 22 gives the same result)

Edited by PLPynton

Share this post


Link to post
Share on other sites
Seemann

 

i can not check it 'cause i am redirected to

http://www.progta.h16.ru/infusions/downloa...download_url=32

 

 

share at the beginning

1. hints.xml, sahints.xml

 

2. file format

 

   Opcode description   goes here  Parameter description  goes here  Parameter description  goes here0004>

 

 

ps. Sanny classes is also good because the editor is able to display hint for every parameter (type and short desciption).

 

EDIT:

We can also expand it (like Point's xml)

 

 

%1% = %2% ; integer values  Opcode description  goes here Parameter description goes here Parameter description goes here0004> 

 

 

 

sure, you can implement your format

Edited by Seemann

Share this post


Link to post
Share on other sites
Demarest

GTAMA's way has been in use for nearly 4 years now.

In use? By whom? Nothing personal. I used gtama a little too, but, you know, it wasn't the compiler number 1 for VC/GTA3.

Nothing personal taken. Likewise, I have respect for you and what you do, even if I personally don't use Sanny, which is admittedly superior near as I can tell. To answer your question, look at the VC opcode databse. That's been in existence for about 3 years now. I know that I personally used it for reference many times and when looking into math opcodes, used its nomenclature to search, even though that format to apply to me, an MB user.

 

 

I never liked the adding of comments onto lines
Commenting of the opcodes is a way of describing those ones that was chosen by PLPython. And seeing comments like

 

00BB=3,print_GXT_reference %1g% timelimit %2d% flag %3d% ;low priority

023C=2,load_special_actor_slot %1d% with_model %2f% ;corresponds modelID 290-299

04DB=0,exit_rc_mode  ;on foot version

I thought that to comment out also the math opcodes would be useful. Well Pynton was wrong in doing that. Like the way unknown conditionals weren't given that 2 space offset. Some of us read code by its shape. For example, we read a line in MB that gives an actor a weapons and we have the LONG comment of "must load weapon model before blah blah blah". All that was needed was for a line in the readme that says starting with VC, you must load the weapon model before giving it to an actor to avoid the crash. That one line in one place that everybody should be reading anyways would spare ALL that useless text throughtout the entire SCM. When I see a line that long, know what I think? GXT line. Where the actual GXT value is there. VERY useful for people trying to pinpoint places in dialogue, or which section is which in a mission, etc. It's the way it was always done, so those of us that have been around that long rely on such things. It's bad enough that opcodes now are so developed that they sometimes require long flavor text. But that's the way it goes.

 

 

As for your way, I say: no. It will immediately cause the issues for Sanny. Its option 'write opcodes' (a choosing between low-level syntax and high-level one) make the decompiler does not write some of the math opcodes in the source. It makes the code clearer. We get the lines without opcodes like these ones:
$410 = 0$411 += 0

The compiler then analyze such lines to select correct opcode. If there are some words (e.g. setgi) except the operands and operator the compiler will throw an error. SAMB is not able to compile such line, too:

setgi $var = 0

I know two ways to avoid such issues in future. First, add the keywords 0004=setgi and similar ones. Second, leave the system as is. There is no need to change something.

Look who you're talking to. I'm the first to assert not to change things. Until space and Pynton presumed to change EVERYTHING without reason, it was something we all understood together. I agree with you not to change things. I was saying that IF we were too, Y_Less's suggestion of using classic mnemonics is the right answer. And let's face it: 0004: setgi $var = int is a hell of a lot better than the current MB's 0004: $var = int ;; integer values. For one, it's not as cluttersome as again, historically, comments at the end of lines was ONLY to display the contents of a GXT entry being referenced. And it also denotes global versus local. Somebody with 0004: $var = int ;; integer values to go by could still use a local. setgi would help discourage that.

 

Also, I don't follow what you're saying. You're saying Sanny would crash upon encountering 0004: setgi UNLESS it was already listed in the INI as 0004=setgi, but isn't the manipulation of the INI the subject of this topic? I need to know because I'm actually so fed up with all the disrespect to the community at large by those who wish to reinvent the wheel, that I'm about to sit down and fashion an SA INI that WILL fall in line with the original releases parameter opcodes AND remain as true to classic nomenclature as possible to once and for all put an end to all this factioning of the community by those so eager to get their name attached to something that wasn't their's. Your response to this part could make the difference from me writing it as setgi or not. Something that is admittedly a deviance from my aim, but if Y_Less and I agree upon it, it's probably both a good idea and one in good form with staying with the roots of this community.

 

@Pynton: Feel like cropping/resizing that pic so the rest of us can read the topic?

Edited by Demarest

Share this post


Link to post
Share on other sites
PLPynton

yes i fell ready to crop it but i have to reinstall windows because i have some kind of virus in my paint.

Edited by PLPynton

Share this post


Link to post
Share on other sites
Demarest

 

0004: setgi %1 %2

You know, now that I think about it, there's no right answer here sad.gif It basically boils down to information. Do you want the flavor text to spell it all out? Or do you want to keep the flavor text lean, which would require a person to consult an outside source, like the opcode database? I used to copy/paste lines, so it didn't much matter what they looked like. Now, I've been coding so long that when I want to multiply a local var by an int, I just type out 0012: @0 *= 218. Would I really want to type a descriptor out? I don't know.

 

Then say we want the flavor text to be relatively self-contained. Which of the following is best?

0012: @0 *=  2180012: @0 *= mulli  2180012: @0 mulli *=  2180012: mulli @0   2180012: @0 mulli  2180012: @0 l=i  218

Furthermore, I remember many times searching through code with criteria like ">= 100.0" as an example. Granted, whatever we change/stay at, could just as well be implimented. Just trying to keep approach practical and logical. And since I've programmed my share, I'm trying to pull from ways I use the tool to consider what would be most useful. Which doesn't begin to address that everybody uses it differently.

 

I think for the sake of my INI, I'm going to stick to the way it always was. Not because I assert it's best, but in the face of a bunch of equally right answers, I think it's best to leave it be.

 

[EDIT]

I think I will for opcodes like 0078 though. Let's face it,

 

0078=2,%1d% addgf_0_to %2d%

 

...looks better than

 

0078=2,%1d% += unknown_inaccurate_float_timer %2d%

 

...and all offerings since.

Edited by Demarest

Share this post


Link to post
Share on other sites
Seemann

 

Also, I don't follow what you're saying. You're saying Sanny would crash upon encountering 0004: setgi UNLESS it was already listed in the INI as 0004=setgi, but isn't the manipulation of the INI the subject of this topic?

 

I said if there is no opcode in the line to compile, and there is any word like 'setgi' => compiler says that it do not know what to do with this line.

 

 

0004: setgi $var = 0  // works fine. there's an opcode, so the any words do not matter$var = 0  // works fine. compiler sets the opcode itself, there'd be two operands and the only operatorsetgi $var = 0  // error. unknown directive "setgi"

 

It may happen when sanny's option 'write opcodes' is disabled (the decompiler won't write opcodes for some math expressions).

 

And I said, to avoid it we must either 1) leave it as is or 2) make the word "setgi" as a keyword. SAMB supports them too (file KEYWORDS.TXT).

 

So, we even may replace these opcodes with new keywords: setgi, addli, addgf and so on. And then we may do not use the opcodes at all.

 

 

setgi $var 0 // 0004: $var = 0mulli [email protected] 2   // 0012: [email protected] *= 2

 

Share this post


Link to post
Share on other sites
Demarest

Well excuse the f*ck out of me. I've never used Sanny before, but would like to *gasp* have it so everybody can use it. I was seeking clarification so that Sanny support would be in there too. Will you ever be able to forgive me for having disturbed you? sarcasm.gif

 

You know, from the beginning of Sanny, I've seen you adapt the tool for the needs/wants of those using it. I've also watched you bend over backwards to be able to use the work of somebody trying to change everything. But then somebody comes along proposing to make it as painless as possible and you get all defensive becuase you have to drop a few lines to clarify? What's up with that?

Share this post


Link to post
Share on other sites
Seemann

 

Well excuse the f*ck out of me. I've never used Sanny before, but would like to *gasp* have it so everybody can use it. I was seeking clarification so that Sanny support would be in there too. Will you ever be able to forgive me for having disturbed you? sarcasm.gif

 

You know, from the beginning of Sanny, I've seen you adapt the tool for the needs/wants of those using it. I've also watched you bend over backwards to be able to use the work of somebody trying to change everything. But then somebody comes along proposing to make it as painless as possible and you get all defensive becuase you have to drop a few lines to clarify? What's up with that?

I just want the damn things to work. Making new things that may break one of the sanny's features (especially that one which I like more than any other wink.gif) it's a way I would not like to approve.

 

Yeah, I want to make (now and maybe in future) a tool that have all the features that the average scripter would like to have. That's why I'm trying to satisfy the requests on this (and other) forums. Not all of ones (i'm still in doubt if it's necessary to make specific data type for local labels), but many of them. But also I'm trying that all the previous things work too. The implementation of a request that makes old feature not to work, is not good, isn't it?

 

So, let's find a good solution. You want a new descriptions for the math opcodes (they can help us to find needed one without consulting with the opcodes DB). I don't (i suggest a commenting way). And Sanny can not work with your way, not because i'm so dogged, just can't. Try to delete opcode from the line 0004: setgi $var = 0 and SAMB will crash too, although $var = 0 both compilers parse just fine.

 

I think we should ask for other people, what they say about it?

 

P.S. Essentially, I can make that the decompiler will not write any words from SASCM.INI for the math opcodes except operands and operator. So, sanny's users will no get such mnemonics that you (in fact, Y_Less) suggest, anyway. SAMB will write them.

 

Share this post


Link to post
Share on other sites
Demarest

I just want the damn things to work.
Then you should applaud what I'm doing. This will be the first INI re-release that will actually be useable with no crashes, conflicts, need to re-root, etc. AND I was specifically asking you for such details so that it wouldn't break Sanny. So you can stop talking to me like I'm the one further factioning the community. Keep such comments for space and Pynton.

 

 

Making new things that may break one of the sanny's features (especially that one which I like more than any other wink.gif) it's a way I would not like to approve.
Tell it to the people making new things. What I'M doing is the same old same old, but updated as possible. Updated. Not new. You want new, you'll have to talk to the guys that piss on the work of our forefathers as it were.

 

 

That's why I'm trying to satisfy the requests on this (and other) forums.
I know. That's why I gave you credit for exactly that. And why I choose to help your users too even though I'm not one of them.

 

 

Not all of ones (i'm still in doubt if it's necessary to make specific data type for local labels)
Sure it is. Their addresses are relative. I couldn't tell you how many times I've developed code in a stripped SCM that worked flawlessly. But because I copied a line with a local jump and then put it into a full SCM, it crashed.

 

 

So, let's find a good solution. You want a new descriptions for the math opcodes
NO I DON'T! Y_Less brought it up and I was expressing an OPINION, not a DESIRE. Since then, I've realized by trying to think it through, that it wouldn't be for the best anyways. Your opinion of me is seriously skewed and I don't appreciate it one bit.

 

 

And Sanny can not work with your way
Not MY way! Nothing about what I'm doing is MY way. What I'm doing is sticking to the roots that the people before us laid the foundation for. I think you've confused conversation with a statement of absolute certainty.

 

 

Try to delete opcode from the line 0004: setgi $var = 0 and SAMB will crash too
Except that those of us who've used MB from day one don't try to delete opcodes.

 

 

I think we should ask for other people, what they say about it?
That's what was happening before you came in freaking out. Besides, it used to be that everybody came together. Since then, we've had a couple of rogues that some people actually cheer on. So since factioning the community is apparently par for the course these days, I will release mine as the underdog, fully compliant with the way things have always been and better when able. Not some sorry excuse to be able to slap my name onto something so people will give me kudos not realizing I just hosed all their codes.

 

 

P.S. Essentially, I can make that the decompiler will not write any words from SASCM.INI for the math opcodes except operands and operator. So, sanny's users will no get such mnemonics that you (in fact, Y_Less) suggest, anyway. SAMB will write them.
How about instead, you stop freaking out? I'm through opcode 0752. Here's what the part you're freaking out over looks like
0004=2,%1d% = %2d%0005=2,%1d% = %2d%0006=2,%1d% = %2d%0007=2,%1d% = %2d%0008=2,%1d% += %2d%0009=2,%1d% += %2d%000A=2,%1d% += %2h%000B=2,%1d% += %2d%000C=2,%1d% -= %2d%000D=2,%1d% -= %2d%000E=2,%1d% -= %2h%000F=2,%1d% -= %2d%0010=2,%1d% *= %2d%0011=2,%1d% *= %2d%0012=2,%1d% *= %2d%0013=2,%1d% *= %2d%0014=2,%1d% /= %2d%0015=2,%1d% /= %2d%0016=2,%1d% /= %2d%0017=2,%1d% /= %2d%0018=2,  %1d% > %2d%0019=2,  %1d% > %2d%001a=2,  %1d% > %2d%001b=2,  %1d% > %2d%001c=2,  %1d% > %2d%001d=2,  %1d% > %2d%001E=2,  %1d% > %2d%001f=2,  %1d% > %2d%0020=2,  %1d% > %2d%0021=2,  %1d% > %2d%0022=2,  %1d% > %2d%0023=2,  %1d% > %2d%0024=2,  %1d% > %2d%0025=2,  %1d% > %2d%0026=2,  %1d% > %2d%0027=2,  %1d% > %2d%0028=2,  %1d% >= %2d%0029=2,  %1d% >= %2d%002a=2,  %1d% >= %2d%002b=2,  %1d% >= %2d%002c=2,  %1d% >= %2d%002d=2,  %1d% >= %2d%002e=2,  %1d% >= %2d%002F=2,  %1d% >= %2d%0030=2,  %1d% >= %2d%0031=2,  %1d% >= %2d%0032=2,  %1d% >= %2d%0033=2,  %1d% >= %2d%0034=2,  %1d% >= %2d%0035=2,  %1d% >= %2d%0036=2,  %1d% >= %2d%0037=2,  %1d% >= %2d%0038=2,  %1d% == %2d%0039=2,  %1d% == %2d%003a=2,  %1d% == %2d%003b=2,  %1d% == %2d%003c=2,  %1d% == %2d%0042=2,  %1d% == %2d%0043=2,  %1d% == %2d%0044=2,  %1d% == %2d%0045=2,  %1d% == %2d%0046=2,  %1d% == %2d%0058=2,%1d% += %2d%0059=2,%1d% += %2d%005a=2,%1d% += %2d%005b=2,%1d% += %2d%005c=2,%1d% += %2d%005d=2,%1d% += %2d%005e=2,%1d% += %2d%005f=2,%1d% += %2d%0060=2,%1d% -= %2d%0061=2,%1d% -= %2d%0062=2,%1d% -= %2d%0063=2,%1d% -= %2d%0064=2,%1d% -= %2d%0065=2,%1d% -= %2d%0066=2,%1d% -= %2d%0067=2,%1d% -= %2d%0068=2,%1d% *= %2d%0069=2,%1d% *= %2d%006a=2,%1d% *= %2d%006b=2,%1d% *= %2d%006c=2,%1d% *= %2d%006d=2,%1d% *= %2d%006e=2,%1d% *= %2d%006f=2,%1d% *= %2d%0070=2,%1d% /= %2d%0071=2,%1d% /= %2d%0072=2,%1d% /= %2d%0073=2,%1d% /= %2d%0074=2,%1d% /= %2d%0075=2,%1d% /= %2d%0076=2,%1d% /= %2d%0077=2,%1d% /= %2d%0084=2,%1d% = %2d%0085=2,%1d% = %2d%0086=2,%1d% = %2d%0087=2,%1d% = %2d%0088=2,%1d% = %2d%0089=2,%1d% = %2d%008A=2,%1d% = %2d%008B=2,%1d% = %2d%

So tell me again why you're altering the way your tool works? If you tell it to disregard the INI on decompile, what's the point of an INI? I think I speak for everybody when I say that decompiled code is a lot more pleasant to read with the flavor text.

Share this post


Link to post
Share on other sites
Seemann

 

This will be the first INI re-release that will actually be useable with no crashes, conflicts, need to re-root, etc.

 

Hmm, will it be the fifth SASCM.INI? Let's count: SAMB default INI, SB default INI (last update 25.11.2005), space's INI, Python's INI... and yours?

 

ow, what about people who just want to write the scripts? All that happen there it a kind of crazy. It looks like soon everybody will maintain his own INI...

 

Some posts earlier, I wrote a new way to support INI changes. Did you read it?

What INI should I upload when new version of Sanny is come? I'm very confused now...

 

 

So you can stop talking to me like I'm the one further factioning the community.

 

Yeah, I know, you're the most conservative person here wink.gif Sorry.

 

 

Sure it is. Their addresses are relative.

 

I know it. And Sanny compiles them with relative addresses. No one existed GTA compiler, except SAMB, makes difference between local and global labels through their data types. But every editor compiles them as they must be. So, I still have no example when a jump within the mission have to be denoted with specific data type. Has you?

 

 

Except that those of us who've used MB from day one don't try to delete opcodes

 

Well, when I had only published Sanny at first time here, I received tons of the comments that the usage of opcodes (MB's syntax) is bad. Later, I had understood they were right.

 

There are many ways not to use opcodes. yep, I know that for some kinds of codes (hardcoded ones) it's necessary to use opcodes. That's why Sanny will forever support them.

 

But for the most of cases, the most of codes, that the average user (coder) writes, there is a need to simplify coding process. I quote CyQ:

 

the point is, any tool should make things as simple as it can. if people want to learn (instead of you forcing them to), they can find the scm file format documentation, and use a hex editor.

 

You know, he's damn right.

 

We (authors of the mission editors, in fact) should make the process easier. That's why Barton introduced the keywords (this idea was taken from gtama as I believe), removed some datatypes in VMB 1.0. That's why jonc introduced fully hi-level syntax in Point. That's why me introduced the class system. Features that allow not to use opcode in the most of math expressions, the only labeltype, keywords and so on, are those things that simplify this process.

 

 

Here's what the part you're freaking out over looks like

 

Is it the part of your INI to release?

 

 

If you tell it to disregard the INI on decompile, what's the point of an INI?

 

Sanny depends on this INI, and I depend too. I can't update Sanny's ini myself, so I must support those ones that are being published here. If the INI begins to use a way that is incompatible with the current Sanny version, I must make it compatible.

You are able to change INI in any ways. You may re-order parameters, may recreate a whole INI, change the descriptions, comments, whatever... Sanny will work with it. I've said 'Sanny', not the 'scripts' which will be written using such INI. If an user decides that he wants to update his INI and uses it, it's his decision. He is responsible for further compatibility of a code, not me. But when the INI is not compatible with the de-compiler, it's a responsibility of mine.

 

Changing of the math opcodes leads to decompilled code will be unable to be compiled! Only math ones, not others.

That's a list of opcodes that the decompiler of Sanny does not write to outputfile when 'write opcodes' is disabled:

 

 

0004..001B0020..00230028..002B0030..00330038, 0039, 0042, 0043.

 

 

These ones MUST be stayed as is:

 

 

I speak for everybody when I say that decompiled code is a lot more pleasant to read with the flavor text.

 

When you get decompiled line: $var += 1 (short kind of 0008: $var += 1), it's very clear what this line means. This gets the variable and increments its value by an integer constant. No need to describe it more. You even may not to know what opcode is used to increment, multiply a varible by a constant, what the difference between 001A and 002A. If you need to use some of those expressions, just write them. SAMB supports them as well.

Is there a reason to consult with opcode DB, search for 'mulgf' to find out what opcode multipies a global variable by a float constant, if you CAN simply write $var *= 2.0? The result is same.

You wrote

when I want to multiply a local var by an int, I just type out 0012: @0 *= 218

I say: when I want to multiply a local by an integer, I just type [email protected] *= 218

 

So, now I think my initial suggest to comment out all the math opcodes was wrong.

 

We need to describe only those opcodes which meaning is not clear at the first look at.

 

Example:

 

0084: $var1 = $var20086: $var1 = $var2

 

 

Without consulting with opcodes DB, readme, analysing a context, having an experience (like yours one wink.gif) the user is not able to know what the difference between these opcodes. So, these ones must be described. It does not matter how: with mnemonic style, comment style or somehow else. But they MUST. Coder (especially, a newbie) should understand what simple opcodes mean, what a specific of its usage. You wrote about a readme that covers all these questions, but is there such readme? Is there the ONLY source reading those an user can to find out all details?

 

So, I just ask you and everybody: DO NOT change those opcodes i've written above.

Edited by Seemann

Share this post


Link to post
Share on other sites
Demarest

Hmm, will it be the fifth SASCM.INI? Let's count: SAMB default INI, SB default INI (last update 25.11.2005), space's INI, Python's INI... and yours?
I swear to god if you were standing right here, I would choke you. I realize English isn't your first language, but you would have to be truly out of your gourd to not be able to read what's going on here. Did you say this when space took it upon himself to CHANGE the INI? No. Did you say this when Pynton took it upon himsefl to CHANGE the INI? No. But now that I'm saying I'm going to do for the FIRST INI what these guys should've AND asking YOU questions so that it won't break your tool, I'm the one that catches sh*t?

 

f*ck YOU!

 

 

ow, what about people who just want to write the scripts? All that happen there it a kind of crazy. It looks like soon everybody will maintain his own INI...
Did you say this when space took it upon himself to CHANGE the INI? No. Did you say this when Pynton took it upon himsefl to CHANGE the INI? No. But now that I'm saying I'm going to do for the FIRST INI what these guys should've AND asking YOU questions so that it won't break your tool, I'm the one that catches sh*t?

 

f*ck YOU!

 

 

Here's what the part you're freaking out over looks like

Is it the part of your INI to release?

NO! What you are having the most monumental of challenges grasping is that we're not talking about MY INI. What I'm working on is THE COMMUNITY'S INI. The way it was from day one. It is from THAT INI and since it's exactly how it should be, why on earth would I change it?

 

 

Sanny depends on this INI, and I depend too. I can't update Sanny's ini myself, so I must support those ones that are being published here.
Then shame on you. You're the only active tool maker here. You should NOT be supporting efforts to further faction the community. You should be shunning efforts by people like space and Pynton and leaving me the f*ck alone so I can continue with the way it should've been done from day one. And after your big speach about making everything simpler for everybody. Hypocrite!

 

 

If the INI begins to use a way that is incompatible with the current Sanny version, I must make it compatible.
Wrong answer. You're essentially supporting efforts that crash people's games. When these things happen, the mod author is blamed, MAYBE the tool maker is blamed... nobody thinks to blame the guy making the INI when he is in fact the ONLY one in the chain crashing games.

 

 

You are able to change INI in any ways. You may re-order parameters
Re-ordering parameters crashes game and factions the community. So no, I may NOT re-order them. Nobody may.

 

 

may recreate a whole INI
Nope. Because that would f*ck everybody that already had a working INI. So no, I may NOT re-order them. Nobody may.

 

 

change the descriptions, comments, whatever...
These things will not actually change the way the INI or the tool that uses it performs. Therefore using it as an example when trying to demonstrate reasons to modify your tool is pointless.

 

 

Sanny will work with it.
Then you are no better than people like space and Pynton who are more interested in being able to apply their name to something than actually HELPING the community.

 

 

I've said 'Sanny', not the 'scripts' which will be written using such INI. If an user decides that he wants to update his INI and uses it, it's his decision.
Actually, no. There is no choice. Thanks to space re-ordering parameters, this means that users have had NO option for updating their INI. Considering how much more is known about the opcodes today than when SAMB was released, that's terrible. I'm fixing that. For the community. Because I care more about people standing together for the same hobby than slapping my name on the next piece of junk that's going to sink them all.

 

 

He is responsible for further compatibility of a code, not me. But when the INI is not compatible with the de-compiler, it's a responsibility of mine.
Nope. Your tool worked. Am I wrong? So if somebody updates an INI and suddenly it doesn't work, that should be your first indication that whomever updated that INI was out of line. See, what you fail to realize is that's not me. And you don't even have to take my word for it. Look above. It's a matter of record. When I was just THINKING about making one, I asked you questions so that my update could NOT crash your tool.

 

 

Changing of the math opcodes leads to decompilled code will be unable to be compiled!
Show me one point above where I changed the math opcodes and I WON'T slap the taste out of your mouth next time I see you. How retarded would you have to be to continue this fantasy when I've already showed you that you pissed your pants for no reason?

 

 

That's a list of opcodes that the decompiler of Sanny does not write to outputfile when 'write opcodes' is disabled:

 

 

0004..001B0020..00230028..002B0030..00330038, 0039, 0042, 0043.

 

 

These ones MUST be stayed as is:

<operand1> <operator> <operand2>

Again, show me where I f*cked it up. Since it's a copy/paste of the ORIGINAL INI, it might take a while. Pack a lunch.

 

 

I speak for everybody when I say that decompiled code is a lot more pleasant to read with the flavor text.
When you get decompiled line: $var += 1 (short kind of 0008: $var += 1), it's very clear what this line means. This gets the variable and increments its value by an integer constant. No need to describe it more. You even may not to know what opcode is used to increment, multiply a varible by a constant, what the difference between 001A and 002A. If you need to use some of those expressions, just write them. SAMB supports them as well. Look at the monkey! Pay attention! You started talking about changing your tool to totally disregard flavor text just because Y_Less voiced his opinion that he'd like to see setgi in their. That my friend is freaking out. You need to just sit down. The time to jump up and yell at people for changing things they shouldn't is a thing of the past. My project is meant to put an end to such bullsh*t, so grab a Coke and relax.

 

 

Is there a reason to consult with opcode DB, search for 'mulgf' to find out what opcode multipies a global variable by a float constant, if you CAN simply write $var *= 2.0? The result is same.
Let's talk about the subject at hand. I could tell you the sky's blue, but I don't feel like wasting your time. But since you asked, people are different. For example, if I'm not too much mistaken, I THINK MB users have the ability to type something and press F11 or something like that. I don't actually know because I've never done it. And yes, I type 0011 $var *= 2.0. Know why? Because I've only been doing it that way for 3 years. It's faster than somebody else could type it without the opcode. So suddenly I'm a bad guy because I type more of a line than I have to? Your distaste for me really has you stooping to some serious lows to try and show it off.

 

 

I say: when I want to multiply a local by an integer, I just type [email protected] *= 218
So. That doesn't mean I'm going to squat when I piss just because you do. I'm me. And I'm going to do things that are for me MY way. Which you see, is actually part of the problem. On the subject of INI's (forgive me for bringing us back to the topic sarcasm.gif), an update is NOT something just for one person. It's for the community, so it should fall in line with the community's standars. So when people like space and Pynton come along trying to change all that... for no good reason, THAT is the time to rise up with all your politics pushing. When it comes down to I butter my toast left to right and you do it right to left, it's time to find the next focus of your senses.

 

 

Without consulting with opcodes DB, readme, analysing a context, having an experience (like yours one wink.gif) the user is not able to know what the difference between these opcodes. So, these ones must be described. It does not matter how: with mnemonic style, comment style or somehow else. But they MUST. Coder (especially, a newbie) should understand what simple opcodes mean, what a specific of its usage. You wrote about a readme that covers all these questions, but is there such readme?
We still have people not grasping the difference between DMA and custom labels, the need for a create_thread, etc. Despite the fact that MB's readme has had all this and a LOT more for years now. A person who makes no effort to approach something PROPERLY only has themselves to blame when it doesn't work. If your point is that there is no such readme, then make one if you feel the need. There's no justification in adding 3 lines of commenting for example just so a person knows which keypresses are which ON THAT LINE. Maybe I'm alone on this, but I rather enjoy reading if car wrecked jump if false... Not 0004: $var = 1 ;; integer values except on tuesday unless used in conjunction with...

 

Whether you agree with it or not, it is true to say that one could mention ONCE in a readme that accompanies it for example "you must load a weapon model before giving it to an actor" instead of adding exactly that to EVERY SINGLE line where an actor is given a weapon.

 

 

So, I just ask you and everybody: DO NOT change those opcodes i've written above.
Save it for when somebody does.

 

Now here comes all the pussy replies. People sabotage OUR home and they're exalted, but when somebody chooses to provide for them and do it right, he's the nutjob. Just ask ceedj. I'm sure he'll have some sh*t to talk about this.

 

[EDIT]

Got a little present for you. I'm through opcode 0761 right now, and here's the notes I've compiled on space's INI. Look at this, and how you never gave him sh*t for breaking anything, but when I set out to fix it, you start sh*t for sport

opcodes space broke the param order on

 

009A, 00A3, 00A4, 00B0, 00B1, 00EC, 00ED, 00EE, 00EF, 00F0, 00F1, 0129, 016F, 01C8, 020C, 024F, 0298, 02CF, 02D6, 02F8, 02F9, 0363, 038F, 046D, 0503, 0517, 0518, 053E, 0560, 0570, 05A8, 05CA, 05D9, 0613, 061A, 0623, 064B, 0656, 0665, 0669, 066A, 066B, 066C, 066D, 066E, 06A3, 06A8, 06AC, 06B1, 06BE, 06C1, 06C3, 06D5, 06DE, 06EC, 06F5, 0702, 0716, 071E, 073E, 073F, 0760, 0761

 

mislabelings

 

00C2 was named from sphere to area when it is in fact a sphere, params = X Y Z radius

0381 was named velocity when the value indicates speed and param denotes direction

03A1 was named from point to area when it is in fact a sphere, params = X Y Z radius

053E was reordered and named from actors to type when it is in fact looking for specific actors

059F was named velocity when the value indicates speed and param denotes direction

05A1 was named velocity when the value indicates speed and param denotes direction

05A2 was named velocity when the value indicates speed and param denotes direction

05A6 was named velocity when the value indicates speed and param denotes direction

05A7 was named velocity when the value indicates speed and param denotes direction

0612 was named paused when in fact the toggle indicates if the player should be actively performing

0682 was named velocity when the value indicates speed and param denotes direction

0684 was named velocity when the value indicates speed and param denotes direction

06A2 was named velocity when the value indicates speed and param denotes direction

0745 was named hydra when original code used it on any air vehicle

 

backwards labelings

 

0446 was named immune_to_headshots when in fact it denotes their susceptability

054A was named immune_to_vehicle_headshots when in fact it denotes their susceptability

0568 was named targetable when in fact it denotes cannot_be_targeted

06AF was named able to sprint when in fact it denotes suspension of ability to sprint

 

special notes

 

0702 not only was param order shattered, it was put back together in a way that CAN NOT WORK

Edited by Demarest

Share this post


Link to post
Share on other sites
Demarest

 

07CB=2,set_char %1d% supporting_fire %2h%

destines char to support player with fire or simply return fire. actor has to be in player group.

Can anybody verify this? I mean, I understand what's written. My confusion comes from the fact that original code also used this opcode on $PLAYER_ACTOR. Any ideas?

 

Oops. Got here by search. Didn't realize it was in a thread I had just posted in blush.gif

Share this post


Link to post
Share on other sites
PLPynton

And I'm going to do things that are for me MY way

 

i like it! just do something about that 'i am so superior' tone of yours.

well you see, some of space "mistakes" you pointed out are not actually a mistakes:

 

053E was reordered and named from actors to type when it is in fact looking for specific actors

WRONG! it concerns vehicle model ID, do some test with values like 420 to intercept only taxi, then do some test with like 180 to intercept sh*t.

 

0381 was named velocity when the value indicates speed and param denotes direction

059F was named velocity when the value indicates speed and param denotes direction

05A1 was named velocity when the value indicates speed and param denotes direction

05A2 was named velocity when the value indicates speed and param denotes direction

05A6 was named velocity when the value indicates speed and param denotes direction

05A7 was named velocity when the value indicates speed and param denotes direction

0682 was named velocity when the value indicates speed and param denotes direction

0684 was named velocity when the value indicates speed and param denotes direction

06A2 was named velocity when the value indicates speed and param denotes direction

WRONG! it is velocity. i know that you are not educated person, but there is something called mathematics and physics. these are international and you can learn them in the place named school, reconsider going back for a while or 2. (no disrespect hehe)

 

0612 was named paused when in fact the toggle indicates if the player should be actively performing

yes, but that is not his foult, i have found this opcode and i made this mistake, sorry. btw that is not toggle. you write "toggle indicates" but that ain't toggle you mentioned. that opcode does not switch animation play control state in to the alternate state and therefore does not fillful minimum requirements to be named toggle!

 

seeing direction in which that INI of yours is going to hit, i have to ask again: what is the reason for it again? do not say is just because of small difference: you"worship" this and we... well we know this.

why do not you have a normal life like most of us does? you are obviously getting to much personly into that man, that is just a fun. the worship of a flag is a disease called nationalism, the worship of a dogma is disease called organized religion, then how is called this one i am asking?

 

'look at me:'

i do not give a f..k, i do not like this play, i am going to play real game called life.

Share this post


Link to post
Share on other sites
Bigun

^Agreed...Dem takes all this sh*t way too seriously and wants everything perfect. Well, surprise, this is just a modding community of a GAME. Modding is just a hobby to pass time. And in addition, nothing can be perfect, so stop trying.

Share this post


Link to post
Share on other sites
Seemann

 

I swear to god if you were standing right here, I would choke you. I realize English isn't your first language, but you would have to be truly out of your gourd to not be able to read what's going on here. Did you say this when space took it upon himself to CHANGE the INI? No. Did you say this when Pynton took it upon himsefl to CHANGE the INI? No. But now that I'm saying I'm going to do for the FIRST INI what these guys should've AND asking YOU questions so that it won't break your tool, I'm the one that catches sh*t?

 

Chill out, man. I just asked. I'm able to read all this sh*t and I know why you're going to publish your INI variant.

 

And do not insult me.

 

 

NO! What you are having the most monumental of challenges grasping is that we're not talking about MY INI. What I'm working on is THE COMMUNITY'S INI. The way it was from day one. It is from THAT INI and since it's exactly how it should be, why on earth would I change it?

 

Why do you decide that it should be exactly so? The comments have been being in the INI since GTA3MB, AFAIK. So, if you remove these ones, it's YOUR way, isn't it?

 

 

Wrong answer. You're essentially supporting efforts that crash people's games. When these things happen, the mod author is blamed, MAYBE the tool maker is blamed... nobody thinks to blame the guy making the INI when he is in fact the ONLY one in the chain crashing games.

 

There's nothing about crashing the game. That's all about code (in)compatibility.

 

 

When I was just THINKING about making one, I asked you questions so that my update could NOT crash your tool

 

And I answered you. As you haven't added those words in the math opcodes, it's great.

 

Edited by Seemann

Share this post


Link to post
Share on other sites
Ben

Woah! Let's all just relax and take a few deep breaths here... This is rapidly deteriorating into something nasty, and comments like this aren't needed to fuel the fire:

 

why do not you have a normal life like most of us does? you are obviously getting to much personly into that man, that is just a fun. the worship of a flag is a disease called nationalism, the worship of a dogma is disease called organized religion, then how is called this one i am asking?

 

'look at me:'

i do not give a f..k, i do not like this play, i am going to play real game called life.

 

^Agreed...Dem takes all this sh*t way too seriously and wants everything perfect. Well, surprise, this is just a modding community of a GAME. Modding is just a hobby to pass time. And in addition, nothing can be perfect, so stop trying.

What does it matter to you how seriously he takes it? Everyone is different - we all lead unique lives. Obviously, there's been some forces that have impacted on Dem's life that have led him to have such a passion for coding. People don't piss on your passions in life, so how bout returning the favour and keeping your opinions to yourself wink.gif.

 

Obviously perfection is not attainable - it's what makes us all human. But from the way I see it, Dem is hardly aiming for perfection - he's simply making changes to the INI to correct errors that HAVE resulted in crashes. I don't know what your definition of perfection is, but this situation to me seems more like he's attempting to improve something for the benefit of the community rather than trying in vain to perfect something confused.gif. Just think about it before posting, eh? wink.gif

 

Sure, Dem does take things personally at times, and that seems to make him a target for sh*t like this. He doesn't have to justify his actions - it's just him, his personality, and, just like in REAL life, you have to adapt to it. And besides, it's not as if you didn't know what he's like - he's certainly stamped his presence all over this forum, and none of you are new members here. Think about it future, please.

 

But to all involved here, let's just tone it down a little, eh? I'm sick of reading through sh*t like this... mad.gif

Share this post


Link to post
Share on other sites
PLPynton

yes, let us calm down. you missed the point here!

 

i just have said that whatever is the task he is doing he is not capable to bring any further help for this community, why?:

1. he will create old&wrong names, rules and math/physic from (?).

2. his selfishness does not allow him to see how small the target group will be.

well he is capable but first he has to get some distance.

guess what: I DO NOT CARE.

 

why is he making these failures? because he is to deep in that. he thinks verybody is just the way he is. guess what:

Seemann is the way he is, he is JUST Seemann. Biggun is the way he is, he is JUST Biggun. PLPynton is the way he is, he is JUST PLPynton... and above all:

you have to be writing this to him and against him before he started to throw sh*t around himself, the place where he lives.

guess what: I DO NOT CARE.

 

finally:

 

making changes to the INI to correct errors that HAVE resulted in crashes

do not disrespect! you might be knowing nothing about that subject of ours but do not disrespect just because you believe opinion of somebody and it happens you do not even know him.

 

i shouldn't be even writting because i do not care, nobody does.

Edited by PLPynton

Share this post


Link to post
Share on other sites
Y_Less

Right, despite my opposition to this original project I left it open (anything less would have been wrong tbh) but it has just degraded into a huge argument. Some of you may claim it's Dems fault but you post to say "I shouldn't be posting but..." I have this very clever system when I shouldn't be posting or when posting will just perpetuate arguments, I don't click the reply button, you may want to try it in the future.

 

Also, the original point of this project was to put the OpCodes back to their original order and rename them where appropriate but naming them wrong is never appropriate tbh, even if it is for your own personal use:

 

0004: set_car $car z_height_as_interger_to 5

 

An extreme example but meh, if it's named wrong it's named wrong.

 

Anyway, you claim it's just for you and you don't care what other people say about it, well guess what, you've got your wish, you can't distribute it and people can't comment on it.

 

Despite my dislike of the system it is a shame it's come to this, hence the long explanatory post, rather than just the customary:

 

*Locked*

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • 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.