4月30日(金)CVSでの操作(削除) 編集者:025734G玉城絵美
金城先輩にCVSでディレクトリ・ファイルを消去する方法を教わったので、報告します。
- CVSでディレクトリを消す
fireflyにログイン
%ssh firefly.cr.ie.u-ryukyu.ac.jp -l game
cvs_repository@(cvsへのリンク)に移動
%cd cvs_repository
消したいディレクトリがある場所に移動
%cd student/y02/~~/
ディレクトリを消去
%/bin/rm -rf zikkou source
↑この場合、zikkouとsourceの二つのディレクトリを消去した。
- CVSでファイルを消す
自分のPCの中で消したいファイルを消去
%rm filename
その後にcvsコマンドを使って消去
%cvs rm filename
commit
%cvs commit
5月2日(日)クロス開発環境作り 編集者:025734G玉城絵美
今までやってきた事を報告します。
手始めにクロス開発環境作りについて・・・。
参考にしている本は『Linuxから目覚める ぼくらのゲームボーイ!』ですが、
GBA班はMacOSXを使用しているので、環境作りに
Cube de GBA develop
を参考にさせていただきました。
- optusb使用手順
ブートケーブルUSBを使用して接続し、GBAの電源を入れてから、
%sudo optusb 実行ファイル名
問題点となった所
○libusb(CVS版)のインストールの際にパスワードを求められた!
普通にreturnキー(enterキー)を押す。
△makeの最中(特にDevelopment tools)にmakeが中止になってしまう。
Binutilsをダウンロードからもう一度やり直すと出来たり出来なかったり。
makeが終了しなくても、install makeを無視して実行するとgcc-armが使えました。
△optusbコマンドが使用出来ない場合がある。
これも上と同じく出来てないと思ったら、出来てました
クロス環境作りをする前や、問題が解決するまでのために
ターザン先輩がcodamaにGBA班用の場所とアカウントを作ってくれました。
とても助かっています。感謝感激。
追記:(025719C金城真子)
×libusbとoptusbをEasyPackage?でバージョンをあげようとしたところ、以下のエラーがでました。
dyld: optusb version mismatch for library: /usr/local/lib/libusb-0.1.4.dylib (compatibility version of user: 9.0.0 greater than library's version: 8.0.0)
Trace/BPT trap
しかたなく再インストールしましたが、ほかの手段もあったかも知れません。
○何度やってもlibusbとoptusbのインストールが巧く行かなかった場合
libusbとoptusbの、コンパイル済みバイナリをダウンロードし適当な場所に置きます。
/usr/local/bin/optusb
/usr/local/bin/libusb-config
/usr/local/include/usb.h
/usr/local/lib/libusb-0.4.3.1.dylib
/usr/local/lib/libusb-0.1.4.dylib
/usr/local/lib/libusb.a
/usr//local/lib/llibusb.dylib
/usr//local/lib/libusb.la
以下のサイトがoptusb 1.01 + darwin release 2のソース + コンパイル済みバイナリと、
libusb-developの2003/11/21 の開発版ソースをコンパイルしたバイナリを置いてくれてます。いいサイトだ。
optusb for Mac OS X
△転送には成功した,と表示されるにも関わらず,実際にはプログラムが実行されないという現象が起こる事があります。上記のバイナリlibusbの関係かもしれません。
とりあえず下記のようにしたら直ります。
- GBA の電源を切る
- Mac からブートケーブルを抜く(GBA側はそのままでよい)
- 再度,ブートケーブルを Mac に接続する
- GBA の電源を入れる
5月2日(日)リスト(list.c) 編集者:025734G玉城絵美
最終課題での体の部分をつなげる時にリストプログラムが役に立ちます。
4月26日(月)にリストプログラムを説明してもらいました。
使ったソースはこちら(追記)
また、内容をターザン先輩が分かりやすく図解してありました。
5月27日(木)拡大縮小回転 編集者:025734G玉城絵美
拡大縮小は平良君が詳しいので、後で・・・
sprite回転ソース一部
gba.h
sprite.c
sprite.h
SinTab.c
SinTab.h
mag.c
sprite.cの下の方に回転のためのフラグ関数と拡大縮小指定関数を作成。
SinTab?では1度づつSin,Cosの値を入れています。
上の二つを使ってmag.c(main)でspriteの回転が行われている。
5月27日(木)s-dandy移植へむけて 編集者:025734G玉城絵美
s-dandy移植へむけてGBA班がやる事。
1,s-dandy.pngをドットから綺麗にGBA用に書き換える。
(透明の問題はほぼ解決。)
2,sprite_register関数のメモリ不足問題をどうにかする。
3,s-dandyソースを読んで、どの様に描画されているか調べる。
sgoex.c、メインソースを特に読む。
の三つを来週月曜日報告会までに。
1、3はともかく、2は大丈夫かな。
6月5日(土)s-dandy移植へむけて(2) 編集者:025719C金城真子
- 拡大縮小するスプライトと回転するスプライトを同時に表示できるプログラム
何故か、二つとも回転するか、二つとも拡大縮小するかのどちらかで、狙いどおりの動きをしてくれない。
RotData?* rotでどのスプライトを拡大するか(or拡大縮小するか)の区別の情報がないから?
よくわからない。(たまにsnumを入れる所に間違ってcnumが入っていたり・・・しない?:玉城絵美)
- LRUの勉強
アルゴリズムも自分たちで考えるんだとかなんとか。
ターザン先輩とともに考えるが吉。
→ターザン先輩によるmallocの実装により解決。
- s-dandy.raw
新s-dandy.rawは前のやつと全く兌換性がない。
簡単に移行できるように、s-dandy.raw用のcut__image.cを作るべし。
→平良君がやってくれました。
- s-dansyをGBAに移植
sgoex.c、mainを中心に、とりあえずコンパイル→エラー箇所の書き換え→さらにコンパイル、の永遠ループ。
6月7日(月)s-dandy移植へむけて(3)
- libgba
PS2版s-dandyでは、ソースの流れが下のようになってます
main -(uses)-> sgoex -(uses)-> adpt_ps2 -(uses)-> libps2.h
これを、GBA版では、
main -(uses)-> sgoex -(uses)-> adpt_gba -(uses)-> libgba.h
にしようという話。
- s-dandyのコンパイル
gcc-armでのコンパイルがうまく行かないという問題点がある。ヘッダファイルから作らないと行けない?
→ホイが解決したと言っていたのですが‥‥詳しくはまだ聞いてません。
追記:(025734G玉城絵美)
gcc-3.3.2の中身をいじっていたら、gcc-arm専用のincludeディレクトリを発見しました。
色々問題があったのは、コンパイルする時にこのディレクトリへのパスがちゃんと通ってないからじゃないかなと考えて、オプションを付けて
gcc-arm -I ~/src/gcc-3.3.2/gcc/fixinc/tests/base/ filename~
みました。aliasした方が便利。
- sgoex.cで作られている関数を詳しく調べる
- mallocを読む
- #includeについての解決=>解決済み
※GBA班へ:だいたいこんな感じでしょうか。追記したい事があったら適当に編集しちゃってください。
※611にあったホイのメモに書かれていた『移植でやる事』をpukiwikiに書きました。・・・問題ないよね?もしあったらずばっと消しちゃってください。To ホイ
6月8日(火の夜中から)s-dandy移植へむけて(4) 編集者:025734G玉城絵美
- adpt_gbaとlibgba.h
っぽい物を作ってみました。(未完成)
具体的な順番
1,Makefileを作る(6/12作成CVSにあげました/j02034/3.1.10-s-dandy/)
2,中身なし関数が入ったadpt_gbaを作る(↑と同じ日に作ってあげてます)
3,コンパイルしてみる
4,関数の中身とlibgba.hを完成させる(↑と同じ日につ、、くってはみたけど)
5,移植完了!
6月14日(月)s-dandy移植へむけて(5) 編集者:025732A 平良重頼
- sgoex.cをgba用にまるまる書き換えましょう
Back()はバックグラウンドなので、gbaではscreen.cとbkgを使えばよい(とりあえずやってみたよ。エミ)~
GsOTは多分いらないのでまるごと削除でいい。かな?(終了:いらないと、言われている関数を引き抜いたら、無くなりました。エミ)~
Gdraw()は難しいって言ってた
DefSpriteでスプライトの初期化。これはsprite_setup()とsprite_register()に相当するはず
DefSpriteExは拡大縮小のための構造体
PutSpriteでスプライトをどこの位置に表示するかというもの。これはsprite_display()とsprite_move()に相当するはず
PutSpriteExは拡大縮小させたものを表示させるための関数
init_tim()はテクスチャの初期化?おそらくgbaでは、s-dandy.pngをタイルにして読み込むので、多分いらないと思う(終了?:必要無いらしいです。:エミ)
Pad()の部分をgba用のキー入力に書き換えてあげるとよい(終了:この前書き換えといたよ。足りないキーとかは後で組み合わせて作ってみるかな:エミ)
作業としてはこんな所でしょうか。絵美さんがある程度作っているらしいので、それを参考にしてsgoex.cの書き換え作業をやりましょう。
6月21日(月)s-dandy移植へむけて(再出発) 編集者:025734G玉城絵美
移植へ向けて再出発する事になりました。
分担
マコ:Gdraw()
シゲヨリ:Ginit(),DefSprite?(),DefSpriteEx?()
エミ:PutSprite?(),PutSpriteEx?(),Pad()
たぶん私の所(もしかしたら平良君の所も)はすぐ終わるから、
途中からマコと一緒の作業になると思います。
一番始めのスタートのフォルダを作ってみましたyo!
Game_project/student/y02/j02034/def
2004-07-04
分担
まこ:監督
平良君:sgoex.c
えみ:sound
ってことになりました。
現在の進み具合からばらします。
平良君:iBookが修理から戻ってきたため環境立て直し(終わった?)
絵美:音の関数作成&音の仕組み勉強
まこ:思案中
って感じです。
とりあえず、来週終わらす事でぎりぎりになるかも知れません。
自分の方は、この調子でやると終わりそうにないので、TAを捕まえてあの曲者のsgoex.cの書き換えについてどうしたらいいか聞いてみます。
2004-07-05
垂直同期待ちの載っているページです↓
http://j-gbadev.hp.infoseek.co.jp/kiso/step02.htm
2004/7/24
graphic.cを直す。
struct {
hword obj[];
int size;
int tile_type ;
} quarry_sprint[] =
{
{
{&s_dandy[128+2*(1-1)],&s_dandy[129+2*(i-1)],....},
4,
OBJ_16x16
},
{
{&s_dandy[128+2*(1-2)],&s_dandy[129+2*(i-2)],....},
4,
OBJ_16x16
},
}
case 1:
hword a[] = {s_dandy[128+2*(1-1)],s_dandy[129+2*(i-1)],....};
*obj = a;
*obj_size = 4;
*itle_type = OBJ_16x16;
case 1:
hword a[] = {s_dandy[128+2*(1-1)],s_dandy[129+2*(i-1)],....};
#define energy_meter(a,b) &s_dandy[536+b+32*a]
{
energy_meter(0,0), energy_meter(0,1), energy_meter(0,2), energy_meter(0,3),
energy_meter(1,0), energy_meter(1,1), energy_meter(1,2), energy_meter(1,3),
energy_meter(2,0), energy_meter(2,1), energy_meter(2,2), energy_meter(2,3),
energy_meter(3,0), energy_meter(3,1), energy_meter(3,2), energy_meter(3,3),
energy_meter(4,0), energy_meter(4,1), energy_meter(4,2), energy_meter(4,3),
energy_meter(5,0), energy_meter(5,1), energy_meter(5,2), energy_meter(5,3),
energy_meter(6,0), energy_meter(6,1), energy_meter(6,2), energy_meter(6,3),
energy_meter(7,0), energy_meter(7,1), energy_meter(7,2), energy_meter(7,3),
}
最終レポート