[FIXED] Retina Support Broken?

Subforum for discussion and help with ScummVM's iPhone port

Moderator: ScummVM Team

Post Reply
tristonhopkins
Posts: 7
Joined: Sun Jun 24, 2012 3:12 am

[FIXED] Retina Support Broken?

Post by tristonhopkins »

So it seems that ScummVM for iOS is supposed to support retina display, from what I've gathered in a few other posts in the forum. However, between the build available on Cydia as well as the daily builds, I have seen no sign of retina support. For most of the games ScummVM supports, this doesn't matter, but it really makes Curse of Monkey Island look blurry. It appears to be downscaling it to 320x240.

I used some voodoo to show the iPod display on my computer, and have attached a comparison between the game running in ScummVM, and a screenshot of nearly the same screen from ScummVM on Windows. There is some compression on the screenshot that iTunes applied when I copied the image over, but you can still clearly see how much sharper it is.

ScummVM PC: http://i.imgur.com/r5KXU.jpg
ScummVM iOS (Linear Filtering): http://i.imgur.com/rBUmy.jpg
ScummVM iOS (No Filtering): http://i.imgur.com/TTO0R.jpg
Last edited by tristonhopkins on Sat Oct 13, 2012 1:09 pm, edited 4 times in total.
User avatar
LordHoto
ScummVM Developer
Posts: 1029
Joined: Sun Oct 30, 2005 3:58 pm
Location: Germany

Re: Retina Support Broken?

Post by LordHoto »

tristonhopkins wrote:So it seems that ScummVM for iOS is supposed to support retina display, from what I've gathered in a few other posts in the forum. However, between the build available on Cydia as well as the daily builds, I have seen no sign of retina support. For most of the games ScummVM supports, this doesn't matter, but it really makes Curse of Monkey Island look blurry. It appears to be downscaling it to 320x240.

I used some voodoo to show the iPod display on my computer, and have attached a comparison between the game running in ScummVM, and a screenshot of nearly the same screen from ScummVM on Windows. There is some compression on the screenshot that iTunes applied when I copied the image over, but you can still clearly see how much sharper it is.

Screenshot: http://i.imgur.com/tynij.jpg
ScummVM: http://i.imgur.com/CY3Hr.jpg
You probably want to try "No filtering" as graphics mode.
tristonhopkins
Posts: 7
Joined: Sun Jun 24, 2012 3:12 am

Re: Retina Support Broken?

Post by tristonhopkins »

LordHoto wrote: You probably want to try "No filtering" as graphics mode.
I should have posted the original screen capture with no filtering, but it is still clearly downscaled. The fact that it is downscaled is much more pronounced with "No Filtering" enabled.

Here's a new screen capture to demonstrate.
http://i.imgur.com/TTO0R.jpg
User avatar
LordHoto
ScummVM Developer
Posts: 1029
Joined: Sun Oct 30, 2005 3:58 pm
Location: Germany

Re: Retina Support Broken?

Post by LordHoto »

tristonhopkins wrote:
LordHoto wrote: You probably want to try "No filtering" as graphics mode.
I should have posted the original screen capture with no filtering, but it is still clearly downscaled. The fact that it is downscaled is much more pronounced with "No Filtering" enabled.

Here's a new screen capture to demonstrate.
http://i.imgur.com/TTO0R.jpg
Then I guess there's some info about supported displays missing in the .plist file. In theory ScummVM should support any resolution iOS returns to it.
tristonhopkins
Posts: 7
Joined: Sun Jun 24, 2012 3:12 am

Re: Retina Support Broken?

Post by tristonhopkins »

LordHoto wrote:
tristonhopkins wrote:
LordHoto wrote: You probably want to try "No filtering" as graphics mode.
I should have posted the original screen capture with no filtering, but it is still clearly downscaled. The fact that it is downscaled is much more pronounced with "No Filtering" enabled.

Here's a new screen capture to demonstrate.
http://i.imgur.com/TTO0R.jpg
Then I guess there's some info about supported displays missing in the .plist file. In theory ScummVM should support any resolution iOS returns to it.
I'm not savvy with iOS apps but I will take a look and see if I can make it display properly, and return with my results!

