makedisk.htm 4.64 KB
<HTML>
<HEAD>
<TITLE>HTML 文書</TITLE>

<META NAME="GENERATOR" CONTENT="Internet Assistant for Microsoft Word 2.03j">
</HEAD>
<BODY>
<P>
<B><FONT FACE="Arial">makedisk(1P)<BR>
</FONT></B>
<P>
<B>コマンド名<BR>
</B>
<P>
makedisk
<P>
→ 64DDイメージとそれに関連したELFオブジェクトファイルの作成。
<BR>

<P>
<B>構文</B>
<PRE>
<FONT SIZE=4>makedisk [-D name[=def]] [-I dir] [-U name] [-d] [-m] [-o]
         [-b bootstrap filename] [-h header filename]
         [-s romsize] [-f filldata] [-C clockrate]
         [-t type]
         [-p pif2 bootstrap filename] [-r romfile] specfile

</FONT>
</PRE>
<P>
<B>説明<BR>
</B>
<P>
<B>makedisk</B>は、ディスクゲームを作成する際に<A HREF="makerom.htm">makerom
</A>(1P)の代わりに使用するものです。オプションの意味は、下記の
-t オプション以外は<A HREF="makerom.htm">makerom</A>(1P)のものと同じ
です。そちらを参照してください。
<BR>
<P>
<B>-t type</B>
<BLOCKQUOTE>
ディスクタイプを指定します。<BR>
</BLOCKQUOTE>
<P>
<BR>
</BLOCKQUOTE>
<P>
<B>makedisk</B>は大きく分けて次の3つの動作をします。 
<UL>
<LI>spec ファイルの指定に基づいた、セグメントのリンク
<LI>バッチファイルgwriteの作成
<LI>ディスク用のシンボルの生成 
</UL>
<P>
以下それぞれの説明をします。
<P>
<FONT SIZE=3>1. spec ファイルの指定に基づいた、セグメントのリンク</FONT>
<P>
spec ファイルの指定において、<A HREF="makerom.htm">makerom</A>の場合との
相違点は以下の2点です。
<UL>
<LI>ロムイメージでの格納アドレスのアラインメントを指定する romAlign
<B>makedisk</B> にはありません。
<LI>そのセグメントをディスクのどの LBA に格納するかを指定する
lba が <B>makedisk</B> にあります。 
</UL>
<P>
これ以外のspecファイルの指定や、<B>makedisk</B> の動作に関しては <A HREF="makerom.htm">
makerom</A>の場合と同じです。以下に
lba指定を使用した例を示します。 <BR>
<P>
<TABLE BORDER=2 BORDER WIDTH="70%" CELLPADDING="10">
<TR><TD><PRE>
<FONT SIZE=3 FACE="Courier">.....
beginseg
    name &quot;road&quot;
    lba 100
    flags OBJECT
    number TEXTURE_SEGMENT
    include &quot;road.o&quot;
endseg
.....</FONT>
</PRE>
</TD></TR>
</TABLE>
<P>
lba指定はディスクに格納されるセグメントに対してのみ指定します。「ディスクに格納されるセグメント」というのは、ロムイメージ内でのサイズが0でないセグメントということです。例えばカラーフレームバッファやZバッファからなるセグメントは、RDRAM上に確保されるだけでロム内には領域は確保されません。このようなセグメントに<FONT FACE="Courier">lba</FONT>指定するとエラーになります。逆に、ロムイメージでのサイズが0でないセグメントに<FONT FACE="Courier">lba</FONT>指定をしないとエラーになります。
<P>
<FONT FACE="Courier">lba</FONT>指定は、そのセグメントをディスクのどのLBAに書き込むかの指定をするものです。書式は以下のいずれかです。
<P>
<FONT FACE="Courier">lba</FONT> (数字)
<BLOCKQUOTE>
そのセグメントを(数字)で表したLBAから書き込んでいきます。
</BLOCKQUOTE>
<P>
<FONT FACE="Courier">lba RAMSTART</FONT> [+ (数字)]
<BLOCKQUOTE>
そのセグメントをディスクのRAM領域の先頭+(数字)で表されるLBAから書き込んでいきます。RAM領域の先頭がLBAでいくつになるかはディスクタイプによって異なるので、この表記を用いると便利です。RAM領域やディスクタイプに関しては「第11章
64DDのハードに関するスペックの説明」を参照してください。&quot;+&quot;の両側には1つ以上のスペースが必要なので、注意してください。
</BLOCKQUOTE>
<P>
<FONT FACE="Courier">lba after </FONT>(セグメント名)
<BLOCKQUOTE>
(セグメント名)で表されるセグメントの後ろにそのセグメントを配置します(例えば<FONT FACE="Courier">lba
after code</FONT>と書いた場合、code セグメントがLBA 0〜LBA 100まで使用していれば、そのセグメントはLBA
101から配置されます)。(セグメント名)で指定されるセグメントはそのセグメントより先に定義されていなければいけません。
<BR>
</BLOCKQUOTE>
<P>
<FONT SIZE=3>2. バッチファイルgwriteの作成</FONT>
<P>
gwriteはゲームをディスクに書き込むためのバッチファイルです。PARTNERのコマンドウィンドウ内で&quot;&lt;&quot;命令を用いて(&quot;&lt;&quot;は指定したファイルに書き込まれているコマンドを実行する命令)、
<P>
<BLOCKQUOTE>&gt;&lt;gwrite</BLOCKQUOTE>
<P>
とすることで実行することができます。 <BR>
<P>
<FONT SIZE=3>3. ディスク用のシンボルの生成</FONT>
<P>
例えば texture セグメントのディスク内の格納 LBA を知るには、プログラム内で
<P>
extern char _textureSegmentRomStart[],_textureSegmentRomEnd[]
<P>
と書いておけば、<B>makedisk</B> がこれらのシンボルを解決します。これらは
それぞれ「textureセグメントの開始 LBA」「textureセグメントの終了 LBA + 1」
を表します。<BR>
<P>
<B>参照<BR>
</B>
<P>
<A HREF="makerom.htm">makerom</A>(1P), <A HREF="leowrite.htm">leowrite</A>(1P)
<P>
<HR>
<A HREF="tool_INDEX.htm">ツールのマニュアルページのトップメニューへ</A>
<P>
<A HREF="../n64man.htm">N64のマニュアルページのトップメニューへ</A>
<P>
</BODY>
</HTML>