[Scummvm-devel] ScummVM 0.12.0: Release status -- 2008-07-13
Max Horn
max at quendi.de
Tue Jul 15 13:19:45 CEST 2008
> size:
>
> scumm.plg: 0 + 1708348 + 3052 = 1711400
> kyra.plg: 0 + 1096324 + 64701 = 1161025
> parallaction.plg: 0 + 323224 + 258060 = 581284
> gob.plg: 0 + 580344 + 8 = 580352
> cruise.plg: 0 + 162844 + 379380 = 542224
>
My results:
TOTAL CODE DATA
1372160 1269760 102400 plugins/scumm.plugin
1028096 933888 94208 plugins/kyra.plugin
565248 290816 274432 plugins/parallaction.plugin
520192 450560 69632 plugins/gob.plugin
507904 122880 385024 plugins/cruise.plugin
397312 356352 40960 plugins/saga.plugin
397312 327680 69632 plugins/agos.plugin
356352 270336 86016 plugins/agi.plugin
311296 217088 94208 plugins/tinsel.plugin [SPOILER ;]
[...]
258048 155648 102400 plugins/cine.plugin
----------------------
7.49M = 6.12M + 1.37M (total over all engines)
Parallaction already was "fixed" (thanks peres), but also cruise
(380k), cine (100k) and others are using lots of data. Maybe we can
reduce some of them, a bit at least. Sometimes it's data tables we
can't do anything about, but often (e.g. in the case of Tinsel, Cruise
& Cine), it's an artifact of not fully OOified engines, which use
global vars instead of class members (=allocated on heap).
All in all, the BSS size is still not as important as the raw code
size, but that doesn't mean we should needlessly waste it, right? ;)
Some details:
Cruise:
in background.cpp:
char hwPage[64000]; (~64k}
in gfxModule.cpp:
uint8 page00[320 * 200]; (~64k}
uint8 page10[320 * 200]; (~64k}
char screen[320 * 200]; (~64k}
Cine:
in texte.cpp
byte textTable[256][2][16 * 8]; (~64k}
(and maybe more).
All of these should be turned into class members, which will
automatically solve the issue. Buddha is working on OOifying those
engines, I think.
Cheers,
Max
More information about the Scummvm-devel
mailing list