EDIT: So it appears that the daily builds might have a broken plist, or so I'm assuming.

I had a compiled ScummVM_1.5.0git.ipa floating around in my downloads folder and retina display works with it. I don't believe I used it initially because I was unable to get it to install. I just now installed it by manually copying the files and tweaking permissions. And I just tried the daily build again, even using the info.plist from the git IPA, and it does not work. The particular build is from March 3rd, 2012. The only issue I've come across is that the mouse position doesn't scale properly, so sometimes the cursor will not move to the proper location, regardless of which mouse mode is enabled.
User avatar
LordHoto
ScummVM Developer
Posts: 1029
Joined: Sun Oct 30, 2005 3:58 pm
Location: Germany

Re: Retina Support Broken?

Post by LordHoto »

tristonhopkins wrote: I had a compiled ScummVM_1.5.0git.ipa floating around in my downloads folder and retina display works with it. I don't believe I used it initially because I was unable to get it to install. I just now installed it by manually copying the files and tweaking permissions. And I just tried the daily build again, even using the info.plist from the git IPA, and it does not work.
Where did you get that from? The plist file hasn't been updated in a long time, so it sounds the plist file of your IPA was modified.

What are the contents of the plist file?
tristonhopkins wrote:The particular build is from March 3rd, 2012. The only issue I've come across is that the mouse position doesn't scale properly, so sometimes the cursor will not move to the proper location, regardless of which mouse mode is enabled.
What do you mean by "will not move to the proper location"?
tristonhopkins
Posts: 7
Joined: Sun Jun 24, 2012 3:12 am

Post by tristonhopkins »

I found it somewhere other than the official website. I can find the link for it if you need it. As for the mouse issue, in the particular build I installed with that IPA where retina display works, in any mouse mode other than touchpad the mouse area is reduced to 1/4 of the screen. Also, I couldn't find anything specific to the plist that allowed it to use retina display, and using it with the current daily build made no difference.

EDIT: Here is where I found the compiled IPA. http://metaneutrons.blogspot.com/2012/0 ... eipad.html

Not sure if it will help, but here are the contents of the plist.

Code: Select all


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http&#58;//www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>BuildMachineOSBuild</key>
	<string>11D50</string>
	<key>CFBundleDevelopmentRegion</key>
	<string>en</string>
	<key>CFBundleExecutable</key>
	<string>ScummVM</string>
	<key>CFBundleIconFile</key>
	<string>icon.png</string>
	<key>CFBundleIconFiles</key>
	<array>
		<string>icon.png</string>
		<string>icon-72.png</string>
		<string>icon4.png</string>
	</array>
	<key>CFBundleIcons</key>
	<dict>
		<key>CFBundlePrimaryIcon</key>
		<dict>
			<key>CFBundleIconFiles</key>
			<array>
				<string>icon.png</string>
				<string>icon-72.png</string>
				<string>icon4.png</string>
			</array>
			<key>UIPrerenderedIcon</key>
			<false/>
		</dict>
	</dict>
	<key>CFBundleIdentifier</key>
	<string>org.scummvm.scummvm</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>ScummVM</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleResourceSpecification</key>
	<string>ResourceRules.plist</string>
	<key>CFBundleShortVersionString</key>
	<string>1.5.0git</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundleSupportedPlatforms</key>
	<array>
		<string>iPhoneOS</string>
	</array>
	<key>CFBundleVersion</key>
	<string>1.5.0git</string>
	<key>DTCompiler</key>
	<string>com.apple.compilers.llvmgcc42</string>
	<key>DTPlatformBuild</key>
	<string>9A334</string>
	<key>DTPlatformName</key>
	<string>iphoneos</string>
	<key>DTPlatformVersion</key>
	<string>5.0</string>
	<key>DTSDKBuild</key>
	<string>9A334</string>
	<key>DTSDKName</key>
	<string>iphoneos5.0</string>
	<key>DTXcode</key>
	<string>0421</string>
	<key>DTXcodeBuild</key>
	<string>4D502</string>
	<key>MinimumOSVersion</key>
	<string>5.0</string>
	<key>NSJavaNeeded</key>
	<string>YES</string>
	<key>NSJavaPath</key>
	<array>
		<string>ScummVM.jar</string>
	</array>
	<key>NSJavaRoot</key>
	<string>Contents/Resources/Java</string>
	<key>UIDeviceFamily</key>
	<array>
		<integer>1</integer>
		<integer>2</integer>
	</array>
	<key>UIPrerenderedIcon</key>
	<true/>
	<key>UISupportedInterfaceOrientations</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
		<string>UIInterfaceOrientationPortraitUpsideDown</string>
	</array>
	<key>UISupportedInterfaceOrientations~ipad</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
		<string>UIInterfaceOrientationPortraitUpsideDown</string>
	</array>
