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.

DS development > Differences between no$gba and hardware.

#153491 - TheMagnitude - Mon Mar 31, 2008 9:56 pm

When all seems perfectly fine on no$gba but then doesn't work on the hardware, how do you find the problem?

What are the differences that no$gba CAN do and what the actual DS CANNOT?

#153496 - M3d10n - Mon Mar 31, 2008 10:55 pm

If it's a crash, I use libnds' exception handling to find out where in my code the game crashed. If its a graphical glitch... well, I add code so I can change certain values or to change between different versions of drawing functions on the fly using the buttons and lots of printf's.

I don't remember exactly what I did that crashed a real DS but not nocash, but there are a couple graphical features that aren't emulated yet. The most notable are fog and alpha-blending the 3D BG against a 2D BG. There might be a few inaccuracies on texture coordinate interpolation precision as well (specially using the fast software renderer).

#153499 - TwentySeven - Mon Mar 31, 2008 11:12 pm

Alpha blending a 3d bg vs a 2d bg works in the latest (Paid) builds.

#153509 - M3d10n - Tue Apr 01, 2008 4:02 am

You mean 2.6a? I actually bought that one for the improved software renderer, but I remember it not working... but it's been a while since I tested it.

#153521 - TwentySeven - Tue Apr 01, 2008 10:45 am

Yah 2.6a works (quads with POLYALPHA's transparent over tile bgs) whereas the version before that didn't.

I think theres some difference in the actual blend function compared to the results on hardware, the opacity level of a quad blended over tiles vs another opaque polygon object seems noticably wrong...

Althought that could just as easily be my blendfunc src/dst too..

#153590 - a128 - Wed Apr 02, 2008 4:01 pm

sprite rotations does not work.

#153596 - silent_code - Wed Apr 02, 2008 5:30 pm

i have the most recent non-pay version (2.5?) and sprites rotate as they should. :^)

edit:
a128 wrote:
sprite rotations does not work.

what doesn't work? will it work on hw?


Last edited by silent_code on Wed Apr 02, 2008 9:03 pm; edited 1 time in total

#153602 - SiW - Wed Apr 02, 2008 7:36 pm

silent_code wrote:
i have the most recent non-pay version (2.5?) and sprites rotate as they should. :^)


Same here.

#153611 - Dwedit - Wed Apr 02, 2008 9:30 pm

NO$GBA doesn't emulate the cache, so code which uses DMA improperly may work in NO$GBA and fail on hardware.
_________________
"We are merely sprites that dance at the beck and call of our button pressing overlord."

#153612 - a128 - Wed Apr 02, 2008 9:33 pm

silent_code wrote:
i have the most recent non-pay version (2.5?) and sprites rotate as they should. :^)

edit:
a128 wrote:
sprite rotations does not work.

what doesn't work? will it work on hw?


I had sprite rotation code that does work on hardware, but not on the emulator....

#153622 - silent_code - Thu Apr 03, 2008 12:51 am

you *had*? please share your knowledge or point to some forum thread, because lots of people (of which i have helped some recently) have problems with sprites, especially when getting started with the gba/nds. :^)

well, and i hope you sent martin a small demo of the problem, so he could improve no$gba in that point (if it was indeed the emulators fault.) ;^D

#153637 - a128 - Thu Apr 03, 2008 9:18 am

silent_code wrote:
you *had*? please share your knowledge or point to some forum thread, because lots of people (of which i have helped some recently) have problems with sprites, especially when getting started with the gba/nds. :^)


I discovered somethink different you can read it here
http://forum.gbadev.org/viewtopic.php?t=15303

So I must admit maybe no$gba displays roational sprites...but no$gba also displays rotational sprites ..even when no rotational parameter is initialized (the angles values etc pp.) ....but the NDS does not.

#153643 - TheMagnitude - Thu Apr 03, 2008 11:16 am

Dwedit wrote:
NO$GBA doesn't emulate the cache, so code which uses DMA improperly may work in NO$GBA and fail on hardware.
That explains why its not working sometimes with me.