German winsetup.exe?

Started by Dave Gilbert, Thu 28/07/2011 11:21:52

Previous topic - Next topic

Dave Gilbert

Hi all!  We're about to release Gemini Rue in German with a German publisher, and the one thing they need is the winsetup.exe file translated into German.  Is that something we can change on our own?  Or is there a German version of winsetup.exe floating around?  We'd need it for version 3.2.1.111.

Thanks to anybody who can help!

-Dave

monkey0506

#1
Well all winsetup.exe does is write the acsetup.cfg file. The automatically generated "winsetup" file that AGS produces just references a Windows form program that is built into the game EXE (unless I'm mistaken it's actually built into acwin.exe?), but there's no reason you couldn't generate the CFG file yourself. I don't know off the top of my head what all the possible values are, but the CFG file is written in plain-text, ie.

Quote[sound]
digiid=-1
midiid=-1
digiwin=1096302880
midiwin=-1
digiindx=0
midiindx=0
digiwinindx=0
midiwinindx=0
[misc]
gamecolordepth=16
defaultres=1
screenres=0
letterbox=0
defaultgfxdriver=DX5
gfxdriver=DX5
titletext=Game Setup
windowed=0
refresh=0
gfxfilter=None

I'm not aware that a German setup program currently exists for AGS, but I imagine it shouldn't be too difficult to create one.

Edit: To get a better idea of the possible valid values, there's a "read_config_file" in the AC.cpp file included in the engine source. If you would prefer, if it would make it simpler for you, I could try and extract the relevant functions and PM you the code. ;)

Snarky

Since the engine is open-source now, wouldn't it be pretty easy to just change all the winsetup strings in the source code and build your own version of the engine?

Dave Gilbert

Hm.  Since we've been testing the game ad nasuem with the current version of the engine, rebuilding a whole new version of the engine just for this one change isn't something we want to do.  It might be more worth it to create our own version of the winsetup.exe that the Germans can translate, if there's no other option.

LRH

Quote from: Dave Gilbert on Thu 28/07/2011 14:52:02
Hm.  Since we've been testing the game ad nasuem with the current version of the engine, rebuilding a whole new version of the engine just for this one change isn't something we want to do.  It might be more worth it to create our own version of the winsetup.exe that the Germans can translate, if there's no other option.


Hmm...short of coding your own program that manipulates the .cfg file, I don't think this can really be done without changing the actual guts of AGS as per Snarky's suggestion...

I'm no expert though, so don't just take my word for it.

monkey0506

Well, if you're interested in the write-your-own-setup route, here's a listing for the CFG file as used by the current version of AGS. I've composed it from the engine source and a lot of testing against various winsetup.exes and their associated acsetup.cfgs.

Quote[sound]
  [digiid]
    [?? - Not used by Windows platforms, default -1]
  [digiwinindx]
    [1: Default WaveOut Device]
    [2: No Digital Sound]
    [3: DirectSound (Hardware mixer)]
    [Default: Default DirectSound Device]

  [midiid]
    [?? - Not used by Windows platforms, default -1]
  [midiwinindx]
    [1: Disable MIDI music and sounds]
    [2: Win32 MIDI Mapper]
    [Default: Default MCI Music Device]

  [usespeech]
    [0: Do not use speech.vox]
    [1: Use speech.vox if available]

  [digiindx]
  [midiindx]
    [0: ??, never actually read by the engine -- not used, possibly retained for legacy reasons]

  [digiwin]
  [midiwin]
    [??: ??, never actually read by the engine -- not used, possibly retained for legacy reasons]