</dict>
</plist>
User avatar
tsoliman
ScummVM Developer
Posts: 404
Joined: Wed Jan 19, 2011 3:47 pm
Location: USA

Post by tsoliman »

Besides the icon stuff, I see the following not in the official plist:

Code: Select all

   <key>CFBundleSupportedPlatforms</key>
   <array>
      <string>iPhoneOS</string>
   </array>
and

Code: Select all

   <key>UISupportedInterfaceOrientations</key>
   <array>
      <string>UIInterfaceOrientationPortrait</string>
      <string>UIInterfaceOrientationLandscapeLeft</string>
      <string>UIInterfaceOrientationLandscapeRight</string>
      <string>UIInterfaceOrientationPortraitUpsideDown</string>
   </array>
   <key>UISupportedInterfaceOrientations~ipad</key>
   <array>
      <string>UIInterfaceOrientationPortrait</string>
      <string>UIInterfaceOrientationLandscapeLeft</string>
      <string>UIInterfaceOrientationLandscapeRight</string>
      <string>UIInterfaceOrientationPortraitUpsideDown</string>
   </array>
and perhaps more disturbing:

Code: Select all

   <key>MinimumOSVersion</key>
   <string>5.0</string>
tristonhopkins
Posts: 7
Joined: Sun Jun 24, 2012 3:12 am

Post by tristonhopkins »

Well the retina display issue appears to be completely outside of anything to do with info.plist. Regardless of what is in that file, the daily build does not display properly on my iPod. I just tried inserting the differences into the daily build's plist with no notable differences.

The pre-compiled IPA I linked to does display properly, but has the mouse issue, which makes games that need Click+Drag, ie: Curse of Monkey Island, unplayable.

This appears to be something to do with the iOS port's daily build code itself.. unless I'm just entirely missing something here. :/
User avatar
LordHoto
ScummVM Developer
Posts: 1029
Joined: Sun Oct 30, 2005 3:58 pm
Location: Germany

Post by LordHoto »

tristonhopkins wrote:Well the retina display issue appears to be completely outside of anything to do with info.plist. Regardless of what is in that file, the daily build does not display properly on my iPod. I just tried inserting the differences into the daily build's plist with no notable differences.

The pre-compiled IPA I linked to does display properly, but has the mouse issue, which makes games that need Click+Drag, ie: Curse of Monkey Island, unplayable.

This appears to be something to do with the iOS port's daily build code itself.. unless I'm just entirely missing something here. :/
Seeing the branch he links it shouldn't have any additional features over our daily build on the other hand it misses some, it doesn't contain the mouse fixes and 2Bpp color support (required for HE games etc.). So if the build is made from that branch there shouldn't be any special code to support the higher resolutions.
tristonhopkins
Posts: 7
Joined: Sun Jun 24, 2012 3:12 am

Post by tristonhopkins »

I'm just really confused why then that that build works and the daily doesn't. If you can figure it out, I'd be very happy. Of course, having ScummVM at all is great and having it use the device's full resolution is just a nice perk. If you can think of anything you could do on the code side, I'd be more than willing to test the build on my device and report the results.
User avatar
LordHoto
ScummVM Developer
Posts: 1029
Joined: Sun Oct 30, 2005 3:58 pm
Location: Germany

Post by LordHoto »

It should be working in the next nightly build.
tristonhopkins
Posts: 7
Joined: Sun Jun 24, 2012 3:12 am

Post by tristonhopkins »

I can confirm that this is working in the latest build. Thanks! Love the interface tweaks, too!
Post Reply