gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

Coding > Sprites not displaying in PogoShell

#17587 - GunterPete - Wed Mar 10, 2004 7:22 pm

Bit of a strange problem. My project is fine if I write it to my f2a card on it's own, however if I write it in Pogoshell the sprites don't display.

I've tried it in Pogoshell 1.2.1 and the new Pogoshell 2 beta (which is excellant btw), and the same thing happens.

The ROM can be found at http://tbhl.theonering.net/petegunter/downloads/Rocket.bin. Has anyone else had the same problem? Does anyone know how to avoid it?

Many thanks,
-Pete Gunter

#17594 - Lupin - Wed Mar 10, 2004 9:04 pm

my sprites work fine, though i only use 1 sprite :)

I have an offtopic question: How do you convert your sprites? In 1-D sprite mode I always get gaps between the sprites because i use 1 input file with all my sprites in it and not all 8x8 blocks are actually filled with sprites (because of different sprite sizes). I wonder how i can convert my sprites effectively...

#17611 - tepples - Thu Mar 11, 2004 2:42 am

To fix display problems in PogoShell, call RegisterRamReset() with an appropriate bitfield before loading VRAM or OAM.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#17618 - Gordon - Thu Mar 11, 2004 4:45 am

If yes, where is the source code.

#17623 - tepples - Thu Mar 11, 2004 7:45 am

RegisterRamReset() is a GBA BIOS call. Learn about BIOS calls in GBATEK. In Thumb code, do something like this:
Code:
/* UNTESTED */
void clean_up_after_pogoshell(void)
{
  asm volatile("mov r0, #0xFC; swi 1");
}

_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#17626 - GunterPete - Thu Mar 11, 2004 12:24 pm

I tried calling this at the start of my initialise function, so it's run once at the start of the program before I load in any graphics data. However now nothing is displayed, and I just get a white screen.

Lupin, I use one file with all the sprites in like the one below. I the load these using 2D layout. This obviously has the same problems you mentioned, in that a lot of ROM is wasted with the empty tiles. I'll probably carry on using this, and optimise it when the project is completed.
[Images not permitted - Click here to view it]

Regards,
-Pete Gunter

#17659 - dagamer34 - Fri Mar 12, 2004 12:52 am

It says that in the docs, I found out the hard way.

What it also does is set the BG mode to 0 and set the force blank bit in REG_DISPCNT. Just save it before you call RegisterRamReset and restore it afterwards.
_________________
Little kids and Playstation 2's don't mix. :(