A-SCI: Difference between revisions
From Sierra Wiki
Jump to navigationJump to search
No edit summary |
|||
| (4 intermediate revisions by the same user not shown) | |||
| Line 16: | Line 16: | ||
| Source = {{NoSourceSW}} | | Source = {{NoSourceSW}} | ||
| License = {{NoLicense}} | | License = {{NoLicense}} | ||
| Type = {{ | | Type = {{FanSCIDisassembler}}, {{SCIDisassembler}} {{Disassembler}} {{FanSCIAssembler}} {{SCIAssembler}} {{Assembler}} | ||
| Engine = {{SCI11Tool}}, {{SCI2Tool}}, {{SCI21Tool}} | | Engine = {{SCI11Tool}}, {{SCI2Tool}}, {{SCI21Tool}} | ||
| Platform = {{WinTool}} | | Platform = {{WinTool}} | ||
| Line 42: | Line 42: | ||
*scdasm11.exe: Disassembler for SCI 1.1 (16-bit) scripts (HEP+SCR -> SCH+SCS). | *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). | *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 | *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... :) | ||
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. | *Old SCI0 and SCI1 games, where heap and code are combined, are not supported. | ||
</blockquote> | </blockquote> | ||
| Line 114: | Line 111: | ||
* [[SCI Specifications: Chapter 1 - Introduction##The SCI Heap|SCI Heap in the SCI Specifications]] | * [[SCI Specifications: Chapter 1 - Introduction##The SCI Heap|SCI Heap in the SCI Specifications]] | ||
* [[:Category:Heap Resources|Heap Resource Articles]] | * [[:Category:Heap Resources|Heap Resource Articles]] | ||
* [[:Category:SCI | * [[:Category:SCI Disassemblers|SCI Disassemblers]] | ||
* [[:Category:SCI | * [[:Category:SCI Assemblers|SCI Assemblers]] | ||
* [https://erolfi.wordpress.com/2009/06/19/a-sci-assembler-for-sci1-1sci32/ A.SCI on Enrico Rolfi's Gaming Tools] | * [https://erolfi.wordpress.com/2009/06/19/a-sci-assembler-for-sci1-1sci32/ A.SCI on Enrico Rolfi's Gaming Tools] | ||
| | ||
| Line 124: | Line 121: | ||
[[Category:Technical Info]] | [[Category:Technical Info]] | ||
[[Category:SCI Technical Info]] | [[Category:SCI Technical Info]] | ||
[[Category:Scripting | [[Category:Scripting]] | ||
[[Category:SCI Scripting | [[Category:SCI Scripting]] | ||
[[Category:Script Resources]] | [[Category:Script Resources]] | ||
[[Category:SCI Script Resources]] | [[Category:SCI Script Resources]] | ||
Latest revision as of 12:41, 2 January 2026
| This article is a tool stub page. You can help the Sierra Wiki by expanding it. |
| Latest Version: | — | ||
|---|---|---|---|
| Release Date: | 2006-09-19[1] | ||
| Company: | N/A | ||
| Development Status: | Unmaintained | ||
| Publication Status: | Published | ||
| Developer(s): | Enrico Rolfi | ||
| Interface: | CLI | ||
| Language: | C++ | ||
| Open Source: | Closed | ||
| Source Availability: | No | ||
| License: | None | ||
| Type: | Disassembler, Disassembler Disassembler Assembler Assembler Assembler | ||
| Relevant Engine: | SCI1.1, SCI2, SCI2.1 | ||
| Platform: | Windows | ||
| Localization: | English | ||
| Website: | Enrico Rolfi's Gaming Tools | ||
Description
Template:EnricoRolfiQ[2] wrote:
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!
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
A-SCI is no longer actively maintained.
Usage
See included documentation
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
Legal
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 released with no license.
References
- ↑ From the file's creation date
- ↑ https://erolfi.wordpress.com/2009/06/19/a-sci-assembler-for-sci1-1sci32/
Also See
- Script Resource (SCI)
- SCRIPT in the SCI Specifications
- Script Resource Articles
- HEAP Resource (SCI)
- SCI Heap in the SCI Specifications
- Heap Resource Articles
- SCI Disassemblers
- SCI Assemblers
- A.SCI on Enrico Rolfi's Gaming Tools