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.

Announcements And Comments > GBA Stuck Pixel Fixer

#48106 - tepples - Sun Jul 17, 2005 5:12 am

Got stuck pixels on your GBA, GBA SP, Nintendo DS, or LCD TV? Unstick them.

(Have someone else do it for you if you are sensitive to flashing lights.)
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#48109 - caitsith2 - Sun Jul 17, 2005 5:51 am

You might want to correct that link to your fixer. It is currently pointing to the bongo program.

#48111 - tepples - Sun Jul 17, 2005 6:13 am

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

#48131 - Lord Graga - Sun Jul 17, 2005 12:31 pm

Code:
static void upcvt_4bit(void *dst, const u8 *src, size_t len)
{
  u32 *out = dst;

  for(; len > 0; len--)
  {
    u32 dst_bits = 0;
    u32 src_bits = *src++;
    u32 x;

    for(x = 0; x < 8; x++)
    {
      dst_bits <<= 4;
      dst_bits |= src_bits & 1;
      src_bits >>= 1;
    }
    *out++ = dst_bits;
  }
}
Why use this when you have a BIOS call that does exactly the same thing?

#48150 - tepples - Sun Jul 17, 2005 5:51 pm

I could use BIOS BitUnPack, but:
  • A lot of people who review GBA ROMs try every ROM on an emulator before trying it on hardware. VBA and a few other emulators don't correctly support BitUnPack without a BIOS file, which many people don't know how to dump lawfully.
  • My tile editor stores pixels with the leftmost pixel in the most significant bit for compatibility with the prevailing standard (used on NES, SMS, Game Boy, Super NES). BitUnPack, on the other hand assumes that pixels are stored with the rightmost pixel in the most significant bit, which would require me to use tile flipping all the time.

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