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

# buCalcBackupFileSize

イメージのファイルサイズの計算

### 書式

      Sint32 buCalcBackupFileSize( inum, vtype, size )
      Uint32 inum
      Uint32 vtype
      Uint32 size

### 引数

  inum | アイコンの枚数
  vtype | ビジュアルタイプ
  size | アプリケーションセーブデータのバイト数

### 戻り値

  正 | メモリーカードファイルの使用ブロック数
  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");

      /* BootROMコメントの設定 */
      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;
      }

buCalcBackupFileSize

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998,1999