AGS 3.2 Final 5 - Recession-busting edition

Started by Pumaman, Sun 03/05/2009 15:34:47

Previous topic - Next topic

Gilbert


subspark

Thanks Gilbet. I never realized there was a thread for this! Fantastic!

Big Cheers,
Sparky.

Pumaman

Quote from: abstauber on Thu 30/07/2009 14:01:33
Hey... .seek is suddently accurate as hell :) Overall it seems like there've been some improvements on the sound part, since the OGGs doesn't seem to loose sync anymore at all.

Thanks a lot :D

Glad to hear it, that is now included in beta 3.

QuoteHaven't checked the new version but the old if you use Run-AGS Game command and have a loading pcx and have a video playing on game start it won't show.

I'll look into this.


Anyway, beta 3 is now up. With this release, I now declare the new audio system complete (save for a few icons in the audio preview pane), so please do try it out and give me your feedback.

Also, this release includes a fix for the Unicode paths problem some people were having with Russian versions of Windows. Can somebody who had that problem please try out this version and see if it fixes the issue?

subspark

#103
Hmm, after copying the new files accross to my installation directory, I get the following error:


The windows event view threw this at me:
QuoteActivation context generation failed for "C:\Program Files (x86)\Adventure Game Studio\AGS.Native.dll".Error in manifest or policy file "" on line . A component version required by the application conflicts with another component version already active. Conflicting components are:. Component 1: C:\Windows\WinSxS\manifests\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.1_none_e163563597edeada.manifest. Component 2: C:\Program Files (x86)\Adventure Game Studio\Microsoft.VC90.CRT.MANIFEST.

Cheers,
Sparky.

Shane 'ProgZmax' Stevens

#104
* Editor now automatically converts any old Play Music On Room Load setting into a line of script in the room's Player Enters Screen event


Bill and Ted: TOTALLY AWESOME!!


Also, I get the very same error as subspark and I placed this build in its own folder, so no threat of file contamination.  This was with XP.

abstauber


subspark

#106
Same error as us it seems, abstauber.

Its probably just a file CJ forgot to check in the last minutes of his compile. Hey, it happens!! :P

Sparky.

abstauber

but but but.... I'm on XP, not on Vista ;D
... oh well - yeah sorry for double posting. I still second the crash :)

subspark

Yeah same bug on both OS's. Man this is odd.

Nice interface btw, abstauber!

Sparky.

Pumaman

Oh great, looks like Windows Update has installed a newer version of the Visual Studio files on my PC, so the DLL's I was including don't work any more.

Ok, I've uploaded a beta 3a which is rebuilt and should now work. Please let me know if this isn't the case (since it all works anyway on my machine!!).

monkey0506

One thing that really stands out to me about the new audio stuff going on in the editor is that you can only ever have one "Audio" tab open and it updates to show the last selected type or folder. This is completely opposite to everything else (GUIs, Characters, Scripts, etc.) which opens in its own tab.

Perhaps the audio doesn't have as much to be modified in the editor, but it did strike me as unusual that the audio system is the only thing that takes this approach on the tabs.

DoorKnobHandle

I just noticed that when you select the D3D9 graphic drivers and also set the runtime from retail to debug in your directx9 control panel (also select the most debug info you can get, ie. slider all the way to the right), AGS always crashes with this error:

Code: ags

---------------------------
Adventure Game Studio
---------------------------
An internal error has occurred. Please note down the following information.
If the problem persists, post the details on the AGS Technical Forum.
(ACI version 3.20.1083)

Error: Unable to lock texture

---------------------------
OK   
---------------------------


This should definitely be fixed, I think!

(deleted)

Please permit this particularly gratitudinal post, which is especially praisetacular for the following update:

Quote from: Pumaman on Sun 03/05/2009 15:34:47
* Fixed "Internal compiler error: table overflow" if there were a lot of imported functions/variables

What speed! What precise efficiency! CJ, you're such a giver. You have my profound and numerous  thanks - this little hiccup was ruining my life. (Also, my GF says thanks, because I was being a furious grouch while dealing with tabular overflowery).

Dang, some real fine games will be made with this thing. Ain't nothing can stop us, now!

monkey0506

I'm not sure if it's specifically related, but I was using this beta when it happened so I'll post here.

I was taking a look at implementing some functions into my Stack module (perhaps a separate module) for supporting multidimensional array functionality. I now am getting the following run-time crash:

Quote---------------------------
Illegal exception
---------------------------
An exception 0xC0000005 occurred in ACWIN.EXE at EIP = 0x0048FA91 ; program pointer is -42, ACI version 3.20.1085, gtags (2039,18)

AGS cannot continue, this exception was fatal. Please note down the numbers above, remember what you were doing at the time and post the details on the AGS Technical Forum.

in "Stack.asc", line 263
from "Array.asc", line 27
from "Array.asc", line 67


Most versions of Windows allow you to press Ctrl+C now to copy this entire message to the clipboard for easy reporting.

An error file CrashInfo.dmp has been created. You may be asked to upload this file when reporting this problem on the AGS Forums. (code 0)
---------------------------
OK   
---------------------------

