#author("2023-05-15T19:35:11+09:00","","") * NO.83 tiny BASIC interpreter2 [#h545b7e0] #ref(83_tiny_basic2.png,nolink) #ref(83_tiny_basic2.zip) ** 概要 [#v856449b] ''追記:tinyBasic3を作りました。''[[NO.94 tiny_basic3]]を参照してください。~ 言語開発合宿(2泊3日の期間内に、オレ言語の仕様とその処理系を作るというイベント)の製作物です。NO.80のものに命令語を追加して、FizzBuzzを動かしてみました。~ ~ 前回の実装分:「FOR, NEXT, PRINT, GOSUB, RETURN, END」~ 今回の追加:「IF(条件は=(イコール)のみ対応), RND, CIRCLE, LINE」~ ~ ''追記:tinyBasic3を作りました。''[[NO.94 tiny_basic3]]を参照してください。~ - FizzBuzzのソース 10 FOR I=1 TO 100 20 IF I%15 = 0 THEN GOTO 80 30 IF I% 3 = 0 THEN GOTO 100 40 IF I% 5 = 0 THEN GOTO 120 50 PRINT I 60 NEXT 70 END 80 PRINT "FizzBuzz" 90 GOTO 60 100 PRINT "Fizz" 110 GOTO 60 120 PRINT "Buzz" 130 GOTO 60 ** 補足説明 [#oc72a03b] もしかしたら言語開発合宿のリンクから飛んできた方に、いきなりソースコードを見せるのはよろしくないので少し補足説明をさせていただきます。まず、83_tiny_basic2.zipを解凍すると、フォルダ構成は以下のようになっています。 もしかしたら言語開発合宿のリンクから飛んできた方に、いきなりソースコードを見せるのはよろしくないので少し補足説明をさせていただきます。まず、83_tiny_basic2.zipを解凍すると、ファイルとフォルダ構成は以下のようになっています。 - gbfs - org - src - test2.gba gbfsフォルダはBASICのソースコードが置いてあります。これはGBA上でfopenやfseekなどを使う為の擬似ファイルシステムを使うためです。orgフォルダは、このソフトを作る為に参考にしたソースコードです。www.programmersheaven.comから拝借しました。srcフォルダはソースコードが一式入っています。Basicインタプリタは「basic.h、basic.c」だけで動いているので、それ以外は読まなくても問題ありません。~ ~ 最後にtest2.gbaファイルはGBAのROMファイルです。エミュレータで実行していただければ上記のキャプチャー画面のようなものが表示されます。エミュレータを持っていない場合[[こちら:http://vba.ngemu.com/index.shtml]]から入手してください。操作方法は矢印キーとZボタンだけとなっています。 ** 参考リンク [#ebd6a03b] - [[A tiny BASIC interpreter with C sourcecode.:http://www.programmersheaven.com/download/16060/download.aspx]] - [[言語開発合宿:http://wiki.fdiary.net/ldev/]] ** 開発環境 [#d4f27416] - devkitARM r20 ** 更新履歴 [#lf60288c] - 2007/09/25 * NO.84 miku [#l22a7ee8] #ref(84_miku.png,nolink) - [[84_miku.zip:http://akkera102.googlepages.com/84_miku.zip]] - [[84_miku.zip:http://sites.google.com/site/akkera102/index/84_miku.zip]] ** 概要 [#xc490b9c] GBAで「みっくみっくにしてあげる~☆」の弾幕をしたかっただけに作りました。今は反省しています。~ ROMの作成には、動画から抽出したwavファイルが必要です。 ** 参考リンク [#e9588024] - [[ニコニコ動画(元ネタ):http://www.nicovideo.jp/watch/sm1097445]] ** 開発環境 [#r94bc48c] - devkitARM r20 ** 更新履歴 [#m9938320] - 2007/10/17 * NO.85 miku2 [#b60a5428] #ref(85_miku2.png,nolink) - [[85_miku2.zip:http://akkera102.googlepages.com/85_miku2.zip]] - [[85_miku2.zip:http://sites.google.com/site/akkera102/index/85_miku2.zip]] ** 概要 [#t2944c32] ねぎを振り回したかっただけに作りました。YO!の後は超連射してください。 ** 参考リンク [#u10ebe11] - [[ニコニコ動画 - VOCALOID2 初音ミクに「Ievan Polkka」を歌わせてみた:http://www.nicovideo.jp/watch/sm982882]] - [[ニコニコ動画 - 【初音ミク】なんでミクはネギ好きなのか?【ネギ】:http://www.nicovideo.jp/watch/sm1249857]] ** 開発環境 [#w7429bfc] - devkitARM r20 ** 更新履歴 [#f0fd3581] - 2007/10/26 * NO.86 tk80 [#w41e1893] #ref(86_tk80.png,nolink) - [[86_tk80.zip:http://akkera102.googlepages.com/86_tk80.zip]] - [[86_tk80.zip:http://sites.google.com/site/akkera102/index/86_tk80.zip]] ** 概要 [#d681ce53] 一部の人から(良い意味で)避難轟々(^^;。TK-80をGBA上で再現してみました。今回は書籍「復活!TK-80」のデータを使わせて頂いているので、本を持っていない方は遊べないようになっています。あと一部未実装の機能&バグがあります。 ** 参考リンク [#u867251d] - [[YouTube - TK-80 Demo:http://jp.youtube.com/watch?v=2OCUoFyenzw]] - [[復活!TK-80(Amazon):http://www.amazon.co.jp/exec/obidos/ASIN/4756134017/]] ** 開発環境 [#d85a7c98] - devkitARM r20 ** 更新履歴 [#x8611f97] - 2007/11/11 * NO.87 invader [#hedbaba3] #ref(87_invader.png,nolink) - [[87_invader.zip:http://akkera102.googlepages.com/87_invader.zip]] - [[87_invader.zip:http://sites.google.com/site/akkera102/index/87_invader.zip]] ** 概要 [#g8d52b8e] 「30日でできる!OS自作入門 29日目(p650)」のインベーダゲームの移植板です。今回は自作のmalloc関数を作り、個々のキャラクターを動的に確保してみました。ベースは本に書いてあるソースコードを流用しています。 ** 開発環境 [#h47a2e3e] - devkitARM r21 ** 更新履歴 [#cde5f721] - 2007/12/15 * NO.88 mml_test [#m68a3248] #ref(88_mml_test.png,nolink) - [[88_mml_test.zip:http://akkera102.googlepages.com/88_mml_test.zip]] - [[88_mml_test.zip:http://sites.google.com/site/akkera102/index/88_mml_test.zip]] ** 概要 [#zd166333] MMLの勉強の為に作りました。GBA用ライブラリ「SOLA」のソースコードを参考にしています。 ** 参考リンク [#xed0f9fe] - [[GBA開発/SOLA - 姫路獨協大学 経済情報学部 佐藤研究室(佐藤ゼミ):http://satolab.com/GBA%B3%AB%C8%AF/SOLA.html]] ** 開発環境 [#p5e58f2d] - devkitARM r21 ** 更新履歴 [#c65d90e9] - 2007/12/19 * NO.89 task_test [#tcc3cce3] #ref(89_task_test.png,nolink) - [[89_task_test.zip:http://akkera102.googlepages.com/89_task_test.zip]] - [[89_task_test.zip:http://sites.google.com/site/akkera102/index/89_task_test.zip]] ** 概要 [#k90aae38] M-KAIさんの「擬似マルチタスクを用いたゲームプログラミング(WonderWitch)」をGBA移植しました。ジャッジメントシルバーソードの機能縮小版に相当するそうで、とても勉強になっています。簡単ながら以下にポイントをまとめました。 -固定少数点用構造体の定義(unionを使用してu16<->u8*2) -タスク構造体はシンプルにworkエリアのみ確保する。このエリアは用途別に座標や弾管理などマップされ、読み書きはポインタで操作する -VSYNC毎にスプライトを再設定しているので管理がラク(初期化、登録しなおし) -タイトル画面自体も、実はタスク(なんでもできそう?) ここからは発展方法について。 -全タスクのフェーズを一括変更する関数の追加 -タスクに処理優先度を設ける -タスク登録時の空きワーク探しに、自前のスタックを用いる -タスクの連結リストを設ける ** 開発環境 [#d7472300] - devkitARM r21 ** 更新履歴 [#se3fe8d0] - 2007/02/09 * NO.90 tiny_lisp [#lc6e1c5a] #ref(90_tiny_lisp.png,nolink) -[[90_tiny_lisp.zip:http://akkera102.googlepages.com/90_tiny_lisp.zip]] -[[90_tiny_lisp.zip:http://sites.google.com/site/akkera102/index/90_tiny_lisp.zip]] ** 概要 [#g378c93e] GBAでLispを動かしてみました。一応FizzBuzzは動いています。入力機能がないのでまったく遊べないものですけれど、それは次回に期待ということで(^^;。コードはyuumi3さんが作られたものを元にしました。 ** 参考ページ [#s08f6387] -[[trunk/lisp/:http://www.ey-office.com/svn/rails/trunk/lisp/]] -[[私とLisp - yuumi3(ニコニコ動画):http://www.nicovideo.jp/watch/sm2077496]] ** 開発環境 [#f0919321] - devkitARM r21 ** 更新履歴 [#weefe571] - 2007/03/01 * NO.91 danmaku [#eea35373] #ref(91_danmaku.png,nolink) -[[91_danmaku.zip:http://akkera102.googlepages.com/91_danmaku.zip]] -[[91_danmaku.zip:http://sites.google.com/site/akkera102/index/91_danmaku.zip]] ** 概要 [#q89ae07a] スプライトダブラを使用して、128個よりも多く弾を表示させるテストプログラムです。柏さんのソースコードを勝手に改造させていただきました(^^;。表示の優先順位は決めていないので、弾が自機より上や下に表示されたりします。 ** 操作方法 [#v49c146d] -A キャラ変更(押した瞬間だけ) -B キャラ変更(押し続けている間) -L キャラ全削除 -R キャラ生成 -START ポーズ&エディット ** 参考ページ [#v51e3961] -[[正直日記 2008/02/24:http://www.liarsoft.org/diary/20080224.html]] -[[GBA で学ぶ古典的プログラミング (スプライトダブラ):http://www.pqrs.org/tekezo/gba/doc/sprite-multiplexer/index.html]] ** 開発環境 [#sd340268] - devkitARM r21 ** 更新履歴 [#td563b58] - 2007/04/04 * NO.92 dungeon [#y7afa6d0] #ref(92_dungeon.png,nolink) -[[92_dungeon.zip:http://akkera102.googlepages.com/92_dungeon.zip]] -[[92_dungeon.zip:http://sites.google.com/site/akkera102/index/92_dungeon.zip]] ** 概要 [#f31006d6] 書籍「ダンジョンゲームプログラミング」を参考に、勝手にGBA移植をしたものです。ただ、画像データをそのまま使うのはまずいので、間接的に書籍を購入した人だけを遊べるようにしてあります。申し訳ないのですが書籍をもってない方は遊べないことをご了承ください。諸事情で「移動コマンド」と「攻撃コマンド」だけしかテストしていません(汗。 ** 参考文献 [#v3a498b3] - [[ダンジョンゲームプログラミング(Amazon):http://www.amazon.co.jp/exec/obidos/ASIN/4797346280/]] ** 開発環境 [#z3e84ad6] - devkitARM r23b ** 更新履歴 [#c1dd2223] - 2008/08/11 * NO.93 snd_test [#a5820674] #ref(93_snd_test.png,nolink) -[[93_snd_test.zip:http://sites.google.com/site/akkera102/index/93_snd_test.zip]] ** 概要 [#ted73947] soxで加工したBGMと効果音を、同時再生できるようにしました。中身はほとんどtekezoさんのコードを使わせて頂いています。 ** 開発環境 [#vd320d14] - devkitARM r23b ** 更新履歴 [#c5a56906] - 2008/08/21 * NO.94 tiny_basic3 [#ra23126e] #ref(94_tiny_basic3.png,nolink) -[[94_tiny_basic3.zip:http://akkera102.googlepages.com/94_tiny_basic3.zip]] -[[94_tiny_basic3.zip:http://sites.google.com/site/akkera102/index/94_tiny_basic3.zip]] ** 概要 [#b1cb399c] 前回のtinyBasic2のリニューアル版。Re2cとbisonというツールを使いました。仮想計算機は、フルスクラッチ。通称VS(ND)M(Virtual stack nandakorya damedakorya machine)で動かしています(汗。 ** 参考リンク [#v56c4f3e] - [[soyBasic(Java):http://www2.eplang.jp/soyBasic/]] - [[ワンべぇ(C言語):http://itpro.nikkeibp.co.jp/article/COLUMN/20060921/248692/]] - [[KBASIC(C言語):http://ruffnex.oc.to/kenji/src/kbasic/]] ** 参考文献 [#e2f109ec] - [[楽しくBASICが学べるベストプログラム集 (ベストブックス):http://www.amazon.co.jp/exec/obidos/ASIN/4051042006/]] ** 開発環境 [#t84c1eed] - devkitARM r24 - cygwin(gcc+make+bison)+re2c ** 更新履歴 [#jbd2d966] - 2008/12/18 * NO.95 one_viewer [#o9f58366] #ref(95_one_viewer.png,nolink) -[[95_one_viewer.zip:http://akkera102.googlepages.com/95_one_viewer.zip]] -[[95_one_viewer.zip:http://sites.google.com/site/akkera102/index/95_one_viewer.zip]] ** 概要 [#f1c58911] 「ONE ~輝く季節へ~(Windows 通常版)」というゲームのビュアーを作ってみました。GBA側よりコンバータの方が苦労していたりします。移植のためのステップアップになればいいかなあ(^^;。 ** 参考リンク [#t58063b6] - [[xakane:http://www.sokohiki.org/~nao/xakane/]] ** 開発環境 [#n37e0ee8] - devkitARM r24 - cygwin(gcc+make) - ImageMagick ** 更新履歴 [#z6d21515] - 2009/01/02 * NO.96 adrv [#z41f5b83] #ref(96_adrv.png,nolink) -[[96_adrv.zip:http://akkera102.googlepages.com/96_adrv.zip]] -[[96_adrv.zip:http://sites.google.com/site/akkera102/index/96_adrv.zip]] ** 概要 [#x42e4501] コンバータを使った本格派のMMLドライバです。あんどさんのソースコードを使わせていただきましたm(__)m。 ** 開発環境 [#c3cddcdc] - devkitARM r24 - cygwin(gcc+make) ** 更新履歴 [#i53e009d] - 2009/01/19 曲ごとにテンポを指定できるように修正しました。 - 2009/01/16 ANDの処理にて、KeyOFFしていたのを修正しました。 - 2009/01/15 * NO.97 one_snd [#g29649b6] #ref(97_one_snd.png,nolink) -[[97_one_snd.zip:http://akkera102.googlepages.com/97_one_snd.zip]]~ -[[97_one_snd.zip:http://sites.google.com/site/akkera102/index/97_one_snd.zip]]~ ** 概要 [#zcd9fbf2] 鈍器のつかいかたさんから曲データを譲っていただき、ADRV(MML Driver)のデータにコンバートしました。履歴を見ていると2003年という文字が懐かしすぎます(汗。チャンネルは基本1chのみで2曲収録されていないのがあります。詳しいことは_readme.txtをご覧ください。 ** 開発環境 [#r1789185] - devkitARM r24 - cygwin(gcc+make) ** 更新履歴 [#g0dc7b51] - 2009/01/20 「マツヨシ」ライブラリのサンプル(2曲)を追加。 - 2009/01/18 * NO.98 heebtn [#se6f3fb2] #ref(98_heebtn.png,nolink) -[[98_heebtn.zip:http://akkera102.googlepages.com/98_heebtn.zip]]~ -[[98_heebtn.zip:http://sites.google.com/site/akkera102/index/98_heebtn.zip]]~ ** 概要 [#d1143cc8] GBAでへぇボタン。へぇ~。 ** 開発環境 [#sc9ee2a1] - devkitARM r24 ** 更新履歴 [#ybcbc29f] - 2009/02/03 * NO.99 nimotsukun [#a66ab12c] #ref(99_nimotsukun.png,nolink) -[[99_nimotsukun.zip:http://akkera102.googlepages.com/99_nimotsukun.zip]]~ -[[99_nimotsukun.zip:http://sites.google.com/site/akkera102/index/99_nimotsukun.zip]]~ ** 概要 [#g34cb0bb] 倉庫を整理する例のアレを作りました。このところ画面遷移という言葉を耳にするので書いてみたものです。 ** 開発環境 [#z4f21fc4] - devkitARM r24 ** 更新履歴 [#r5086d37] - 2009/04/15