ラベル プログラミング の投稿を表示しています。 すべての投稿を表示
ラベル プログラミング の投稿を表示しています。 すべての投稿を表示

2018年6月11日

片手でもLaboした話

ちょっと前にLaboのソフトだけ買えました。
任天堂がpdfでダンボール部分のデータを公開しているのを知っていたので気楽にしていたのですが。

・・・なのでイザとなったら買う!! を合言葉に、まずはリモコンカーを作ってみる。
以下結果。

・・・joy-conがハマらない。敗戦車かよ。


どこがいくつか把握したくてサイズを手書き。どっかに同じことしてる人が居る気がするorz

今回、用紙を作るところから大変だったのですが、Webで見つけた
ゲーマー夫婦 みなとも」で紹介されいる方法がとても便利でした。

また、情報を仕入れていくうちに知ってのですが、他の方の「トイコンガレージ」を探す時は「Twitter」で「#ラボ作品」というタグを使うと良いようです。
Laboがダンボールをかなり高度に使っていると思いました。

[参考]

2017年10月18日

FT232RLの模造品

"arduinoでbluetoothに使いたい"の為に買った FT232RL が模造品でした
"この記事見ると3年前から対応されてる。

ちなみ僕が買ったの

だからなんだって話ですが、皆さんは地雷を踏まないようにw

2017年9月27日

arduino でbluetoothに使いたい

※リンク先は、音が出ます※
NintendoのSwitch でロンチタイトルだった「1-2-Switch(ワンツースイッチ)」をスマホでやれないかな・・・と、うっする思ってぼちぼち考えてた。
  • 対戦するので、スマホと別にコントローラーが欲しい
  • 僕が使える(片麻痺)ように片手で持てる
  • ジャイロを入れたい(スプラトゥーンの影響w)
  • bluetoothが高い(技適マークの関係)→ドングルを使う事にする
・・・あ、ちなみにまだSwitchは持ってませんorz
で、以下の5つを使う。
  • Arduino Leonardo Pro Micro
  • Arduino PRO mini
  • ミニ USB ホスト シールド
  • L3G4200D 3軸ジャイロセンサモジュール
  • bluetoothのドングル(\1,000-ぐらい日本のメーカーも物)
さて、bluetoothを知識がないorz
ゲームパッドとして認識する方法・・・これから勉強します。

そんなところにこんなページを見つけました。
[GitHub - Tamakichi/Arduino_USBToPS2: Arduino USB PS/2変換モジュール]

紹介の中に出てくる IchigoJam は名前は知っていたのですが、Arduino と一緒に使えるのか、凄い、と思ってしまいました。

・・・早く着手できる状態になりたい。

2013年7月25日

New Classic Kong SNES Game

SNESの開発関係を探していて、こんなモノは見つけました。

海外では今でもSNESは暑いのでしょうか? SDKの件もあるし。

2013年7月24日

SNES自作の為のSDK

3ヶ月程、脳出血のリハビリ”がてら”、SNES自作の為のSDKについて調べていました。
ゲームの個人向け開発SDKといえば、まず devkitPro ですが、SNESは対応していません。・・・classic過ぎで。

と、言うわけで・・・google様に聞いてみました。

全くヒントが無いところから、snes-sdkってそれっぽいし、サンプルもある。これぐらい? と、思ってたら・・・。
こんなSDKもあった。

・・・探せば出てくな。

2013年4月15日

SNESの自作ゲームを実機で動かす?

片手でゲームをする関係でクラシックゲーマーになってしまったんですが。
今頃、スーパーファミコンのカセットを調達しようとすると電池がヘタってたりするがデフォルトです。
で、電池はタイミングを見て交換できる物に変えています。
電池を替える時に基板に付いている物を変えるので、その瞬間にセーブが消えますw
ネットを観ると電池を2つ付けて交換してる人もいました。
片麻痺の身には敷居が高かったので、パソコンに退避させる事を思いつきました。

アマゾンでこんな物が売っていました。

単なる、電池交換のツールとしてだと。高いし値段分使うの長そう。と、思っていたのですが、海外にはネットで自作のゲームを公開してる人もいる事を思い出しました。

なんか病気前に、うずうずしてた記憶を思いたしたので、買うことに。
で、持ってるカセットのセーブをせっせとコピー。コレでいつ電池がヘタってもいいぞw

さて、自作ゲーム探しの旅にw

SNES研究室で、まずサンプルを見てみてCC65とかWDC-SDKってある事をしる。
C言語の環境が整ってない? アセンブラの世界なのか(ガクブル
この時点では、ほとんど情報が無いorz それっぽいサイトはみんな英語。

日本でSuperufo pro 8を使ってる人たちがあるページ「きまぐれ自由人ブログ」を見つけて聞いてみる。
丁寧に対応してもらって向こう人もSNES研究室のサンプルを見て情報のやり取りをしてくれた。有益な情報は無かったけど。

海外の人はどうやって作ってるかな・・・「PD-roms」にぽつぽつ上がってるのとか、「New Class Kong」。
New Class Kongとか出たの去年だし。

検索キーワードを全然思いつかなくて、ふらふら見ていたら「jiggawatt.org」を見つける。
www.neoflash.comというフォーラムの[ここ]でリンクされてるのを見つけました。

取り敢えず、サンプルに2MbitsのROMが出来るソースがあったので、早速実機で動かす。
・・・エラーで弾かれる。
動かない自作ゲームの傾向にもしかして小さいと動かない? みたいな感じがしてた。
フォルダ snesc のファイル hdr.asm に出力される *.smc のサイズの定義があるのでコレを 4Mbits に変更した。

定義は、以下の2つ。

  • .ROMBANKS xx
  • .SNESHEADER
        ROMSIZE $xx

・・・動いた!! パソコン上のエミュレーター同じゲームが動いてる!!
ホントに、とりあえずですが。自作ゲーム動きますw

2013年2月24日

AVRのコンパイル環境を調べてみた

いろいろリハビリがてら手を付けてる宿題がある。
で、その1つに”AVRに挑戦”があるのですが、そのAVRのコンパイル環境、調べてみると種類があるみたい。
自分用にまとめてみた。しっかり使ってみたわけでは無いです。

ってことで、つらつらと挙げていきます。

WinAVRの印象。
Programmer's Notepad 2 は、癖が強かった印象があります。

AVR Eclipse Pluginは、CDT(EclipseでC言語を使う時のプラグイン)が必要です。
EclipseのPluginは追加しても、どこになにが覚えるまで大変な物が多いのですが、これは専用のメニュが追加されるので、楽でした。

Visual Studio 2010 の Shell は、日本語と英語があります。
Shellをインストールすると一緒に”Micresoft Visual C++ 2010 x86 Redistributable - 10.0.40219”がインストールされます。
このランタイムは、Shellをアンインストールしても残っています。
Shellをインストールしなおしたい時に、再インストールが正しく行われません。
英語版から日本語版にしたい時とか。
Shellの再インストールをする時は、ランタイムをアンインストールした方がいいです。

こんな感じですかね。

2012年2月23日

2月22日って日。

2月22日は、初代xboxが出た日だったわけだけど、自分にとっては、某スレッドを通じて勉強させてもらった日。[dcdev38]
この出会いが無かった、OpenGLを使ってなかったかも知れたいし、自作ゲームを経てメガデモを作って無かったかも。
んで、倒れた後に某王子にTwitterで「『_boot』好きです」って言われてドッキリ、なんてしてなかったとおもう。



・・・初代XBoxは、持ってませんけど。

2008年11月27日

twiClient(仮) 0.10 - twitterクライアント

9月頃からぼちぼちやっていたんですが、ようやくカタチになってきたので公開します。

スクリーンショットはこんな感じ。
image

Willcom 03を契約してからずいぶんMZ3を使っていたのですが、身体的問題があり困っていました。
自分は、03を親指で操作していたのですが、その親指が太いです。
それに対してMZ3の投稿/更新ボタンは小さく、すぐ下にあるメニューバーのSIPボタンを押してしまうことがよくありました。
「これは自分の指にあったクライアントが欲しいなー」と思ったのと、「Web APIってどんなもの?」と思ったことが開発するにあたっての動機です。

ボタンを大きめに確保して、メニューバーと干渉しにくいようにしました。
つぶやきと言い返す(リプライ)は別のウィンドウを設け、それらの操作でも余裕を持てることを意識しました。
# iPhone/iPod touchのアプリからのインスパイアだったりするんですけど

とりあえず、機能が揃ってリリースするかというときになってエラーの通知やステータス表示が無いことに気づいて最低限のフォローはしたのですが、まだまだだなと思います。
これは今後の課題にします。

2008年11月2日

iPhone SDK日本語版リリース

Twitter経由で知った情報なんですが、リリースされたようです。

iPhone Dev Center(Library)
# Developer Center内なので入るにはアカウントが必要です

PixelCrewをずいぶんサボっているついでにTwitter APIを触りだしているのでiPhone開発(手持ちの端末は初代iPod touch 16GB)まで手が回りませんが・・・。

あと、ウチにmacが無いんですよね。
mac miniぐらい欲しいんですけどね。

2008年10月10日

コードに魂を。振る舞いに愛を。

仕事で子供染みた焚き付けに見舞われた。
一年以上前からダラダラと赤を出し、それでもなお続けられていた案件。
自分が参画したときには、システムの事も、そのシステムを構築するプログラムの開発環境のこともよくわからないまま開発をする先駆者たちがいた。

半分いなくなって、補充されたけど。

自分はコードが読めた。幸か不幸か。
おかしいところがたくさん目に付いた。

直さないのか? 先駆者の力量は充分あると思っていた自分は聞いてみた。
おかしくは無い、いまある姿があるべき姿。
先駆者のリーダはそういった。

アレしてコレすると落ちてしまうのも? ここの実行速度について改善要望が来てるのも?

開発は進み、客先での仮運用が始まった。
不具合報告に混じって仕様変更の要望と思われる指摘が飛んでくる。
リーダは「対応する」と言った。
裏側から透かしても仕様変更と思われる文面を指差し、本当にやるのか? と聞いた。

「言われた事は全部やる。バグとか変更とか関係ない」

誰も戦う気がない。いい物を作ろうという思いが微塵も無い、それがこのチームだった。
このほかにも、提案と却下の繰り返しを何度かした。
「なんでそんな難しい事をするのか」と言った顔で嫌がられることが続いたので提案も止めた。こっちが疲れてしまう。

さて、冒頭に書いた「炊き付け」の件。
長い間放置しておいたプロジェクトにエンドユーザからクレームが付いた。
また納期を破るつもりか? これまで当然のようにスケジュールに収まらない仕事をしてきたチームに業を煮やした結果だ。
それに驚いたえらい人が自分を呼びつけて言った。

「外注の君には、今月中に今から言う機能の回収を完成させて、引き上げてもらう。これぐらいのボリューム、できるはずだ」

できなくは無いのだろうが、突然の事で驚いた。
引き上げの話は営業から聞かされていたが、最後にこんなことが待っている事は予想できなかった。

「見事にやってくれたなら、君はヒーローとして去ることができる」
できなかったら、対価に見合わない仕事しかできなかったと判断する。要するに給料泥棒呼ばわりだ。
技術者のプライドに揺さぶりをかけられているような気分。いい気分ではない。

先の提案と却下のやり取りで疲れていたところに引き上げの辞令。
その上に「君ならできる」なんて持ち上げと揺さぶり。

苛立ちはあるし、プライドもある。
期待通りヒーローになる事を目指して仕事はするだろう。
結果は保証できないけど。

だけど、これは最悪の仕事だと思う。

とある人の言葉を借りるけれど、この案件のコードには魂がない。
物を作るものとして、解せない部分と戦う姿勢がない。
人が使うプログラム。アプリケーションを作る事が好きであるなら、そのアプリケーションの振る舞いの取り決めに愛をこめて向き合うべきだ。

顧客の要望が最終的に正しいものであるかも知れない。
しかし、その結論を出すまでの磨き上げを放棄してはいけない。
顧客の決めた仕様にも荒削りな魂があるかもしれない。
磨き上げて、共にいいものを作るべきだ。

この仕事が終わったときに、「なんだこの暑苦しいエントリ」と笑って読み返せる事を願って。

2008年9月7日

3Dデモ「_boot」

いろいろインスパイアされまして、デモをこさえてみました。
そもそもの触発元は、とある初音ミク楽曲でした。

















[初音ミク(Has-Tune) / "_boot"(Re:A & Re:nG)]
ニコニコ動画界隈の初音ミク楽曲には「ミクトランス」というジャンルがあります。
テクノやトランスの曲にボーカルやコーラスとしてミクを使うものです。
テクノやトランスに電子的な歌声。これほどデモに馴染む楽曲は早々無いのではないか? と思いました。
けれど、動画サービスから生まれたであったり、ツールが発達している昨今にごりごりコード起こしてデモを作る人はいないようです。
実際、「PVを作ってみた」系動画や「VJミキサーに使ってみた」的動画はありました。クオリティも高く見ていてツラい動画でしたw
それでも、ミクトランスはデモに使えると思うのです。
正直、効率の悪さや、シーンデザインの稚拙さが目立つと思います。
だけど一度は試してみたいと思っている人は少なくないはず、と思います。

2008年8月2日

PixelCrew日記 - Perlin Noiseを写経する、の巻き

perlinnoise

最近、ここ以外が忙しかったりネタが無かったので書けませんでした。
が、やっとこ書けそうなネタが出てきたので。

雲模様のテクスチャが作りたくて、アルゴリズムを探していました。
とはいってもテクスチャが欲しかっただけなので、ツールで作るなりWebで探すなりしてもよかったのです。
ですが、ゆくゆくPixelCrewに載せるんだろうし、と言うことでコードで生成することにしました。

画像処理のアルゴリズムは、WindowsCE(GameAPI)でニアレストネイバーやバイリニアによる拡大/縮小を書いたことがあります。
そのときは、ピクセル間の距離や三角関数がどういう計算をしているか把握できなくてとにかく週末徹夜進行だったなと覚えています。
今回はその甲斐あってアルゴリズムの解説もすんなり理解できました。たぶん。

ただ、Frequency(周波数)と言う単語を見て、画像の端々を正規化(0.0と1.0に丸める)して扱うのかと勘違いしていくら演算結果を重ねていってもサンプルみたいにならなくて悩みました。
別に周期に収めることは無くて、どこまでもノイズを作っていけばいいんですね。

あと、このアルゴリズム解説を読んでいて驚いたのが、ピクセル単位で重ねこみをしていること。
解説文では、「これらの画を重ねると、次のようなパターンになる」とあるので、回数が増えればバッファもたくさん要ると思っていたのですが、そんなことはありませんでした。

まだまだ覚えることがあるのだなと思いました。

2008年7月14日

XNAで拡張現実

ARToolkitの手入れを誰かしていないかを探していたら、こんなものが見つかりました。

XNAでARと言うことらしいんだけど、複数のマーカ同士で認識を補完するというテクニックがあるらしく、マーカをいっぱい並べてる画がインパクトあります。

ARToolkit再燃

一年前にチラッと触って以来、OpenGLを触っていました。
別の場所で3Dリバーシを作って公開できるようになり、帰ってきました。

ARToolkitからOpenGLに傾倒していたのには、3D-APIがよくわからなかったと言う理由が強かったのですが、libARがWindows向けにやさしくない状態だったためです。
当時はVisualStudio2005でいじっていて、現在の開発環境はVisualStudio2008。
まぁとにかく、libAR*.libはリンクの通りが悪いライブラリであるなと。そりゃあARToolkit plusもできますわい。
特に、VRMLと連携した処理が同梱されていて、VRML側をリビルドしないといけないと言う事実になかなか気づけず大変です。
Buiding the simpleVRML doesnt work(details inside) - HIT Lab NZ Forum

他にも、各種ファイル(マーカやカメラのパラメータ)を操作する処理があり、scanfを久々に見たり、mallocがこけるとexitするコードがあったり・・・。
情報を求めてこんなスレッドを見つけたりしてmallocをHeapAllocに置き換えたのにorz

個人的には、libARはもっと機能ごとに細分化していいと思います。
先にあげたファイル処理も構造体だけ挙げておいて「この形でくれ。そこまでの実装は任せる」と突き放してしまっても困らないですし。
# むしろその方が移植性がよいかもしれません。Homebrew界隈ではw

再燃という割に文句ばかりのエントリですが、モノになるか飽きるか・・・。書かなくなったら飽きてます、きっと。

2008年3月21日

iPAQ 212キタ

日本HP、4型VGA液晶のWindows Mobile搭載PDA「iPAQ 212」
スマートフォンじゃないWM6端末でVGA液晶の物は無いか、と思っていたんですがとうとう来ました。
やったー、WM6でVGA。
LandScape(縦横切り替え)もきっとあるだろうからいろいろ遊べる気がする。
というか、iPotch(iPod touchの略)をすごい勢いで買おうとしていたのに「まてッ!!」と引きとめられた気がするw
WMプログラミング本とあわせて買いたいな。

2008年2月6日

2008年1月30日

PixelCrew日記 - レイヤのためにその2。作りこむうちに他の機能に目移りするでござる

なんとか、1枚のレイヤと背景をブレンドする様になった。
いろいろいじり倒してるうちに対応漏れがあったミスなども直しながら、次のステップに移ろうかと考えた。
次のステップ・・・2枚以上のレイヤを重ねる。
初期段階から、画像はキャンバスという親クラスが各レイヤをリストで管理する設計にしてるんで楽勝だ。と思っていたら。

レイヤを管理するダイアログが無い。

さっくり作り、コンテキストメニューを実装。泥臭いことが手早く出来ることに軽く嫌悪するw
で、重ねると表示が真っ黒。
画像は黒で、アルファ値が1.0。追加したレイヤが手前なので奥が見えないorz
で、これは直すとして、確認をする環境が無いことに気づいた。
前後のレイヤにフリーハンドで線を描こうかと思っていたんだけど、黒しか出ない。
パレットのバンクはあるけど色が作れない。
ずいぶん前に「まだ先だからとりあえず256色画像のパレットが見れればいい」とか「減色処理の生成パレットが見れればいい」とか言って先送りにしたところだ。
他にもレイヤ単位で位置を動かせる用意があるんだけど、これもやんなきゃいけない。
むかしざっくり考えた案だと、選んでるレイヤとそれを挟んでるレイヤの3枚(奥、カレント、手前)を更にブレンドする。だったような。
更に思い出すと、フォント描画はプライベートフォントをサポートしたいと考えていた気がする。
フォント描画のためのUIは今から作るなー。
どれからやろうかとりあえず悩む状況になってしまったorz

2008年1月25日

見つけた小ネタ

猫でもわかるプログラミング Windows SDK編 第208章 タブコントロールにエディットコントロールをつける
WM_GETMINMAXINFOが返す値を自分で決めることでサイズ制限があっさり出来るなんて・・・今まで自前でやってた。
悪魔のプログラミングテクニック-SDK編 「Virtual List View (仮想リストビューコントロール)」
仮想リストビューってのも知らなかった。

PixelCrew日記 - レイヤのためにその1。フルカラーアルファブレンド

フォント描画も必要だけど、レイヤも欲しいよね。
フォントは書き込んだ後に動かすよね?
ということで、レイヤを先にはじめることに。
昔、8ビットカラー(256色)をBitBltのラスタオペレーションで透過したな。あれをマスキングじゃなくて、アルファブレンドに使えんかと寝ぼけた事を考えて、やるだけやってみたらやっぱりダメだった。
RGBの値をマスクすることはブレンドすることは違うよね、青が赤にもなるorz
ということで、GetDIBitsしてごりごりブレンドするコードを書く。
DirectDraw時代からこの構成やってるな。今の時代にこんな泥臭いことやってる人はいないだろう。
・・・GBA/NDS HomeBrew向けBMPコンバータとかでやったな。意外にいるかも。
閑話休題。
とりあえず、複数枚のレイヤを重ねるのはまだ先なんだけど、画像表示のロジックを次のように変更。
StretchBltなどAPIを駆使して比較的楽に表示

アルファ値のビットマップを作り、それと合成したものを表示
で、変更したら早速表示が重くなる。
InvalidateRect/ValidateRectをがんばって使ってみたところが原因だった。
がんばったコードをほとんど消してInvalidateRect→UpdateWindowで一発更新する形にして更に高速化。
体感的に余裕のある速度になりました。むしろ早くなったorz
それにしても、技術的なことはいっさい書いてないなー。