En google hay mucha informacion, puedes tomar como referencia otros formatos.
Por ejemplo yo estoy programando una libreria para manejar archivos grf, investigando consegui bastante informacion como por ejemplo:
http://dupeto.cz/~kingkoca/Patcher/patch_grf.html
Te dejo el link por que es muy similar a lo que estas buscando.