Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - EricOakford

Pages: [1]
1
SCI Development Tools / Re: Decompilation Archive
« on: December 10, 2018, 11:06:29 PM »
Here is my work on QFG1VGA.

With the exceptions of a few scripts, everything seems to compile okay. I even enabled the hidden "Where to, Hero?" dialog at startup, so you can test each individual room!

I was thinking of doing a patch that would fix various script bugs in the game, and restore some unused messages and interactivity. This source could work well as the basis.

This code is best compiled without any SCR and HEP patch files in the directory, so you can be sure that the game only uses the RESOURCE files. The scripts, of course, were decompiled from the patches to ensure that all official bug fixes are present.

Here is the compile log:
Code: [Select]
Error: (WizardGame.sc) Duplicate label 'code_0448'  Line: 145, col: 0
Error: (WizardGame.sc) Duplicate label 'code_0453'  Line: 152, col: 0
Error: (inputBox.sc) Undeclared identifier '--UNKNOWN-PROP-NAME--' .  Line: 1281, col: 32
Error: (egoFight.sc) Undeclared identifier '--UNKNOWN-PROP-NAME--' .  Line: 332, col: 32
252 scripts compiled.
--------------------------------
Time elapsed: 7.56 seconds.

2
SCI Development Tools / Re: SCI01 Template Game
« on: November 28, 2018, 08:48:14 PM »
Here's the new version of the SCI01 template! It fixes a few bugs (such as GetNumber not working properly) and I have gone through most of the system scripts! They now closely match that of the SCI16 scripts (taking into account the SCI01 differences, of course) Everything seems to compile and play fine now.

3
SCI Development Tools / SCI01 Template Game
« on: November 26, 2018, 10:21:07 PM »
After a bit of work, here is my SCI01 template game!
I based it off the QFG2 demo, and used the interpreter from the EGA 1990 Christmas Card.

11/27/2018 EDIT: I solved the problem with the game not recognizing new words -- SCI Companion thought the parser vocab was 000 instead of 900. To fix this, I went into the version detector and set the parser vocab to 900. Now it recognizes new words!

TODO
Implement QFG2-style death procedure (this procedure won't decompile in any of the games I've tried)
Work on R44Q SCI01 remake (I can do the scripting, but I can't do the graphics all that well).

4
SCI Development Tools / Re: Decompilation Archive
« on: November 24, 2018, 09:23:44 PM »
And now for something a little different...
Here is decompiled code for the QFG2 demo! So far, everything seems to run fine... up until the Iblis Unleashed scene, where it immediately crashes with an "Oops!" error!

By the way, I've been working on a new EGA template game, using the QFG2 demo as the foundation and the interpreter from the EGA 1990 Christmas Card (it's compatible with QFG2, and still has its internal debugger!). So far, things seem to work okay. I'll upload this template sometime soon.

