Here comes another update from homebrew developer StrmnNrmn on his pet project, Daedalus R11. We already shared with you the other day his hopes and plans for this release and this time, he took the opportunity and explained to fans what's happening in the emulator's development stage.
According to StrmnNrmn, he had already isolated the main culprit for eating up memory while the application is running. It is actually the mirrored texture support for 4- or 8-bit palettised textures. The developer explained that 64 4-bit palettised texture that took up 2KiB on the N64 would consume a huge 64KiB on the PlayStation Portable (PSP) and that's a 32-fold increase.
Furthermore, StrmnNrmn attributed the problem to the following reasons:
Firstly, I've never handled palettised textures directly in Daedalus. By that, I mean that rather than converting the palettised texture on the n64 to a palettised texture on the PSP, I've been converting it to a 32-bit RGBA texture. The second issue which was compounding the problem was that the PSP doesn't have support for mirrored textures. In order to support this feature I have to manually duplicate and mirror the texture. This means that a 64x64 texture mirrored along the S and T axes on the n64 will become a 128x128 texture on the PSP. The coder added that rewriting Daedalus's texture handling so that it supports 4-bit and 8-bit palettised textures directly has taken more time than expected. Even so, he believes that the change should be implemented because aside from saving memory, it has a lot of performance benefits such as less cache usage as well as the fact that palettised textures are also a lot more efficient to render with.