A-SCI: Difference between revisions

From Sierra Wiki
Jump to navigationJump to search
Andrew Branscom (talk | contribs)
No edit summary
Andrew Branscom (talk | contribs)
No edit summary
Tag: Reverted
Line 16: Line 16:
| License =  
| License =  
| Type = {{FanSCIDisassemblerTool}}, {{FanSCIAassemblerTool}}
| Type = {{FanSCIDisassemblerTool}}, {{FanSCIAassemblerTool}}
| Engine = {{SCI11Tool}}, {{SCI2Tool}}, {{SCI21Tool}}
| Engine = {{SCI11Tool}}, {{SCI2Tool}}, {{SCI21Tool}} {{SCITool}}
| Platform = {{WinTool}}
| Platform = {{WinTool}}
| Localization = {{EnglishTool}}
| Localization = {{EnglishTool}}

Revision as of 12:08, 17 June 2025

A-SCI

Version —
Author: Enrico Rolfi
2006
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 SCI
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[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!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