自作ソフトのプログラミング方法
※ コマンドプロンプトの使い方がわかる人向け
■はじめに
「ポケステソフトを作るには?」で紹介したスロットゲームのプログラムを使って説明していきます。ですから、ちゃんとプログラムをコンパイルができたことが前提です。その上で以下の項目を行って見てください。
■コンパイルをし直す
プログラムをしていく上では、何回もmakefileでコンパイルする事になりますが、注意することがあります。コンパイルを簡略化するためにMAKEというソフトを使っています。そのため、コンパイルされるファイルは、以前にコンパイルしたときよりも新しい日付・時間でないとコンパイルしません。そのため、プログラムを変更していないのにコンパイルしようとすると、既にコンパイル済みという意味のエラーが出ます。これはプログラムミスという訳ではないので注意して下さい。プログラムファイルのいずれかを更新(上書き)するこどでコンパイルできるようになります。
■必要なファイル
コンパイル作業のためには以下の2つが必要です。
・ldscript C言語でコンパイルするための情報ファイル。必須
・locore.S C言語で記述できない部分をアセンリで書いたもの。必須
また、ポケステソフトをC言語で作成する上で必ず必要となるファイルがあります。
・Makefile.arm コンパイルするファイルや、コンパイル方法を記述したファイル。
・makefile.bat 上記ファイルを実際にDOS上で実行するためのバッチファイル。
■ポケステ上のソフト名を変えてみる
ソフト名は、locore.Sのアセンブラプログラム上に記述しています。記述場所は以下の部分です。
/* 01234567890123456789012345678901 TITLE*/
.ascii "テストプログラム "
.ascii " "
.asciiの2行に名前を入力します。漢字もOKです。ただし、「"」で囲まれた部分の幅は決まっているので、足りない部分はスペースで埋めてください。幅が違うとうまく動作しなくなります。
■タイトルの色を変えてみる
ポケステの画面は、32x32ドットです。絵を作成するだけならば、windows上のペイントソフトを使って32x32ドットで作成することはできます。しかし、ポケステ上で絵を表示するためには、その絵をデータ化してプログラム上に配置する必要があります。そのためポケステ用にデータ化するためのソフトが必要となります。
「ポケステソフト」のページに絵をデータ化するためのソフト「BMP2DATA」を置いてありますのでそれを使用して下さい。このソフトは、windows上のペイントソフトで作成したビットマップファイル(*.bmp)を対象としていますので、32x32ドットのbmp形式で絵を保存して下さい。詳しい使い方はソフト同伴のreadme.txtを参考にして下さい。
スロットゲームのプログラム上でタイトルの絵を表示している部分はmain.cの以下の部分です。
void
title()
{
static u_int lcd_title[ ] = {
0x1cfc7ee0,0x3ffffff8,…,
};
memcpy(lcd, lcd_title, sizeof(lcd_title));
}
上記 static u_int lcd_title[ ]={ ※この部分の数値の羅列がタイトルの絵のデータ※ }
データが一列に並んでいますが、複数行になっても特に問題はないです。{}の間に、BMP2DATAを使ってデータ化したものを、元のデータと置きかえてファイルを上書きし、コンパイルしなおせばタイトルの絵を変えることができます。ちなみにmemcpyのとことで、絵をコピーしています。
■初期化について
ポケステを動作させるための初期設定については、init.cに記述してあります。ポケステで初期化するべきものを簡単に書きますと、
・ポケステの動作周波数(動作クロック)
・割り込みの設定
・画面の設定
・セーブデータの読みこみ
があります。
以下中断