A-SCI: Difference between revisions

From Sierra Wiki
Jump to navigationJump to search
Andrew Branscom (talk | contribs)
No edit summary
Andrew Branscom (talk | contribs)
 
(19 intermediate revisions by the same user not shown)
Line 1: Line 1:
<div align="center"><div style="font-size: 22pt">A-SCI</div><br />
<div align="center"><span style="font-size: 22pt">A-SCI</span><!--<br />''Version ''--><br />''Author: [[Enrico Rolfi]]''<br />''2006-09-19''</div></div>
Version {{UnknownVerTool}}<br />''Author: [[Enrico Rolfi]]''<br />2006</div>
{{TechToolStub}}


{{FanSCISoftwareInfobox
{{FanSCISoftwareInfobox
| Software = A-SCI
| Software = A-SCI
| Image = [[Image:A-SCITitleSS.png|190px]]<br />
| Image =  
''A-SCI'' Title Screen
| Version = {{UnknownVerTool}}
| Version = {{UnknownVerTool}}
| ReleaseDate = {{2006}}{{CitationReq}}
| ReleaseDate = {{2006S}}-09-19<ref>From the file's creation date</ref>
| Company = {{N/A}}
| Company = {{NAToolCo}}
| Published =  
| DevStatus = {{UnmaintainedDev}}
| Published = {{Published}}
| Developers = {{EnricoRolfiToolDev}}
| Developers = {{EnricoRolfiToolDev}}
| Interface =  
| Interface = {{CLI}}
| ProgLanguage = {{C++}}
| ProgLanguage = {{C++}}
| OpenSource =  
| OpenSource = {{ClosedSRC}}
| Source = {{NoSourceSW}}
| Source = {{NoSourceSW}}
| License =  
| License = {{NoLicense}}
| Type = {{FanSCIDisassemblerTool}}, {{FanSCIAassemblerTool}}
| Type = {{FanSCIDisassembler}}, {{SCIDisassembler}} {{Disassembler}} {{FanSCIAssembler}} {{SCIAssembler}} {{Assembler}}
| Engine = {{SCI11Tool}}, {{SCI2Tool}}, {{SCI21Tool}}
| Engine = {{SCI11Tool}}, {{SCI2Tool}}, {{SCI21Tool}}
| Platform = {{WinTool}}
| Platform = {{WinTool}}
| Localization = {{EnglishTool}}
| Localization = {{EnglishTool}}
| Website = [https:erolfi.wordpress.com20090619a-sci-assembler-for-sci1-1sci32 A.SCI on Enrico Rolfi's Gaming Tools]
| Website = [https://erolfi.wordpress.com/ Enrico Rolfi's Gaming Tools]
}}
}}


Line 26: Line 26:
==<br /> Description ==
==<br /> Description ==


<div class="Quote">
<div class="NarrowQuote">
{{Quote|Attrib = Enrico Rolfi<ref>https://erolfi.wordpress.com/2009/06/19/a-sci-assembler-for-sci1-1sci32/</ref>
{{Quote|Attrib = {{EnricoRolfiQ}}<ref>https://erolfi.wordpress.com/2009/06/19/a-sci-assembler-for-sci1-1sci32/</ref>
}}
}}
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++.
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|On-Line Systems's]]  A-SCI is no longer actively maintained.</div>
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!</div>
 
{{TechToolStub}}
</blockquote>


==<br /> Features ==
==<br /> Features ==


kernels.pre:
<blockquote>
Default Kernel call names for SCI 1.1 (16-bit) games. See below.
* 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.
rdkernel.exe:
*scasm11.exe: Assembler for SCI 1.1 (16-bit) scripts (SCH+SCS -> HEP+SCR).
Extracts Kernel call names from SIERRA.EXE to standard output.
*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).
scasm11.exe:
*scdasm20.exe: Disassembler for SCI 2.x (32-bit) scripts (HEP+SCR -> SCH+SCS).
Assembler for SCI 1.1 (16-bit) scripts (SCH+SCS -> HEP+SCR).
*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.
scasm20.exe:
</blockquote>
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.
 


==<br /> Requirements ==
==<br /> Requirements ==
Line 74: Line 55:


<blockquote>
<blockquote>
&nbsp;<!-- Place version history here
<!-- Place version history here -->
<span class="Inactive">N/A</span> -->
</blockquote>
</blockquote>


Line 81: Line 61:


<blockquote>
<blockquote>
Unmaintained
A-SCI is no longer actively maintained.
</blockquote>
 
==<br /> Usage ==
 
<blockquote>
See included documentation
</blockquote>
</blockquote>


Line 87: Line 73:


<blockquote>
<blockquote>
<!-- Add requirements here -->
<!-- Add options here -->
</blockquote>
</blockquote>


<div id="DL">
==<br /> Download ==
==<br /> Download ==


Line 99: Line 86:
==<br /> Known issues ==
==<br /> Known issues ==


* *  Object overloading (i.e. having both Actor "FreshHound" and Talker
*  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.
"FreshHound" in the same script) is not supported. Fortunately, I've
* 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".
never come across a game that needed this.
* 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. :)


* Don't do any fancy stuff within strings --- "\n" is supported. OEM
==<br /> Credits ==
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. :)


* [[Enrico Rolfi]]


==<br /> Credits ==
==<br /> Legal ==


* [[Enrico Rolfi]]
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.


==<br /> References ==
==<br /> References ==
Line 126: Line 105:
==<br /> Also See ==
==<br /> Also See ==


* [[:Category:SCI Disassembler Tools|SCI Disassembler Tools]]
* [[Script Resource (SCI)]]
* [[:Category:SCI Aassembler  Tools|SCI Aassembler  Tools]]
* [[SCI Specifications: Chapter 1 - Introduction#SCRIPT|SCRIPT in the SCI Specifications]]
* [[:Category:Script Resources|Script Resource Articles]]
* [[HEAP Resource (SCI)]]
* [[SCI Specifications: Chapter 1 - Introduction##The SCI Heap|SCI Heap in the SCI Specifications]]
* [[:Category:Heap Resources|Heap Resource Articles]]
* [[:Category:SCI Disassemblers|SCI Disassemblers]]
* [[: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]
&nbsp;
&nbsp;
[[Category:Disassembler Tools]]
[[Category:Development]]
&nbsp;
[[Category:SCI Development]]
[[Category:Aassembler  Tools]]
[[Category:Development Tools]]
[[Category:SCI Disassembler Tools]]
[[Category:SCI Development Tools]]
[[Category:SCI Aassembler  Tools]]
[[Category:Technical Info]]
[[Category:SCI Technical Info]]
[[Category:Scripting]]
[[Category:SCI Scripting]]
[[Category:Script Resources]]
[[Category:SCI Script Resources]]
[[Category:Heap Resources]]
[[Category:SCI Heap Resources]]
[[Category:Disassemblers]]
[[Category:Assemblers]]

Latest revision as of 12:41, 2 January 2026

A-SCI
Author: Enrico Rolfi
2006-09-19
  This article is a tool stub page. You can
help the Sierra Wiki by expanding it.
A-SCI
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

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


Also See