The CrashInfo file can be found here.

The line specifically it references as causing the crash is this:

Code: ags
return StackData.Format("%s%s%d,%d,%s%s", type, stamp, this.ItemCount, this.PopType, data, stamp);


StackData is #define-d as String. If needed I can post the full function(s).

Pumaman

Quote from: monkey_05_06 on Wed 05/08/2009 23:56:08
One thing that really stands out to me about the new audio stuff going on in the editor is that you can only ever have one "Audio" tab open and it updates to show the last selected type or folder. This is completely opposite to everything else (GUIs, Characters, Scripts, etc.) which opens in its own tab.

Yeah, originally I had it opening new tabs but during my testing I was getting annoyed with all the tabs all over the place, and I thought you guys would probably get annoyed with it too. This new behaviour of the audio pane is something that has been requested for Views and Dialogs in the past, so maybe this should become a Preferences option...

QuoteI just noticed that when you select the D3D9 graphic drivers and also set the runtime from retail to debug in your directx9 control panel (also select the most debug info you can get, ie. slider all the way to the right), AGS always crashes with this error:
Error: Unable to lock texture
This should definitely be fixed, I think!

That error happens if AGS can't lock one of the textures. It can't really be "fixed" in AGS since AGS needs to lock the texture in order to work. Therefore, this looks like a D3D problem if you change those settings. Do you also get errors in other D3D games if you change those settings?

QuoteWhat speed! What precise efficiency! CJ, you're such a giver. You have my profound and numerous  thanks - this little hiccup was ruining my life. (Also, my GF says thanks, because I was being a furious grouch while dealing with tabular overflowery).

Hehe, enjoy!

QuoteAn exception 0xC0000005 occurred in ACWIN.EXE at EIP = 0x0048FA91 ; program pointer is -42, ACI version 3.20.1085, gtags (2039,18)
return StackData.Format("%s%s%d,%d,%s%s", type, stamp, this.ItemCount, this.PopType, data, stamp);

Are you sure that "type", "stamp" and "data" are all String variables?

monkey0506

Yes I'm sure:

Code: ags
  StackData type = StackData.Format(StackDataFormat, eStackDataStack);
  StackData key = this.BuildKey();
  StackData stamp = StackData.Format(StackDataCopyFormat, key);
  StackData data = this.Data;
  if (data == null) data = "";


As I mentioned StackData is String (#defined). StackDataCopyFormat is a String, Stack.BuildKey returns StackData. And no, there's no real reason why internally I'm typing StackData as opposed to just typing String.

Stack.ItemCount is an int, Stack.PopType is an enum, and Stack.Data is StackData (String).

The thing that's bothering me about it is the fact that I'm calling Stack::Copy (the function it's crashing in) several times before it crashes there. I did realize that I am being a bit daft in the way I'm initializing the arrays.

If you haven't looked at the module (I'll assume you haven't) then I'm just storing all the data in a single String (for the vectorization capabilities). I also allow for entire Stack objects to be converted to StackData so it can be pushed onto another Stack (that's what Stack::Copy is for). To try and make sure I preserve the integrity of the data when you have multiple stacks pushed into a single object I assign them a key. That's what Stack.BuildKey does, it returns a 128-bit randomized key.

The point at which I'm being daft initializing the (multidimensional) arrays is that I'm copying these "unique" keys multiple times into the same Stack...which could potentially cause issues trying to recover the data.

However I don't see how it would be related to this crash as Stack::Copy doesn't attempt to do anything with the existing data except pre-pend some markers to the front of it.

Pumaman

Ok, well from the crash dump I can see where it crashed but not why, so would you be able to upload a game that demonstrates the problem?

monkey0506

#117
Sure thing Chris...and here it is.

All you need to do to get the crash is run it.

This was still in very preliminary stages so there was a lot of conceptual things and debugging going on. I'm doing a lot of things the wrong way (as far as the way the module stores the data) as I noticed, but I can't see how it would cause the error that it is.

Thanks for looking into it Chris.

One last thing that might be related, in trying to verify the structure of the data I exported a raw file which shows that the length of the String would have been 3092 bytes prior to calling Stack::Copy.

Given these definitions:

Code: ags
StackDataFormat = "**STACKDATA:%c**";
StackDataCopyFormat = "**STACKDATA STACK:%s**";


StackDataFormat results in a 15 byte String. The "%s" is replaced by Stack.BuildKey (128-bit = 16 bytes) so that's an additional 36 bytes (twice). At the time of crash this.ItemCount is 3 and this.PopType is 0. That's gives a total 91 bytes in addition to the existing 3092 for a resulting formatted String length (where it crashes at) of 3183 bytes. If that's relevant.

Pumaman

Ah ... while Strings themselves have no length limit, various internal AGS functions assume a maximum length of 2500 chars, and String.Format is one of them.

I'll see if I can improve this, but in the meantime the best thing to do is use String.Append when you're creating very long strings like this, which doesn't have any length limits.

monkey0506

Interesting...so it would be safe to use String.Format to create the flags with the variable values, but then I should use String.Append to put it all together...got it!

Thanks for the info Chris.

SMF spam blocked by CleanTalk