Author Topic: Trismegistus con mit cum Ex  (Read 16588 times)

Offline Holy_Diver

  • Holy Diver
  • Archmage of Light
  • *****
  • Posts: 2280
  • This account won't read/reply to Private Messages
Re: Trismegistus con mit cum Ex
« Reply #30 on: December 13, 2010, 04:10:21 am »
I think I've got it :wink:

Try this...

Offline Holy_Diver

  • Holy Diver
  • Archmage of Light
  • *****
  • Posts: 2280
  • This account won't read/reply to Private Messages
Re: Trismegistus con mit cum Ex
« Reply #31 on: December 13, 2010, 04:12:35 am »
I think I've got it :wink:

Try this...

I'm going to put an error box in there about a missing Project.dat file, and make it possible to put the the project.dat file somewhere else / use a .som file instead if present. The project.dat file seems a little out of place in the game folder.

PS: This...

EX::CreateFileA()
EX::ReadFile()
EX::CloseHandle()
EX::CreateFileA()
EX::CloseHandle()
EX::CreateFileA()
EX::CloseHandle()

Is the only stuff that showed up in the logs before the point I knew Som wasn't getting to, and I started thinking about what files those could be. Obviously one was project.dat. I'll probably look to see what the other is, if it's even Som related.
« Last Edit: December 13, 2010, 04:14:19 am by Holy Diver »

Offline dmpdesign

  • Moonlight Retiree
  • Administrator
  • Dark Slayer Destroyer
  • *****
  • Posts: 1864
    • http://swordofmoonlight.com
Re: Trismegistus con mit cum Ex
« Reply #32 on: December 13, 2010, 04:55:07 pm »
That did the trick, at least at work, I assume it will work properly when I get home.

This is cool, can't wait to rerun through this game.

Thanks for the update on this Holy :)

Maybe I can get Tom to give it a go.
- Todd DuFore (DMPDesign)
Site Founder

Offline Holy_Diver

  • Holy Diver
  • Archmage of Light
  • *****
  • Posts: 2280
  • This account won't read/reply to Private Messages
Re: Trismegistus con mit cum Ex
« Reply #33 on: December 13, 2010, 08:35:50 pm »
Well I said before it was very possible I'd left a file or something out, but I did not think the file would be so obvious. It's easy to forget about that dinky project.dat file, but as a Som vet you probably could've figured that one out yourself if you'd stopped to think about it.

A number of very good things came out of this interlude anyway, so it was not all for naught. I've found some bugs, and thought about some nooks and crannies of the execution space-time-continuum or whatever which I'd previously overlooked or taken for granted.

I don't think Tom is involved enough to bother trying out this version. Unless you just can't wait, he'd probably be better off waiting until I have a public release ready. I thought I'd be able to crank this stuff out easily in a months time, but once I got started and the nitpicking began I've probably added at least 10 major features since then and might have 10 more before things are ready.

I added some code that pops up a message box when there is a file accessed which does not exist. It only fields the ANSI version of the file API which Som mostly uses (Ex uses Unicode) almost exclusively. I'd like to have it do this by default, but it will probably have to be an extension, because with Trismegistus there are like a few files missing when the game starts and maybe up to 10 on the first level. I don't know if any of them represent bugs in the game, but it's a good tool anyway for figuring out what files (by name) are missing from your project after you build it.

I also noticed, because the internationalization library also uses the ANSI API, the locale switching code was not working correctly. Turned out some assumptions (which are not documented) that I'd made had turned out to be wrong...

http://blogs.msdn.com/b/michkap/archive/2005/02/01/364707.aspx?PageIndex=2

I'd figured LOCALE_USER_DEFAULT was the default language (locale) chosen in the control panel, and LOCALE_SYSTEM_DEFAULT was the native locale of your copy of Windows... like English US for a copy of Windows purchased at a US retail outlet. But turns out anyway (see link) that wasn't even close. The names of course make no sense (thanks MS)


Anyway, I'm curious whether or not people are generally able to play this version without your computer coming to a crawl. I have a feeling for a while anyway the Ex versions might require fairly beefy gaming setups to play. We could also replace the non-Ex downloads with Ex enabled builds which should offer some basic usability stuff like a window etc, but incur no additional performance overhead. A tweaking guide will also probably be in order until I can work out some way to give people multiple quality levels. That will require at the minimum I suspect setting up a console window.

Of course I suspect 90% of the performance overhead just comes from every single triangle being sent to the graphics hardware every single frame... versus uploading them once. The transport of the data actually takes a lot longer than rendering it, much less preparing it, which Som does from scratch more or less every time it draws something. So anyway, once Ex is in a better position to correct this kind of behavior more and more more or less entirely, performance will become pretty much a non issue, short of deploying really spectacular effects.

