The garfield sprite comes with a header, instead of
gp_drawSprite((u16*)(garfield+8),x,y,framebuffer,160,160);
you can use :
gp_drawSpriteHT ( (u16*)garfield, 90, 50, framebuffer, 0xFFFE );
In the header is the size of the sprite stored... Have a closer look to the example and docs.