![]() Or if you're crazy enough to replace the whole thing. ![]() You care about the interpreter if you want to solve bonus mysteries or find timebombs. It also contains over a hundred kernel functions that scripts call to do work. From there, it just follows orders until a script sets the quit flag or it famously crashes. It loads drivers, decodes resources, and runs the first game script in a virtual machine. The interpreter was written in C and a lot of assembly, and then rewritten in C++ and slightly less assembly. The Interpreter: This is the program that runs the show you know it as SIERRA.EXE or SCIV.EXE. As you get deeper into SCI mechanics, you care more about these scripts, although perhaps reluctantly. You'll find generic classes for rooms and actors and icon bars, and utility functions for things like message boxes and math. They form a common runtime library that the games are built on. System Scripts: These are the supporting scripts that appear in every game. This is probably the only code you care about. You care about this if you want to solve murder mysteries or find easter eggs. Every room in every game gets its own script. Game Scripts: This is the unique code that defines a game. ![]() When I talk about Sierra code, I break it into three categories: You go outside and play with your scripts! We'll see where Sierra's script language came from, what reverse engineers have done with it, and why I'm cheerfully undermining the blog with today's release. I just want to kick back and tell the story of how this came to be. I even got out the big font! (When do we ever get out the big font?) In fact, I'm counting on the crowd thinning out so I can indulge in some inside baseball. You're still here? Look, you're welcome to stay, but I just linked to half a gig of way more interesting text. Today, with one command and a couple of cores, I've decompiled and annotated every Sierra SCI game, and practically every version, and dumped the results on github for everyone to enjoy. While that's not every single one, you have my permission to say it is. I've now amassed over three hundred versions of SCI games from 1988 through 1996. Software scavenger hunts are fun and this one as been successful. What's a mass decompiler without the masses? There are only about sixty games, but they were heavily revised, ported, and translated. In the meantime, I slowly obtained as many games and variants as I could. The only certainty was that win or lose, it would take a while. The decompiler I envisioned could unlock the solution, but I didn't know how to write it. I wanted to share this with the community * but the particulars of SCI Companion made it a thorny problem. That's how I learned the scripts in the first place: by writing automatic annotators and reading the results. Annotations are comments and symbols that transform decompiled code from something you can read into something you want to. Last year, I had a vision and began writing my own decompiler - a mass decompiler - with the goal of wiring it up to my script tools for annotations. Released in 2015, it was the first and only decompiler for SCI games - at least as far as the world is concerned. As I'm often at pains to point out, this is thanks to the brilliant script decompiler written by Phil Fortier for SCI Companion. 'Round these parts, we write about old Sierra games and their rich inner lives.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |