Jump to content

SCS2 Installation error


Altomar

Recommended Posts

In support of cmorgan's comments: yes, SCSII has no problem with new items in themselves - it's only new items which have somehow been patched corruptly that will cause problems. I can look into whether a new version can be more forgiving of corrupted files but I'm not ultra-confident.

 

I'm also reluctant to split the "detectable xyz" component of SCSII in two as I think it will break a lot of other stuff in the mod. (There's a reason that component is compulsory for most tactical SCSII components.)

Link to comment
There is a fix for that exact error posted somewhere on SHS, I dont have it bookmarked so I cant tell you exactly where to look. I have it fixed locally but I haven't had BG or SOA installed in a few months

 

is this the post you had mentioned?

http://forums.pocketplane.net/index.php/to....msg265714.html

they had the same problem with theBigg QuestPack

the Boss part still wont install

 

Appending to files ...

Copying and patching 2944 files ...

ERROR: illegal 2-byte read from offset 466 of 466-byte file DEITM049.ITM

ERROR: [DEITM049.ITM] -> [override/DEITM049.ITM] Patching Failed (COPY) (Failure

("DEITM049.ITM: read out of bounds"))

Stopping installation because of error.

 

ERROR Installing [boss Improvements], rolling back to previous state

Will uninstall 9 files for [sETUP-D0QUESTPACK.TP2] component 1.

Uninstalled 9 files for [sETUP-D0QUESTPACK.TP2] component 1.

ERROR: Failure("DEITM049.ITM: read out of bounds")

PLEASE email the file SETUP-D0QUESTPACK.DEBUG to SimDing0@hotmail.com

 

 

DavidW can you do something similar to avoid patching spells or items which give this error ? theBigg gave an example code is his post

Link to comment

code clipped:

 

the bigg's code, quoted to SimDing0 =

COPY_EXISTING_REGEXP GLOB ~^.+\.itm$~ ~override~
PATCH_IF (SOURCE_SIZE > 0x71)
 /* AND (NOT (("%SOURCE_RES%" STRING_COMPARE_CASE "C2BLUN02") = 0)) */ THEN BEGIN // protects against invalid files
  READ_LONG   0x64 "abil_off"
  READ_SHORT  0x68 "abil_num"
  READ_LONG   0x6a "fx_off"
  READ_SHORT  0x70 "fx_num"
  SET "delta" = 0
  FOR (index3 = 0; index3 < fx_num; index3 = index3 + 1) BEGIN // looks through global effects
 READ_SHORT  ("%fx_off%" +		("%index3%" * 0x30)) "opcode" ELSE 0
 PATCH_IF ("%opcode%" = 216) BEGIN // level drain
   READ_ASCII ("%fx_off%" +		("%index3%" * 0x30)) "clone" (0x30)
   SET "fx_num" = "%fx_num%"  + 1
   SET "index3" = "%index3%"  + 1
   INSERT_BYTES			("%fx_off%" +		(("%index3%") * 0x30)) 0x30 // new effect
	 WRITE_EVALUATED_ASCII ("%fx_off%" +		(("%index3%") * 0x30)) "%clone%" #48
	 WRITE_SHORT		   ("%fx_off%" +		(("%index3%") * 0x30)) 233 // modify prof opcode
	 WRITE_BYTE			("%fx_off%" + 0x03 + (("%index3%") * 0x30)) 4   // power
	 WRITE_LONG			("%fx_off%" + 0x04 + (("%index3%") * 0x30)) 1   // value
	 WRITE_LONG			("%fx_off%" + 0x08 + (("%index3%") * 0x30)) 134 // script state/prof
   SET "delta" = ("%delta%" + 1)
 END
  END
  WRITE_SHORT  0x70 "%fx_num%"
  FOR (index = 0; index < abil_num; index = index + 1) BEGIN // loop through abilities
 READ_SHORT  ("%abil_off%" + 0x1e + ("%index%" * 0x38)) "abil_fx_num" ELSE 0
 READ_SHORT  ("%abil_off%" + 0x20 + ("%index%" * 0x38)) "abil_fx_idx" ELSE 0
 SET "abil_fx_idx" = ("%abil_fx_idx%" + "%delta%")
 WRITE_SHORT  ("%abil_off%" + 0x20 + ("%index%" * 0x38)) "%abil_fx_idx%"
 FOR (index2 = 0; index2 < abil_fx_num; index2 = index2 + 1) BEGIN // looks for effects for abilities
   READ_SHORT  ("%fx_off%" +		(("%abil_fx_idx%" + "%index2%") * 0x30)) "opcode" ELSE 0
   PATCH_IF ("%opcode%" = 216) BEGIN // level drain
	 READ_ASCII ("%fx_off%" +		(("%abil_fx_idx%" + "%index2%") * 0x30)) "clone" (0x30)
	 SET "abil_fx_num" = "%abil_fx_num%"  + 1
	 SET "index2" = "%index2%"  + 1
	 INSERT_BYTES			("%fx_off%" +		(("%abil_fx_idx%" + "%index2%") * 0x30)) 0x30 // new effect
	   WRITE_EVALUATED_ASCII ("%fx_off%" +		(("%abil_fx_idx%" + "%index2%") * 0x30)) "%clone%" #48
	   WRITE_SHORT		   ("%fx_off%" +		(("%abil_fx_idx%" + "%index2%") * 0x30)) 233 // modify prof opcode
	   WRITE_BYTE			("%fx_off%" + 0x03 + (("%abil_fx_idx%" + "%index2%") * 0x30)) 4   // power
	   WRITE_LONG			("%fx_off%" + 0x04 + (("%abil_fx_idx%" + "%index2%") * 0x30)) 1   // value
	   WRITE_LONG			("%fx_off%" + 0x08 + (("%abil_fx_idx%" + "%index2%") * 0x30)) 134 // script state/prof
	 SET "delta" = ("%delta%" + 1)
   END
 END
 WRITE_SHORT  ("%abil_off%" + 0x1e + ("%index%" * 0x38)) "%abil_fx_num%"
  END
END
BUT_ONLY_IF_IT_CHANGES

Basically, I've removed the explicit check to avoid c2blun01 and I've added a bunch of ELSE 0 to stop the routine if there is a read out of bounds.

 

Hey, guys - you know this escaping of specific resources, and using the ELSE 0 to escape files that are screwed up might make it possible to install, but it is the equivalent of covering the broken furniture with a nice sheet, right? 'Cause if the resource is corrupted, then it won't be working correctly in-game in the first place... installing SCSII is detecting something that is already broken. None of DavidW's code "breaks" it - it is failing because it has been broken by something else in your mod order, or is being distributed broken in the first place...

 

I am somehow getting the feeling that you guys think the code would fix the problem. It would make it possible for SCSII to install, but it would *not* fix the problem.

Link to comment

The issues with c2blun02 was fixed a loooooong time ago, when I did my first Item Upgrade update.

 

It's doable, but it does suck to have to work around items with broken indexes, which is really the issue here. You could qualify all of your read statements, but then you also have to ensure that your write statements only get sent to the queue if the read statement produces a valid result. (For example, bigg's code would still write a wrong value, or to the wrong offset, or both, if the READ abil_fx_foo statements don't produce valid values. You'd need one more PATCH_IF to really safeguard it.) Or, you could try to figure out what the indexes should be (a la Debugging Suite) and try to proactively fix them. Either way it's a lot of extra BS to tack onto the patches.

Link to comment

A little update on the issue:

- DEITM049.ITM from FR&RoV has 0 duration for Detect Evil effect

- ARMY4.CRE from TDD has wrong script assigned

- The BGTNeJ problem was eliminated somehow, but the spell is correct, I don't know why the error appeared

- SPCL654.SPL from Planar Sphere Mod is corrupt indeed, it needs to be recreated (not done yet).

I can send the fixed files if needed.

Link to comment
A little update on the issue:

- DEITM049.ITM from FR&RoV has 0 duration for Detect Evil effect

- ARMY4.CRE from TDD has wrong script assigned

- The BGTNeJ problem was eliminated somehow, but the spell is correct, I don't know why the error appeared

- SPCL654.SPL from Planar Sphere Mod is corrupt indeed, it needs to be recreated (not done yet).

I can send the fixed files if needed.

 

Well done ScuD :)

is cittern.itm the one from Nej? in my installation this file is corrupted (read out of bounds)

 

ps: there is also dagseb.itm & dering3.itmfrom nej2

 

ps2: what is the effect index at item ability?? (from near infinity) changing this from its number to zero make scs2 to continue installation until it find another corrupted file.

Link to comment

Yep, they are from NeJ.

I do not use NeJ in my megainstalls - only the Charming Rogue kit for Imoen.

BTW it would be quite a good idea to suggest Vlad at BWL using SCS with NeJ. It would surely add some good challenge to the game.

By removing the effect index in the item you just make the item non-magical :)

Link to comment

I posted a list of FR-RoV issues over at SHS; here are the highlights:

 

There are a number of minor issues. This is what the G3 Debugger turns up (keep in mind these may be false positives and/or intentional; the suite tries to catch as many anomalies as possible):

 

// Item and Spell Index Checker - Begin Log
DECRE#02.CRE error: Memorization Info length is incorrect
DECRE#03.CRE error: SPPR506.spl level in Known Spells section does not match spell file
DECRE#04.CRE: Has BG proficiencies set
DECRE#04.CRE: Gender and Sex do not match
DECRE#05.CRE: Has BG proficiencies set
DECRE#05.CRE: Gender and Sex do not match
DECRE#06.CRE error: Memorization Info length is incorrect
DECRE#09.CRE: Has BG proficiencies set
DECRE#09.CRE: Gender and Sex do not match
DESTO#01.CRE error: Effects offset is incorrect
DESTO#01.CRE error: Item offset is incorrect
DESTO#01.CRE error: Item Slot offset is incorrect
DESTO#02.CRE: Has BG proficiencies set
DESTO#02.CRE error: Known Spells offset is incorrect
DESTO#02.CRE error: Effects offset is incorrect
DESTO#02.CRE error: Item offset is incorrect
DESTO#02.CRE error: Item Slot offset is incorrect
// Item and Spell Index Checker - End Log

 

// Item Checker - Begin Log
DEITM001.ITM: Global Effect #1 (opcode 7) has an incorrect timing mode
DEITM004.ITM error: Ability #0 icon does not exist (cold01.bam)
DEITM004.ITM: Ability #0 has an effect with incorrect/unknown timing (effect #0, opcode 12)
DEITM004.ITM: Global Effect #4 (opcode 28) has an incorrect timing mode
DEITM007.ITM: Global Effect #2 (opcode 7) has an incorrect timing mode
DEITM011.ITM: Global Effect #1 (opcode 7) has an incorrect timing mode
DEITM013.ITM: Global Effect #1 (opcode 7) has an incorrect timing mode
DEITM014.ITM: Global Effect #4 (opcode 62) has an incorrect target
DEITM014.ITM: Global Effect #4 (opcode 62) has an incorrect timing mode
DEITM019.ITM: Global Effect #2 (opcode 7) has an incorrect timing mode
DEITM021.ITM: Global Effect #2 (opcode 7) has an incorrect timing mode
DEITM022.ITM: Disagreement between enchantment and magical flag
DEITM022.ITM: Global Effect #2 (opcode 7) has an incorrect timing mode
DEITM023.ITM Warning: Limited duration effects on ability #0 have mismatching durations
DEITM024.ITM: Global Effect #2 (opcode 7) has an incorrect timing mode
DEITM025.ITM: Global Effect #2 (opcode 7) has an incorrect timing mode
DEITM031.ITM: Disagreement between enchantment and magical flag
DEITM039.ITM: Global Effect #2 (opcode 7) has an incorrect timing mode
DEITM044.ITM error: Ability #1 icon does not exist (SPPR513.bam)
DEITM046.ITM: Global Effect #4 (opcode 101) has an incorrect timing mode
DEITM053.ITM error: Ability #0 is extraneous Default(0) type
DEITM069.ITM error: Ability #1 icon does not exist (SPPR987B.bam)
DEITM077.ITM error: Ability #2 icon does not exist (SPRA305B.bam)
DEITM082.ITM error: Ability #1 icon does not exist (SPRA303B.bam)
DEITM083.ITM: Global Effect #3 (opcode 1) has an incorrect timing mode
DEITM084.ITM: Global Effect #2 (opcode 7) has an incorrect timing mode
DEITM089.ITM: Global Effect #2 (opcode 0) is not always applied (check your probabilities)
DEITM089.ITM: Global Effect #3 (opcode 30) is not always applied (check your probabilities)
DEITM089.ITM: Global Effect #4 (opcode 142) is not always applied (check your probabilities)
DEITM089.ITM: Global Effect #5 (opcode 166) is not always applied (check your probabilities)
DEITM089.ITM: Global Effect #6 (opcode 142) is not always applied (check your probabilities)
DEITM089.ITM: Global Effect #7 (opcode 101) is not always applied (check your probabilities)
DEITM089.ITM: Global Effect #8 (opcode 142) is not always applied (check your probabilities)
DEITM098.ITM error: Ability #0 icon does not exist (DeBlackS.bam)
DEITM098.ITM Warning: Limited duration effects on ability #0 have mismatching durations
DEITM098.ITM: Global Effect #2 (opcode 7) has an incorrect timing mode
DEITM099.ITM error: Ability #0 icon does not exist (DeBob1.bam)
DEITM100.ITM error: Ability #0 icon does not exist (DeBob2.bam)
DEITM109.ITM Warning: Limited duration effects on ability #0 have mismatching durations
DEITM110.ITM Warning: Limited duration effects on ability #0 have mismatching durations
DEITM111.ITM Warning: Limited duration effects on ability #0 have mismatching durations
DEITM111.ITM: Global Effect #3 (opcode 6) has an incorrect timing mode
DEITM129.ITM Warning: Limited duration effects on ability #0 have mismatching durations
// Item Checker - End Log

... and the offsets on deitm049.itm, as mentioned, are wrong.

Link to comment

Thanks for replying in both posts CamDawg. :)

I hope that someone from ShS will try to fix these problems of FR-ROV and release a new version. I'm trying to fix them by my self but I'm still learning so there is few thing s that i can do. :)

 

ps: i got this error while using G3 Debugging Suite. dering3.itm is from NEJ2

 

DERING3.ITM has an index error

Appending to files ...

[./override/DEBUGGER.LOG] loaded, 39739 bytes

Appended text to [debugger.log]

ERROR: illegal 2-byte read from offset 2466 of 2466-byte file DERING3.ITM

ERROR: [DERING3.ITM] -> [override/DERING3.ITM] Patching Failed (COPY) (Failure("DERING3.ITM: read out of bounds"))

Stopping installation because of error.

Link to comment
DERING3.ITM has an index error

Appending to files ...

[./override/DEBUGGER.LOG] loaded, 39739 bytes

Appended text to [debugger.log]

ERROR: illegal 2-byte read from offset 2466 of 2466-byte file DERING3.ITM

ERROR: [DERING3.ITM] -> [override/DERING3.ITM] Patching Failed (COPY) (Failure("DERING3.ITM: read out of bounds"))

Stopping installation because of error.

This means the indices are probably fubar'd, causing the suite to read beyond the end of the file. I'll add more safeguards for the next release. I'd investigate files like this individually for errors (I'd recommend focusing on the offsets and indices). To get the Suite to finish its scan, I'd just temporarily move files like this out of the override.

Link to comment

Some errors from my installation:

 

[udmaster.bcs.BAF] PARSE ERROR at line 10 column 48-48
Near Text: )
[ReallySetGlobalTimer] not found in ACTION.IDS

[udmaster.bcs.BAF]  ERROR at line 10 column 48-48
Near Text: )
Parsing.Parse_error
ERROR: parsing [udmaster.bcs.BAF]: Parsing.Parse_error
override/udmaster.bcs copied to scsII/backup/290/udmaster.bcs, 9051 bytes
Copied [udmaster.bcs] to [override/udmaster.bcs]
Extending game scripts ...
[scsII/psionic/ssl_out/brainadd.baf] loaded, 61605 bytes
[./override/UDMASTER.BCS] loaded, 3817 bytes

[udmaster.bcs] LEXER ERROR at line 1 column 0-1
Near Text: IF
invalid keyword [IF]

[udmaster.bcs]  ERROR at line 1 column 0-1
Near Text: IF
Parsing.Parse_error
ERROR: parsing [udmaster.bcs]: Parsing.Parse_error
Stopping installation because of error.
Stopping installation because of error.

ERROR Installing [Smarter mind flayers], rolling back to previous state
[scsII/backup/290/UNSETSTR.290] SET_STRING uninstall info not found

 

Unless I misunderstood something that basically means that smarter mindflayer tries to compile a script and doesn't find ReallySetGlobalTimer in Action.ids, which is understandable as Action.ids only contains RealSetGlobalTimer.

 

ERROR in giving immunity to spin695: hdragsil has the wrong effect type

 

SCSII tries to apply immunity to Wing Buffet to the Silver Dragon but fails, which means that in my current install either CtB or questpack messed something up.

 

As a side note:

Interestingly enough apart from those errors my installation of SCSII had no problems. As a preparation I pasted all wand*.itm and staf*.itm from CtB's over.bak into my override folder.

 

10th

Link to comment
This means the indices are probably fubar'd, causing the suite to read beyond the end of the file. I'll add more safeguards for the next release. I'd investigate files like this individually for errors (I'd recommend focusing on the offsets and indices). To get the Suite to finish its scan, I'd just temporarily move files like this out of the override.

 

i thing i'm going crazy :p but if i save all these files mentioned above and many others to override folder without changing them i was able to finish installation of scs2 without any problem. and the g3 debbuging suite finish without these "out of bounds" errors. it looks like scs2 cannot patch these files if they are biffed.any explanation??

 

ps: i used DLTCEP to open them and then save them to override.

 

ps2: i confirm the error mentioned by 10thLich

 

ps3: i forgot to mention that "more consistent breach spell" component was unable to patch wand18.spl (wand of spell striking) even if i save it to override folder.

[./override/wand18.itm] loaded, 322 bytes

ERROR: illegal 1-byte write ( ) offset 325 of 322-byte file wand18.itm

ERROR: [wand18.itm] -> [override] Patching Failed (COPY) (Failure("wand18.itm: write out of bounds"))

Stopping installation because of error.

 

ps:3

Link to comment
Unless I misunderstood something that basically means that smarter mindflayer tries to compile a script and doesn't find ReallySetGlobalTimer in Action.ids, which is understandable as Action.ids only contains RealSetGlobalTimer.

Sounds right. One qualifier, though: I don't think you'll find ReallySetGlobalTimer anywhere in SCSII either, so it's turning up courtesy of something else earlier in your install order.

 

ERROR in giving immunity to spin695: hdragsil has the wrong effect type

 

SCSII tries to apply immunity to Wing Buffet to the Silver Dragon but fails, which means that in my current install either CtB or questpack messed something up.

 

It's more that one of them did something I wasn't expecting... the ERROR message here is an SCS message, not a WEIDU one, and it should be harmless.

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...