Shinobiライブラリ - メモリーカード関数

buMakeBackupFileImage

ファイルイメージの取得

書式

Sint32 buMakeBackupFileImage( *buf, *hdr ) 
void *buf 
BUS_BACKUPFILEHEADER *hdr 

引数

*buf   メモリーカードファイル形式イメージ作成アドレス(4バイト境界)
*hdr   メモリーカードファイルヘッダアドレス

戻り値

正   メモリーカードファイルの使用ブロック数
BUD_ERR_INVALID_PARAM   ヘッダ不正

解説

メモリ上にメモリーカードファイル形式イメージを作成します。

用例

/* ソート用ゲーム名称 */
extern Uint8 game_name[];

/* アイコンパレットデータ */
extern Uint16 icon_palette[];

/* アイコンピクセルデータ */
extern Uint8 icon_data[];
/* ビジュアルデータ */
extern Uint8 visual_data[];

/* アプリケーションセーブデータ */
extern Uint8 save_data[];

Sint32 nblock1, nblock2;
void* buf;

/* メモリーカードファイルヘッダ */
BUS_BACKUPFILEHEADER hdr;
memset(&hdr, 0, sizeof(hdr));

/* VMコメントの設定 */
strcpy(hdr.vms_comment, "VMS_COMMENT");

/* BOOT ROMコメントの設定 */
strcpy(hdr.btr_comment, "BOOT ROM全角コメント");

/* ソート用ゲーム名称の設定 */
memcpy(hdr.game_name,   game_name, 16);

/* アイコンパレットデータの設定 */
hdr.icon_palette = icon_palette;

/* アイコンピクセルデータの設定 */
hdr.icon_data    = icon_data;

/* アイコン枚数の設定 */
hdr.icon_num     = 1;

/* アイコンスピードの設定 */
hdr.icon_speed   = 1;

/* ビジュアルコメントの設定 */
hdr.visual_data  = visual_data;

/* ビジュアルタイプの設定 */
hdr.visual_type  = BUD_VISUALTYPE_C;

/* アプリケーションセーブデータ */
hdr.save_data    = save_data;

/* アプリケーションセーブデータサイズ */
hdr.save_size    = 0x400;
nblock = buCalcBackupFileSize(hdr.icon_num,
	hdr.visual_type, hdr.save_size);

/* 使用ブロック数×512バイトを確保する */
buf = syMalloc(nblock * 512);
if (buf == NULL) {
	/* メモリが確保できない */
	return NG;
}
nblock = buMakeBackupFileImage(buf, &hdr);
if (nblock < 0) {
	/* 構造体に不正なパラメータがある */
	return NG;
}

buMakeBackupFileImage
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998,1999