No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
.gitignore
LICENSE.md
README.md
Setup.hs
gbc2Tga.cabal
stack.yaml

README.md

gbc2Tga - conversion tool from GBC tiles and palettes to .tga file.

Tool was written for GBC Crystalis translation project. Crystalis uses Hicolour technique for it's title and game over screens. This tool can convert plain (uncompressed) tiles and palettes set to one .tga file for further editing and pasting into ROM (or creating your own Hicolour demo). For reverse conversion, please use "TGA2GBC" tool by Jeff Frohwein.

Palettes manipulation is the core of Hicolour technique. It uses GBC's hardware ability to access palettes memory during HBlank, which theoretically means that every scanline can have it's own set out of 8 palettes. Practically, Z80 is too slow for that, but each 2 scanlines can have totally new 8 palettes. There's also an GBC interleaving factor comes in, which shift palettes sets between left and right parts of screen.

Each color is 16 bits, so 0x800 colors. each scanline is written 4 palettes, 4 colors each (10 colors), (0x80 scanlines total) Screen is divided on 16x2 blocks, which share one palette, whole screen contains (128128)/(162) = 512 of such blocks, each pal stored as 8 bytes, so all palettes are stored in 512*8 = 0x1000 bytes and 0x10 tiles in height (i.e. 0x80 scanlines)

Please check my notes for more information.

Usage: gbc2Tga [-v]| NAME
  NAME is a name for both NAME.gfx (binary tiles) and NAME.pal (binary palettes), 
       which should be available in application's directory
  -v      show version number

Source can be compiled with Haskell stack.

Griever (romhack.github.io)