C言語

「マインスイーパ」ver0.10

遊べるとこまで書けたのでソース公開です。 時間計測が無い以外は大体実現できるようになってます。 周辺地雷 0 なら 1 以上が見つかるまでセルを開いてく動作とか、初回に開いた時の地雷補正とか。 MineSweeper.h /*--------------------------------------…

「15パズルライブラリ」ver0.10

マインスイーパを組むにあたり、旧作クラスライブラリを流用しようとソース眺めてたら、 色々気になりリファクタリングしてしまったのでバージョンアップ版を公開。 サンプル(main.c)は DS 用ですが C 標準ライブラリのみで書いてるので多機種流用とか出来る…

2進変換テスト。C言語版

最初 Java で作ってたんですが、変換したい型の数だけメソッドのオーバーロードが必要なのか?という疑問から ならば C で void 型使って同等関数書いてみようということになって。 実際に作ってみたら void から型サイズは得られないから引数で渡してもらっ…

NDS Homebrew プログラミング vol.1。

クランクインしました。 イベント前になって原稿作業に入るようなスケジュールは文才を培って来た人が可能とするものであり、 自分みたいな文章書けない人間が真似すると結局のところ、徹夜するか落とすかの2択が待ち受けてると。 この度教訓として学び得た…

メリークルシミマス。

進行やばめ。 あと一息なようでいて実はそうでもなさそうな予感。

バイオリズム。2

この前のバイオリズムに年月変更操作を追記しました。 誕生日は変わらずマジックナンバーです。 題材とするアルゴリズムに含まれない部分は敢えて書いてません。 NDS の方だけは本体設定の誕生日から取得しようかと思ったのですが 元々誕生年が設定できない…

ワーブル・トレイン。

ワーブル・トレインです。うねうね動くプログラムです。 ソースは「ゲームショートプログラム」のベーシックリストを参考にしてます。 ワーブルの意味が分かりません。ベルギー? devkitPro - NDS 版 ・ビルド手順 1. 下記ソースを *.c ファイルに保存。 2. …

バイオリズム。

最近のマイブームがもう一つありました。 それは devkitPro - nds と Visual C++ コンソールの両方で通るソースを書くこと。 NDS だと自分の周りの反応がイマイチ薄いのですが Windows で動くと多少興味を持ってもらえる感じだったので。 弱いなぁ、俺(笑)…

最近のマイブーム。

テキストベースで作れる定番プログラムとかを、通勤中や休憩時間に書くのが最近のマイブームです。 小規模プログラムなら数日〜一週間程度で片付くから息抜きに丁度良い感じなのです。 社内システム入れ替えの失敗によるしわ寄せで (というか打ち出し用プリ…

Programmer's Notepad とナイトライダー。

普段の開発スタイルが Msys + サクラエディタという構成だったので 参考までに Programmer's Notepad 上で簡単なプログラムを作ってみました。 デフォルトですと日本語の表示に関して文字化けを起こしますが Tools - Options - General - Defaults の Charac…

Cave。サンプルソース版。

一応こんなん書いてますよと。 本用なので VC2010 部分は後で取り除きます。 職場では VC2010 でチェックして、家では devkitPro でってなると ソース分けるより #define 文で条件付コンパイルで書いて それぞれのプロジェクトで同一ソースをビルドするのが…

assert について勉強中。

assert について勉強中です。 今まで全く使ってこなかったので理解に怪しいところがあるかも。 assert はロジック上、この条件が成立してなくてはならないという検証目的の為のものであって、 運用中に起こりうるエラーの場合そのエラーに適した処理を用意す…

printf のパック関数。

可変長引数を持つ printf 関数をそのままの状態でパックした関数を作りたいと思ってたのですが va_list, va_start, va_end, vprintf を使うことで解決できたのですね。 よく調べもせず出来ない事だと決め付けてた自分が恥ずかしいです。 #include <stdio.h> //vprintf</stdio.h>…

フレームバッファ描画ライブラリ、クロップ処理。

Crop 処理を書いてみました。 アドベンチャーゲームでいうキャラの立ち絵を表示するときなんかの、あんなやつです(適当)。 例の本に載ってなかったので Blt を弄って作成。 クリッピング補正したとき、仮に横幅が変わったとしても アドレスは本来の横幅分…

スタックテンプレートライブラリ。テスト2。

継承して使うことを前提にして組んでみた版です。 ぶっちゃけスタック操作だけを提供するようなライブラリでも良かった感じです。 これは没にしてもう一度書き直そうと思います。 C言語で継承のやり方は以下の書物を参考にしました。 …というか継承を使って…

キューテンプレートライブラリ。テスト。

順番が前後してますが FIFO データ構造も作ってみました。 LIFO のものをベースに手直しです。 Queue template library test main.c /*--------------------------------------------------------------------------------- Queue template library test ver…

スタックテンプレートライブラリ。テスト。

フレームバッファ描画ライブラリが一先ずの目標までもう少しなところで習作プログラムでも作ろうかと思い立ち、 一部の動作に FIFO データ構造が欲しいということになって、 作るなら後々の再利用まで考えた作りに出来ないものか、 といった辺りからの寄り道…

フレームバッファ描画ライブラリ、バージョンアップ作業中。

バージョンアップ作業中というよりも NDS 用にポーティング作業中というのが実際のところです。 ポーティングしてるのは下記書物の解説中に出てくるソース。 クラスとして組まれてる骨格以外は、C言語で書かれてるので自分としては理解の助けになってます。 …

フレームバッファ描画ライブラリ、バージョンアップの手始めに。

学習の参考になる本は無いかと本棚を眺めてたらありました。 フルスクラッチによるグラフィックスプログラミング入門 必要そうだからと買っておいて全く読んでませんでした。 しばらくはこの本で学習してこうと思います。

動画再生ライブラリ。ベータ版。3

寝つきがよくなかったのでそのまま作業続行して動画再生まで漕ぎ着けました。 再生中 やはりというか30フレーム周期だと確実に処理落ちしてました。 ロードが間に合わなかった場合のフレームスキップも考慮した実装に書き直さなければいけないですね。(−−;…

動画再生ライブラリ。ベータ版。4

あまり眠れなかったので仕事に出る前に作業しました。 タイマーカウントの更新と描画更新を分離(タイマー割り込み1と2を利用)。 タイマーカウントは30fps、描画更新は15fpsとすることで 映像と音声の同期が正しくなりました。 因みに描画更新を20fpsでも…

動画再生ライブラリ。ベータ版。5

色々と更なる構造を練ったりしてみましたがピンと来るものが浮かばず。 こればかりに固着する訳にもいかないのでムービーライブラリは一旦筆を置くことにします。 現時点でちゃんと動作してるというのもありますので。 ライブラリとして公開するとなると 動…

devkitARM r30 の grit.exe。

ヽ(`Д´)ノうごかねえよ!ウワァァン と以前言及した grit ですが現在最新の devkitARM r30 では アーカイブも修正されており正常動作することを確認しました。

動画再生ライブラリ。ベータ版。2

前回のエントリーに記載した、動画用データを作成するための作業を現在行っています。 めちゃくちゃ時間掛かってます(笑)。 MovieReader で動画(MPEG)データを 1 分 20 秒分、 30fps 、 256 x 192 サイズの連番 BMP ファイルとして出力。 TMPGEnc で音デー…

動画再生ライブラリ。ベータ版。

今作ってる物にオープニングムービーを再生させたかったので作成してみました。 もっと時間が掛かると想定してたのですが思ったよりも早くビルドが通ってしまいました。 シングル動作(1ライブラリ=1動画再生)と割り切ったことや、秒間30コマ固定とし…

日本語コンソール。5

今作っているものに日本語表示が欲しかったので 1月に途中まで作ってあったものをバージョンアップさせました。 公開レベルに満たない代物なのでしばらくの間はクローズドソースです。 一般的なエスケープシーケンス文字の対応とスクロールアップ動作まで。 …

スライディングブロックパズルフレームワーク。2

以前公開した15パズルフレームワークに関数を2つ追加しました。 //現在のパネル盤面情報を取得します。 void Sbp_GetPanelValue(Sbp sbp, int *panel); //現在のパネル盤面情報を変更します。 //パネル盤面フォーマットは //横ピース数×縦ピース数=ピース総…

リアルタイムクロックライブラリ。

C標準ライブラリの time ライブラリを 現時間取得に特化させたラッパライブラリです。 日本人なら昭和と平成は外せません。<謎 Rtc library test プロジェクト一式、ライブラリ&フレームワーク一式 Nitro Developer Style http://page.freett.com/ntr/ ソー…

ジャンケンフレームワーク。

今日はジャンケンフレームワークを書いてみました。 ジャンケンコードは昨年より、書いては捨ててを幾度か繰り返してたのですが ようやく部品として取り扱えそうなものが出来ました。 今まで書いてきたものは1対1専用の一人称構造でしたが 今度のは複数人対…

タイマーライブラリ。

ゲーム作りのための道具作りシリーズです。 タイマーライブラリを作ってみました。 2 週間くらい構造に悩んでしまいましたがようやく望むカタチに収まりました。 任意個数のタイマーを動的に生成でき、それぞれが独立した時間計測を行うことが出来る、 そん…

マイク入力ライブラリ。

以前書いたサンプルコードを少し見直してライブラリ化しました。 また今回よりフレームワーク&ライブラリテンプレートもあわせて combined ベースに変更しました(マイク入力用にARM7コードが増えた為)。 利用する場合は、 ARM7側とARM9側でライブラリをイ…

タイマー割り込み。

Nintendo DSでプログラミングさんの解説と、 たろサさんの解説を参考にタイマー割り込みを学習しました。 タイマ割り込みと高速フーリエ変換を使ってマイク入力を解析してみる - Nintendo DSでプログラミング http://void-main.org/dsprogram/index.php?%E3%…

俺々フレームワーク。カードデッキ&トランプ。

先日のトランプフレームワークをカードデッキフレームワークとして独立することで、 基本的なカードデッキの動作を提供。 カードデッキフレームワークをベースにトランプとしてパックすることで トランプデッキ動作を提供する。 といった作りになってます。 …

俺々フレームワーク。トランプ。

俺々フレームワークシリーズ。 お題はトランプ。 ポーカーと神経衰弱ぐらいは作ってみたいなーと思って今週初めより設計を練り始めて見たものの インスタンスの生成=カードデッキ1式とした辺りからどんどん深みにはまってくことに。 ・デッキの一番上からカ…

スライディングブロックパズルフレームワーク。

少し前に書いたやつを直して公開しました。 15パズルを題材にしたソースは結構あって参考には困らなかったのですが ピース数固定のものしか見かけなかったので可変可能な構造としてみました。 サンプルはテキスト表示で作ってますが フレームバッファに描画…

フレームバッファ描画ライブラリ。

とりあえず画面クリア、ドット打つ、ボックス描画、ライン描画、だけです。 BASIC レベルにはしたいので円の描画、塗りつぶし、を ToDo としておきます。 サイトへの公開は帰ってからしますので先にソースだけでも。 draw.h /*-----------------------------…

ラインアートフレームワーク。

ゲームとして使えそうな部品をフレームワークとして気の向くまま作ってこうかと。 という訳(?)でラインアートです。 ゲームと全然関係ない! まったく意味が分からないのは書いた本人も一緒なので気にしない。 動画ジグソーパズル Dyna-Mo http://end.skr…

乱数生成ライブラリ。

「こんなライブラリいいな、出来たらいいな。」と、いつものノリで作ってみた。 以前エントリで自分の方向性を言及して以来、 毎度フルスクラッチか、一部コピペでわざわざ書き出すことが無駄なことだとやっと気付き、 コピペするようなコードなんかはそろそ…

久しぶりのC言語本購入。

C言語によるオブジェクト指向プログラミング入門 作る内容(あるいは程度)によって、構造化かオブジェクト指向か、 どちらの概念が適してるか変わるっぽいので。 試しに勉強してみようかなと。 題材(例題ソース)がゲームプログラムなのも好感。 第3章まで…

開発のための開発。

フレームバッファ描画用の簡易ライブラリ作成ちう。 開発のための開発というやつです。 線描いたり。 四角描いたり。 まだこれだけ。

マルチプルインスタンス。

部品として再利用し易いゲームアルゴリズムを書いてみるテスト。 ただの15パズルなんですが。 プログラマに対する動的な操作を許容して、 且つモジュール内部は隠蔽しつつ、関数・変数間のやり取りを無理なく記述するには マルチプルインスタンスの概念を用…

スプライトって画面外に出せるのか。

座標がマイナス超えるから画面外に出したい場合、 素の状態の画面設定じゃ駄目なのかと勝手に勘違いしてた。 desmume で View OAM 確認してみたら縦は0〜255ピクセル、横は-256〜255でローテートするのね。 これ以外のローテート設定があるのかどうかは調べ…

スプライト拡大縮小サンプル。

スプライトの拡大縮小を試してみました。 いつもの如く akkera102 さんとこの GBA Develop wiki の解説を参考に。 GBA と NDS の構造が近いのを良いことに参照しまくりです。 akkera102 さんの解説は凄く丁寧に書かれてて 理解した後だと上手く説明された文…

キーコンフィグ実装サンプル。

今日考えて取り合えず実装してみたら まずまずの体裁が取れてたので公開しておきます。 キーとアクションの間にモジュールを咬ましてみたら案外スマートに行けた感じです。 昨日のネームエントリ実装サンプルもなのですが、1シーンとして作らず、部品として…

ネームエントリ実装サンプル。

昨年の2月頃にも同じようなものを作っていたのですが 今見ると恥ずかしいくらい汚かったため書き直しました。 必要最小の実装のみですがこんなものでしょうか。 4/12追記。 main.c を書き直しました。 必要に応じてプロジェクト一式の方からダウンロードして…

標準コンソール16色フォント変更+パレット番号変更サンプル。

examples/nds/Graphics/Printing/custom_font/ をちょいと弄ってみました。 表示を上画面に変更して記述を少し簡略化したのと、 任意のパレット番号(0 番〜 15 番)にフォントカラー(16色)を読み込ますようにしてみました。 chgfont2 プロジェクト一式 ttp://…

デジタルインベーダー for NDS。

id:yasuho さんの GBA 版ソースを参考に NDS へ移植してみました。 実は一ヶ月前に書いたものなのですが、先月末が個人的に忙しかったこともあり、 すっかり公開するのを忘れておりました。 見た目一緒で恐縮なのですが…(汗)一応 GBA 版との違いなどを。 …

FIFO 通信によるマイク入力サンプル。(2)

マイク機能を使ったプログラムを書いてて不満点が発生。 ・現在の入力の有無が欲しい ・入力の状態(エッジ)まで欲しい つーことで追記しました。 ARM9 コードだけ記述が増えてます。 input ライブラリと同じような記述で使えます。 毎フレーム scanMic() …

NTR検査カセット。

NDS マイクを使った習作です。 元ネタはファミコン本体の組み立て工場なんかで使われてた HVC検査カセットというコントローラテストソフトです。 HVC検査カセット HVC検査カセット(動作画面) カセットは高くて持ってないのでエミュで動作させたものと思われ…

NTR検査カセット。(2)

実機チェックして分かったことと、それに伴った修正を行いました。 実機にて、マイクを有効にした直後、0.3〜0.4秒程度、 無音値(128 付近)から離れた値が出力されてる模様。 1行目が初期値、以降マイクオン後の次フレームからの返値 INIT → WAIT → EXEC と…