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
Line 17: Line 17:
| License = {{NoLicense}}
| License = {{NoLicense}}
| Type = {{FanSCIDisassemblerTool}}, {{FanSCIAssemblerTool}}
| Type = {{FanSCIDisassemblerTool}}, {{FanSCIAssemblerTool}}
| Engine = {{SCITool}}, {{SCI11Tool}}, {{SCI2Tool}}, {{SCI21Tool}}
| Engine = {{SCI11Tool}}, {{SCI2Tool}}, {{SCI21Tool}}
| Platform = {{WinTool}}
| Platform = {{WinTool}}
| Localization = {{EnglishTool}}
| Localization = {{EnglishTool}}

Revision as of 14:04, 17 June 2025

A-SCI

Version —
Author: Enrico Rolfi
2006
  This article is a tool stub page. You can
help the Sierra Wiki by expanding it.
A-SCI
Latest Version:  —
Release Date:  2006[1] Citation Required
Company: Template:N/A
Development Status:  {{{DevStatus}}}
Publication Status:  Unpublished
Developer(s): Enrico Rolfi
Interface: CLI
Language: C++
Open Source: Closed
Source Availability:  No
License: None
Type: Disassembler, Assembler
Relevant Engine: SCI1.1, SCI2, SCI2.1
Platform: Windows
Localization: English
Website: 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 N/A's A-SCI is no longer actively maintained.


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