Monday, October 18, 2010

BG_MAP_RAM_SUB

Oh, well ... there are impressive updates and no-pressive updates. This one is of the latter kind, I guess. For "historical" reasons, the game (including apple assault) was running on the "sub" screen of the DS -- that is, the one with less VRAM available and no 3D possibilities. It had visible effect in Apple Assault, where I was short on VRAM to display the "howto" informations properly. It's not exactly exciting to pass over my code, replacing BG_MAP_RAM_SUB by BG_MAP_RAM and vice-versa (idem for most other graphic memory areas), but at least it is done and open up a new page for progressing on GEDS tools ...

Ouais, bon, on ne peut pas révolutionner le monde à chaque post, hein ? Donc, voilà: j'ai basculé la logique de jeu vers l'écran "principal" (ou plutôt devrais-je dire le 2D Engine principal), celui qui est capable d'avoir plus de 128K de graphismes et de faire de la 3D. Ca résout quelques bugs mineurs dans Apple Assault, et ça fout très certainement la zone dans runme, mais bon, on corrigera ça plus tard. C'est pas vraiment excitant comme news, mais au moins c'est fait.



For my own archive, the following changes had to take place :

  • GameScript::GameScript() hard-code initialisation of tilesram with (u16*)BG_MAP_RAM_SUB(8*tile_index)
  • GameScript::BgCommand() hardcodes videoSetModeSub, SUB_BG0_CR, usage of BG_PALETTE_SUB for the new SpriteSet and BG_MAP_RAM_SUB for new InfiniMap objects.
  • "color %% RRGGBB" gobscript command hardcodes BG_PALETTE_SUB
  • "spr.load ### :%%" gobscript command hardcodes SPRITE_GFX_SUB and SPRITE_PALETTE_SUB
  • FadeSequence (guns.cxx) uses SUB_WIDGETS_OVERLAY, SUB_BG1_CR and videoSetModeSub
  • CmdWindow::restore/release() uses SUBxxx all over the place.
  • GobAnim::prepare explicitly allocates Engine::RES_OAM_SUB
  • page import in BlockAnim explicitly uses BG_PALETTE_SUB
  • ANIM_SET_SPR in BlockAnim explicitly memcpy towards BG_MAP_RAM_SUB(...)
  • Engine::clearscreen() was tweaked so that it doesn't clear the map we've loaded as sub-bg.
  • the console needs to be remapped on the sub-screen.
  • GE_MORE_MEMORY only partly address the purple side-effects. I wonder whether the loaded background is large enough.

No comments: