Posts Tagged With 'cgrr'

New project: cgrr-gamecube

Written by Tracy Poff in misc on Fri 05 June 2015. Tags: cgrr, gamecube,

After about six hours of work, I’ve completed an initial release of a new project: cgrr-gamecube. At the moment, it is able to parse GameCube GCI file headers, plus decode the banner from the GCI file (if it’s in CI8 format).

It also supports writing the GCI files back out, but only modifications to the header are supported. That means no editing the banner, since it’s stored in the save data blocks, and not the header. In the future, I intend to add functions specifically for replacing the banner.

Decoding the banner was something of a pain. The CI8 image format isn’t very complicated, I suppose. It’s a 16bpp paletted format with 5 bits per channel plus one transparency bit, with the image stored as a series of 8x4 pixel tiles (documentation forthcoming—I used this page, myself). Not complicated, but annoying to work with, since I had to first rewrite the colors to a more usable format, and second reorder the image data so it wasn’t all tiles. Though in retrospect I suppose I could have actually decoded the image as tiles and then pasted the tiles into a new image in the right positions. Not sure which would have been better.

Anyway, everything went pretty smoothly, my dislike of the image format aside.

I think I may put together a frontend so I can extract GCI files rapidly, to support my (potential) future efforts in decoding GameCube save files. One more item for the todo list, I suppose.

CGRR transferred to github

Written by Tracy Poff in misc on Mon 01 June 2015. Tags: cgrr, github,

After many months of procrastination, I’ve finally split up my cgrr project and transferred it to github. It took quite a while, but in the end I think it will be much more maintainable and useful with each of the parser modules taken separately than it would be with them all jammed together pretending to be plugins for some yet-unwritten master program. If I want to write some wrapper around them all later, they’ll perfectly well support it, but until then, all the plugin stuff is just an extra mess—YAGNI.