UPDATE: I decided to make the missing file dialog opt out... do_missing_file_dialog_ok=yes in the Output section disables it. Hopefully that will lead to better games. The missing files will still be recorded in the console (when that's ready) if the message box is disabled. Will still handle important files like Project.dat individually asap.
« Last Edit: December 13, 2010, 09:13:40 pm by Holy Diver »

Offline Holy_Diver

  • Holy Diver
  • Archmage of Light
  • *****
  • Posts: 2280
  • This account won't read/reply to Private Messages
Re: Trismegistus con mit cum Ex
« Reply #34 on: December 14, 2010, 05:32:12 am »
I just spent like (god who really knows) many hours trying to figure out what the hell was wrong with the volume levels with the sound fixes applied, and then I find this (http://msdn.microsoft.com/en-us/library/microsoft.directx_sdk.idirectsound8.idirectsound8.duplicatesoundbuffer%28VS.85%29.aspx) little chestnut (whilst basically trying to figure out if duplicate buffers can even have independent volume levels)

Quote
There is a known issue with volume levels of duplicated buffers. The duplicated buffer will play at full volume unless you change the volume to a different value than the original buffer's volume setting. If the volume stays the same (even if you explicitly set the same volume in the duplicated buffer with a IDirectSoundBuffer8::SetVolume  call), the buffer will play at full volume regardless. To work around this problem, immediately set the volume of the duplicated buffer to something slightly different than what it was, even if you change it one millibel. The volume may then be immediately set back again to the original desired value.

Wtf right?! :ninja:


UPDATE: This "feature" probably also affects Som because it tends to use the same volume level for everything. It also fixes the bug around 0 volume level which I was getting before. To add more insult to injury though while choosing volume fudge factor you have to be careful not to go above 0 or below the silence level.

SetVolume(vol-100<DSBVOLUME_MIN?vol+100:vol-100); //geez      
SetVolume(vol);

Brilliant :rolleyes:

UPDATE: I think all that's needed is to synchronize the volume of paused sounds with the new volume levels whenever the volume is changed in order to perfect everything in this dept. I am planning to setup a "sounds" key asap so individual sounds can be tweaked. I'd thought the volume level was too high for many of them, but I think mainly that was the DirectSound "feature" described above defaulting to maximum volume levels. So maybe the sounds key won't be super necessary just yet.
« Last Edit: December 14, 2010, 11:02:25 pm by Holy Diver »

Offline Verdite

  • VIP
  • Dark Slayer Destroyer
  • *****
  • Posts: 1624
Re: Trismegistus con mit cum Ex
« Reply #35 on: December 15, 2010, 08:35:17 am »
FLIP... Need ... To try...

Looks effing nice! If that solved Todd's problem, then it'l probably solve mine. I'm gonna dl and tell u how it went soon.

Offline Holy_Diver

  • Holy Diver
  • Archmage of Light
  • *****
  • Posts: 2280
  • This account won't read/reply to Private Messages
Re: Trismegistus con mit cum Ex
« Reply #36 on: December 15, 2010, 09:36:20 am »
FLIP... Need ... To try...

Looks effing nice! If that solved Todd's problem, then it'l probably solve mine. I'm gonna dl and tell u how it went soon.

Don't try to download the original 60MB one... it hasn't been updated / won't be. I suppose the project.dat thing should be amended to the top post, but anyway that's all you need. Though the patch buried in here somewhere should also add a bit of value. Still not quite up there with what I've got so far on my end. But if you wanna check it out, by all means.

Offline Verdite

  • VIP
  • Dark Slayer Destroyer
  • *****
  • Posts: 1624
Re: Trismegistus con mit cum Ex
« Reply #37 on: December 15, 2010, 10:39:53 am »
It looks great, and the project.dat worked for me.

Still getting pieces vanishing at 1600x800 though, check screenshot.




Offline Holy_Diver

  • Holy Diver
  • Archmage of Light
  • *****
  • Posts: 2280
  • This account won't read/reply to Private Messages
Re: Trismegistus con mit cum Ex
« Reply #38 on: December 15, 2010, 08:18:49 pm »
It looks great, and the project.dat worked for me.

Still getting pieces vanishing at 1600x800 though, check screenshot.

That's not a 4:3 aspect ratio (it's 2:1!!) so you must've edited the .ini file by hand, because there is an extension which should block that resolution from being available in the OPTIONS (unless you started with it via the ini file like I said)

I plan to allow widescreen in DoM and KF1 if possible though pieces disappearing will still happen because theirs nothing to prevent it other than the maps themselves.

Like I've said I plan to correct this largely in my next major effort... like probably in 6 months at the soonest. But (short of a remake) there will always be stuff that disappears pretty much at least until I can peg down every single event triggered object in Som's memory so to know its exact location / if it's hidden or not.

EDITED: BTW, if you cropped the screenshot just to be confusing, stuff will still disappear along the edges and sometimes because of map optimization crapness, however this is the first instance I've seen of a map tile disappearing in Trismegistus (provided that's in 4:3)

PS: Forgive me if I'm being ridiculously gullible :ninja:

PPS: Yes I just noticed you said "at" .... :rolleyes:
« Last Edit: December 15, 2010, 08:38:52 pm by Holy Diver »

Offline Verdite

  • VIP
  • Dark Slayer Destroyer
  • *****
  • Posts: 1624
Re: Trismegistus con mit cum Ex
« Reply #39 on: December 16, 2010, 03:00:46 pm »
Hahaha, no i wouldnt do that but its funny to think of doing it just for laughs.  :biggrin:

Yeah sorry, i did scale it up. Look forward to your next major steps (will one of them include a specular display?  :5innocent2: