C言語

私的FC/NES開発環境、プログラミング編

このエントリーはDumBoがFC/NES開発に使っているツール類を 備忘録として書き留めておく為のものである(プログラミング編)。当方主にWinOS+NESASM+秀丸エディタという組み合わせで開発している。 これから初めてみたいと考える方の参考になれれば幸いだ。●…

ラトネット リニューアルオープンSALE中につき

ラトルズさんのネットショップで萌え技術書を2冊程購入。 現在リニューアルオープンSALE中だそうで。【電子版】最新版 12歳からはじめる ゼロからの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/ ソー…