2009年12月19日土曜日

DXP

だいたいできた。

とりあえずSVNにうpした。バグ報告こないかな・・・

あとはコードを整理したりバグ取ったりdoxygen用の構文を書いたりしてリリースっていう流れです。

今日はあとは全部勉強のターンかな

ついったー

ついったー全然使わないのでアカウント消した

勉強、数学の図形周りがちょっとやヴぁい

まだ内緒にしてって倫理ー♪

成績表で9以上が体育だけってのはちょっと凹んだ

DXPは結局音楽再生のルーチンも全部書き直した。短くなったし見やすくなった。

あとはファイルIOまわりにちょっと工夫をしてデバッグをして・・・だいたいそんな感じ

ああ、フォント周りも全部書き直したくなってきた・・・

現在のステップ数は6000弱、行数は8000行くらい。2000行くらい空白行とDoxygenの構文が占めてる計算になるかな

2009年12月16日水曜日

DXP Ver0.5.0

とりあえず、あとは音楽関連の実装が終われば0.4.x系の機能と同等になる(筈)なので一旦リリースしようかと思います。
0.5.0は内部がほとんど1からの設計なので、その分バグが出るだろうと踏みました。バグつぶしがだいたい終わったら3Dの本実装に入ろうと思います。
要するに、もうちょっとでリリースするよってことです。

2009年12月14日月曜日

CPU使用率

PSPのCPU使用率はネットに転がっている計算式だと正しく算出できない。
なんかどこを探しても出てこなかったので、とりあえずここに書いておく。

ググるとcpuckからsleepを引いたものをcpuckで割るという式があちこちに出るが、このコードでは常に100%弱の値になる。
正解のコードはcpuckをsystemckで割るという感じになる。

2009年11月24日火曜日

あるぇー?

一日につき一つの関数を実装。それくらいのペースでないと受験勉強に集中できない。
そしてできあがったコード。inline関数は一行にまとめるという信念の元に整形したら

…600文字だと!?

もうね、バカかと。アフォかと。
ちなみに何を作ったかというとね、任意軸で指定角度回転を表現する回転行列を生成するコードなの。当然ながらアセンブラです。

もうだめだ・・・これじゃ世界中に狂気と混乱が起きないよ・・・orz

追記

逆行列生成ルーチンが2500文字くらいになりました♪

CPUで計算するより2.5倍くらい速いから価値はあるよねw

2009年11月22日日曜日

2009年11月14日土曜日

Go

Goと言っても、先日発売されたPSP Goのことではありません。

2009年11月12日木曜日

2009年10月31日土曜日

2009年10月28日水曜日

けつろん

yreeen「やっぱ頂点バッファ無し。」

M3a「!?」

憂煉「どどどどういうことなんだ!?」

2009年10月25日日曜日

あれ・・・?

GPUがここまで汎用化されると・・・

もはやDirect3Dとか い ら な く ね ?

主要な3Dパイプラインのほとんどがプログラマブルになってるんだから全部プログラマブルに・・・もうGPGPUでいいよwwというわけです。

GPUの無い時代は当然CPUでレンダリングしていた筈。もう少し経てばそういった時代になる気がするよっ!?

CUDAとATI Streamの勝敗が決するか、OpenCLが漁夫の利をしてしまうのか、そういった駆け引きの後になりそうだけどね

2009年10月14日水曜日

png読み込みルーチン完成~

どんどんパフパフ~

プログラミングの良書

個人的なメモです。紛失してしまったっぽいのでいつの日か再購入したいです。

C++プログラミングの落とし穴

Steve Oualline (原著), 柏原 正三 (翻訳)

私が基本的にソースコードだけでバグ修正を行う癖がついた元凶です。PSPのデバッガは未だに使ったことがないですし使う予定もありません。それだけバグ発見スキルが付く本です。

バグの混入したソースコードからバグを見つけ出すという本なのですが、コンピュータの世界の逸話なども盛り込まれているため勉強になります。

べっ、別にウサギの表紙絵につられて買ったわけじゃないんだからねっ!勘違いしないでよね!

2009年10月4日日曜日

頂点バッファ

DXPの次のバージョンでは内部的に頂点バッファが使われるようになります。

2009年9月24日木曜日

ずれてるしー

久々にIE6を使った。

へー…このサイトってIE6で閲覧すると上部のメニューが壊れるんだー

当サイトは"IE8"および"ちょろめ"での閲覧のみ確認しております。


