[OLD-1] AGS engine Linux port

Started by BigMc, Sun 03/06/2012 19:04:20

Previous topic - Next topic

JJS

^^ If you think it is stable, feel free to merge it into master.

Quote from: scottchiefbaker on Fri 01/02/2013 01:45:33#2) Is there any real case where you want fullscreen but NOT stretch? I hate doing -fullscreen and the game loads and it's 320x200 with black border around the whole game. I'm thinking maybe we want to default to "stretch to fit" if the user selects fullscreen?
This seems to be a bug in Allegro to me or maybe it is just how Linux works, no idea. The problem is that on Windows the request for a fullscreen resolution that is not supported by the graphics driver will just fail. But on Linux it looks like the system returns success and then switches to the next best supported resolution (or does not switch at all in fact) which puts the game unscaled in the middle of the screen.
Ask me about AGS on PSP, Android and iOS! Source, Daily builds

scottchiefbaker

Quote from: BigMc on Fri 01/02/2013 09:40:45
Why should I do that right now? There was not a single change to the code since the last one.

I thought the savegame fix Crimson Wizard did landed. I misunderstood.

scottchiefbaker

Is there currently a way to do Fullscreen + Stretch on Linux? Or is your best bet to just do StdScaleX where X is as close as you can get? Does allegro offer any screen stretching modes?

BigMc

Quote from: scottchiefbaker on Mon 04/02/2013 16:06:58
Or is your best bet to just do StdScaleX where X is as close as you can get?

I am doing it like that manually currently. I also have the problem that if AGS changes my resolution, it does not change it back afterwards. This could be Allegros fault. Maybe it would be best to let AGS never change the screen resolution on Linux, but choose an appropriate scaling automatically instead. What do you think JJS?

scottchiefbaker

Where do we stand on that savegame bug? I only ask because Wadjet asked me to package up a beta version of GeminiRue this morning.

Crimson Wizard

Quote from: scottchiefbaker on Mon 04/02/2013 16:35:36
Where do we stand on that savegame bug? I only ask because Wadjet asked me to package up a beta version of GeminiRue this morning.
Ouch. Didn't realize it is this urgent.
Well, I can push the changes to master right away, but some people, who were playing the games using those ports and have saves, will experience errors when loading em. By the way, Gemini Rue is exactly one such game, affected by the bug. With my latest changes, the original Gemini Rue saves should load, but older saves made by our engine wont work. I was only worried about possible complains, and wanted to finish convertion utility first, but seeing you want to make beta rigth away I may do merge.

Also, since now it is related to official release of commercial game, I guess we should be ready to fix anything ASAP, hmm? :)

scottchiefbaker

I'd rather do the launch right. I can tell Wadjet there is minor savegame bug we're still working on, and want to hold off. I'll defer to you as to when you feel comfortable with the engine. Seeing as this would be the beta of GeminiRue on Linux, most of the savegames should be new (i.e. not from an older version of the engine) so we should be OK there?

BigMc

No, if we can provide an engine compatible with Windows savegames, we should do it.

JJS

Quote from: BigMc on Mon 04/02/2013 16:19:41Maybe it would be best to let AGS never change the screen resolution on Linux, but choose an appropriate scaling automatically instead.
I would say that this would be the best for Windows too. The engine knows the game resolution and it queries the desktop resolution so it would be possible to calculate the appropriate scaler automatically. Sinced scaled graphics are more costly on the CPU we should make this optional, maybe with a new scaler parameter like "StdScaleAuto".
Ask me about AGS on PSP, Android and iOS! Source, Daily builds

scottchiefbaker

Quote from: JJS on Sat 22/09/2012 07:28:31
Still the whole savegame issue is a bit of a mess. What I mean is that savegames have a different size on all platforms, which is something that I do not at all understand.

I was under the impression that save games were not compatible across platforms.

Crimson Wizard

Ah, right, that plugin thing. They may save data differently on different platforms.
But, actually, I never tried Gemini Windows saves on Linux, I only know that PSP has difference from Windows. I may check Windows-Linux compatibility now.
Well, and I can as well just make the merge. If something goes terribly wrong we may make a revert.

JJS

#191
The original saves from Gemini Rue will not load on any other platform. Exactly because of the different plugin used. But if you use the same plugin on Windows, they are all compatible. In fact you don't even need the external DLL because ags_snowrain is built into the engine on Windows. (At least this is how it theoretically should work, I haven't tried in some sime :-)

Edit: Update on this issue. I could successfully load games made with the Windows engine with builtin plugin on Ubuntu 64 bit and vice versa. I had to fake the operating system version to return "Windows" on Linux because otherwise the game doesn't enable the rain effects.
Ask me about AGS on PSP, Android and iOS! Source, Daily builds

Crimson Wizard

Okay, I did it. If something happens, you know whom to blame.  (roll)

BigMc

Yes, scottchiefbaker.  ;)

Crimson Wizard

I still don't understand what is going on with plugin data in savegames. If the plugin is the same, why it saves different data?
I just checked snow/rain plugin quickly (one used by Gemini Rue). Why does it ever need to save something if its not Windows, while Windows does not save a thing? Or, putting this other way, why doesnot Windows version save anything? I am very confused.

scottchiefbaker

BigMc: can you do a build of your ags+libraries with the big merge that just happened? Can you give is a BUILD_STR=$(date +%F)? I'll use that binary as a basis for my Gemini Rue beta.

BigMc

Quote from: JJS on Mon 04/02/2013 17:00:22
I would say that this would be the best for Windows too. The engine knows the game resolution and it queries the desktop resolution so it would be possible to calculate the appropriate scaler automatically. Sinced scaled graphics are more costly on the CPU we should make this optional, maybe with a new scaler parameter like "StdScaleAuto".

If it is better, I think it should be the default and the option should be to turn it off. Something like allow_screen_resolution_change? One could use filters (including "None") to disable auto scaling. In windowed mode, the window could be scaled to something like the screen resolution minus 50(?) pixels in height per default.

Quote from: scottchiefbaker on Mon 04/02/2013 17:23:14
BigMc: can you do a build of your ags+libraries with the big merge that just happened? Can you give is a BUILD_STR=$(date +%F)? I'll use that binary as a basis for my Gemini Rue beta.

BUILD_STR is not merged.

scottchiefbaker

Now that the savegame code is merged, are we ready to release beta test of GeminiRue? Wadjet has given me the data, we just need an engine to go along with it.

Crimson Wizard

I guess so. Since it's beta test. Let's hope testers will test it good.




*chuckle*

scottchiefbaker

Quote from: Crimson Wizard on Mon 04/02/2013 19:11:56
I guess so. Since it's beta test. Let's hope testers will test it good.

Well that's the intention! BigMc can you please build a new version of your ags+libraries? If you don't have time I can spin up a Debian Wheezy 32/64bit VM and build them. You already have that stuff, so it's probably easier for you. Should we need to look in to setting up a build system? Right now BigMc is our build system :)

SMF spam blocked by CleanTalk