Permalink to CrashMe/Trojan.DSBrickについて。
Permalink to 2chスレッド保存ページ NintendoDS(NDS)非公式開発 Part1 / Part2
Check disk for NDS Ver0.4 - Image viewer ver1.11 (stable)
Morning timer Ver1.2 (stable) - Cooking timer ver1.0 (stable)
MoonShell Version 1.71+1 (stable) / MoonShellの操作がわからないときとか。
DSMPlay Ver0.8 (stable) / for English / DSMPlayについての要望など
wifi VoiceChatClient Version 1.61
Moonlightはネット交友/非ネット交友を停止しました。これに関する適当なエントリ


2008年05月11日

自動テキストエンコード判定

素人アイデアながらナカナカ良い感じ~?(ウザイ
現在の言語ロケール(言語設定)に沿うフォントリストと照合しながら各エンコード変換成功率の重み付けで判定するので、たとえば英語フォントで日本語SJISテキストを読み込もうとしても(UTF系が失敗するので)8bitASCII(CP1252?)と判定されちゃうのですが、まぁ自分の言語圏以外のテキストを読もうとすること自体があまりないと思うので問題なしと判断しました。
逆に日本語フォントでASCIIファイルを読んでも(ASCII文字部分はASCIIとSJISで同一なので)SJIS判定になります。
とりあえず、8bitASCII/SJIS/UTF8/UTF16BE/UTF16LEに対応。実際の表示とかUIはいつものことだから後回しで、ちゃんとできるか心配だったUNICODE変換だけ。とりあえず思ったより重くなさそうで一安心。
実際にNDSでテキスト読むことはないと思うけどね!(禁句(笑

Category:[NDS] Permalink 2008年05月11日 22:24

2008年05月10日

画像表示…大体完了?

GIF…。GIFねぇ。嫌いなんだよねーって個人的な趣味趣向で決めちゃダメよねー。でも嫌いだからいいや。(マテ
最近傍補完だけどサムネイル(プレビュー)画像の平行生成と、表示領域をマスキングカーソルにして、サムネイルをタッチすれば直接移動できるようにした、とか。あと、キー入力がないときにバックグラウンドで細かく画像展開を続けるとかレジューム対応とか。
…うん。いや、うん。いいや。やりすぎ。
あ、拡張メモリ->メインメモリ->スワップファイルって流れはやっぱり遅かったので、拡張メモリ使わないことにしました。まる。
固定小数点の累積誤差には毎回苦労させられます。みんな経験あるよね!(苦笑

つぎテキスト表示ー。
エンコードの自動判定はいいのが思いつかなかったので、ファイル先頭64kbyteくらいを強引に対応フォーマット全てでUnicodeに変換しちゃって、エラーがあった文字数をカウントして一番エラーが少なかったエンコードでUnicodeにコンバートするように。
あ、BOM付きUTF16は最初に判定してLE/BEなUTF16にしちゃうけど。
と、言うのは楽だけど実際にどれくらい重いかなぁ。あんまり重いようだったら別の方法考えないとね。
複数エンコードが混在したテキストファイルとか、さすがに無理。やる気がおきなーい(笑

Category:[NDS] Permalink 2008年05月10日 21:40

キャッシュシステム。

てきとーな仮想メモリ(っていうかハンドル単位で自動ロード&ストアみたいな?)の実装が終わったよはやいようれしいよっ。
メインメモリが足りなくなったら拡張メモリにキャッシュして、拡張メモリも足りなくなったらスワップファイルに待避する感じです。
メモリハンドル一つ一つにライフタイムを持たせて使ったらカウンタを更新するようにしておいて、古いブロックを優先的に待避するようにしました。
ただ、拡張メモリからスワップファイルにコピーするときに、拡張メモリ->メインメモリ->スワップファイルという風にメインメモリを経由するので、キャッシュシステムを管理する負荷も考えると、効率的なスワップファイルメカニズムを実装するだけの方が速いのかもです。みんながみんな32MByteくらいの拡張メモリを差していてくれれば、拡張メモリ専用で作った方が速いのはわかっているのですが…悩みどころです。
いやまぁ今でも充分速いからどーでもいいといえばどうでもいいんですけどね。Jpeg展開時間の方がよほど大きくてキャッシュ負荷なんて誤差です。(笑

Category:[NDS] Permalink 2008年05月10日 02:06

2008年05月09日

RGB666続き。

私信:ところで茨城のかの人。地震大丈夫でした?

誤差拡散が要らないくらい充分綺麗でしたうれしー。NDS本来のRGB555と比べて、の話ですけど。画質重視しないパソコン用液晶パネルくらいかな。
RGBそれぞれ単色(あるいはグレースケール)の広範囲な緩いグラデーションでもない限り大丈夫と判断したので、粒子感(ノイズ感)が増加する誤差拡散は(結構重いし)やめちゃいました。
スワップファイルで巨大な画像でもシームレスなスクロールができるようになったので、今度はメインメモリの一部を仮想メモリにして高速化しようかなっと。100%なら今でも充分なのですが、縮小するとどうしても重くなるので。
とりあえずBMP/JPG/PNG/PSDに対応しました。PSDは趣味です。(笑
サムネイルどうしよっかなー。基本はリアルタイム生成だよね…。めんどく(以下略

SPCがちゃんと鳴るようになったのが地味に嬉しい。NSFはめっさC++依存なので今回は…泣く泣く削除しました。Cに書き直すのが大変!なくらいC++依存してた。
多言語でも長いファイル名が心配のなく作成できるようになったので、テキストビューワもやってみたいなー。ブックマークファイルが安心して作れるのは素敵です。EUCってなに? 主に日本語環境なんだしUTF8(or ASCII)/UTF16/S-JISだけ(ってほど簡単じゃなさそうだけど)自動判断できればいいよね。どうせサロゲートペア対応しないしー。BOM無しUTF16も自動判定できそうだけど必要性がなさそう。

Category:[NDS] Permalink 2008年05月09日 00:35

2008年05月07日

高精度化

いま、パラメータ調整したりしながらもっと綺麗な画像表示(具体的には色深度の高密度化?)を実装しようとしてるのですが、旧NDSって液晶の反応速度が思った以上に速いのね。っていうかNDSLiteが反応速度より明度を重視したってことなのかもだけど。
読んでてわかる人はわかると思うけど、実際にはRGB555(理論値32768色)がRGB666(理論値262144色)になる…いやほんとに1bit変わるだけで全然見た目が違うんだってほんとに。もちろん誤差拡散も入れるけど。(元々RGB888だから関係ないけど)PSP液晶なら残像が多いから1/4フリップでRGB777もいけたのかもね。何にしても個体差激しいのはきびしいです。
今までは横方向だけだったけど、マトリックスな誤差拡散も試してみようかな。
きちんとVSync同期でフリップすれば充分使えそう。楽しみ。
あー。ガンマ補正は…バックライト明度で変わっちゃうので面倒くさそう。
簡単な仮想メモリマネージャ(とスワップファイル)を作って、Jpegとかpngのデコードが重い画像ファイルも再展開無しでスクロールできるようになったらいいなっ。拡張メモリ使うよりは遅いけど持ってない人の方が多いと思うしー。
テキスト表示でアンチエイリアスフォントとSub-pixel(Windows風に言うとClearType)やってみたんだけどー。NDS液晶のドットピッチが荒すぎて、なんか画面がカラフルに。(苦笑
ベクターフォントからちゃんと作れば綺麗なクリアタイプフォントが作れるのかなぁ…。メイリオとか綺麗なのかな。気になる…けど後回しかにゃー。

Category:[NDS] Permalink 2008年05月07日 21:34

2008年05月03日

Check disk for NDS Ver0.4

checkdiskfornds04.zip (1,517,166byte)

This application only in a Japanese mode.

NDS単体で動く簡易ディスクチェックアプリです。ディスク修復機能はありません。
主に、一見正常動作しているように見えるファイルシステムエラーを検出するのが目的です。
特に問題がなさそうなので公開しますが、CF/SDを思いっきり深く触りまくるので怖い人は起動しないで下さいね。修復機能がないので大丈夫だと思いますが念のため。

--- メディア読み書き速度計測結果

ファイル名(種類/容量他) 平均複数リード速度(block) 平均複数ライト速度(block)
TDK_CF16MB_TCO16H_MPCF.txt 1.233MB/1sec 0.860MB/1sec
GREENHOUSE_CF6GB_GH-CF6GDX_MPCF.txt 3.242MB/1sec 1.621MB/1sec
PQI_SD1GB_MM4GR01CUACU-PA_EZ5S.txt 4.567MB/1sec 0.064MB/1sec
Apacer_MicroSDHC4GB_M3REALJ01.txt 1.392MB/1sec 0.127MB/1sec
Apacer_MicroSDHC4GB_M3REALJ14.txt 5.060MB/1sec 2.608MB/1sec
SanDisk_MicroSDHC4GB_M3REALJ01.txt 1.952MB/1sec 0.357MB/1sec
SanDisk_MicroSDHC6GB_M3REALJ01.txt 1.981MB/1sec 0.362MB/1sec
SanDisk_MicroSDHC6GB_M3REALJ14.txt 5.121MB/1sec 3.762MB/1sec
SanDisk_MicroSDHC8GB_M3REALJ16.txt 5.121MB/1sec 3.689MB/1sec
Transcend_MicroSD2GB_M3REALJ01.txt 0.831MB/1sec 0.119MB/1sec
Transcend_MicroSD2GB_M3REALJ14.txt 5.072MB/1sec 0.808MB/1sec
Transcend_MicroSD2GB_R4TF.txt 3.072MB/1sec 0.786MB/1sec
A-DATA_MicroSD2GB_M3REALJ14.txt 5.135MB/1sec 2.565MB/1sec
Kingston_MicroSD1GB_M3REALJ14.txt 5.067MB/1sec 0.806MB/1sec
Apacer_MicroSD2GB_R4TF.TXT 3.075MB/1sec 1.221MB/1sec

---

Version 0.4 2008/05/03

FATドライバを作り直して、簡易ディスクチェックを高速化しました。読み書き速度測定に影響はありません。
キークリック音が重なるとノイズがでることがあるバグを修正しました。
SDHCに対応しました。
画面メッセージを調整しました。

FAT検査内容に変更はないので、内容について詳しく知りたいひとは、Ver0.1のエントリを参照して下さい。
Permalink to Check disk for NDS Ver0.1

Category:[NDS] Permalink 2008年05月03日 04:59 | コメント (1)

2008年04月14日

Image viewer ver1.11

imgview111.zip (3,799,628byte)

imgview11.zip

Version 1.1 2008/04/14

Various, detailed corrections.
When the IPK file was made, the bug that EXIF information is not turned off was corrected.
The drag & drop of the folder can be done to 'img2ipk.exe'. (auto convert & automatic termination)
The IPK file search was optimized and the start was sped up.
The FAT driver was optimized. The simple check disk was more fast.

Version 1.11 2008/04/15

An extremely big picture file cannot be converted with img2ipk.exe. The bug that memory shortage occurred was corrected.
The bug that had failed in the file search of imgview.ini/imgview.mp3/reset.mse was corrected.
The bug that soft reset was not able to be done was corrected.

Version 1.1 2008/04/14

スライドショーの単画面ランダムで「単画面フラッシュ」を使わないように変更しました。(@imgview10test2)
スライドショーで「順再生でループしないで最後の画像にカーソルがあるときは最初から再生する」ように変更しました。(@imgview10test2)
サムネイルモードのプレビュー画面にファイル情報を表示する設定を追加しました。(@imgview10test3)
imgview.iniの[CustomConfig]セクションにThumbnailMode_ShowFileInfo項目を追加しました。(@imgview10test3)
IPKファイル作成時にEXIF情報をOFFにできないバグを修正しました。
img2ipk.exeにフォルダをドラッグ&ドロップしたら、自動的に変換を開始して、変換が終了したら閉じるようにしました。
IPKファイル検索を最適化して起動を高速化しました。
FATドライバを作り直して、簡易ディスクチェックを高速化しました。

Version 1.11 2008/04/15

img2ipk.exeで、極端に大きな画像ファイル(5000x5000pixels以上など)を変換しようとするとメモリ不足が発生していたバグを修正しました。
imgview.ini/imgview.mp3/reset.mseの三種類のファイル検索に失敗していたバグを修正しました。
ソフトリセットができないバグを修正しました。

Category:[NDS] Permalink 2008年04月14日 02:06 | コメント (11)

2008年04月03日

Morning timer Ver1.2

morningtimer12.zip (2,221,317byte)

Version 1.2 2008/04/03

The play time can have been change by 'More settings of the timer settings'.
The FAT driver was optimized. The simple check disk was more fast.

Version 1.2 2008/04/03

自動停止時間を「タイマー設定の詳細ページ」で設定できるようにしました。
メモリ割り当てを最適化して、大量のファイルが入ったフォルダを開いたときに停止しにくくなったつもり。
FATドライバを作り直して、簡易ディスクチェックを高速化しました。

Category:[NDS] Permalink 2008年04月03日 00:52

2008年01月21日

あれ?すごく大きく勘違いしてた?

ldr r0,[r1,r2,lsl #2]
って何クロック?
1クロックとインターロックがいっこだけだと思ってたけど、2クロック+1インターロックっぽい?
うー。かなり多用していたので全体的な見直しが必要な予感。めんどくさーい。…ほんとにめんどくさいかも。
ARM_DDI_0222AJ.pdfの8.1 命令サイクル数一覧には(オフセットシフトを伴うLDRは)2クロックと書いてある気がする(のを今日見つけた(涙))けど、同PDFの8.12 レジスタロードにはオフセット絡みの話は書いてない…気がする。うー。自分で調べろってことなのかな。調べよっと。
っていうか命令/データバスの非シーケンシャルサイクルとか内部サイクルってなにー。こっちはきっと説明されても理解できなさそうだからいいや。(笑

メモ。
ldr r0,[r1,r2] は1クロック+1インターロック。
ldr r0,[r1,r2,lsl #2] は2クロック+1インターロック。
ldrb/ldrh/ldrsh r0,[r1,r2] は1クロック+2インターロック。
ldrb/ldrh/ldrsh r0,[r1,r2,lsl #2] は不明。(2クロック+2インターロック?)
というわけで、可能な限りldrbを採用して力の限りインターロックを回避するってことで。

ldrb r0,[r1],#1 ; r0実行中, r1未使用, r2未使用
ldrb r1,[r1],#1 ; r0バイトローテートユニット使用中, r1実行中, r2未使用
ldrb r2,[r1],#1 ; r0書き込み中, r1バイトローテートユニット使用中, r2実行中
and r0,r0,#ff ; r0完了, r1書き込み中, r2バイトローテートユニット使用中
add r0,r1 ; r0完了, r1完了, r2書き込み中
add r0,r2 ; r0完了, r1完了, r2完了
は6クロック。2インターロックは1クロックずつldrbを平行しても大丈夫。strと平行しても平気。

たぶん位取りオフセット、っていうのは、str r0,[r1,lsl #2] とかのことだと思う。
位取りオフセットを使うときは2クロック、それ以外は1クロック。書き込みの方が速いのね。考えてみれば当たり前なんだけど、なんとなく書き込みの方が遅い気がしてました。

Category:[NDS] Permalink 2008年01月21日 22:39

2007年12月07日

Morning timer Ver1.1

morningtimer11.zip (2,530,188byte)

morningtimer11_changeplaytime.zip Change play time tool.
Please forgive my dirty English.

Version 1.1 2007/12/07

When the loose connection of the disk is detected, halt is done with the warning sound. (in The timer executing.)
The battery power was saved by various optimizations.
About the disk check when starting. The bug that misjudged a normal disk to the error disk was corrected.

Version 1.1 2007/12/07

タイマー実行中に定期的にディスクをチェックして、接触不良などのエラーを検出したら警告音を鳴らし続けながら機能停止するようにしました。
バックライト消灯中は画面更新しないようにしてバッテリーを節約しました。
何カ所かアセンブラで最適化してCPU負荷を減らしました。(レスポンス改善とバッテリー節約と高音質mp3音飛び対策)
沈黙日リスト設定にテキストファイルで暫定対応しました。
起動時の簡易ディスクチェックで正常なファイルシステムをエラーと誤認識するバグを修正しました。

追加修正案(Ver1.2で適用予定)
・沈黙日リスト設定のGUIを作りたい。

Category:[NDS] Permalink 2007年12月07日 20:31 | コメント (22)

2007年12月06日

Check disk for NDS Ver0.3

checkdiskfornds03.zip (1,521,705byte)

checkdiskfornds02.zip

This application only in a Japanese mode.

NDS単体で動く簡易ディスクチェックアプリです。ディスク修復機能はありません。SDHCには対応していません。
主に、一見正常動作しているように見えるファイルシステムエラーを検出するのが目的です。
特に問題がなさそうなので公開しますが、CF/SDを思いっきり深く触りまくるので怖い人は起動しないで下さいね。修復機能がないので大丈夫だと思いますが念のため。

--- メディア読み書き速度計測結果

ファイル名(種類/容量他) 平均複数リード速度(block) 平均複数ライト速度(block)
TDK_CF16MB_TCO16H_MPCF.txt 1.233MB/1sec 0.860MB/1sec
GREENHOUSE_CF6GB_GH-CF6GDX_MPCF.txt 3.242MB/1sec 1.621MB/1sec
PQI_SD1GB_MM4GR01CUACU-PA_EZ5S.txt 4.567MB/1sec 0.064MB/1sec
Apacer_MicroSDHC4GB_M3REALJ01.txt 1.392MB/1sec 0.127MB/1sec
Apacer_MicroSDHC4GB_M3REALJ14.txt 5.060MB/1sec 2.608MB/1sec
SanDisk_MicroSDHC4GB_M3REALJ01.txt 1.952MB/1sec 0.357MB/1sec
SanDisk_MicroSDHC6GB_M3REALJ01.txt 1.981MB/1sec 0.362MB/1sec
SanDisk_MicroSDHC6GB_M3REALJ14.txt 5.121MB/1sec 3.762MB/1sec
SanDisk_MicroSDHC8GB_M3REALJ16.txt 5.121MB/1sec 3.689MB/1sec
Transcend_MicroSD2GB_M3REALJ01.txt 0.831MB/1sec 0.119MB/1sec
Transcend_MicroSD2GB_M3REALJ14.txt 5.072MB/1sec 0.808MB/1sec
Transcend_MicroSD2GB_R4TF.txt 3.072MB/1sec 0.786MB/1sec
A-DATA_MicroSD2GB_M3REALJ14.txt 5.135MB/1sec 2.565MB/1sec
Kingston_MicroSD1GB_M3REALJ14.txt 5.067MB/1sec 0.806MB/1sec
Apacer_MicroSD2GB_R4TF.TXT 3.075MB/1sec 1.221MB/1sec

---

Version 0.3 2007/12/20

起動時の簡易ディスクチェックで正常なファイルシステムをエラーと誤認識するバグを修正しました。

FAT検査内容に変更はないので、内容について詳しく知りたいひとは、Ver0.1のエントリを参照して下さい。
Permalink to Check disk for NDS Ver0.1

Category:[NDS] Permalink 2007年12月06日 04:35

2007年11月29日

Check disk for NDS Ver0.1

checkdiskfornds01.zip (1,500,177byte)

This application only in a Japanese mode.

NDS単体で動く簡易ディスクチェックアプリです。ディスク修復機能はありません。SDHCには対応していません。
主に、一見正常動作しているように見えるファイルシステムエラーを検出するのが目的です。
特に問題がなさそうなので公開しますが、CF/SDを思いっきり深く触りまくるので怖い人は起動しないで下さいね。修復機能がない(読み込みしかしない)ので壊れた状態が更に悪化することはないと思いますが一応念のため。
大量にファイルをコピーしたり、NDS上で新規ファイルを作成したりしたあとに手軽にチェックできたらいいなと思います。

基本チェック項目は、FAT12/16/32検査、重複クラスタの検出と断片化ファイル検出、クラスタリンクの異常切断、ディレクトリエントリ内ファイルサイズと実際のファイルサイズの相違、全ファイルに対してのOpen/Closeテスト、長いファイル名と長いフォルダ名の異常なUnicodeエントリ検出、超簡易書き込みテストを実行します。
おまけとして、ディスク詳細情報、ディスク使用状況、断片化ファイルリストの表示ができます。
このアプリで異常が無くても、完全に正常なディスク状態を保証するものではありません。
なにかおかしいなと思ったら、がんばって修復しようとしないで、フォーマットしちゃったほうがいいと思います。こんなアプリ作っておいてなんですが。(苦笑

Category:[NDS] Permalink 2007年11月29日 00:54

2007年11月21日

Morning timer Ver1.04

morningtimer104.zip (2,525,420byte)
Please refer to perma link of upper for updated version.

Version1.0/1.01/1.02/1.03/1.04のセーブファイルは互換性があるのでそのままで大丈夫です。

morningtimer103.zip (2,525,270byte)
morningtimer102.zip (2,525,316byte)
morningtimer101.zip (2,526,311byte)
morningtimer10.zip (2,475,208byte)

Version 1.0 2007/11/21

The interrupt processing of ARM7 is reviewed, stability has been improved.
The backlight setting item was added.
The bug to which the folder/file icon was not displayed by the file selection dialog was corrected.
Folder name and file name was sorted by the file selection dialog.
The folder that doesn't contain the music file is excluded by the file selection dialog.
The volume change curve has been adjusted more naturally.
The frequency conversion was made high-quality. 'Nearest neighbor' is improved to 'Interpolation'.
The bug with a wrong AM/PM judgment was corrected.
The resource was saved by compressing the icon file with TGF.
The resource was saved by compressing the sound effect file with TTA.
Soft reset of the START button is disregarded while executing the timer.

Version 1.01 2007/11/23

The development environment was updated to DevKitProR21.

Version 1.02 2007/11/24

The bug that begin on debug mode was corrected.

Version 1.03 2007/11/24

The bug that the mp3 decoder halted occasionally was corrected.

Version 1.04 2007/11/27

Because the end of the month judgment was wrong, it corrected the bugs.

Version 1.0 2007/11/21

ARM7の割り込み処理を見直して、安定性を向上しました。
タイマー開始時からの(スヌーズ時間を含めた)経過時間を表示するようにしました。
ふたを閉じた時とバックライトOFF時の電源LEDの状態を、点灯/点滅/消灯から選べるようにしました。
ファイル選択ダイアログでフォルダアイコンが表示されないバグを修正しました。
ファイル選択ダイアログでフォルダ名/ファイル名をソートするようにしました。
ファイル選択ダイアログで音楽ファイルを含まないフォルダは除外するようにしました。
音量変化カーブを少しだけ不自然じゃないように調整しました。
開始BGMが終わったときにバックライトが点灯してしまうバグを修正しました。
周波数変換に最近傍補間ではなく線形補間を使って高音質化しました。
時間設定モードで数字とボタンがずれているバグを修正しました。
タイマー実行中のAM/PM判定が間違っていたバグを修正しました。
アイコンファイルをTGFで圧縮してリソースを節約しました。
効果音ファイルをTTAで圧縮してリソースを節約しました。
タイマー実行中はSTARTボタンのソフトリセットを無効にするように変更しました。
StartBGM設定中のファイル選択ダイアログでキャンセルするとタイマー設定画面まで戻ってしまうバグを修正しました。

Version 1.01 2007/11/23

StartBGM設定中のファイル選択ダイアログでキャンセルするとタイマー設定画面まで戻ってしまうバグを修正しました。
開発環境をDevKitProR21に更新しました。

Version 1.02 2007/11/24

アプリケーション開始状態がデバッグモードのままだったバグを修正しました。

Version 1.03 2007/11/24

長時間mp3再生で不定期に停止する可能性があるバグを修正しました。

Version 1.04 2007/11/27

月末判定処理の致命的なバグを修正しました。
スヌーズ待機時間設定の文字色が暗すぎるバグを修正しました。

追加修正案(Ver1.1で適用予定)
・全てのタイマーを沈黙させる日を複数指定できるようにしたい。
・タイマー実行中に定期的にディスクをチェックして、接触不良などのエラーを検出したら警告音を鳴らし続けながら機能停止する。(完了)

Category:[NDS] Permalink 2007年11月21日 15:52 | コメント (9)

2007年11月16日

Morning timer Ver0.4

morningtimer04.zip
Please refer to perma link of upper for updated version.

まだ実地テストが足りていません…。なにか不具合があったら教えて下さい。

Version 0.4 2007/11/16

First public update.
最初の公開バージョン

スキン以外で思いつく限りの機能を詰め込めたと思います。ユーザビリティとか度外視で。(苦笑
普段はできるだけ簡単にわかりやすく誰でも使えるように、を重視してUI設計するのですがこういうの(重装備多機能系)も楽しいですね。

Category:[NDS] Permalink 2007年11月16日 02:21 | コメント (10)

2007年11月15日

Morning timer Ver0.3 Test

morningtimer03test.zip
Please refer to perma link of upper for updated version.

実地テストが足りていないので実用はしないで下さい。寝坊しても知りません。(笑

未実装リスト

・タイマー本体の見た目
・スヌーズが働かないことがあるみたい?
・無効なタイマーの設定内容を変更しようとしたら警告を出す。(自動的に有効に?)
・スリープ中は電源LEDを点滅ではなく消灯にする。(消灯できたはずだけどしていいのか微妙…)
・あ、あとタイマー数は8個じゃなくて5個くらいで十分かなと思うのですがどうでしょうか。

完了リスト

・時計がバージョン情報に重なっている。
・設定中の処理が(最適化してないので)重すぎて、タッチパネルの反応が鈍くなっている。
・全体的な画面描画の最適化をぼちぼちと。
・バックライトコントロール。
・閏年の計算が間違っているのでもう一度見直す。

Category:[NDS] Permalink 2007年11月15日 03:38

2007年11月14日

自分で使ったら、

(動作テストを兼ねて)初めて自分で使ったのですが、起きるときにすごくびっくりしてしまったので私が欲しい機能追加中。
間に合えば今日アップしたいですが明日になるかも。や、明日にします。ゆっくり適当にだらーっと。(笑

Category:[NDS] Permalink 2007年11月14日 22:27

2007年11月11日

Morning timer Ver0.2 Test

morningtimer02test.zip
Please refer to perma link of upper for updated version.

とりあえずまだ全然テストしてないので実用はしないで下さい。寝坊しても知りません。(笑

Version 0.2 2007/11/10

とりあえず一通り動くかもしれないテスト。
過去の日付や曜日未設定のタイマーがあったら警告画面を表示するようにしました。
タイマー本体を実装しました。(全然テストが足りていません)
カレンダーの現在年月を押すと、今月に移動するようにしました。

未実装リスト

・タイマー本体の見た目
・振動パック対応
・対応ファイルが入ってないフォルダしか含まないツリーはファイルセレクタに表示しないように。
・全体的な画面描画の最適化をぼちぼちと。
・重くて音が途切れるので最適化を。

完了リスト

・年月日/日月年/月日年を切り替えられるようにする。
・バッテリー低下警告音のON/OFF設定追加。

改造済みPSPをもらったので昔サイバーショットにくっついてきた64MByteメモステを刺して。刺して、洞窟物語やってます。やりまくりです。もちろんWindows版も昔クリアしました。
(2Dメトロイドほどじゃないけど)ソーサリアン並みに面白いので未プレイの人はぜひぜひ遊んでみて下さい。FM音源じゃなくてサンプリング音源だけどサウンドトラックもすごく味があって好きです。SCC音源を豪華にした感じ…って私のSCC観がおかしい。
残像残りまくりだったりボタンがギシギシ言ったりアナログキーが激しく邪魔だったりやっぱりPSPでも処理落ちしたりしますが面白いですっ。
一気に十時間くらいプレイしていま最後の洞窟ですむずかしー。なぜか今年後半はゲーム三昧。

Category:[NDS] Permalink 2007年11月11日 00:10 | コメント (3)

2007年11月03日

Morning timer Ver0.1 User interface preview

morningtimer01.zip
Please refer to perma link of upper for updated version.

見た目とか設定項目のプレビュー版です。
上画面の設定状況一覧を書いてみました。「無効」って文字を書くか空にするか悩んだのですがどうでしょうか。(細かいところばかり気になって(笑

未実装リスト

・タイマー本体
・対応ファイルが入ってないフォルダしか含まないツリーはファイルセレクタに表示しないように。
・全体的な画面描画の最適化をぼちぼちと。
・カレンダーに今月に戻るボタンを追加。(良い場所が思いつかないので流すかも)

作業が遅い文句は任天堂に言ってくださいマリオギャラクシーおもしろすぎです。あんなに斬新な見た目なのに安心してできるゲームって(もちろん良い意味で)貴重よねー。システムはマリオ64ベース、ストーリーはペーパーマリオ風で安心です。SD解像度に何の問題があるんでしょうね。そりゃPGR4がSD解像度だったらしょんぼりですけど。

Category:[NDS] Permalink 2007年11月03日 17:17 | コメント (10)

2007年10月28日

あり得ないから気楽に書けるんです。

誰か(営利目的じゃなくて)RVDS買ってタダで譲ってくれませんか?
MoonShellVer1.71を最近少し(本当に少しですが)手慣れてきたアセンブラで書き直すだけで、フルスクリーン(4:3/256x192/mpeg1video/384kbps)が20fpsから24fpsくらいにもしかしたらできるかもできないかも~くらいで。
あ、金額が金額なので絶対ありえない単なる日記。とりあえずビットストリームのVLCデコードとiDCTと動き補償とYUV->RGB変換辺り…かな。言うだけならタダだし~。
別に24fpsじゃなくて20fpsのまま高画質(768kbps位?)ってのもできると思います。思うだけー。
360面白いよ360。誘惑に負けて目覚まし時計が開発停滞中。や、少しずつは手を入れているのですが。あまりの効率の悪さ(進行の遅さ)に笑ってしまうくらいですニュルブルクリンク長すぎあはは。

Category:[NDS] Permalink 2007年10月28日 16:10

2007年10月21日

もっと早く知っていれば…

きっとあと4フレームは稼げたと思うのに…。もちろんアセンブラと併用して、だから半年前の話をしてもまぁ後悔ってやつね。いかにビットストリームのVLCデコードが重いかがよくわかりました。
というか秋葉原に寄る用事があったのでふらっとPGR4買ってしまったおもしろーい。すべる車体おもい止まらなーい(色々な意味で)。ニュルブルクリンクは走れないことを楽しむコースですよね全然走れないーー。車体が横滑りするのが楽しくて仕方ないです。チェーンしないで雪山道走ったトラウマがガードレール怖い。(笑
あっさり五時間ほど喰われました封印。とりあえず今年中に目覚まし時計終わらせたいです。英語版メトロイドプライム3もあるしはやくやりたいー。
あ、プロファイラ。こんな感じのが手軽に出せるようになったんです。
MoonShellVer1.61ベースのlibmpeg2ライブラリで、mpeg1videoを2フレームデコードした様子です。

boot m1v decoder profile Version 0.0
Oct 18 2007 10:42:23 GMT+09:00
DevKitARMr20 + libnds-20070127

FreeMem=1829888byte
mainloop.
ProcSeq:Width=256,Height=192
ProcSeq:ChromaWidth=128,Height=96
info->display_fbuf==NULL.
--- start profile log
1us 2calls 0us/1call 0x02007DB8 [.text 00000044 mpeg2_buffer]
1us 2calls 0us/1call 0x02009418 [.text 0000004c info_user_data]
1us 2calls 0us/1call 0x0200D5E4 [.text 00000028 mpeg2_cpu_state_restore]
1us 2calls 0us/1call 0x0200D60C [.text 00000028 mpeg2_cpu_state_save]
2us 2calls 1us/1call 0x02009464 [.text 0000004c mpeg2_reset_info]
2us 2calls 1us/1call 0x0200CF90 [.text 00000068 get_quantizer_scale]
3us 2calls 1us/1call 0x020097F0 [.text 00000114 finalize_matrix]
5us 2calls 2us/1call 0x02008E58 [.text 000000b4 mpeg2_set_fbuf]
5us 2calls 2us/1call 0x0200D580 [.text 00000064 bitstream_init]
6us 2calls 3us/1call 0x02005DE8 [.text 00000078 _ZNK13CglScreenMain10GetVRAMBufE10EScrMainID]
7us 2calls 3us/1call 0x0200CA48 [.text 00000154 mpeg2_init_fbuf]
9us 2calls 4us/1call 0x02009E00 [.text 000000ec mpeg2_header_picture_start]
10us 2calls 5us/1call 0x02008D4C [.text 0000010c mpeg2_header_picture]
12us 2calls 6us/1call 0x02003D78 [.text 000000c8 MemCopy8CPU]
18us 2calls 9us/1call 0x02003B74 [.text 000000dc MemCopy16CPU]
19us 2calls 9us/1call 0x020095C0 [.text 000001b0 mpeg2_header_slice_start]
19us 2calls 9us/1call 0x0200CFF8 [.text 00000318 slice_init]
24us 2calls 12us/1call 0x02000C50 [.text 0000008c _ZN7Clibmpg14ProcReadBufferEv]
29us 2calls 14us/1call 0x02009904 [.text 00000398 mpeg2_header_picture_finalize]
30us 2calls 15us/1call 0x020082C0 [.text 00000254 mpeg2_parse_header]
44us 8calls 5us/1call 0x020085C4 [.text 000001c8 mpeg2_parse]
212us 296calls 0us/1call 0x0200CDCC [.text 0000003c bound_motion_vector]
368us 209calls 1us/1call 0x0200CCE8 [.text 000000e4 get_coded_block_pattern]
394us 296calls 1us/1call 0x0200CE08 [.text 00000188 get_motion_delta]
501us 4calls 125us/1call 0x0200878C [.text 000000bc prescale]
602us 292calls 2us/1call 0x0200D310 [.text 00000270 get_macroblock_modes]
1098us 48calls 22us/1call 0x0200B0D8 [.text 000001a4 MC_put_xy_8_c]
1189us 66calls 18us/1call 0x0200C090 [.text 00000108 MC_put_x_8_c]
1424us 74calls 19us/1call 0x0200B998 [.text 00000124 MC_put_y_8_c]
1691us 2calls 845us/1call 0x02003A1C [.text 000000c4 MemCopy32CPU]
2066us 2calls 1033us/1call 0x0100121C [.itcm 00000b54 mpeg2_slice]
2298us 29calls 79us/1call 0x0200BABC [.text 000001e4 MC_put_y_16_c]
2440us 31calls 78us/1call 0x0200C198 [.text 000001c8 MC_put_x_16_c]
2534us 163calls 15us/1call 0x010008B8 [.itcm 000000d4 motion_zero_420]
2545us 30calls 84us/1call 0x0200B27C [.text 000002e4 MC_put_xy_16_c]
3169us 148calls 21us/1call 0x01000FF8 [.itcm 00000224 motion_mp1]
5968us 6calls 994us/1call 0x02007DFC [.text 000000ac copy_chunk]
6230us 2calls 3115us/1call 0x02000CDC [.text 00000108 _ZN7Clibmpg10ProcDecodeEv]
6654us 434calls 15us/1call 0x0200C630 [.text 00000088 MC_put_o_8_c]
15442us 221calls 69us/1call 0x0200C6B8 [.text 000000c8 MC_put_o_16_c]
15768us 873calls 18us/1call 0x01000AF8 [.itcm 000002f8 get_mpeg1_non_intra_block]
23502us 438calls 53us/1call 0x0200CB9C [.text 000000ec slice_intra_DCT]
26737us 2calls 13368us/1call 0x020007AC [.text 00000218 _ZN7Clibmpg25YUV420toBGR15Fix_CopyFullEPKhS1_S1_Pt]
36915us 873calls 42us/1call 0x0200CC88 [.text 00000060 slice_non_intra_DCT]
--- end profile log

何千回も呼ばれる関数(iDCTとか動き補完の一部とか)は除外してあります。
こんなの見せられたら最適化したくなっちゃうじゃないですか。しないけど。してもRVDSには勝てない…運が良くて同じくらいじゃモチベーションがねー。
RVDS使ってMoonShellVer1.71をもっと速く、ならもう馬鹿みたいに最適化始めちゃうんでしょうけど。
なにはともあれ目覚まし時計。PGR4はダメ。麻薬過ぎ。封印なのです。

Category:[NDS] Permalink 2007年10月21日 08:46

2007年10月17日

Image viewer ver1.0

ImageViewer was updated. Please refer to URL in the upper part of the page.

imgview10.zip (3,239,020byte)

Version 1.0 2007/10/17

Improved to use the memory more efficiently.
The simple disk check and the ARM9 memory check were added to boot-up.
PSRAM of 'EZ 3in1 Expansion Pack' can be used as an caching memory.
The IPK file that exceeds 8 files can be treated.
The view mode was sped up.
The DLDI driver was updated.
A small bug that existed in img2ipk.exe was corrected.
'Large size limitation' of img2ipk.ini was removed.
The starting position and the end position of the slide show are resumed.
The customjpeg mode of the IPK format has been improved. Please encode again with img2ipk.exe.

Version 1.0 2007/10/17

customjpegデコーダが極希に化けるバグの修正しました。
簡易ディスクチェックの追加と、簡易起動メモリ状態チェックを追加しました。
メモリを600kbyteほど無駄に使っていたバグを修正しました。
imgview.iniの標準設定を、拡張メモリが無くても二画面モードを有効にするように変更しました。
'EZ 3in1 Expansion Pack'のPSRAMを拡張メモリとして使えるようにしました。(ソフトリセットは併用できません)
読み込み可能最大ファイル数を512個にしました。
ファイルリストをスクロールできるようにしました。(キー入力のみ可、スクロールバー無し)
ファイル名ソートを、パス+ファイル名ソートにしました。
ファイルセレクタの横画面モードを実装しました。imgview.iniにFileSelectVertical項目を追加しました。
メモリコピーでアライメントに関する勘違いをしていたバグを修正しました。
ビューモードを高速化しました。
DLDIドライバを更新しました。
img2ipk.exeの細かいバグを修正しました。
img2ipk.exeのオプションのプレビュー圧縮でNDS液晶に近い画像を再現するするようにしました。
img2ipk.iniの初期設定の最大サイズ制限を無くしました。
スライドショー再生中に蓋を閉めるとポーズするようにしました。
スライドショー再生時のBGM設定で、IPKファイル個別設定もimgview.mp3も見つからなかったときに再生するフォルダを指定できるようにしました。
imgview.iniの[System]セクションにGlobalMP3Folder項目を追加しました。
スライドショー開始/終了位置をレジュームするようにしました。最初から再生するオプションを削除しました。

IPKフォーマットのcustomjpegを改良しました。
Version1.0付属img2ipk.exeを使ってcustomjpeg(標準設定)で作成するとYUV411モードで圧縮します。
YUV411モードは、従来のYUV111モードよりも、圧縮率、画質共に良好だと思います。
従来のcustomjpegで圧縮したIPKファイルも表示できます。
新しく作ったIPKファイルはImageViewerVer0.7以前では表示できません。
ZLIBモードに変更はありません。

次期改善案リスト

・スライドショーで「単画面ランダム」を追加する。
・スライドショーで順再生/ループOFFにした場合、最後まで再生すると終了位置がレジュームされて最後の一枚しか表示されなくなる仕様を修正する。(ループOFFのときは、開始位置を無視する…とか?)

Category:[NDS] Permalink 2007年10月17日 02:31 | コメント (30)

2007年10月15日

せっかくなのでDSMに突っ込んでみた。

結果としては要らないってことがわかっただけした。
5秒くらいの動画を24fpsでエンコードしました。
元を知っている人はわかると思いますが、動きがほとんど無いシーンなのでDPGとDSM2にとても有利ですが比較ってことで。
フレーム間差分を入れてみました。めっさDSM3に有利な条件になってしまったけどいいや。

まだまじめに最適化してないけど、ぬるっとデコーダ書いてみたら22fpsくらい。
DPGと比べてファイルサイズが3倍くらいで画質が(比較すればそれなりに)良くて、fpsがもうちょっと(25fps位?)出るフォーマット…。うん需要ないよね!(笑


DPG(mpeg1video 384kbps) 214kbyte


DSM1 3621kbyte
DSM2 1861kbyte


DSM3(customjpeg12%) 247kbyte


DSM3(customjpeg25%) 263kbyte


DSM3(customjpeg50%) 299kbyte


DSM3(customjpeg75%) 334kbyte


DSM3(customjpeg100%) 359kbyte

感覚的にはMotionJpegに近い感じで。
中途半端すぎ…ますよね。デコーダ書く労力に見合わなーい。(費用対効果を考えたら最初からやるなとか正論過ぎて(以下略(笑

最近色々手慣れてきたアセンブラでDPGデコーダを書き直す方がよほど意味がありそうなんだけどー。だけどー。ま、70万も出せるかってだけの話です。車買えちゃうヨ。

せっかくだからOP全部(約90秒)を24fpsでエンコードしてみた。
DPG(mpeg1video 384kbps) 6080kbyte
DSM1 48572kbyte
DSM2 34381kbyte
DSM3(customjpeg50%) 11204kbyte
うーん。中途半端。DPG対DSM3には、DPG対DSM1/2みたいな劇的な高画質感はないし、DSM3を高画質化するならじゃぁDSM1/2でいいじゃんってファイルサイズになりそうだし…。それでもDSM2の半分くらいにはなると思うけど、結局DSM2よりかなり重い(DPGと比べれば全然軽いけど)から30fpsとか無理だし…。
破棄ですね破棄。八方塞がりだー。

Category:[NDS] Permalink 2007年10月15日 04:18

2007年10月13日

Image viewer test 20071014

思ったより色々してしまいましたが、一応最終版っぽいのができたのでアップ。
本当にたくさんのコメントを下さったユーザの皆様に感謝々々です。

Image viewer ver1.0をアップしました。ページ上部の固定リンクから辿って下さい。

imgviewtest20071014.zip (3,482,708byte)

2007/10/14 19:35 修正:img2ipk.exeでデバッグモードをONのままアップしていたのを修正しました。(メッセージを表示せずに作成できていたipkファイルはそのままでOKです)

2007/10/16 00:02 修正:特定の画像ファイルで範囲チェックエラーが発生するバグを修正しました。

customjpegフォーマットでかなり大きな勘違いをしていました。
test20071013で作成したipkファイルは破棄してください。
詳細については下のほうを参照してください。

・customjpegデコーダが極希に化けるバグの修正しました。
・簡易ディスクチェックの追加と、簡易起動メモリ状態チェックを追加しました。
・メモリを600kbyteほど無駄に使っていたバグを修正しました。
・imgview.iniの標準設定を、拡張メモリが無くても二画面モードを有効にするように変更しました。
・EZ3in1拡張パックのPSRAMを拡張メモリとして使えるようにしました。(ソフトリセットは併用しないでください)
・読み込み可能最大ファイル数を512個にしました。
・ファイルリストをスクロールできるようにしました。(キー入力のみ可、スクロールバー無し)
・ファイル名ソートを、パス+ファイル名ソートにしました。
・ファイルセレクタの横画面モードを実装しました。imgview.iniにFileSelectVertical項目を追加しました。
・メモリコピーでアライメントに関する勘違いをしていたバグを修正しました。
・ビューモードのスクロールを高速化しました。
・ビューモードの25%/50%縮小表示を高速化しました。
・DLDIドライバを更新しました。
・img2ipk.exeの細かいバグを修正しました。
・img2ipk.exeのプレビュー圧縮でNDS液晶に近い画像を再現するするようにしました。
・img2ipk.iniの初期設定の最大サイズ制限を1600x2048に変更しました。
・customjpegに新しいモードを追加しました。下記参照。
・スライドショー再生中に蓋を閉めるとポーズするようにしました。
・スライドショー再生時のBGM設定で、IPKファイル個別設定もimgview.mp3も見つからなかったときに再生するフォルダを指定できるようにしました。
・imgview.iniの[System]セクションにGlobalMP3Folder項目を追加しました。
・スライドショー開始/終了位置をレジュームするようにしました。最初から再生するオプションを削除しました。

・customjpegの新しいモードについて。

新しいimg2ipk.exeを使ってcustomjpegで作成するとYUV411モードで圧縮します。(ZLIBモードに変更はありません)
このモードではディザフィルタを掛けながら展開しますので、圧縮率、画質共に従来(YUV111)のモードより良好だと思います。展開速度の低下も若干遅くなったかな画像によっては気付かないかも、くらいにできたと思います。
従来のcustomjpegで圧縮したIPKファイルも表示できますが、新しく作ったIPKファイルはImageViewerVer0.7以前では表示できません。


・customjpegのtest20071013とtest20071014の違いについて

20071013では、色精度を13bit->7bit->ディザ->5bitという流れで変換していました。
内部精度を改善して、13bitから直接ディザ変換して5bitにするようにして、グラデーションが少し改善しました。
正式版アップ後だったら互換性維持のために放置するのですが、テスト版だったので直してしまいました。
二度手間で申し訳ありませんが、customjpegで作った古いipkファイルは破棄するようお願いします。

Category:[NDS] Permalink 2007年10月13日 11:08 | コメント (22)

2007年10月12日

いつもの見た目比較画像。

とりあえず参考画像を。上段は単なる比較用です。

実寸(100%) 拡大(400%)

今回私がどうなのかなぁと思っているのは、右下ふたつのcustomjpegモードのディザありとディザなしです。現在はディザなしになっています。
YUV->RGB変換をテーブルを使わずにリアルタイムで処理してディザフィルタも掛けると、「customjpeg ディザあり (15bit)」になります。(まったくテーブルを使わないわけじゃないですが)
ただ、デコードが5倍くらい遅くなるので、体感スクロールスピードが2倍くらい遅く感じるようになるんじゃないかなぁと思います。
オプション切り替えか。iniファイルかっ。
(24bit画像を保持するので)メモリを三倍食うけどとりあえずディザなしで表示して、ユーザが何も操作しない時間を使ってディザありで再更新するとか…。メモリがねーほんとメモリが足りないのよほらWindows環境で開発に慣れてるから!(苦笑

P.S.
リアルタイムなディザあり高精度YUV->RGBができそうな感じがしてきました。
明日にはテスト版をアップできるかもです。
予定は未定。(笑

Category:[NDS] Permalink 2007年10月12日 07:11

2007年10月09日

imgviewで追加点がありますか。

iCalendarは、読み込みとカレンダー表示、当月イベント一覧まではできたのですが、UTC補正をdouble型で(NDSで浮動小数点数を)処理するととても重くて頓挫中。64bit整数に置き換えられないかなぁ。

imgviewにファイルリストスクロール(ipkファイル数制限をなくす)を付けたいです。
ついでになにか追加やバグ修正する点があったら教えて下さい。

追加修正案

・他のアプリで振動機能を使った後だとEZ3in1が誤動作する。(後で再調査)

完了

・customjpegデコーダが極希に化けるバグの修正
・簡易ディスクチェックの追加
・メモリを600kbyteほど無駄に使っていたバグを修正しました。これに伴い標準設定を拡張メモリが無くても二画面モードを有効にするように変更しました。
・EZ3in1拡張パックのPSRAMを拡張メモリとして使えるようにしました。
・ファイルリストスクロール(キー入力のみ可、スクロールバー無し)
・ファイル名ソートを、パス+ファイル名ソートにする。
・二回目以降のEZ3in1拡張メモリ初期化に失敗するバグを修正。
・読み込み可能最大ファイル数を512個にしました。
・img2ipk.exeの細かいバグを修正しました。
・img2ipk.iniの初期設定の最大サイズ制限を外しました。
・ファイルセレクタの横画面モードを実装しました。imgview.iniにFileSelectVertical項目を追加しました。
・メモリコピーでアライメントに関する勘違いをしていたバグを修正しました。
・ビューモードのスクロールを高速化しました。
・ビューモードの25%/50%縮小表示を高速化しました。
・DLDIドライバを更新しました。(必要かどうかは微妙…)

---

2007/10/12 22:38 時点での完了項目

・img2ipk.exeのプレビュー圧縮で圧縮率の表示が間違っていたバグを修正しました。
・img2ipk.exeのプレビュー圧縮でNDS液晶に近い画像を再現するするようにしました。
・customjpegに新しいモードを追加しました。
ipkファイルをcustomjpegで再作成するとYUV411モードで圧縮します。(ZLIBモードに変更はありません)
このモードではディザフィルタを掛けながら展開しますので、圧縮率、画質共に従来(YUV111)のモードより良好だと思います。展開速度の低下も若干遅くなったかな画像によっては気付かないかも、くらいにできたと思います。
従来のcustomjpegで圧縮したIPKファイルも表示できます。
このバージョンのIPKファイルはまだ仕様が固まっていませんのでテスト用途に留めて下さるようお願いします。
また、致命的なバグが見つかったとき、YUV411モードは破棄される可能性があります。

---

2007/10/13 10:13 時点での完了項目

・スライドショー再生中に蓋を閉めるとポーズするようにしました。
・スライドショー再生時のBGM設定で、IPKファイル個別設定もimgview.mp3も見つからなかったときに再生するフォルダを指定できるようにしました。
・imgview.iniの[System]セクションにGlobalMP3Folder項目を追加しました。

---

メモリトラップが実際に役に立つ日が来るとは思いませんでした。その分遅くはなっているのですがまぁ0.1%とかそんなだし誤差誤差。といいつつ最適化作業は0.1%速くなったら喜んでいるのですが誤差よね(苦笑

最近他力本願すぎあーあーなにもきこえなー

Category:[NDS] Permalink 2007年10月09日 18:22 | コメント (31)

2007年10月08日

見た目の練習台になりそうなので

iCalendar形式を表示するだけのアプリを作ろうと思います。
多機能タイマかスケジューラか、決まらないしー。でもなんとなく多機能タイマ(目覚まし時計)になりそう。その方が簡単だから!(だめすぎるー

で、ics形式と、数値参照ics形式と、webcal形式があるらしい。間違ってるところがあったら教えて下さい。
なんとなく数値参照はUnicodeを(UTF8を使わずに)直接数値で書き込んだだけっぽい。webcal形式はよくわからず。
それから、icsファイルは細々と大量にあるものなのか、大きなicsファイルが一つあるのか、どちらでしょうか。
細かいファイルを読み込むのは大変なので、一つのicsファイルに結合できると楽です。
もしくはフォルダ内一括読み込みとか?インポートではなく直接icsファイルを読み込みたいです。メモリが足りれば。icsファイルが1MByteとかだったらピンチ。
(後記。icsファイルは混ぜて使うことはしないみたい。一つ一つ独立して使う感じ。)
あと、時間系とか文字系とか。GMT+9と日本語だけでいいかな。タイムゾーンの指定の仕方が色々あるっぽい。ファイル毎にタイムゾーンが違ったらどうしよう…。
RFC2445では、一行は75octet以内らしいけど、準拠してないファイルが沢山ありそうなのでバッファは多めに。二行に渡る(二行目頭がスペース?)のは処理するか微妙。いやしないとまずいよね。(笑
RRULEコンポーネントは無視。周期的イベント(毎週とか毎月とか何日毎とか)は無視します。
PRIORITYアイテムがあるイベントのみ、NDS上から変更できるようにしたい。☆5個まで。でもアイコンを横に五個並べたらそれだけで画面の1/3を占めてしまうので☆1/☆5とか? クリックで加算、5のときクリックで0にって感じかなぁ。
表示計は、上画面にカレンダーとイベントがある日は☆で表示、下画面に該当月の予定一覧かな。
操作系は左右で月移動、上下で予定一覧スクロール、Aボタンで該当イベントの詳細表示画面、Bボタン(操作ミスしそうなのでSELECTボタン?)で今月の今日のイベントに戻る、Lボタンでカレンダー表示形式の変更(はどうしようか思案中)、X/Yボタンで(PRIORITYアイテムがあるときは)☆増減、Rボタンでオンラインヘルプ(キー操作一覧)表示、STARTボタンでソフトリセット、って感じかな。
ics形式を独自形式に変換して読み込むならPRIORITYアイテムが無くても操作できますが、できればics形式を直接読み込みたいです。
という感じでどうでしょうか。
とりあえず見た目の練習台なのでサンプルのWindows版を作ってみようかと思います。

Category:[NDS] Permalink 2007年10月08日 18:46 | コメント (2)

Cooking timer ver1.0

cookingtimer10.zip (2,523,271byte)

Version 1.0 2007/10/08

日付を跨いだときに、終了時間のAM/PM表示がおかしくなるバグを修正しました。
EZ3in1の終了コードが間違っていたバグを修正しました。
簡易ディスクチェックを組み込みました。

今回の簡易ディスクチェックは、MultiSaveManagerのチェックからさらに断片化検出とFAT32警告を外して、本当に致命的なエラー検出だけに絞っています。
ライセンス画面をスキップするように設定すると、ディスクチェックも一緒にスキップするようにしました。

Category:[NDS] Permalink 2007年10月08日 01:38

2007年10月07日

私の勘違いを是正して下さいプリーズ。

私としては左(上)側を想定してたのですが、もしや右(下)側をイメージしていたりしますか。
どっちがいいかコメント募集です。あ、コメント数が少ないとか期待してる人なんかいないとかもう重々承知の上なので心が痛まらないコメント募集です。


(画像はてきとーにでっちあげたイメージです)

もちろん左側の方が、作るのも簡単で操作もシンプルでわかりやすいと思います。
いやもしかしたら左側だったら誰も使わないよ。まだ右側の方がもしかしたら使う人がいるかもね、って話だったら、まぁ年内には終わらないと思いますが使う人がいる方にトライした方が良いのかなーと。というか、右側だと完成するかどうかさえ怪しいです。(笑
ちなみに、右側だと例えば毎日、毎週定時という目覚まし時計としては使えません。でも左側なら毎日/何曜日/何月何日などの指定が可能です。左側で日付指定するときはカレンダーでクリックという形にしようかなと思っています。
やることは似ていますが、プログラムの中身も操作体系も全然違うものになります。
実は少し左側で作り始めてしまったのですが、まだ破棄しても悲しくないので助言頂けると嬉しいです。

Category:[NDS] Permalink 2007年10月07日 06:15 | コメント (12)

2007年10月06日

さて。やっと本題に…。

クッキングタイマが(AM/PM管理とソフトリセットとEZ3in1を除いて)致命的な問題がなさそうなので、スケジュールタイマに取りかかろうと思います。
クッキングタイマは時間関係ソフト作成の練習台だったのですが、意外と作るのが楽しくて入れ込んでしまいました。(笑
スケジューラは…ねー。まだ頭の中でイメージが固まっていないのですが、あんまり楽しくはなさそうだなーって感じ。
まぁ作っていく内に楽しくなっていくかもなのでそれは後の話。とりあえずなにより作り始めるのが大事。

Category:[NDS] Permalink 2007年10月06日 04:15

2007年10月02日

wifi VoiceChatClient ver 1.61

コピペ。WANでほとんどテストしていません。
例によって(DHCPとかに)繋がりにくいので、何度かしつこく電源ON/OFFしてみてください。無線ルータの電源をON/OFFすると動くこともあります。

3分間何も通信がないと自動切断します。
If you do not do anything for 3 minutes, service logout.

通信プロトコル(Ver1.4とVer1.5とVer1.61)は互換性があります。
The communication protocol (Ver1.4 and Ver1.5 and Ver1.61) is compatible.

wifi_voicechat161.zip

Version 1.6 2007/09/29
WiFiライブラリを'dswifi-0.3.3'に更新しました。
The WiFi library was renewed to 'dswifi-0.3.3'.

Version 1.61 2007/10/02
画面表示レジスタが間違っていたバグを修正しました。教えて下さったSasa様に感謝します。
The bug with a wrong screen display register was corrected.

下画面にスクロールバーが出ないバグは諦めました。開発環境が変わって何か変わったんだろうと思うのですが、libndsの変更部位を見つけられませんでした。

-------

'Nintendo Wi-Fi USB Connector'と、'DSステーション'は使えません。
必ず無線ルータを用意してください。
無線ルータの「ESS-IDステルス機能」や「ステルスAP」など(メーカーによって名称が違います)のセキュリティ機能は無効にしないと接続できません。

'Nintendo Wi-Fi USB Connector' and 'DS station' cannot be used.
Please use a wireless router.




Category:[NDS] Permalink 2007年10月02日 05:33

2007年10月01日

Multi save manager Ver0.1

誰か続き作ってくれないかなぁ…。使い勝手も悪いし…。
ほとんど動作テストしてないので使うときは十分注意して確認しながら使って下さい。

multisavemanager01.zip (1,090,892byte)

最終更新日時の取得/設定はできません。
というか、FATってローカル時間?それともGMT?各社ファームはNDSのRTCを元に設定するの?設定するならいつ書き込むの?作成日?更新日?言語設定で各国標準ロケールで?全然わからなーい。人わそれを「調べる気がない」といいますぐぅの音も出ません。

追記。
クラスタ単位/セクタ単位でディスクを直接読み書きするので、セクタサイズ(512byte)で割り切れないセーブファイルは扱えません。
FAT領域とディレクトリエントリを一切書き換えたくないからと、homebrew用FATドライバのfwriteを使うとファイルの断片化が発生するからです。(書き込みで断片化しやすいのは元々のFATの仕様です)
扱えないファイルサイズのセーブデータはリストに表示されません。

追記の追記。
ファーム内蔵のセーブマネージャと違い、一つのベースとなるセーブファイルを使い回す方式なので、操作を誤ると古いデータを上書きしてしまうことがあります。
直接関係はありませんがWindowsの(ファイル操作の)基礎知識として、DLDIパッチくらい手慣れて当てられるくらいでないと安心して使えないと思い、いつもの自動DLDIパッチツールを添付しませんでした。

追記の追記の追記。
すごく万人向けで使いやすい見た目&操作体系の良案があれば、もっと改善したいとは思いますが…。
たとえば自分で使うなら「Xボタンはセーブ->スロット、Yボタンはスロット->セーブ」という感じがもっとも使いやすいですが、万人向けとは言えないと思います。
上下カーソルでセーブ選択、左右カーソルで処理内容選択とかもそんな感じ。自分専用ならそれでいいんだけどねー。
まぁ5行くらい追加すればXボタン~辺りの機能は実装できるので、どうしても(いやそんな人いないと思うけどね)という人は各自書き換えて再コンパイルして下さい。各自勝手に起動時ディスクチェックをOFFにするとかもう自由自在。勝手にやって下さい。

追記の追記の追記の追記。
でも、最後に選んだセーブファイル名とスロット番号くらい覚えておきたいですね。自動リストアはしませんけど。
全てのファームが最終更新日時をちゃんと更新してくれるなら、自動化のしようもあるのですが。どうなんでしょそこらへん。

Category:[NDS] Permalink 2007年10月01日 19:41 | コメント (2)

2007年09月29日

wifi VoiceChatClient ver 1.6

このバージョンは操作性に関する大きめのバグがあったので欠番にしました。
wifi VoiceChatClient ver 1.61 を参照して下さい。

Because this had had the bug concerning operativeness, this was deleted.
Please refer to wifi VoiceChatClient ver 1.61.

Category:[NDS] Permalink 2007年09月29日 15:07

2007年09月25日

Cooking timer ver0.2

cookingtimer02.zip (2,530,325byte)

Version 0.2 2007/09/25

細々色々追加修正調整しました。

変なところがあったら教えて下さいです。
センスが変ってのは自分でも重々承知しているので(以下略

Category:[NDS] Permalink 2007年09月25日 21:32 | コメント (26)

2007年09月20日

Cooking timer ver0.1

Permalink to Cooking timer ver0.2

タイマー動作も(一応)実装したテストバージョンです。
DLDI未パッチなので、各自アダプタ用DLDIパッチを当ててから起動して下さい。

cookingtimer01.zip

変なところがあったら教えて下さいです。

処理中/処理予定リスト

・クリック音を近未来っぽいのではなく普通のにしたい。(普通ってどんなの?)

完了リスト
・フェードエフェクトが滑らかに終わるように調整する。
・バッテリー電圧低下時に警告音を再生するように。
・タイマー設定を、時:分:秒に。
・タイマー実行中で音楽再生中はX/Yボタンでボリュームを変える。
・ボリューム調整をlogarithmicに。表示も%単位で。
・画面フェードエフェクトのON/OFF設定項目の追加。
・フォルダーダイアログのスクロール可能範囲リミッタ。
・フォルダーウィンドウの横間隔をX/Yで増減できるように。
・ライセンス画面の上にブートログを表示したい。
・アルファチャネル付きフォントライブラリ
・正確さよりわかりやすさ重視で12時間系(AM/PM)表示にする。
・タイマー実行中の見た目を整える。
・タイマー実行コードの最適化。(mp3/192kbpsで音飛びしない程度に)
・バックライト調節アイコンの追加。
・タイマー実行中に簡易カレンダーを表示したい。
・シンプルスキンと標準スキンの設定項目の追加。

Category:[NDS] Permalink 2007年09月20日 23:23 | コメント (4)

Cooking timer ver0.0

とりあえず設定画面だけできました。
タイマー本体はまだ作っていません。mp3/wav以外の再生テストもしてないです。
DLDI未パッチなので、各自アダプタ用DLDIパッチを当ててから起動して下さい。

cookingtimer00.zip

作業時間の一割くらいはスキン作成に費やしている気がします。(苦笑
センスがない上に作業が遅い言えば言うほど悲しくなるー。

Category:[NDS] Permalink 2007年09月20日 03:50

2007年09月18日

dpgtools131 AltSetting for MoonShell Ver1.71

動きを犠牲にして、画質を重視したDPGエンコーダです。
'MoonShell Version 1.71'以降で再生できるDPGファイルを作成します。

dpgtools131_altsetting_for_moonshellver171.zip mirror (6,263,397byte)

ぶっちゃけ標準設定を変えただけです。
20fps/384kbpsから、15fps/768kbpsに変更しました。
さすがに4倍だとアルファブレンドが目に見えて効いてきますね。

ちなみに、ワンセグは15fps/128kbpsです。H.264とmpeg1videoは圧縮率が違うのでビットレートで画質の判断ができませんが、動きのカクカクさ具合はワンセグと同じです。
っていうかワンセグは(H.264とはいえ)128kbpsなのか…。だめすぎる。
地デジでさえスポーツ番組は見られたもんじゃないのに。

Category:[NDS] Permalink 2007年09月18日 17:03

2007年09月17日

Folder dialog test

寂しいので簡易MP3プレイヤを組み込んでみた。
重いよまったくがんばれNDS。(責任転嫁
あ、MP3高音質化コードは入っていません面倒くさいから。

folderdialogtest.zip


(画面は/testdatas/mp3フォルダを開いて、reltest2フォルダをプレビュー表示しているところです)

Category:[NDS] Permalink 2007年09月17日 17:21

こんな感じ?

んー。使いやすいように感じない…。(自分で言うのもなんだけど
思ったより再描画が重かったのでフェードエフェクトはやめました。


(画面は/testdatas/mp3フォルダを開いて、reltest2フォルダをプレビュー表示しているところです)

何も開けないのは寂しいので、適当に簡易MP3プレイヤに仕立てて明日テストアップしたいです。…やっぱり素直にボタン操作がいいような気がする。(苦笑

Category:[NDS] Permalink 2007年09月17日 03:47

2007年09月15日

DSMPlay Ver0.8

バグがあったときや要望などはDSMPlayについての要望などで教えてください。

エンコードできなかったときは、次のURLを参照してください。
http://mdxonline.dyndns.org/archives/2007/05/dsm_1.shtml DSMファイルが作れないときは…

MP3再生機能はデフォルトでOFFになっています。
有効にするときは付属のテキストファイル'for_MP3.txt'を参照してください。

20070915_dsmplay08.zip (2,720,927byte) mirror

dsmtools12_readme.html

Version 0.8 2007/09/15

DSM再生部分に変更はありません。
簡易MP3再生機能を追加しました。
ファイル名のソート順序が間違っていたバグを修正しました。
大量のファイルを扱っても停止しなくなりました。

Category:[NDS] Permalink 2007年09月15日 00:56

2007年09月14日

最近また増えてきた…気がするだけ。気のせい。

後記。要するにMoonShellは終了したアプリなので、半年前のことを色々聞かれても色々忘れちゃってるので困ることが結構あるよって長々と愚痴っぽくいつも似たようなこと書いてるのが下。

各メーカー版改造MoonShell。バージョン情報ウィンドウを消したり多言語対応を無視したり起動警告(と簡易対処法)画面を非表示にしたりファイルが足りないと無言で停止したりデフォルトで無理があるスキンにしていたり付属テキストファイルを添付しなかったり内部エラーを無視したりファイルシステム壊したり、まぁ色々各自趣向があってそれはそれで若干嬉しかったりもするんだけど、ファーム同梱改造版くらい自分で責任持っても罰当たらないと思うのですー。っていうか断片化してたら落ちるようなアプリを私が作ったと思われたらなんかプライドが。(笑
直接ディスクアクセスしている部分がいくつかあるので気を付けないとFAT壊すよー。(と日本語で書いても意味がないっと。
別に使用報告いらないし何変えたって構わないけどサポートだけは自分のとこでやって。私はユーザサポートしたくないからフリーウェアでやってるんだから。怒られるの嫌い。(あ、フリーウェアだからサポートしなくていいって意味じゃないので念のため。
といってもユーザに不利益押し付けるわけにいかないし結局はMoonShellユーザ様々なのでできる限りメール返しちゃったりするんだけど。でも一人でやるのはもう限界だよーって話。メール返信くらい作業量は大したことないけど精神的に。怒られるのはイヤ。
ほんとに時々だけど私に聞けってメアド書いてるんじゃないかと思うときが。だっていきなり説明無しで怒ってたりするんだよ。クレーム処理を委託するときは経過情報の引き継ぎが大事って教わらなかった? 私は教わらなかったけど。サポート業務なんかしたことないもん。(笑
あ、ゼルダのときのあれは別。だと思う。さすがにゲーム動かないだの何だのってクレームを私にまわす意味が。

っていうか何度も書いてるけど私もう開発環境(RVDS)持ってないので。バグがあっても直せないし何か聞かれたらソース見て思い出しながら答えてるくらいです。記憶はあやふやだし情報精度も高くないし、もちろん各メーカ独自の部分はソース持ってないし現物無いからテストもできないし。

でもなんだかんだ文句いいながらできるうちはがんばります。できるうちは。
というかそんなに文句があるなら公開するのやめればいいじゃんって確かに正論過ぎてぐぅの音も出ません。でもアップしておきたいっ(ワガママ
実際はそんなに文句ないんですよ書いてるほどには。(じゃぁ書くな

もう少しでDSMPlayの手直しが終わりそうなので、目覚まし時計に取りかかろうかな。相変わらず方向性は定まっていませんが見切り発車で。(笑

Category:[NDS] Permalink 2007年09月14日 03:50

2007年09月12日

MoonShell Simple Alarm plugin

MoonShellに簡易アラーム機能を追加するためのプラグインです。
音楽を再生すると一時停止して、指定時刻になると音楽が再生されます。
詳細は同梱のテキストを参照してください。

mspv51_sndeff_SimpleAlarmType1.zip

動作検証とたくさんの改良案を出してくださったボウラー様に心から感謝します。

2007/09/12 22:56 GMT+09:00
オンラインヘルプの誤字を修正しました。

Category:[NDS] Permalink 2007年09月12日 13:54

2007年09月11日

うー。見づらい。狭い。

目覚まし時計の方向性が決まらない(のは私の無知によるところが大きいのですが(苦笑))ので、今日はタッチペンだけでファイル選択するにはどうしたらいいか考えていました。
フォルダダイアログのコンセプトアプリ(Windows用)です。単に頭の中を書き出しただけなのでこれ自体に意味はありません。

folderdlg.zip

昔の初心者が作った商用のFlashみたいなユーザーインターフェースです。(笑

マウスならホットトラック(マウスオーバー)でプレビューするのですが、タッチペンだとどうなんでしょ。
狭い画面での作業が前提なのでひたすら重ねて透過にして、できるだけ全体を見渡せるように、というのが大体の方向性。
タッチドラッグでスクロールするようにしたのと、フォルダクリックでプレビューが今回の大筋かな。だけど、これだとフォルダに入るのにダブルクリック(ダブルタッチ)しなきゃいけないんですよね。いきなり複数のフォルダを戻れるのはいいと思うのですが。
各ウィンドウの移動は、やればできますが見た目混乱しそうなので固定にしました。いくつかファイルが開けるのはなんとなくです。
何も考えずにメモリとCPUを湯水のように使っているのでこのままではNDSに移植できないんですけど。
古き良きDOSファイラ風選択ダイアログでタッチパネルを使わないのが一番使いやすいのはもちろん承知の上で。なにか変わったことがしたかったんです。普通が一番。(台無し(笑

Category:[NDS] Permalink 2007年09月11日 18:58

2007年09月09日

よーしママ目覚まし時計買ってきちゃうぞー。

誰がママか。(誰も言ってません。
何か欲しいからお金が欲しいなー。名声はお金じゃ買えないけど名声じゃ心はふくれないしね。莫大な財産が~とかなら名声も買えるかもしれないけど。いらないし。

そんな理由で目覚まし時計を使ったことがない(というか時計が無い)のですが、最低限の機能は時間が来たら何かアクションを起こす…であってますよね?
手軽さならアラームプラグインでいいような気もしますが。
暇があったら銀座の時計ビルを見に行きたい。買わないけど。高そうだしー。
とりあえずネットで色々見てみてこんなかなと思ったリスト。

・全て24時間系に統一。
・複数設定。気分的に5個。
・設定項目は、始動時刻、停止までの時間、スヌーズ回数、ファイル種類、停止コマンドの種類、ワンショット/毎日定時設定。
・ファイル種類は、単体ファイル指定、フォルダ指定(ランダム/シークエンス)
・スヌーズ(止めた数分後に再度始動)機能
・複数の停止コマンド(単純なタッチパネル、ランダムな短い停止コマンド、ランダムな長い停止コマンド)
・スキン…はどうしようか思案中。ベクターグラフィックって重いよねー。
・始動時刻数分前から段階的にバックライトを点灯する。
・バッテリー低下を検出したら、時刻関係なく騒がしくし続ける。(電源を切るしかない予定)
・WiFi使って時刻が正しいかどうかチェックする…のは思案中。
・どうせ要WiFiならウェザーニュースも付けたい。
・タッチパネルをクリックもしくはDSを開いたらバックライト点灯。

・対応ファイル形式はMP3のみ。
・曜日指定、日付指定、平日休日指定などは無し。(PIMっぽい機能は除外)

それはおかしい、とかこんなのもあったほうが、などありましたらコメントよろしくお願いします。まだ全然作り始めてもいません。というか後から言われてもたぶんやりません。(笑
予定では一ヶ月くらいでできたらいいなーと思ってます。

Category:[NDS] Permalink 2007年09月09日 19:39 | コメント (10)

2007年09月07日

MoonShell JpegAccu plugin

まだテストが不十分なので化ける画像など見つけたら教えてください。

mspv41_jpegaccu_20070907.zip

2007-09-07

アセンブラ最適化の際に、平坦な画像が正常に表示できないバグを入れてしまったので修正しました。

Category:[NDS] Permalink 2007年09月07日 17:14

2007年09月04日

あれ…おかしいな。

MP3対応、一日で終わると思ってたのに…。まぁいいや。

mspv51_sndeff_ReverbPlate.zip

MoonShell用リバーブプラグインです。
プラグインフォルダに放り込めば勝手に有効になります。というか常に有効になります。
別に意味はありませんがこんなこともできるよってことで。
誰かイコライザ作ってくれると嬉しいです私には無理。主に速度的に(笑

残響アルゴリズムはMIDIプラグインのときの偽リバーブです。
まともに満足する音質でリアルタイムに畳み込もうと思ったらCPUが1GHzあっても足りないのでまぁそこらへんは妥協というかプラグインサンプルというかどうでもいいというか。(どうでもいいっていうなー

Category:[NDS] Permalink 2007年09月04日 02:29

2007年08月26日

暇すぎてPGR3/RR6しすぎ。

MoonShellプラグイン仕様を大幅に逸脱した使い方ですが、目覚まし時計プラグインとか。NDSが余ってる人はベッドサイドに。

mspv51_sndeff_SimpleAlarmType1.zip

このプラグインをインストールしておくと、曲開始時に一時停止して、指定時間に鳴り始めます。開始時間はiniファイルのWakeup~行で設定してください。
MoonShellVer1.6以降なら使えるはずですが、使えないバージョンもあるかもしれませんので十分テストしてから使って下さい。
NDS単体でアラームON/OFFできませんのでNDSが余ってる人向けです。
っていうか全然動作テストしてません。

追記。いちおう起動時間を待っている間はスリープモード(に近い状態)に入っています。蓋を閉める必要はありません。が、念のため、最初のうちはACアダプタを接続してから寝てくださいこれのせいで寝過ごしても知りません。(笑

追記の追記。スリープ中にタッチパネルを触ると、現在時刻などを表示します。バックライト消灯時間変更はiniファイルで。ベッドサイドクロックとしても使えるんじゃないかと思います。
夜中に見るなら旧DSでも十分な明度があるので、使わなくなったDSがあれば置いておくのもいいんじゃないかと思います。
時刻文字が大きい方がとかアナログクロックとか要望があれば適当に。

Category:[NDS] Permalink 2007年08月26日 20:22

2007年08月22日

MoonShell Ver1.71+1 Top page

注意:MoonShellは古いバージョンのファイルと混ぜないでください。
Attention. Please do not mix MoonShell with the file of an old version.

簡易説明書 (Readme)

プレビュー (Screen shot)

Version1.71+1のダウンロード (Download version 1.71+1)

古いバージョンのダウンロード (Download old version)

更新履歴 (History)

拡張プラグインとサウンドフォント (Enhancing plug-ins and sond font)

拡張言語 (Enhancing language)

リンクとかチュートリアルとか (Links Tutorial etc.)

Category:[NDS] Permalink 2007年08月22日 03:41

2007年08月20日

だいたい気になるとこは終わったかなー。

例によって有用性とか需要とかは無視。

終わってない。
MIDIプラグインのパートナンバーとポートナンバーとブロックナンバーとチャネルナンバーの相互変換をてきとーに処理していたのを忘れてた。
ドラムマップ以外は標準の設定でしかちゃんと音が出ない…けど未だに全然理解できていないのでどうしようか思案中。なにか手を加えると、勘違いで前より悪くなりそうです。(笑

やめた。まじめに実装するとレイヤーまでできちゃうから。
ただでさえパーシャル数足りてないのにレイヤーなんか処理したらもっと不自然に音切れしちゃいそうなので。
とりあえずレイヤーはAポートの分だけ鳴るように。
PSPならもっと…って言ってみる。言ってみるだけ。(笑

Category:[NDS] Permalink 2007年08月20日 15:24

2007年08月16日

いやほんとに。(長文にも程がある)

今年のNDS低迷ムードには嫌気が差しますねうそ去年も一昨年もですけど。(苦笑
一応ゲームといえばゲームなサウンドノベルが一本と、Nスク実行環境らしい一本(動作未確認)、で、ゲームは…。 こちら、日本。生きている人、いますか?
サウンドノベルも途中で飽きてセーブ作る前にやめちゃったしそもそもコンバート元が市販ゲームのデモ版データだしで中途半端もいいところ。もう一度作りなおす熱意は…正直びみょー。(微妙とか言うな
堂々と同人ゲームとしてNDSゲームカード(内蔵フラッシュロム単体のカード)を売れるなら、大手同人サークルさんに協力してもらって、とか。いや全然知り合いとかいないんですけど人見知り激しいからっ!(苦笑
ツール関係は皇帝氏ががんばっていますね。いま一番熱いのは皇帝氏のツール群だと思います。が。私はもっとユーザエクスペリエンス溢れる魅惑のツールが見たいのですよー。iPhoneの画像閲覧ユーザインターフェースなんかもう未来感でイイヨネ!iPod(とiTunes)のUIはダメダメでしたが。Wiiのフォトチャネルも最高に好き。使いやすくて楽しくてでも基本は押さえてある、使ってみたいと思わせる魅力があるツールが好きです。Vistaはもちろん使わない。
ところで堅実に作る皇帝氏とMoonShellは似ているんだと思います。堅実第一って意味で。役には立つかもしれないけど面白くはないよねって感じで。おもちゃ感覚優先で作ったのがImageViewerで、DSMPlayはその間くらいかなぁ。ほかに例を挙げるアプリがないくらい寂しい状況…ってこれだけNDS売れてるのにさっ。
WiFiがもっと。万人が使える環境だったらやりたいことは山ほどあるのになぁ。皇帝氏(何度も引き合いに出してごめんなさいです。本当に他の人が思いつかないの。)blogのコメントを見て推測する限りではもう惨憺たる状況です。やっぱりWiFiライブラリは現状(少なくとも日本では)使えるレベルじゃないですね。海外は知らない。
いまやってるアセンブラで高速化云々は完全に惰性…です。思わず触ってみたいと思える携帯ハードがあればさっさとNDS捨てたいです。良いハード(NDSLは特に)なのですがいい加減飽きたよっ!
W-ZERO3は私が入り込む隙間がないほど充実してるし、PSPはいつまで経ってもアレだし。人生の引き出しが少なすぎる私が一番の原因なのですがっ。(苦笑
あ、PSPのツールチェインを見る限りでは非常にフリーウェア開発しやすい環境だと思います。ファームウェアさえなんとかすれば特殊なハードが必要ない(メモリースティックは特殊なハードじゃないよ!(笑))し、ゲームに特化したハードや特殊なVRAMを使わずCPUパワーでぐいぐい引っ張るその基本思想はSonyっていうよりWindowsに近いものを感じます。っていうかとても作りやすそうな開発環境で(本気で)うらやましいです。(苦笑

うわー。どうでもいー。愚痴っぽーい。スイーツ!

Category:[NDS] Permalink 2007年08月16日 22:07

2007年08月14日

TTAデコーダを

結局全部アセンブラで書いて、4.689秒が3.349秒になりました…。おそいです。
無圧縮読み込みの1.387秒でも遅いと感じるくらいなのでダメっぽいです。
むー。がんばったので捨てたくない気持ちがふつふつと。(苦笑

Category:[NDS] Permalink 2007年08月14日 22:40

2007年08月12日

TTA展開できた。おーそーいー。

無圧縮8bitPCMサウンドフォントで再生開始まで1.387秒、TTA展開しながら読み込みで開始まで4.689秒。
やっぱり遅いのかぁ。いや、ここでアセンブラの出番ですよ言ってみただけ。やっぱりダメかもー。残念。

Category:[NDS] Permalink 2007年08月12日 23:14

2007年08月11日

地味にMIDIプラグインをいじったりしてます。

需要なくてもいいんだっ。(言い訳(笑
あと二カ所、最適化できそうな重いループがあるのですがレジスタが足りなさ気。
アセンブラで書いたリバーブフィルタがめっさ速くてかなり私的満足度高いです。48bit掛け算で音質もよくなったしー。ARM9TDMI間違えたARM946E-Sはすごくいじり甲斐(特殊演算を使う最適化の伸び)があって好き。
あとは、サウンドフォントが大きすぎるのではちぷろなフォントはやめにして、ついでにTTAで圧縮しようかな。半分くらいになるといいんだけど…。
ほかに可逆圧縮でシンプルで展開がとても速いオープンソースなサウンドフォーマットってありましたっけ。さがしてみよっと。

TTA圧縮できたー。例によって元TTAフォーマット無視して、がしがし削って速度優先コーデックに。
16bitサウンドフォントで平均43%減、8bitサウンドフォントで平均64%もファイルサイズが小さくなりました。
まだデコーダ書いてないけど、再生開始まで時間がかかりすぎたら捨て…ようかと思ってるけど、58MByteが33MByteになるのは魅力?
悩むのはデコーダ書いて実際に開始時間調べてから。正常に圧縮できているのかもまだ確認してないしー。(だめすぎ

Category:[NDS] Permalink 2007年08月11日 00:18

2007年08月09日

MoonShell JpegAccu plugin

私的流行(笑)のアセンブラでそれなりに(全体的に二割くらい?)速くなりました。
imgviewと違って速さが体感できてうれしいです。元々が遅いからですけど。

mspv41_jpegaccu_20070809.zip

2007-08-09

プラグイン開発環境をDevKitProR20+libnds-20070127に移行しました。
圧縮ルーチンと不要なDCTルーチンを削除して約36kbyte小さくしました。
IDCT8x8ルーチンをアセンブラで書き直して約22%高速化しました。
50%縮小ルーチンをアセンブラで書き直して約19%高速化しました。
誤差拡散の有無を設定する項目をjpegaccu.iniに追加しました。

Category:[NDS] Permalink 2007年08月09日 03:55

2007年07月31日

Image Viewer Ver0.7

せっかく書いたのでアセンブラ版IDCT8x8コードを入れてみました。
元々遅くないので変わった気がしません。(苦笑

imgview07.zip (1,696,789byte)
imgview07_source.zip (2,859,065byte)

Version 0.7 2007/07/31

DLDIドライバを更新しました。
いくつか気になる部分をアセンブラで書き直して高速化しました。
ソフトリセット(reset.mse)に対応してSTARTボタンに割り当てました。
imgview.iniの[System]セクションにStartButtonFunction項目を追加しました。
不完全ながら拡張メニューに縮小率設定を追加しました。

Version 0.7 2007/07/31

The DLDI patch files was updated.
Some it rewrote by the assembler and it sped it up a little.
Soft reset was assigned to the START button.
StartButtonFunction item was added to [System] section of imgview.ini.

Hi! spalnndsstest.

Thank you for using my application.
Please check the encode setting.
When a accuracy image is demanded, the automatic size limiter is obstructive.

on img2ipk.ini file. (Img2ipk.exe makes this file automatically.)

[MaxSize]
Width=1024
Height=1280

changed to...

[MaxSize]
Width=0
Height=0

Or, please try 'ZLIB only'/'loss-less' compression in 'Image quality setting window' for the text.

Category:[NDS] Permalink 2007年07月31日 17:24

R4のreset.mseが

(追記 2007/07/31 21:21 これは不具合で撤回したバージョンとのことです。reset.mseを使いたい人は皇帝さんのHPを見てみると幸せになれるかもです。)

でてたのでわくてかしながら見てみた。
こんなこと書くと以降気にされてしまうかもしれないのですが、
MoonShellExecute Soft reset Ver0.1 May 27 2007 12:25:11 GMT+09:00 Moonlight (Modified by Rudolph) DevKitARMr20 + libnds-20070127
とか書いてありました。あれ?
ちなみに役に立たない補足情報。reset.mse 133,120byte 2007/05/27 12:25:32 MD5:a84048bea66c82f8f3bad8f457eb9c0f でした。皇帝さんのreset.mseのMD5は調べていません。
私のreset.mseのソースだけを参照していたなら皇帝さんの名前が入るはず無いのですがまぁこれ以上の邪推は無粋ってことで。私は文句言う筋合いじゃないしー。
せっかく、リダイレクトしてR4対応reset.mseを組み込みたかったのに。(自分で解析する気が一切ないのがバレバレです(笑

Category:[NDS] Permalink 2007年07月31日 00:41

2007年07月29日

jpeg_idct_ifast_asm

jpeg_idct_ifast_asm.zip

gcc-O3より三割くらい速いIDCT8x8ルーチンです。
IDCTを2304回(256x192x3ピクセル分)計算するだけのサンプルアプリを添付しました。
jpeg_idct_ifast_clip_asmは、レンジクリップとオフセット補正を含むバージョンです。
補正値を変えるときはcliptable配列を書き換えて下さい。
コード