ほかのブラウザなんてしったこっちゃーありません。


修正完了~☆ (本質的な解決になってないw)

2009年9月12日土曜日

libiccc

libcccという文字コード変換ライブラリを拡張するためのライブラリを作りました。

2009年9月3日木曜日

小ネタ集

ちょっとCUDAの記事を書くのに疲れたので、知る人ぞ知るコンピュータ関連の小ネタをいくつか

2009年8月31日月曜日

もはや真っ黒なCUDA講座~そのに~

yreeen「というわけで今回はCUDA開発環境の導入とかを扱うぜ」

M3a「例によってトリニティーこと憂煉、yreeen、M3aの三柱がお送りします」

もはや真っ黒なCUDA講座~そのいち~




どっかーん
なぜなに真っ黒、はじまるよー!

2009年8月17日月曜日

2009年8月15日土曜日

身動きできない(汗

土日は模試
平日全部予備校
土日は模試
平日全部予備校
土日は模試
平日全部予備校

VAIO SZ95のメンテ

VAIOって色々詰め込んでるから時々メンテしないといけないんですよねー

2009年8月11日火曜日

2009年8月9日日曜日

よくわかる現代魔法…

昨日まで見てきたのですが〜
これ以上見る気にはならないです。作画や声が良くてもストーリー構成が悪すぎる…
複数の時系列を並び替えて魅せるといい手法を使っているつもりなんでしょうけど、裏目に出て話が全然繋がらない。複数の紙芝居をシャッフルしたような感じがしました

代わりに宙のまにまにでも観るかなぁ

2009年8月8日土曜日

携帯電話からの閲覧に対応しますた

my96soft氏の奨めでKtaiStyleというプラグインを導入しました。
携帯電話からのアクセス見やすくなりました。それだけです

いつの間にか投稿数が3桁になってました。わーい

…土曜日だというのに、いまいちテンション上がらないなぁ

2009年7月31日金曜日

DXPの次のリリースのこととか

勉強時間を維持するためにここのところソースコードに触れてません。

2009年7月29日水曜日

SETI@HOMEを鯖に突っ込んでみる

現行の鯖(サーバー)がこのサイトに対してオーバースペックなので、SETI@HOMEのクライアントを突っ込むという暴挙に訴えてみた。

2009年7月28日火曜日

爆熱でした…

GPUをフル稼働させてる最中にうっかり放熱部を裸足で触ってしまいました…
軽い火傷になったみたいでちょっと痒い…

CUDAとリモートコンピューティング

技術的に多分可能だろうと言う思い付きです。

2009年7月26日日曜日

100万円のケータイ…

ドコモのエヴァケータイが10万近くの価格で高いなーとか思っていたら、Auが今月末より100万円のケータイを出すようです。

サーバーのHDD交換を予定しています。

明日の夜~明後日の夜くらいの間にサーバーのHDD交換しようと思います。

今回はバックアップに回せるマシンが無いので、その間このサイトは閲覧不能になります。

HDDからSSDになるので静音化、省電力化と若干の速度向上が見込めるでしょう。

ただ、IFがIDEからSATAになるのでうまく移行できるかどうかが心配です。

20090727追記

データを丸コピしてみましたが起動できませんでした(汗

失敗ですorz

2009年7月17日金曜日

回線落ちてます

今朝未明から我が家の家庭内ネットワークでDNS解決不能という事態が発生中です。

外部からこのページにアクセスする事は可能ですが、内部からは何にもできません。gmailのチェックすら…

どうせ原因は決まってます。アレです。昨夜に行われたFLETSの工事。人的エラーがあったんじゃないかと疑ってます。

復旧はいつになるやら・・・奄美から帰ってくる頃には復活している事を祈ります。

というわけで、ε=ε=ヽ( ゚Д゚)ノ奄美に逝ッテキマース

船使うのでちょい時間かかります。

ちょっちおでかけです

奄美大島に行ってきます。日食が終わった頃に戻ってきますね(´∀`*)ノシ

アンパンマンがギネスにwwwww

あ…ありのまま 今 起こった事を話すぜ!

2009年7月15日水曜日

2009年7月12日日曜日

サーバー設定覚書

サーバーのセットアップ覚書

PSP

PSPに画面保護シール張って色つきのクリアケースを装着した。

外見がちょっと暗めの赤になった。こういう色大好きだー

で、それを見た親の一言

「あれ?PSP新しく買ったの?」

買ってませんwwwww

2009年7月9日木曜日

2009年7月4日土曜日

2009年7月3日金曜日

とっぷぺ~じ

初めておいでになった方はここを読んでください。
ちょろんと注意書きやブログパーツ等です。

2009年7月2日木曜日

ヒサビサにDXP

DXPのソースを適当にいじくりまわしてキャッキャウフフしてると、とある事に気が付きました。

2009年7月1日水曜日

2009年6月30日火曜日

10000

いつのまにか一万ヒット。皆様ありがとうです。
記念にちょっと絵でも描いて見ますかね…

2009年6月29日月曜日

Untitled

今朝なんか早く起きてしまって十数日ぶりに某スレ見たら…荒れまくってて…その…うん。どうでもよくなりました。

2009年6月26日金曜日

2009年6月16日火曜日

2009年6月10日水曜日

明日から何日かネットにアクセスできなくなる様です。なお、家鯖はバックアップを別回線で起動済みなので問題ないです。

つまりこの堕blogが数日間更新されないわけですね。今までも数日間更新されなかったりなので何の変化もありませんw

追記

復旧したようです。

副作用

おなかが痛いです…

2009年6月9日火曜日

PSPの開発に役立ちそうなサイト


その他よさそうなサイトがあったら追加するかもです。ある程度数がまとまったらページに・・・

2009年6月7日日曜日

物理って

というか現代の科学全般が実験した結果から法則を導いてますよね
なんか数学をちょっと齧った程度の馬鹿学生としては嬉しくないです・・・
cogito, ergo sumの考えをベースに数学的な厳密さを積み重ねた学問が世の中を支配してたら、きっとここまで技術の進歩は速くなかったでしょうけど…それはそれで楽しかったのかなぁ?
きっと心が豊かな人がのんびり回廊で議論しあうどこかの古代ギリシャの学校みたいな感じに違いない・・・そう夢想するこの頃。

ちょっと考察

sceGuStartとsceGuFinish及び各種描画関数の挙動について

2009年6月4日木曜日

体育の時間

高校三年にもなると体育の時間はカナリ自由になります。水曜日の二時間は毎週トレーニングルームで自主トレですよ

2009年6月2日火曜日

DXライブラリPortableを使う上で。最適化まとめ

FPSが出ないのですが~と仰る方がそれなりにいらっしゃいますので、幾つかプログラムの高速化に関するポイントを列挙しとこうと思います。

僕もう疲れたよ・・・FC2

FC2のブログ(の管理画面)が重くて重くてやってられなかったので、結局全記事こちらに移行しました・・・

2009年5月24日日曜日

ラムネ

最近のラムネってペットボトルが多いので、瓶ラムネを見つけて狂喜しちゃいました。

2009年5月19日火曜日

数学(笑)

今日の数学の授業で起きた、思わず噴き出しそうな先生のミスを紹介。

2009年5月18日月曜日

CardWirth

友人に勧められてみたものの、最新版を配布しているサイトが落ちていて探すのにちょっと苦労しました。

2009年5月17日日曜日

ついに奴らが…

116549740215820847

いつのまにか日本に入ってきてますね、インフルエンザ。

気になる本

dd0001

かの有名な「トランジスタ技術」を出版しているCQ出版からです。創刊号はFPGA基盤付き。

2009年5月16日土曜日

原子物理学?

eit_sl_171



太陽観測部の一員として夏に日食観測を行う予定なのですが、スペクトルだのなんだのを観測しようという話に発展して、少しばかり原子物理学を自習しましょうってことになりました。

PSPが消えてから

p5030005



祭りの後でPSPが無い事に気がついて(後の祭り?)古いPSPを復活させました。

2009年4月27日月曜日

なんか、非常に申し訳ない…

4/30あたりで正式に(?)DXPの開発を中断しようと思います。
えーと、なんというか時間不足の中でやっつけに作ったところもあるので機能不足やバグがあって本当に申し訳ないです・・
バグ修正や実行速度に大きな影響をあたえる更新以外は行いませんし、それも他の人からの報告があった場合のみとなります。
学園祭いろんな意味で終わった・・・
結局展示用プログラムは致命的なバグがあって出品できなかったですorz
追記
学園祭のゴタゴタの中でPSPを紛失してしまいました…orz
未だ非公式エミュレータが充実していないので実機が無いと開発不能です。
よって今日から開発を中断させていただきます。
再開は私が志望校に合格するまでです。だから早くて来年の3月頃ですかね?落ちたらごめんなさい!一年延長です。
とりあえずDXPの事はしばらく忘れてください。PSP開発やってみたい!という方を見かけて、かつ気が向いたら教えてあげてください。
それと、ブログの管理がどうしても甘くなりそうなので今後の記事ではコメント機能を凍結します。
なにかありましたらBBSにお願いします。そしてBBSに変な書き込みがあった場合は全力でスルーしてください。

2009年4月20日月曜日

今月いっぱいでDXライブラリPortableは更新を停止します。

エイプリルフールじゃないです。今月いっぱいで更新を停止します。正確にはプログラミング全般から手を引きます。
再開は大学受験で志望校に合格するまでです。学内ではおちこぼれの部類に入るので本腰いれなければいけないのです。
といった暗い話は置いといて、Ver0.4.12をリリースしました。
ほとんどの更新はバグフィックスです。タグデータ付のMP3を正しく扱えるようになったりとかですね

2009年4月13日月曜日

0.4.10

Ver0.4.10をリリースしました。
ブレンドモード関連を本家に近づけました。というかほぼ完璧のはずです。
さて、ここで宣伝です。武蔵高等学校中学校記念祭が月末に開かれます。
私はCPU愛好会でなんらかの発表を行っている・・・はずです。
http://musashianniversary.net/

2009年4月11日土曜日

Ver0.4.5リリース

Ver0.4.5をリリースしました。
描画関連の最適化を行いました。
また、シューティング大好きさんの協力を受けて音楽再生機能のバグ除去が行われました。
個人的にはもう少しで安定版と名乗れる気がします。
追記
しょうもないバグがあったので修正しました。
さらに追記
描画関連がバグだらけ・・・しばらくバグとの格闘が続きそうです。

2009年4月7日火曜日

開発状況

だいぶDXPも安定してきたかな?と思います。油断は禁物ですが
現在、内部のソースコードを整理する作業中です。数十KBほど使用メモリも減りました。小さいようですが、積み重なるとPSPのメモリ量(プログラマが使えるのは24MB)の中では無視できなくなってきます。千里の道もスキマから、幻想郷は1日にして成らずってやつですね。

2009年4月5日日曜日

サーバーの移行中…

というわけでサーバーの本格的な移行を開始しました。
旧ページはアクセスできなくなります。新しいアドレスはdxlibp.sourceforge.jpの予定です。
追記:移行完了しました。

Ver0.4.3リリース

LoadDivGraphとDerivationGraphが実装されました。動作は本家のものと同じです。
ただし、LoadDivGraphは読み込み時に最大でLoadGraph使用時の倍のメモリを消費します。メモリに余裕があるときに実行するといいと思います。
また、本家では1枚のテクスチャを共有する形になっていますが、DXPではグラフィックハンドル毎に1枚のテクスチャを持たせる形になっています。そのため、分割サイズが2のn乗になっていないと全ての生成されたハンドルに無駄な領域が発生し、予想外に大量のメモリを持っていかれるので注意してください。

2009年4月4日土曜日

バグ修正作業とゲーム作成

まずは、たくさんのDLありがとうございます。二桁いけば良いほうかなーとか思ってたので、一晩でダウンロード数が30とかいっててびっくりしましたw
あと、ソースコードのダウンロード数の方が多かったのもちょっとびっくりでした。あまり見せられるようなコードではないので、うれしさと恥ずかしさでいっぱいです。
さて、早くもVer0.4.1を(バイナリだけ)公開中です。一部の関数に不具合が見つかったので、特定の条件を満たす場合のみ他の関数で代替しています。詳しい話は最後に書きます。
それから、昨日あたりからSTGを作り始めました。いろいろな都合のため締め切りが今月下旬でかなり厳しいですが、高校生活最後の作品としてがんばりたいです。終わったら受験モード全開です。
あ、もちろんDXライブラリPortableを使ったPSP向けゲームです。ライブラリのデモンストレーションとバグチェックを兼ねているわけですw
以降、今回直したバグに関するちょっと詳しい話。


ソースコードを見るとわかると思いますが、DrawGraphとDrawTurnGraphは内部的にDrawExtendGraphを呼び出して描画しています。
ところで、DrawExtendGraphは高速化のためにスプライトとしてGPUに描画コマンドを発行しています。スプライトというのはつまり、四角形の対角頂点の情報だけで描画する方式です。傾いた描画ができない代わりに、通常では4つ必要な頂点情報が2つで済みます。うまく使えばメモリの節約と若干のパフォーマンスアップをすることができるわけです。
そして、さらにDXライブラリではSlice描画を自動で行っています。GPUのキャッシュメモリを有効利用できるように一枚の画像を短冊状にバラして表示するわけです。
それでは今回のバグ、スプライトとSliceが織りなしたカオスワールドについてダイジェストでお話します。
①スプライト方式は2つの頂点情報しか使わない。そのため画像の左右(上下)が通常の反対になったとき上下(左右)も反転してしまう。
②Sliceを行っているために描画コマンド一回で表示する画像の領域の縦横比が大きくなりがち。
③結果としてよくわからない縦縞らしき模様が表示される。
図にするとこんなかんじ。
0.4.1にするとき直したバグの詳細

2009年4月2日木曜日

Ver0.4.0リリース

やっとこさのリリースです。
DrawString関数の追加と音楽再生機能の充実が大きな変更点です。
あー、それから、ファイルの場所がいつもと違います。Sourceforge.jpを拠点とするのが私の出した結論です。
なぜかって?
サーバーのメンテナンスが思った以上に面倒だから!
半分冗談ですw
つまり原因の半分はコレです。Wiki作ってみましたけど、本当はPukiWiki導入したかった><。なぜ私のサーバーで動かないorz ←設定ミスってるだけだと思われる。
というわけでダウンロード先が変更となります。
http://sourceforge.jp/projects/dxlibp/
ライブラリ自体の使い方に変更はないです。そのうち(Wikiの文書を移行したら)私のサーバーは活動を停止します。それだけです。
あ、そうそう、大事なこと書くの忘れてた。
入力、描画、音声等と一通り揃ったので、今後はバグフィックスが中心となります。
もう完成したよ!と出してもいいのですが、私一人だけではバグのチェックが甘いと思います。誰か実際に使ってみて、バグ報告などをしてほしいです。バグがひとしきり出尽くした頃合を見計らってVer1.00、つまり完成版としたいと思います。

2009年3月22日日曜日

むむむ・・・

LoadSoundMem
PlaySoundMem
StopSoundMem
LoadStreamSound
PlayStreamSound
StopStreamSound
これらの関数の実装が完了したら次のバージョンを出そうと思います。本家の音楽再生関数は何度かの機能追加のせいで直感的でなくなってきていると感じていたので、すこし仕様を変えました。Streamが付いているか付いていないかで動作がそれなりに異なります。
関数名にStreamが無い関数群は、LoadSoundMem関数を読んだ時点でデータが完全にメモリ上に展開されます。再生時の負荷も小さく、一つのデータを複数並列して再生することも可能です。そのかわり、メモリを食ってしまうので長くても1分程度が限界となります。
関数名にStreamが付いているグループでは再生時に必要な部分だけをメモリに展開します。メモリースティックに常にアクセスし、デコードするので処理が若干重いです。一つのデータを同時に並列して再生することもできません。そのかわり、メモリは極力節約する仕様になっているのでBGM再生などに使えると思います。
なるべくシンプルな関数群になるよう気を配っていきたいと思います。

2009年3月11日水曜日

音楽再生

音楽再生機能の再構成作業を目下作業中です。
ストリーム再生と通常再生の実装をうまいことかみ合わせるのが難しいですね・・・
そろそろ部分的にソースコードを開示していこうかと思っています。まだ汚いソースコードですが、だいぶマシになったので。

 


 

/*
* DXライブラリPortable 入力管理部 Ver1.00
* 製作者 :夢瑞憂煉
*
* 備考 :
* 占有メモリの目安はおよそ40Byteです。
*/
#include <pspctrl.h>
#include "dxlibp.h"

int InitInput();  /*初期化*/
int RenewInput();  /*更新*/
int GetInputState(); /*取得*/
int GetAnalogInput(int *XBuf,int *YBuf);/*アナログデータの取得*/

static struct SceCtrlData CtrlData;  /*入力データ RenewInputで更新される*/


int InitInput()
{
    sceCtrlSetSamplingCycle(0);
    sceCtrlSetSamplingMode(PSP_CTRL_MODE_ANALOG);
    return 0;
}
int RenewInput()
{
    return sceCtrlReadBufferPositive(&CtrlData,1) < 0 ? -1 : 0;
}
int GetInputState()
{
    return CtrlData.Buttons;
}
int GetAnalogInput(int *XBuf,int *YBuf)
{
    *XBuf = CtrlData.Lx * 7.8125;
    *YBuf = CtrlData.Ly * 7.8125;
    return 0;
}


 

入力の受付はこれだけです。GetInputState関数を呼ぶたびに入力を再取得してしまうと処理が重くなるだけでなく、プログラマの意図しない動作を起こしやすくなるのでRenewInput関数で取得した値を保持し、それをGetXXXX関数でそのまま返すようになっています。

・・・この辺りは何のヒネリもないです。

2009年3月3日火曜日

期末試験の真っ最中

期末試験初日、なんとかなった・・・
土曜日まで試験があるので、それまでDXPの開発等は中断しています。
漢文と古典だいじょうぶかな・・・がんばります。

2009年3月1日日曜日

配布ページのWiki化が完了しました。

配布ページのWiki化が完了しました。
アドレスは相変わらずhttp://dxlib-portable.ddo.jp/です。
これでサイト管理が少しは楽に…なるといいなぁ

2009年2月27日金曜日

Ver0.3.1リリース

ファイルの取り扱いに致命的なバグが(正常にクローズできない)あったので修正しました。

2009年2月25日水曜日

メールフォーム廃止のおしらせ…

えー、ブログについていたメールフォームですが、なんか正常に動作していない様子なので撤去しました。
誰かが数回ほど送ってくれた形跡はあるのですが、本文がまっさらなんですよね。
どっかしらの不具合だと思うのですが、原因が解明できない以上直すこともできないので思い切って撤去しました。
大変もうしわけないのですが、なにかありましたらこのブログにコメントするか掲示板に書き込んで頂ければ幸いです。
それから、当分先になるかもしれませんが…ブログからWiki形式に移行することを考えています。
http://dxlib-portable.ddo.jp/cgi-bin/wiki/wiki.cgi
たぶんこのページで確定です。 Wiki荒らしさんが出没したら怖いんですけどね・・・

2009年2月21日土曜日

サーバーメンテナンスします

配布サーバーを色々と弄りすぎて不安定になってしまったので緊急のメンテナンスをします。
終了次第カキコしますのでしばらくお待ちください…
終了予想は土曜日の午後ですー

2009年2月17日火曜日

v0.3.0リリースしましたー

Ver0.3.0をリリースしました。既にお気づきかもしれませんがバージョンのつけ方がDXライブラリと違います。最初がメジャーバージョンで次がマイナーバージョン、最後のはバグフィックスとかで増えます。それと、16進数ではなく10進数で進める予定です。
まあ、そんな細かいことはおいといて。マイナーバージョンが上がったということは機能追加のお知らせです。PSPのファームウェアが持っている文字入力機能を関数一つで呼べるようにしました。その名もGetTextOSK関数!詳しいことはヘッダファイルに書いてあります。そのうちサンプルプログラムでも…今書くかw


#include "dxlibp.h"
PSP_MODULE_INFO("DX LIB TEST", 0, 1, 1);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER);
int main()
{
char buf[256];
DxLib_Init();
GetTextOSK(buf,256,0,"test","test");
printfDx(buf);
while(ProcessMessage() != -1)
{
ClearDrawScreen();
ScreenFlip();
}
DxLib_End();
}


これで動くかな?エラーチェックは行っていないので怖いですがw
それから、この関数を作るうえでsjis2unicode関数、unicode2sjis関数、sjisstr2unicodestr関数、unicodestr2sjisstr関数を追加しました。SJISとUTF-16LEの文字、文字列同士で相互変換ができます。
それにしても…コードが肥大化してきましたね… さっきのやつコンパイルしたら500KBいってました。
もうちょっとPSPSDKのリンカが賢いといいのですが。
現在小さく出来ないか試行錯誤してます…

2009年2月15日日曜日

次のバージョン予定

またも経過報告となってしまいました…
現在、GetTextOSK関数の調整中です。これは独自関数なのでちょっと説明します。
int GetTextOSK(char *buf,int buflen,int inputmode,const char *title,const char *init);
これはPSPのファームウェアが持っているOSK(オンスクリーンキーボード)を利用するための関数です。
引数は左から順番に「取得した文字列の格納先」、「最大文字数(半角)」、「入力モード(後述)」、「タイトル文字列」、「初期文字列」となります。
入力モードとは何かといいますと、例えば… いい具体例が思いつかないorz
あれです あれ 漢字やひらがなを入力できない場合があるじゃないですか。ブラウザでURL入力する場合とか。そういうのを指定するんです。DXP_OSK_KANJIとかDXP_OSK_HIRAGANAとか定数が大量にあるので|演算子で組み合わせてください。
で、この関数がどこまで出来上がっているかというと…
文字の取得はできるんですけどタイトル文字列と初期化文字列がうまく表示できてないんですよね…
現在原因究明中です。早ければ明日あたり公開できそう。遅かったら1週間くらいかかっちゃうかも…その辺がなんともいえません。申し訳ない。
で、この関数を作った際の副産物として、UTF-16とShiftJISの文字、文字列を相互変換する関数ができました。というか、作りました^^ おかげでライブラリのデータサイズがまた増えてしまいましたがw
んー、それから、文字コードの変換表は外部ファイルにした方がいいかもしれませんね。
UTF-16とShiftJISの相互変換には色々と議論が付きまといまして…一部の文字が1:1対応しないんです。で、そういった問題をできるだけ上手いこと解決するような変換表にしたつもりなんですが、人によっては「Microsoft準拠がいい!」「Unicodeが出してる変換表そのままでいいよ!」となるかもしれないんですよねー

2009年2月3日火曜日

久々に更新です

ごぶさたです。
今回は状況報告です…
えっと、Ver0.2.1の時点のソースコードを紛失してしまったので現在の公開Verが0.2.0になっています。手元にあるコードは0.2.1の時点に新機能など色々と書き加えてしまったので安定するまで待ってほしいですm(_ _)m
ちなみに、新機能としてはOSKを簡単に使えるような機能を実装しようとしています。
(OSKについては後記
OSKを出すところまでは「サンプルプログラム動かないー」とか言いながらも出来上がったのですが、問題はOSKが返してくる文字列なんですよね…
なんでUTF-16で返してくるんだorz
DXライブラリPortableは本家の仕様にできるだけ合わせるためにShift-JISで全体をまわしてるので、変換する必要があるんです…
で、知る人ぞ知るiconvライブラリ。これを使おうとすると…リンクエラーになるわけです。
私が主に使ってる環境だとヘッダが存在するのにリンク先が無いという謎なことになってます。
で、現在なにやってるかですが…必死こいてUTF-16<->SJISの変換ルーチン作ってます。
それなりに時間がかかりそうなので生暖かく見守ってくれれば幸いです…
最後に しばらく更新なくてごめんなさいです
OSKとは
オンスクリーンキーボードの略(だと思う
PSPのブラウザとかで文字入力するときに使うアレです。左側にいくつかボタンがあって、右側に作業プールみたいなのが出て、□ボタンで一文字消えるアレです。

2009年1月26日月曜日

WindwsServerはウ○コ

えー、サーバーを乗っ取られかけたのでLinuxサーバーに移行しようかと思います。Windowsの×××め!
とりあえずeeeUbuntuをカスタムしますかね…今夜はネトゲ三昧の予定だったのにorz

2009年1月24日土曜日

ちょっち更新ですかな

このBlogのスキンを変えたりリンクを上にもってきたり自宅鯖にBBSつけてみたりと、色々更新しました。
今後のQ&AをBBSに移動できるといいかなーと思います。

Ver0.2.1リリース

Ver0.2.1をアップしました。変更内容は次のとおり
*printfDx系関数を全面書き直ししました。改行文字や全角文字の問題を改善。たぶんバグはないはずです
*DrawString_Shinonome関数を追加しました。
両方とも後輩のミリバール氏にせっつかれながらの作業でした…
さて、ここで宣伝。
ミリバール:「eratohoというゲームをPSPに移植するんでDXPつかわせてくだしあ^^」
憂煉(私):「ほむ。おk」
というわけでeratohoというゲームがPSPに移植されるらしいですよ。
で、ちょっとeratohoやってみました。

……
………
あれ?エロゲなの?
ミリバール「そうだおww」
憂煉「………………おkw がんばれ! 全面的にバックアップしてやるwww」
というわけでeratohoPSP移植版の宣伝でしたー

2009年1月22日木曜日

0.2.0をリリースしましたー

音楽再生機能を追加したVer0.2.0をアップしました。
ただし、PlayMusic関数のみです。しかもMP3しか再生できないです。なぜWAVEやBMPをサポートしないのでしょう?面倒くさかっただけ
私の勉強にならないからです←苦しい言い訳
ID3v2タグの読み飛ばしルーチンが他サイト様のコードを改造するときに残っていたコードに干渉していたのが判明したので、その後3分でだいたい全てのMP3を再生可能になりました。ひどい話だw
さて、これからメインノートPCのHDDをSSDに換装します。wktkしてますw
それでは、また今度!
何人かに応援のレスを頂きました。こんなバグだらけのライブラリ使ってくれる物好きな人(←失礼)がいるんだなぁ と涙してます。今後も学業に影響が出ない程度にがんばりますね!
追記
今回のアップデートでMakefileの一部を書き足す必要があります。
LIBSの欄に-lpspaudioと-lpspaudiocodecを追加してください。
なお、チュートリアルのページの記述は更新済みです。

2009年1月21日水曜日

ちょっと開発版を公開

0.2.0の開発中のバージョンをアップしました。
PlayMusic、StopMusicを追加してあります。あと、後輩からの要望でprintfDxの内部バッファを2047文字まで増やしました。まだバグが残っているので隙を見て修正します。
現在再生可能なのはID3情報のくっついていない、生のMP3データのみ再生可能っぽいです。
例によってWAVEやBMPといった基本のフォーマットに対応していません…
バグだらけなのですが、自分で把握し切れていないバグもあります。どなたか使ってみて、バグ報告していただけると非常に助かります。
それからそれから、サーバーにBBS機能を追加しようとして見事に躓いています。
だれかIIS+ActivePerl環境に強い人が助言くれるといいなぁ←他力本願
リリース周期が遅くてすいません・・・

2009年1月13日火曜日

鯖メンテのお知らせ

最短で1日、最長で3日程度配布ページの鯖を停止します。
実はOSがWindowsXPだったので、WindowsServer2003に入れ替える作業を行うためです。
なるべく早く再稼動できるよう勤めます。
なお、このblogは普段どおりに動いていますのでDXライブラリPortableのソース、バイナリがほしい方はメールを下さい。
ご迷惑かけてすみません・・・
追記
14日1時くらいに復旧しましたー

2009年1月11日日曜日

my96soft

またしても記事を書くのが遅いのですが、my96softさんのブログの記事書き要員になりました。
my96softさんは学友で、私にPSPのアレな使い方を教えてくれた方です。
彼がいなかったらPSPでプログラミングなどということは考えなかったでしょう。
つまり、このブログもDXPも存在しなかったかも知れません・・・感謝感謝~
さて、いっこうに音楽再生機能が搭載されないDXライブラリPortableですが…音割れの激しいMP3形式のサンプルコードを安定させることに成功したので、次のメジャーアップデートあたりでPlayMusic系の関数が実装できそうです。
ちょっち言い訳とか愚痴とか。
サンプルコードがカーネルモード前提なんだもん。DXPはユーザーモードを前提として開発してるのに…SDKの関数は一部正常動作しないし!勘弁してくれwっていうかSDK同梱のMP3再生サンプルは普通に再生に失敗するしw音割れの原因は結局メモリースティックの読み込みに時間かかるだけだったwダブルバッファリングすげー効果てきめんだwwwww

2009年1月5日月曜日

文字コード

現在開発環境をUTF-8に移行中です。UTF-8ならPSPでゲームの一覧表示をしたときに日本語が表示されるというのが主な理由。
デバッグ文字列で構造体が国「体という風に化けていたのはShift-JISの0x5c問題でした。まあ、そんなこんなでCygwin環境とLinux環境の二つを作って使いやすいほうに移行します^^
余談ですが、LinuxはMIKO GNYO/Linuxというのを使っています。Ubuntuのカスタムで、名前から分かるとおり日本人がカスタマイズを行っています。なかなかイイですよw

2009年1月4日日曜日

あけましておめでとうございます。

あけおめことよろです。2009年が私にとっても皆様にとっても良い年になりますように…
Ver0.1.0をリリースしました。左下のリンクに配布場所があるので、そこからたどってDLしてください。
DeleteGraph関数忘れてたので追加したり、TransFlagを使えるようにしたり、他にも色々と内部的に高速化してたりです。DXライブラリPortable使用時の最高フィルレートが1億の大台にのりましたよ!やった!
あと、実は二、三日前から公開していたのですがライブラリの使い方、著作権関係のまとめ、PSPのハードウェア情報とかDXライブラリPortableの機能表とかをページにしました。
これらは配布場所にリンクがあるので一度目を通しておくと良いと思います。