#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. :(