Being for a week-end on my former laptop, I tried showing selectively the layers of an older build, and I could have the "ghost" layer appearing when showing BG1_SUB too. Curiously, it also shows when no layer at all is enabled. Let's just work on the hypothesys that the "Emulation > Layers" checkboxes in desume UI invert what is programmed in the picture engine registers, not hiding the layers. As a result, if defaults (or previous) contents of this layer is "use the same map slot as the BG3 (tileset), use the same colors and characters as BG1 (because the ghost layer is obviously *not* BG1, which is the widgets' text). then you get the ghost out of uninitialized registers.
J'avais été surpris par cette couche qui avait la forme des "planches de graphisme", mais utilisant des caractères ASCII 16 couleurs, sur le background #1. Bien sûr, ce layer n'apparaît pas quand le programme tourne normalement, seulement si je coche sélectivement les layers (une technique que j'utilisais tout en jouant à Donkey Kong Country pour essayer de découvrir les passages secrets).
Autre chose intriguante la "couche fantôme" reste présente même quand tous les layers sont dé-cochés. J'en viens à penser que desmume est programmé avec quelque-chose comme "shown_layers = program_layers XOR gui_layers" alors que l'interface laissait supposer qu'on aurait "show_layers = program_layers AND gui_layers". En clair, cocher un layer qui n'a pas été activé par le logiciel qui tourne sur la DS émulée le montre plutôt que de le cacher.
- if (config&CONSOLE_DOWN)
ReplyDelete- REG_BG3CNT_SUB = BG_MAP_BASE(GECONSOLE)|BG_TILE_BASE(0)|BG_PRIORITY(0);
- else
- REG_BG3CNT_SUB = BG_MAP_BASE(GEYOURMAP)|BG_PRIORITY(3);