GAMELIB16のサンプルとして1つのソースコードで2機種のバイナリを生成しています。
http://www.geocities.jp/parallel_computer_inc/sprjr.zip
今回はメガドライブ・ぴゅう太で動いているものをワンダースワン・IBM JXで動かして行こうと思います。まずはBGを1枚絵(256x192 16色)で用意します。メガドライブはPNG形式、ぴゅう太・ワンダースワン・IBM JXはBMP形式でツールを使って変換します。
bmp2binはIBM JXのために、BMP1枚絵(256x192 16色)を変換するものです。
bmp2bin.c
#include <stdio.h> #include <stdlib.h> char* s[192]; int main(int argc, char* argv[]) { int n, m; FILE *fpr; FILE *fpw; if (argc < 3) { printf("argc error\n"); return -1; } if ((fpr = fopen(argv[1], "rb")) == NULL) { printf("read file open error\n"); return -1; } if ((fpw = fopen(argv[2], "wb")) == NULL) { printf("write file open error\n"); return -1; } m = 192; s[m]=malloc(128); if (NULL == fread(s[m], 0x76, 1, fpr)) { printf("read header error\n"); return -1; } while (1) { m--; s[m]=malloc(128); if (NULL == fread(s[m], 128, 1, fpr)) break; } fclose(fpr); for (n = 0; n < 192; n++) { fwrite(s[n], 128, 1, fpw); } fclose(fpw); return 0; }