[Scummvm-devel] Kyrandia engine loading is slow on the DS
neil at millstone.demon.co.uk
Fri Aug 22 10:14:09 CEST 2008
Max Horn wrote:
> Am 20.08.2008 um 23:34 schrieb Bertrand Augereau:
>> Hi Neil, hi team,
>> given your numbers we can approximate the time of a fopen to 15ms.
>> Therefore, on the 65 seconds to launch Kyrandia 1, the 2k fopen
>> account for 30 sec, and the rest is 35 seconds.
>> Maybe we could maintain a cache of filename to file handles in kyra
>> resource manager to open files only once, we probably could gain 20
>> seconds more.
> This will be solved for good by the file handling revamp on which
> peres and I am working, which besides other things, implements a cache
> for which files exist and which don't. But it won't make it into the
> 0.12 release, too many deep changes are involved.
> In the meantime, though, you could of course simply write a more
> clever fopen implementation. Since the DS provides a custom fopen
> anyway, a simple cache could be implemented in there. I reckon that
> would take maybe 50 lines of code to do, and should easily bring down
> the load times to a few seconds.
Hi Max & Team,
I have done a little more digging around this issue, and have found that
the DS fopen does indeed use a cache, in fact it looks like I increased
the cache size in the Kyrandia build in 0.11.1 order to help this
issue. Unfortunately, even with this, it seems the time taken to load
the game is not spent in the DS backend. Without a profiler it's hard
to say why it's so slow, but the engine does seem to search various
tables for files before it tries to open them on disk. Perhaps this is
just too much for the DS's 66Mhz CPU. I dare not change the Kyra
loader, it looks extremely complex to me and I don't really understand
how it works.
So, for now, this issue will have to be in the release notes, although
I'm sure I will get complaints about it, since this worked in 0.11.1.
More information about the Scummvm-devel