A-SCI
| Latest Version: | — | ||
|---|---|---|---|
| Release Date: | 2006[1] Citation Required | ||
| Company: | Template:N/A | ||
| Development Status: | {{{DevStatus}}} | ||
| Publication Status: | |||
| Developer(s): | Enrico Rolfi | ||
| Interface: | |||
| Language: | C++ | ||
| Open Source: | |||
| Source Availability: | No | ||
| License: | |||
| Type: | Disassembler, Template:FanSCIAassemblerTool | ||
| Relevant Engine: | SCI1.1, SCI2, SCI2.1 | ||
| Platform: | Windows | ||
| Localization: | English | ||
| Website: | [https:erolfi.wordpress.com20090619a-sci-assembler-for-sci1-1sci32 A.SCI on Enrico Rolfi's Gaming Tools] | ||
Description
Enrico Rolfi's A-SCI A.SCI, the first Assembler for the Sierra Creative Interpreter versions 1.1 and 2 (SCI32), entirely written in C++.
IMPORTANT NOTE: This is not a compiler; basically, it’s a disassembler with an assembler to reverse the process, which allows for minor changes to games. Use at your own risk! Double check your game after doing deep modifications to it!A-SCI was On-Line Systems's A-SCI is no longer actively maintained.| This article is a tool stub page. You can help the Sierra Wiki by expanding it. |
Features
kernels.pre: Default Kernel call names for SCI 1.1 (16-bit) games. See below.
rdkernel.exe: Extracts Kernel call names from SIERRA.EXE to standard output.
scasm11.exe: Assembler for SCI 1.1 (16-bit) scripts (SCH+SCS -> HEP+SCR).
scasm20.exe: Assembler for SCI 2.x (32-bit) scripts (SCH+SCS -> HEP+SCR).
scdasm11.exe: Disassembler for SCI 1.1 (16-bit) scripts (HEP+SCR -> SCH+SCS).
scdasm20.exe: Disassembler for SCI 2.x (32-bit) scripts (HEP+SCR -> SCH+SCS).
The heap sources are saved in a separate source file because I found
that this makes it easier for me to find my way through it, and because
it's easier for the assembler to handle as well. It pays off having a
text editor that can open multiple files, I guess... :)
Old SCI0 and SCI1 games, where heap and code are combined, are not supported.
Requirements
Version History
Development Status
Unmaintained
Options
Download
Download from here:
Known issues
- * Object overloading (i.e. having both Actor "FreshHound" and Talker
"FreshHound" in the same script) is not supported. Fortunately, I've never come across a game that needed this.
- Don't do any fancy stuff within strings --- "\n" is supported. OEM
special accented characters are supported, too, but don't try things like "\0" or "blah\x22\x34".
- The assembler does not always use the most efficient coding form ---
for example, jumps are ALWAYS 3-byte instructions, even if a 2-byte one would do the job. This is because the jump distance is only known once symbol references are resolved, which happens after assembly.
- The LEA instruction is not disassembled into clear text. It is however
reassembled properly. Therefore you shouldn't mess around with it. :)
Credits
References
Also See