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));
  strcpy(hdr.vms_comment, "VMS_COMMENT");          /* VMコメントの設定 */
  strcpy(hdr.btr_comment, "BOOT ROM全角コメント"); /* 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);
  buf = syMalloc(nblock * 512); /* 使用ブロック数×512バイトを確保する */
  if (buf == NULL) {
    /* メモリが確保できない */
    return NG;
  }
  nblock = buMakeBackupFileImage(buf, &hdr);
  if (nblock < 0) {
    /* 構造体に不正なパラメータがある */
    return NG;
  }

buMakeBackupFileImage
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998