Joe | Can anyone tell me the sites to go to to learn SCI bytecode? I know about the FreeSCI, but are there any others? |
Pikachu14 | Now why would you want to do that? |
Joe | To learn how Sierra does some of the things they do in their games... |
Pikachu14 |
Well, I guess you don't need bytecode for that. Besides, it's very hard (IMHO). Also, medium-difficulty problems can be solved by asking (like customized windows and user-defined cusswords ;)) Quest for Glory-style character transferral sounds like a hard, "bytecode-worthy" problem, but it's easier than it seems. Just an example, though... |
Joe |
So, ldi 0 // $0 species sat temp0 pTos state ldi 1 // $1 superClass and bnt code_045F pushi 34 // $22 type pushi 0 // $0 species lap param1 send 4 Isn't bytecode? What is it called then? |
Pikachu14 | It's bytecode, I don't understand it, and it might as well be Assembly. :-X |
Joe | I'm up for a challenge. It's not like I have anything better to do. |
Pikachu14 | I'm not gonna stop you. Good luck finding those docs! |
Joe | Thanks. I'll probably need it. |
Brian_Provinciano |
If you know assembly lanuage, it won't be too hard to pick up. If you don't know assembly language, it will be very hard to pick up. I've taught myself C, C++, Basic, Visual Basic, Delphi, Pascal, Java, and countless other lanuages, but assembly (machine code) was the only one I had to take a class to learn. It's so much more complicated than other languages. The fact is though, that my template games are built from disassembling Sierra's and rescripting it in my SCI language. That being the case, what you see in my code is essentially what you'd see reading the bytecode. It operates almost identical. |
Joe | If that's the case, then I should be able to pick up some of the language by comparing the template to it's disassembled script files. |
Brian_Provinciano | You should also read up on the entire script file format. You'll need to know how everything works to understand the code. |
Joe | Thanks. So far, all I know about the script format is that the interpreter reads it from the bottom up. |
Brian_Provinciano |
It actually executes the scripts from top to bottom. You're probably confusing the stack. The scripts are broken into chunks (segments). The first segment of most scripts, is the exports segment. The interpreter reads this, and in the case of rooms, executes the first public instance. From there, the instances can call other areas of the script or other publics of other scripts. The scripts operate on the accumulator and the stack. Both are used for temporary data. The opcodes manipulate these and the program is produced. |
Joe | I guess I don't know as much about it as I thought. :) Looks like I have a long, rewarding road ahead of me. |