5
SCI Development Tools / Re: Decompilation Archive
« on: November 15, 2018, 11:01:07 PM »
Here is my work on LSL1VGA. Some tweaks were made to allow the game to compile fully. I played though the entire game with no known issues (except maybe for sometimes freezing when entering the casino, but I think that's an original speed bug)

6
SCI Development Tools / Re: System Logger found in QFG1VGA
« on: November 10, 2018, 11:55:37 AM »
This is a tool that was used by Quality Assurance to generate bug reports within the game. It lists various details about the current game state, and lets you decide the severity of the bug you discovered, as well as which department you would think could fix it (programming, art, music, or design)

7
SCI Development Tools / System Logger found in QFG1VGA
« on: November 08, 2018, 08:49:56 PM »
Well, it turns out the original system logger is still intact in QFG1VGA. To access it, delete or rename 952.scr and 952.hep (these are dummy files meant to disable the logger). During gameplay, press Alt-N to bring up the logger.

It seems that this was supposed to be removed for shipping, but Sierra made a mistake and left the key combination in the Main script.

Code: [Select]
(KEY_ALT_n
((ScriptID 952) doit: @sysLogPath 0)
(return (pEvent claimed: 1))

Here is some output:
Code: [Select]
           GAME: Glory
        VERSION: 2.000
        QA-DATE: 11/08/118
        ANALYST: EO
       SEVERITY: S
    QA-COMMENT1: This is a test of the hidden System Logger found in QFG1VGA.
    QA-COMMENT2:
    QA-COMMENT3:
    QA-COMMENT4:
    QA-COMMENT5:
    QA-COMMENT6:
    QA-COMMENT7:
    QA-COMMENT8:
    QA-COMMENT9:
   QA-COMMENT10:
     DEPARTMENT: P
           ROOM: 300
    ROOM-SCRIPT: sEnter
     ROOM-STATE: 2
          EGO-X: 237
          EGO-Y: 181
          EGO-Z: 0
     EGO-SCRIPT:
      EGO-STATE: 0
       EGO-VIEW: 4
       EGO-LOOP: 6
        EGO-CEL: 0
   EGO-PRIORITY: 14
    EGO-HEADING: 45
         CYCLER: StopWalk
      EGO-MOVER:
        MOVER-X: 0
        MOVER-Y: 0
    EGO-MOVESPD: 6
    SIGNAL-BITS: 3002
   ILLEGAL-BITS: 8000
        HOWFAST: 3
        ICONBAR: mainIconBar
       CUR-ICON: iconTalk
   DETAIL-LEVEL: 3
       CD-AUDIO: 0
      VIDEO-DRV: VGA320
      SOUND-DRV: ADL
      AUDIO-DRV: AUDBLAST
   KEYBOARD-DRV: IBMKBD
        JOY-DRV: NO
          MOUSE: STDMOUSE
   LARGEST-HEAP: 12782
      FREE-HEAP: 12910
     TOTAL-HUNK: 294
   LARGEST-HUNK: 31824
      FREE-HUNK: 37
**********************************


8
SCI Development Tools / Re: Recreating complete QFG1 EGA source code
« on: November 05, 2018, 09:08:45 PM »
I based the game.ini file on the one for 1.000. While I accounted for the changes in the game scripts, I didn't account for additional system scripts.

Two system scripts added by the time 1.200 was released were Avoider and Sight.

Here is an updated version of the code, with a few more local variables identified as well as the additional system scripts.

As for test results...

The game seems to play okay, but certain rooms have gotten bugged. In the fairy ring, the mushrooms are not placed properly on the screen, and the game may crash with an "Oops!" error when the fairies approach you at night.

Entering the Meep's Peep is now completely impossible, since the game crashes with an "Oops!" error when trying to enter it. Good thing Razzle Dazzle Root Beer is there to bypass those bugged parts.

9
SCI Development Tools / Re: Recreating complete QFG1 EGA source code
« on: November 01, 2018, 11:53:00 PM »
The original names are based on the code snippets that OmerMor provided previously. Also, in the Main.sc of the HQ1 source zip, it is stated that Bclr and Btst are their original names.

10
SCI Development Tools / Re: Recreating complete QFG1 EGA source code
« on: November 01, 2018, 10:22:27 PM »
After weeks of combing the code and identifying many local variables, I now have the decompiled source code for QFG1EGA, version 1.200! Obviously, some things were changed between 1.200 and 1.000, so I overhauled the game.sh file to reflect this, as well as gave more readable names for the event flags and shorter, more concise names for the inventory items.

I made sure to put as much of the comments from the HQ1 code into the QFG1EGA code. The names of some of the variables and procedures were changed, either to be consistent with Sierra's original names (such as Bclr and Btst) or to be more accurate (HasLockPickTools has been changed to CanPickLocks, for example)

The code compiles without any errors (save for warnings about duplicate case values, which are in the original scripts anyway). I have not yet played through the game to see if anything went awry.

11/3/2018 EDIT: Apparently, something DID go awry - the menu bar stopped working (because I removed the "The" from the menu bar class name by mistake) and the stats on the character sheet are over black boxes (the HQ1 code had that mistake by using the wrong define) Here's the new code with these mistakes fixed. Sorry for the inconvenience.

11
SCI Development Tools / Re: Decompilation Archive
« on: October 19, 2018, 12:44:56 PM »
Here is my work on Quest for Glory II v1.102 (from GOG.com). I managed to write up a game.sh file to go with it, which lists all the skills, ego walk modes, and much of the event flags. Thanks go to Charles for the QFG1EGA code (which helped me identify procedures and global variables, and whose game.sh file I based mine off of) and OmerMor for some code snippets he posted previously. The scripts compile fine, with a few exceptions listed below.

Code: [Select]
Error: (CharSheet.sc) The rest modifier must be followed by a parameter name.  Line: 27, col: 9
Error: (CharSheet.sc) The rest modifier must be followed by a parameter name.  Line: 42, col: 9
Warning: (rm130.sc) Duplicate case values. Already encountered a case for '54'  Line: 1003, col: 5
Error: (BoxSelector.sc) The rest modifier must be followed by a parameter name.  Line: 32, col: 9
239 scripts compiled.

12
SCI Development Tools / Re: Recreating complete QFG1 EGA source code
« on: October 06, 2018, 08:14:09 PM »
Great work on this decompilation effort! I've been working to adapt this code for the QFG1EGA release (version 1.200). After downloading the code, I used the SCO files to help me in decompiling the newer version. Between the first and last releases, a lot has changed, not just the title.

As noted here at TCRF, the High Speed Hero option was removed. The Kobold's cave scripts were also massively overhauled. The Tavern added an additional note for earlier in the game. Finally, a lot of the game's text was revised.

13
When testing the decompiler on QFG1EGA (1.200), QFG1VGA, QFG2 (1.102), and LSL1VGA (2.0) (all from GOG), immediately recompiling the resulting scripts caused some errors. Here are the logs:

QFG1EGA compile log
Code: [Select]
Warning: (TownOverlook.sc) Duplicate case values. Already encountered a case for '3'  Line: 580, col: 4
Warning: (Antwerp.sc) Duplicate case values. Already encountered a case for '18'  Line: 1084, col: 4
Warning: (TownOutlook.sc) Duplicate case values. Already encountered a case for '65'  Line: 168, col: 4
Warning: (EndGame.sc) Duplicate case values. Already encountered a case for '13'  Line: 1056, col: 4
Warning: (EndGame.sc) Duplicate case values. Already encountered a case for '14'  Line: 1059, col: 4
Warning: (EndGame.sc) Duplicate case values. Already encountered a case for '15'  Line: 1062, col: 4
Error: (CharSave.sc) Unknown class 'gamefile_sh' .  Line: 64, col: 9
Error: (CharSave.sc) Unknown type 'gamefile_sh'  Line: 94, col: 6
Error: (CharSave.sc) Unknown type 'gamefile_sh'  Line: 101, col: 9
Error: (CharSave.sc) Unknown type 'gamefile_sh'  Line: 102, col: 6
Error: (CharSave.sc) Unknown type 'gamefile_sh'  Line: 105, col: 39
Error: (CharSave.sc) Unknown type 'gamefile_sh'  Line: 110, col: 14
Error: (CharSave.sc) Unknown type 'gamefile_sh'  Line: 161, col: 5
Error: (CharSave.sc) Unknown type 'gamefile_sh'  Line: 162, col: 5
Error: (CharSave.sc) Unknown type 'gamefile_sh'  Line: 166, col: 6
Error: (CharSave.sc) Unknown type 'gamefile_sh'  Line: 169, col: 5
Error: (CharSave.sc) Unknown type 'gamefile_sh'  Line: 170, col: 5
Error: (Actor.sc) Undeclared identifier '--UNKNOWN-PROP-NAME--' .  Line: 570, col: 16
291 scripts compiled.
--------------------------------
Time elapsed: 5.42 seconds.

QFG1VGA compile log
Code: [Select]
Error: (Forest-43.sc) &rest cannot be used if the send target itself contains nested procedure calls or sends. Assign the result of the procedure call or send to a temporary variable and use that instead.  Line: 56, col: 27
Error: (WizardGame.sc) Duplicate label 'code_0448'  Line: 145, col: 0
Error: (WizardGame.sc) Duplicate label 'code_0453'  Line: 152, col: 0
Error: (RTRandCycle.sc) modeless is a property.  Only one parameter may be supplied.  Line: 525, col: 13
Warning: (HermitCave.sc) Duplicate case values. Already encountered a case for '50'  Line: 235, col: 4
Error: (inputBox.sc) Undeclared identifier '--UNKNOWN-PROP-NAME--' .  Line: 1262, col: 32
Error: (egoFight.sc) Undeclared identifier '--UNKNOWN-PROP-NAME--' .  Line: 330, col: 32
Error: (TownOutsideBar.sc) &rest cannot be used if the send target itself contains nested procedure calls or sends. Assign the result of the procedure call or send to a temporary variable and use that instead.  Line: 416, col: 29
Error: (TownOutsideBar.sc) &rest cannot be used if the send target itself contains nested procedure calls or sends. Assign the result of the procedure call or send to a temporary variable and use that instead.  Line: 419, col: 29
Error: (TownOutsideBar.sc) &rest cannot be used if the send target itself contains nested procedure calls or sends. Assign the result of the procedure call or send to a temporary variable and use that instead.  Line: 551, col: 29
Error: (TownOutsideBar.sc) &rest cannot be used if the send target itself contains nested procedure calls or sends. Assign the result of the procedure call or send to a temporary variable and use that instead.  Line: 554, col: 29
Error: (TownOutsideBar.sc) &rest cannot be used if the send target itself contains nested procedure calls or sends. Assign the result of the procedure call or send to a temporary variable and use that instead.  Line: 595, col: 29
Error: (TownOutsideBar.sc) &rest cannot be used if the send target itself contains nested procedure calls or sends. Assign the result of the procedure call or send to a temporary variable and use that instead.  Line: 598, col: 29
Error: (TownOutsideBar.sc) &rest cannot be used if the send target itself contains nested procedure calls or sends. Assign the result of the procedure call or send to a temporary variable and use that instead.  Line: 748, col: 29
Error: (TownOutsideBar.sc) &rest cannot be used if the send target itself contains nested procedure calls or sends. Assign the result of the procedure call or send to a temporary variable and use that instead.  Line: 751, col: 29
Warning: (Forest.sc) Duplicate case values. Already encountered a case for '4'  Line: 1661, col: 5
235 scripts compiled.
--------------------------------
Time elapsed: 3.97 seconds.

QFG2 compile log
Code: [Select]
Warning: (rm130.sc) Duplicate case values. Already encountered a case for '54'  Line: 1023, col: 5
229 scripts compiled.
--------------------------------
Time elapsed: 4.50 seconds.

LSL1VGA compile log
Code: [Select]
Error: (DiscoExterior.sc) z is a property.  Only one parameter may be supplied.  Line: 339, col: 6
Error: (DiscoExterior.sc) z is a property.  Only one parameter may be supplied.  Line: 345, col: 6
Error: (CasinoEvesBedroom.sc) z is a property.  Only one parameter may be supplied.  Line: 562, col: 92
Error: (CasinoEvesBedroom.sc) z is a property.  Only one parameter may be supplied.  Line: 563, col: 36
78 scripts compiled.
--------------------------------
Time elapsed: 1.54 seconds.

14
SCI Development Tools / QFG1 Event Flags, Procedures, and Variables
« on: September 14, 2017, 12:20:33 PM »
After a bunch of work digging through the decompiled scripts of QFG1EGA, I was able to put together a few lists of variables, procedures, and event flags relating to the game. Some of the flags and variables are specific to QFG1VGA, and are noted as such.

9/30/2018 UPDATE: Thanks to Charles' work on the scripts here, I now have more complete and accurate lists! Also, there is now an extensive list of procedures and global variables for QFG1VGA.

Pages: [1]

SMF 2.0.14 | SMF © 2017, Simple Machines
Simple Audio Video Embedder

Page created in 0.181 seconds with 21 queries.