[misc]
  [gamecolordepth]
    [8, 16, 32: Stores the actual game color-depth]

  [defaultres]
    [1: 320x200]
    [2: 320x240]
    [3: 640x400]
    [4: 640x480]
    [5: 800x600]
    [6: 1024x768]

  [screenres]
    [0: 320x200 or 320x240]
    [1: Other resolution]

  [letterbox]
    [1: 320x240 or 640x480]
    [0: Other resolution]

  [defaultgfxdriver]
    [DX5: DirectDraw 5]
    [D3D9: Direct3D 9]

  [gfxdriver]
    [DX5: DirectDraw 5]
    [D3D9: Direct3D 9]

  [titletext]
    [TEXT: Sets the winsetup.exe title bar to TEXT]

  [windowed]
    [0: Fullscreen]
    [1: Windowed]

  [refresh]
    [0: Do not use 85 Hz display]
    [85: Use 85 Hz display (CRT monitors only)]

  [gfxfilter]
    [None: None]
    [StdScale2: 2x nearest-neighbour filter]
    [StdScale3: 3x nearest-neighbour filter]
    [StdScale4: 4x nearest-neighbour filter]
    [AAx2: 2x anti-aliasing filter]
    [AAx3: 3x anti-aliasing filter]
    [AAx4: 4x anti-aliasing filter]

  [antialias]
    [0: Do not use smooth-scaled sprites]
    [1: Use smooth-scaled sprites]

  [notruecolor]
    [0: Do not downgrade 32-bit graphics]
    [1: Downgrade 32-bit graphics to 16-bit]

  [sideborders]
    [0: Do not use side borders on widescreen monitors]
    [1: Use side borderson widescreen monitors]

  [forceletterbox]
    [0: Do not force alternate letterbox resolution]
    [1: Force alternate letterbox resolution]

  [cachemax]
    [SIZE: Sets the maximum sprite cache size to SIZE, in KB]

  [replay]
    [Disabled in winsetup.exe, probably doesn't work right]

[language]
  [translation]
    [TRANSLATION: Sets the game translation to TRANSLATION, the translation name without the .TRA extension, ie. "German"]

Hopefully I've formatted this clearly enough. The most left-aligned tags are the actual section keys used within the CFG file, and should retain the brackets. The next left-most values represent the actual names of each of the various settings (and should not retain the brackets). The furthest indented lines represent the potential values for each of the related settings. The end-result should look like the CFG file I posted above (just for reference).

If you wanted to avoid having to write your own CFG editor (which actually wouldn't be that difficult at all), and also wanted to avoid compiling your own version of the engine, moving that into your AGS directory, recompiling the game, renaming that winsetup.exe to something else appropriate for the German language, and then restoring the English version of the engine to your AGS directory (which would actually probably be more work in the long-run than writing your own program :P), you could use a resource hacking program to simply replace the resource strings in the winsetup.exe. I realize that the term "hack" isn't something you might think of fondly in relation to AGS, but you're just replacing the text in the setup file, so I wouldn't feel too bad about going that route. :P

Lt. Smash

Wouldn't it be possible to write that config file in-game using AGS file functions?
You could make a GUI in German that sets all of these options and write it to the file; you would just need to add a notice that the changes will be made the next time you start the game ;)

Dave Gilbert

Well like I said, at this point the game has been so thoroughly tested we want to avoid making changes to the game itself.  We probably will just make our own. :)

selmiak

will it be boxed? boxed versions for preorders? :D

Dave Gilbert


Ghost

Quote from: Dave Gilbert on Fri 29/07/2011 18:33:06
In Germany, yes. :) 

YAY! Da haben wir ja mal Glück gehabt!

cianty

Quote from: Ghost on Fri 29/07/2011 19:06:42
Quote from: Dave Gilbert on Fri 29/07/2011 18:33:06
In Germany, yes. :) 

YAY! Da haben wir ja mal Glück gehabt!

In der Tat. Schick schick! :)
ca. 70% completed

Dave Gilbert


selmiak

just to make sure, you don't have to preorder the german version to get it boxed? You just walk into a shop and buy the boxed version? right?

Dave Gilbert


abstauber

Way too late but maybe it's any help:
You can use Resource Hacker to translate winsetup.

AGS-Member Miori for example did this:




http://www.angusj.com/resourcehacker/


Calin Leafshade

I forgot about resource hacker. Excellent solution!

Vince Twelve

Dave, if you decide to go the stand-alone remade winsetup with ability to translate and customize, I would definitely want a piece of that action for Resonance.

Dataflashsabot

One does wonder how many of winsetup's options are actually needed.
* Windowed/fullscreen
* Graphics driver
* Graphics filter (perhaps renamed be friendlier, I.E. "smooth" instead of "hq2x"
* Force letterbox (actually, is there ever any disadvantage to leaving this always on?)
* Use speech (one would suggest that this option is not shown in the first place if there is no speech.vox)
* Language

And that's basically it. I don't think anyone needs to change Sound/MIDI devices from default, and things like "use 85hz display" are basically useless. It would definitely be good to have a replacement config program, with better/friendlier options. I might even consider making one myself, but no promises, I'm quite busy at the moment.

By the way, every time I run winsetup.exe and then start the game through it, Windows thinks it's an installer that failed and asks me if I want to use some compatibility bullshit. Anyone who plans to release a game soon, I would suggest you rename it to config.exe to avoid this.

monkey0506

For the record, I had already mentioned Resource Hacker (indirectly). :P

I actually decided to take a look at this, and feel free to slap me but I've used C# (targeting the .NET 2.0 Framework). I figure anyone who's using "winsetup" has probably got .NET 2.0 installed anyway.

I've pretty well emulated the existing winsetup.exe, and I've got a translation for you Germans out there. My only problem at this point is that it seems that when I deploy the EXE I can't change to the German culture unless I also include a separate resource DLL. The thing I don't get is that the resource files are all marked as "embedded" resources. I'm sure the Google-provided translations probably all need to be replaced anyway :P, but it would be nice if the translations could indeed be embedded inside of the singular EXE instead of depending on any external assemblies. If anyone knows how to deal with that, please let me know.

If I can't figure it out over the next couple days, I'll probably upload the source for this thing. It was fun designing it anyway, seeing everything come together like it did. Would have been faster to just write a completely custom program, but I like the layout of winsetup. :D

SMF spam blocked by CleanTalk