AdvMAME3x problem with development build

Ask for help with ScummVM problems

Moderator: ScummVM Team

Post Reply
User avatar
almeath
Posts: 178
Joined: Fri Mar 14, 2008 1:40 pm
Location: Australia

AdvMAME3x problem with development build

Post by almeath »

I realize the development builds might have a range of bugs and issues, but I noticed that when I use the AdvMAME3x filter in ScummVM 2.0 I get a crisp and 'smoothed' game window that fills my 2560x1440 screen.

When I use the same filter in the latest development build of 2.0.1 I get a blurry game window that fills about 75% of the screen. Full screen mode with openglnb filter will still give a crisp full screen image, but without the smoothing effect that I am after from AdvMAME3x.

I know I have not made an error in the preferences, because I use self-contained game bundles with their own preference files. When I test new builds I leave all the settings in place and just swap between ScummVM binaries.

Hopefully this is just a bug that will not occur in the final 2.0.1 release..
User avatar
sev
ScummVM Lead
Posts: 2272
Joined: Wed Sep 21, 2005 1:06 pm
Contact:

Post by sev »

It is not clear which OS you're using, and this is an incompatibility in SDL library. You could help us with specifying more information (not to mention that the forum is NOT the place for the bugreports, see Forum Rule #3a).


Eugene
User avatar
almeath
Posts: 178
Joined: Fri Mar 14, 2008 1:40 pm
Location: Australia

Post by almeath »

I was not sure if it was a bug and needed to be reported, but if it is then I am sorry for mentioning it on here. I did not intentionally mean to break a forum rule.

For the record, I am using MacOS 10.13.4. If I am able to work it out myself I will post back here.
User avatar
criezy
ScummVM Developer
Posts: 947
Joined: Sat Sep 23, 2006 10:41 am
Location: West Sussex, UK

Post by criezy »

Can you clarify which builds you mean exactly? For the 2.0.0 version you mean the official macOS 64 bits version available on our download page? For the development version you mean the daily builds available on buildbot? Or did you build it yourself?

I suspect that what you see is the result of an older SDL library being used for the development builds. The official macOS releases are built with SDL 2.0 (since ScummVM version 1.8 or 1.9, I don't remember exactly when I switched to SDL 2) while I believe buildbot still uses the older SDL 1.2 library.

SDL2 adds the ability to scale a display to a different resolution. OpenGL can also do it. But with SDL 1.2 and any graphics mode that is not OpenGL we cannot do it so instead for fullscreen mode we ask the OS to give us the closest resolution to what we want (for AdvMAME3x this is 3 times the original game resolution). If the system cannot give us exactly what we want, we end up with a resolution a bit bigger than what we want and the game does not fill the screen. In addition to that, because we are not using the native screen resolution, the graphics card has to scale the display itself, and we have no control on how it does it (my experience with LCD screens is that it usually results in a blurry image), at least on mac. You can go into the mac Display System Preferences and change the resolution to see what I mean.

With SDL 2 we are able to ask SDL to scale the image that we get from the AdvMAME3x filter to fit a bigger resolution and have some control on how it does it. So what we do is scale the display to the screen resolution ourselves (actually SDL does it) and we implemented two ways to do it: nearest neighbour or bilinear filtering (you toggle between the two using the Filter graphics button in the Graphics options). So you have more control and can usually get a better display. Incidentally I am working on giving even more control to the user on how we scale to the screen resolution (you can see some images here).
User avatar
almeath
Posts: 178
Joined: Fri Mar 14, 2008 1:40 pm
Location: Australia

Post by almeath »

criezy wrote:Can you clarify which builds you mean exactly? For the 2.0.0 version you mean the official macOS 64 bits version available on our download page? For the development version you mean the daily builds available on buildbot? Or did you build it yourself?
The official macOS 64 bit 2.0 build works fine for me. The daily build from the buildbot exhibits the problem. I also tried downloading the repository from Github and building that in 64 bit, which also exhibited the problem.
criezy wrote:I suspect that what you see is the result of an older SDL library being used for the development builds. The official macOS releases are built with SDL 2.0 (since ScummVM version 1.8 or 1.9, I don't remember exactly when I switched to SDL 2) while I believe buildbot still uses the older SDL 1.2 library.
That makes sense, and confirms that it is not a bug as such. I assume that the buildbot uses the latest code from the Github repository, which is why my 64 bit manual build attempt also failed to resolve the issue.

That leads me to a couple more questions:

1. Is there a particular reason why the buildbot uses the older SDL by default?

2. If not, is there a way to manually put together a build using the latest daily source, the newer SDL library, and in 64 bit? (considering that Apple will soon be phasing out 32 bit support)
User avatar
criezy
ScummVM Developer
Posts: 947
Joined: Sat Sep 23, 2006 10:41 am
Location: West Sussex, UK

Post by criezy »

almeath wrote:1. Is there a particular reason why the buildbot uses the older SDL by default?
I never really looked at how buildbot works, but hopefully all there is to do is to add the SDL2 library compiled for mac on the computer that makes those builds so that it is available.

I suspect there will be a complication though. Currently the 32 bit builds with SDL 1.2 cover a wide range of macOS versions since they can be used on any Intel 32 bit or 64 bit mac computers. SDL 2 does not support very old macOS versions (if I remember correctly it supports macOS 10.7 and up), so switching to it would mean dropping support for older versions. Also I am not sure which mac SDKs is installed on the build computer, and it may be older than 10.7, in which case it would need to be updated as well, which might not be easy.

But as you noted Apple has indicated that it will phase out 64 bit support, so we might need to make some changes anyway. We could either decide to compile both a 32 bit version with old SDL and 64 bit version with new SDL, or only do the latter and drop support for older macOS computers with the nightly builds.

For the official release I am planning to continue doing both a 32 bit build with old SDL and a 64 bit build with new SDL.
almeath wrote:2. If not, is there a way to manually put together a build using the latest daily source, the newer SDL library, and in 64 bit? (considering the Apple will soon be phasing out 32 bit support)
Sure. The latest code from the Github repository (and that has been the case for a while) can be built either with SDL 1.2 or SDL 2, and by default uses SDL 2. You need however to have SDL 2 available on your computer as otherwise it falls back to SDL 1.2. Building a 64 bit executable is also the default (unless you are building on an old 32 bits computer, but I assume this is not the case). So in summary just make sure you have SDL 2 on your computer and when you build ScummVM it should pick it up automatically.

See http://wiki.scummvm.org/index.php/Compi ... mmVM/macOS for details.
User avatar
almeath
Posts: 178
Joined: Fri Mar 14, 2008 1:40 pm
Location: Australia

Post by almeath »

I could not get this to work at first, as despite completely removing homebrew and all its libraries and then reinstalling, it kept falling back to SDL 1.2.5 when I built ScummVM from the main repository. I also manually checked and fixed any broken symlinks, but to no effect.

However, after installing a fresh copy of macOS 10.13.4 to an external drive, I was able to get it to work. I must have had some permissions errors or detritus on my main system that was somehow interfering with the process.

Anyway, ultimately I got it to work. Thanks for the assistance. :)
Post Reply