Hi all,
Over the past few weeks, I've been toying with optimising various bits of the WinCE port of SCUMMVM for ARM devices (building on top of the excellent work that Knakos and others have already done!)
I'm using a 400MHz Xscale based device, so while everything I try seems to be running full speed for me, this may well not be true for other peoople.
As a matter of interest, what devices are people using the WinCE port of SCUMMVM on, what games are you playing, and how well are they running?
I'm particularly interested in games that are just a bit too slow, as that might give me something to aim at :)
Thanks,
Robin
What devices are people playing on? And what games?
Moderator: ScummVM Team
- robinwatts
- ScummVM Developer
- Posts: 84
- Joined: Sat Apr 07, 2007 5:16 pm
- Location: Hook Norton, Oxfordshire, UK
Hi Robin,
I'm using ScummVM on my Dell Axim X51v VGA device which runs windows mobile 5. The games I am playing are Monkey Island 1 and 2, Simon the Sorcerer 1 and 2 and Sam and Max.
Thanks for offering to implement new features in the Pocket PC port.
Two things I would like implemented are:
1. ZIP file support for the Pocket PC port. I noticed that by zipping my games I could reduce their size by half in most cases, and on a Pockect PC where disk space is scarce, this space saved is very beneficial. The developers of the main program claim adding ZIP support aids in piracy, but I don't follow their logic as it's just as easy to pirate a game whether ScummVM supports ZIP files or not.
2. Can you implement support for the Intel 2700g video accelerator that is on my Axim X51v. I beleive this would reduce battery consumption and greatly increase the speed of the rendering especially when using scaling to get the games to display at VGA resolution. The Core Pocket Media Player is an open source program that has been optimised to use the Intel 2700g, maybe you can use source code from that to help you get started.
Thanks!
I'm using ScummVM on my Dell Axim X51v VGA device which runs windows mobile 5. The games I am playing are Monkey Island 1 and 2, Simon the Sorcerer 1 and 2 and Sam and Max.
Thanks for offering to implement new features in the Pocket PC port.
Two things I would like implemented are:
1. ZIP file support for the Pocket PC port. I noticed that by zipping my games I could reduce their size by half in most cases, and on a Pockect PC where disk space is scarce, this space saved is very beneficial. The developers of the main program claim adding ZIP support aids in piracy, but I don't follow their logic as it's just as easy to pirate a game whether ScummVM supports ZIP files or not.
2. Can you implement support for the Intel 2700g video accelerator that is on my Axim X51v. I beleive this would reduce battery consumption and greatly increase the speed of the rendering especially when using scaling to get the games to display at VGA resolution. The Core Pocket Media Player is an open source program that has been optimised to use the Intel 2700g, maybe you can use source code from that to help you get started.
Thanks!
there's another issue with zip as well - to access the file you'll have to decompress it - and where will you decompress it to?bub181 wrote:The developers of the main program claim adding ZIP support aids in piracy, but I don't follow their logic as it's just as easy to pirate a game whether ScummVM supports ZIP files or not.
keep in mind that the data files are usually one big file of ~10 mbyte - I think you'll have to decompress all of that to find a specific point in the file to read frombub181 wrote:Is it possible to read a file from inside a ZIP file without having to decompress the other files? And would you have to decompress it somwhere first or can you just load the parts you need straight into memory?
the older games had lots of smaller files, but why compress those? the savings in space are negligible if the whole game only has ~700 kbyte
- robinwatts
- ScummVM Developer
- Posts: 84
- Joined: Sat Apr 07, 2007 5:16 pm
- Location: Hook Norton, Oxfordshire, UK
A 624MHz device. I guess we'd expect that to work really fast, except when the effort of keeping that huge screen size starts to slow it down.bub181 wrote:I'm using ScummVM on my Dell Axim X51v VGA device which runs windows mobile 5. The games I am playing are Monkey Island 1 and 2, Simon the Sorcerer 1 and 2 and Sam and Max.
That wasn't exactly what I was offering :)bubl81 wrote:Thanks for offering to implement new features in the Pocket PC port.
In the short term I was planning to concentrate on improving the speed in various areas. I've started with the video code (blitting, scaling, rotating etc) and I've now started peering at the sound code.
I've been targetting these kind of things because they are separable small things I can do in my limited free time, without treading on the other developers toes (and they after all are the ones who have done the storming work to get the program to be this good already!)
That's not to say that I wouldn't consider looking at other features, but I'd have to consult with the main developers to know that I wasn't working at cross purposes with any of them.
I'd love to see ZIP support too. Anything to reduce the size of the games on the devices would clearly be a good thing.bubl81 wrote:1. ZIP file support for the Pocket PC port. I noticed that by zipping my games I could reduce their size by half in most cases, and on a Pockect PC where disk space is scarce, this space saved is very beneficial. The developers of the main program claim adding ZIP support aids in piracy, but I don't follow their logic as it's just as easy to pirate a game whether ScummVM supports ZIP files or not.
I certainly don't follow the argument that adding zip support would be supporting piracy. I don't see how requiring people to unzip a game they just illegally downloaded is going to be a major disincentive for anyone... (I'm not condoning piracy here, just saying that I don't see how not having zip support prevents it).
Unzipping files as they are read is easy enough (has a smallish overhead in terms of memory (32K or so typically) and obviously a slight slowdown, and code size disadvantage), but this only works for files that are opened and then read all the way through.
The problem comes if random access to the file is required; that means we'd need to decode the whole file in advance and hold it for the duration of it's use.
As clem says, if we need to unzip a 10Meg file before we can start reading it, the odds are that that will have to be written to disc (not many people have 10Meg spare when running Scummvm). Repeatedly decompressing a 10Meg file to your flash disc isn't going to be ideal...
A better scheme may well be to come up with a 'compressed, partitioned' version of the game files, where sections of the file that are accessed linearly are compressed. But that's a much more invasive thing and something for the core developers.
The other really big user of space is of course the MP3 files for these games - and zipping really won't help them...
Definately not. Unless you want to buy me one to play with :)bubl81 wrote:2. Can you implement support for the Intel 2700g video accelerator that is on my Axim X51v. I beleive this would reduce battery consumption and greatly increase the speed of the rendering especially when using scaling to get the games to display at VGA resolution. The Core Pocket Media Player is an open source program that has been optimised to use the Intel 2700g, maybe you can use source code from that to help you get started.
I'd hope that the patches I've done already (there are some in the current SVN build, and another one to come to speed landscape and inverse landscape operation) should help a bit though.
I guess there is scope for an ARM version of a scaler that fills the screen with the 320x240 screens... do you see much slowdown on any of those games?
Thanks,
Robin
In short, no (see FAQ).bub181 wrote: 1. ZIP file support for the Pocket PC port.
I've said in the past that I won't let the port code to be cluttered with device specific codepaths. Doing this all inside SDL (as it probably should be done) is another thing, but I can't test and also am a bit sceptical about it.bub181 wrote: 2. Can you implement support for the Intel 2700g video accelerator that is on my Axim X51v.
Thanks for your replies, Robin and Knakos.
I guess zip file support for games that have only a few large data files is not a good idea, but for some games, like Simon 1 on floppy, that have several hundred small files it would be a benefit. I don't agree with the developers' logic that it will aid in piracy.
I would like to see a mode on VGA devices where the original 320x200 games could be scaled to the full size of the screen with the correct aspect ratio. Currently none of the scalers resize the games keeping the correct aspect ratio of the original. There is noticeable slowdown if I use any other mode than 2x pixel doubling to scale the image to VGA. The Intel 2700G video processor has hardware bilinear scaling, so if you could get it to do the scaling from 320x200 to 640x480 then you would get a nice scaled image with no performance hit. It might be possible to implement this as just another scaler so it doesn't spoil the other code, but I'm not sure.
Thanks for all your efforts!
I guess zip file support for games that have only a few large data files is not a good idea, but for some games, like Simon 1 on floppy, that have several hundred small files it would be a benefit. I don't agree with the developers' logic that it will aid in piracy.
I would like to see a mode on VGA devices where the original 320x200 games could be scaled to the full size of the screen with the correct aspect ratio. Currently none of the scalers resize the games keeping the correct aspect ratio of the original. There is noticeable slowdown if I use any other mode than 2x pixel doubling to scale the image to VGA. The Intel 2700G video processor has hardware bilinear scaling, so if you could get it to do the scaling from 320x200 to 640x480 then you would get a nice scaled image with no performance hit. It might be possible to implement this as just another scaler so it doesn't spoil the other code, but I'm not sure.
Thanks for all your efforts!