Marisa-Chan / Zengine

Zork: Grand Inquisitor Free engine
MIT License
23 stars 5 forks source link

Grand Inquisitor does not scale to fullscreen #22

Open paolobolzoni opened 11 years ago

paolobolzoni commented 11 years ago

Playing grand inquisitor (DVD version) with zengine keeps the window in the center of the screen and does not scale to fullscreen. So at high resolution the game is displayed in a small section of the screen in the center.

It is an intended behavior?

(o.t., it is possible to extract the nemesis musics to play them outside the game?)

Marisa-Chan commented 11 years ago

Engine does not scale screen, to scale on fullscreen - configure your monitor for scaling lower resolution.

For extract music you may build unraw tool, but you need to set format for converting file (freq, bits, channels and compression)

2013/5/5 Paolo Bolzoni notifications@github.com

Playing grand inquisitor (DVD version) with zengine keeps the window in the center of the screen and does not scale to fullscreen. So at high resolution the game is displayed in a small section of the screen in the center.

It is an intended behavior?

(o.t., it is possible to extract the nemesis musics to play them outside the game?)

— Reply to this email directly or view it on GitHubhttps://github.com/Marisa-Chan/Zengine/issues/22 .

paolobolzoni commented 11 years ago

(resolution) It makes sense, but since Nemesis give me a different behavior I thought of asking. I have then another question.

zengine_wide makes a window of 854x480 pixels, zengine makes a windows of 640x480. Since I got a wide screen (usual resolution 1920x1080) I thought of using zengine_wide; I set the monitor to stretch lower resolutions to occupy the whole fullscreen, and set the resolution to 1024x768 (the next lower is 800x600 that cannot contain zengine_wide).

But the game fails with this error message:

% ./Zengine_wide -f
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  150 (XFree86-VidModeExtension)
  Minor opcode of failed request:  10 (XF86VidModeSwitchToMode)
  Value in failed request:  0x264
  Serial number of failed request:  115
  Current serial number in output stream:  117

Instead without the -f flag it starts correctly and the window is visibly smaller than the fullscreen. The smallest resolution where Zengine_wide -f starts correctly is 1280x720.

(music) sounds good. Can you point me to the unraw tool code? So I can see what I can do?

paolobolzoni commented 11 years ago

(music) checking further I think I understood something. Do the ''*.raw" files contains the music amplitude without any information about freq, bits or channels? Like a PCM stream? If so, do you know fres, bits and channels?

Marisa-Chan commented 11 years ago

sometimes it pcm stream, but mostly it's adpcm-like compressed with different freq, bits and channels for music sound effects and other. Correct format is selecting by character in file name for nemesis and for GI it's different algorythms and different character. How it's work https://github.com/Marisa-Chan/Zengine/blob/master/Engine/src/loader.cpp#L373

2013/5/6 Paolo Bolzoni notifications@github.com

(music) checking further I think I understood something. Do the ''*.raw" files contains the music amplitude without any information about freq, bits or channels? Like a PCM stream? If so, do you know fres, bits and channels?

— Reply to this email directly or view it on GitHubhttps://github.com/Marisa-Chan/Zengine/issues/22#issuecomment-17457368 .

paolobolzoni commented 11 years ago

About the resolution problem I checked it a little and it is a SDL problem. Not a zengine one. SDL tries to find a matching resolution and even if the active one is fine it fails.

Yet, I fond quite enjoyable to play in my laptop (16/10 screen) using a non-standard resolution. Here is the commands I used:

- cvt -v 856 535
Warning: Aspect Ratio is not CVT standard.
# 856x535 59.84 Hz (CVT) hsync: 33.33 kHz; pclk: 36.00 MHz
Modeline "856x535_60.00"   36.00  856 888 968 1080  535 538 548 557 -hsync +vsync
- xrandr --newmode '856x535'   36.00  856 888 968 1080  535 538 548 557 -hsync +vsync
- xrandr --addmode LVDS1 '856x535'

So xrandr can use the 856x535 resolution that is great for zgi_wide! Notes: 856 is just the next 8 multiple of 854 that zgi_wide uses and 535 is 856/1.6.

Maybe it deserves a note in the documentation?

For the SDL issue I could not play fullscreen, but I just hide window decorations and set a black background and it was almost the same.