セーブマネージャ・・・もどき

blissさんがacekard R.P.G用メニューとしてリリースされていた、akmenu4のソースコードをちょっと弄って、セーブスロット部分だけのメニューにしてみました。(blissさん、ありがとうhappy01
「acekardのコード転用だ!」とakから起こられそうですけど。その時は、その時で考えることにしよう。
(ak2のreset.mseを黙って使っているでしょ?と切り返そうかなcoldsweats01)

実行ファイル一式 SaveManager_v010.zip (285.4K)

ソースコード一式 SaveManager_v010_src.zip (456.7K)

あまりテストしていません。akmenu4のコードから不要な部分を削除したつもりですが、意図しない機能が残っていて悪さをするかもしれませんので、注意してください。
そうそう、これって、ak2やRPGの .nds.sav 形式に対応していないので、あしからず。
(blissさんのakmenu4を使えばいいのですから・・・言い訳です)

| | コメント (0)

NDS_Backup_Tool_Slot2再計測

前回の計測ではフォーマットやDLDIなどの条件がバラバラだったので、再計測・・・。

まず、ChishmさんとmoonlightさんのDLDIドライバとクラスタサイズの組み合わせで、DSブラウザ(8MB)のバックアップ時間をストップウォッチで計測してみました。
Sandisk ExtremeIV 2GBを使用しています。
ChishmさんのDLDI配布ページからダウンロード可能なM3CF用DLDI(M3cf.dldi、1948バイト)と、
moonlightさんのmoonshellに付属していた、m3cf_moon.dldi (2007/1/1 21:45, 2100バイト)を使用
(今はダウンロードできない?)

(1) FAT, 64Kクラスタ
M3cf.dldi  : 10.0秒
m3cf_moon.dldi :  8.6秒

(2) FAT, 32Kクラスタ
M3cf.dldi   : 10.5秒
m3cf_moon.dldi :  8.9秒

(3) FAT32, 16Kクラスタ
M3cf.dldi   : 10.5秒
m3cf_moon.dldi :  9.2秒

(4) FAT32, 4Kクラスタ
M3cf.dldi   : 13.6秒
m3cf_moon.dldi : 12.1秒

moonlightさんのDLDIの方が高速で、さらにクラスタサイズ(Windowsでは、アロケーションサイズと言っていますね)が大きいほど高速になることがわかります。

8MB程度だとストップウォッチによる計測では誤差が大きくなってしまうので、ASH(256MB)のバックアップ時間を計測してみます。moonlightさんのDLDIドライバを使用し、FAT、32Kクラスタを使ってCompactFlashの速度を調べてみると、

Sandisk ExtremeIV (2GB) : 4分27秒
Transcend 120x (2GB)     : 4分28秒
Sandisk ExtremeIII (1GB) : 4分41秒
Hagiwara ZII (1GB)       : 6分39秒

となり、Sandisk ExtremeIV、Transcend 120x が高速という結果に
・・・くれぐれも、これは、私の所有するCompactFlashの結果なので、製造ロットなどによっては、異なる結果になる可能性があります・・・

FAT, 64Kクラスタにしてみると、

Sandisk ExtremeIV (2GB) : 4分22秒
Transcend 120x (2GB)    : 4分23秒

と少し速くなります。
ここまでが、前回の再計測結果。

実は、ここまでくると、この時間のほとんどがSlot1のデータ転送時間になっているんですよね。
でも、まだDLDIだけで改善できることがあるのでは?と思ってしまうわけで・・・
Chishmさんがソースコードを公開されているので、これをちょっと弄って、考えられる高速化要素を組み込んでみました。
(処理方法に、かなり無理があるかも・・・一応、組み込んだDLDIは、これです)
その結果、

Sandisk ExtremeIV (2GB) : 4分13秒
Transcend 120x (2GB)    : 4分14秒

ちょっとだけ高速になりましたが、4分を切れません・・・
libfatのアクセス方法が改善されれば、もう少し速くなると思うのですが・・・

・‥…━━━☆・‥…━━━☆・‥…━━━☆
M3CFのDLDIパッチを実施したNDS_Backup_Tool_Slot2.ndsと、NDS_Backup_Tool_Slot2.ini、そしてNDS_BackupフォルダをCompactFlashに作成して入れておき、M3CFをPASSなどで起動させ、M3CFからNDS_Backup_Toolを起動して使うのが、本来の使い方なんでしょうけど、Transcnend 266xをM3CFのファームが認識してくれません。調べてみると、DLDI経由では、アクセスできるんですよね(ツボックさん、ヒントをありがとう!)。
さて、このM3CFが認識しないTranscend 266x(2GB)を、使う方法ですが、

① M3CFのDLDIパッチをしたNDS_Backup_Tool_Slot2.ndsを用意
② NDS_Backup_Tool_Slot2.ndsにAutopatchがかからないようにパッチ
(dldi_noautopatch等のツールを使うか、バイナリエディタで、ED A5 8D BF 20 43 68 69 73 68 6D となっている1バイトを適当なものに置き換える等)
③ ②で作成したNDS_Backup_Tool_Slot2.ndsをCycloDS EvolutionやAckeard2のMicroSDに入れる
④ M3CFに入れるCompactFlashに、NDS_Backup_Tool_Slot2.ini と NDS_Backupフォルダを用意
⑤ M3CFに④のCFを入れ、CycloDS EvolutionなどのSlot1を起動し、NDS_Backup_Tool_Slot2.ndsを実行

という手順を踏めば、M3CFが認識しなかったTranscend 266xも使えるようになります。

で、ASHのバックアップを実施してみると、

Transcend 266x (2GB) : 4分21秒

・・・あまり速くなかった。・・・いや、十分速いですけど・・・

| | コメント (3)

NDS_BackupTool_Slot2

とっても有名な皇帝さまのツールで、有難く使わせて頂いております。
もっぱら使うのは、M3CFなんですが、コンパクトフラッシュによってどのくらいの速度でバックアップできるのか?と、以前から気になっていたんですけど、調べる余裕がありませんでした。
今更という感じもありますが、気になっていたので、やってみました。

DSブラウザ(8MB)のバックアップに要する時間をストップウォッチで計測してみると、
①10.4秒 (Transend x120 2GB)
②13.2秒 (Sandisk ExtremeIII 1GB、Sandisk ExtremeIV 2GB)
④18.0秒 (Hagiwara HPC-CF1GZ2F 1GB)
という結果に・・・
意外にTranscendの120倍速が大健闘。
SandiskのExtremeIVの266倍速を期待していただけに、ちょっと残念。それに、Transcendの266倍速は、M3CFがうまく認識してくれず断念。

Transcendの120倍速が思いもよらず高速だったので、調子にのって、アルカイック・シールド・ヒート(256MB)を計測してみると、5分10秒で終了!なかなかいい感じです。

今だと300倍速というコンパクトフラッシュもあるんですけど、266倍速の結果を見てしまうと・・・ね。

| | コメント (2)

ポケモン連動?


DSポケモン ダイヤモンド・パールとGBAポケモン ルビー・サファイア・エメラルド・・・を連動させて、GBAからDS側にポケモンを連れてこれる。ポケモン大好きな人には嬉しいのでしょうが、マジコンでやる必要性が理解できずにいます。
GBAからDSに連れて来ると、GBAカートリッジから消えてしまうのが嫌だ、というんですけどね。catface

cory1492さんのpokepatchを実施したダイヤモンド・パールと、EZ3in1のNORに転送したGBAポケモンとの連動が可能のようですし、acekard2/R.P.Gもblissさんのakmenu4でEZ3in1のPSRAMまたはEwin Expansion Pakもサポートしているようですし、M3DS RealもGBA Expansion Pack等を使ってできるらしいですし、Supercard DS oneもSupercard miniSD等できるらしい。
・・・調べると結構あるものです。

使用用途が良くわからないけど、Ewin Expansion Pak(GBA Explorer 2in1)用のダイヤモンド・パールのパッチプログラム(Win32コンソールアプリ)を作ってみました。(blissさんが公開されていたacekard R.P.G用ソースコードを参考にさせて頂きました)
GBA_Loaderまたは、皇帝様のGBA_ExpLoaderでGBAポケモンを転送してから、パッチ済みダイヤモンド・パールを起動すると連動が可能になります。
作ったのはいいけれど、何かにつけ問題になりそうな感じなので、一般公開は保留です。

ダイヤモンド(ヘッダCRC:0x3F8D0732)しか、所有していないので、他のバージョンの物やパールで、正しくパッチできるのか、わかりません。
また、CycloDS Evolution+ Ewin Expansion Pakの組み合わせでしか確認していません。
こんなパッチツールでも良いから欲しいという人は、所有しているダイヤモンド・パールのカートリッジとGBAポケモンのカートリッジを1枚の写真に撮って、メールに添付して頂ければ、折り返し、ツールを差し上げます。
ただし、動作保障はありませんし、あくまでも個人で楽しむだけでWiFi等で他の人と通信しないというお約束を守って頂けるという条件付きです。coldsweats01

| | コメント (2)

GPS

近所の中古屋さんでPSP-290を買ってしまいました。
PSP用のSiRF-StarⅢを採用したGPSユニットですが、DSのSlot2に付けることができれば楽しいかも?と、衝動買いです。

妄想の合成写真(任天堂とSCEのコラボレーション?!)

PSP-290がUSBホストとなり、PSP本体がデバイスとして動作することは、判っていました。
きっと、USBは単にCommunication Device Classで、NMEAのデータを垂れ流しているだけだろう、なんて安易に考えていましたが、浅はかでした。
調べてみると、独自のUSBプロトコルを使っていて、解析は大変・・・。
さらにもう一つ、Slot2に接続した場合のGPSアンテナの位置だと、DS本体からの放射電界強度が強すぎて、GPSの電波が取れないということも判明。
・・・保留・・・weep

| | コメント (0)

DS Lite用電池

なんだか久しぶりに更新。ここって、記事をアップしていないとアカウントが無くなってしまうんですよね。気をつけねば・・・

書くこともないのですが、電池ネタを。
DS Lite用として、互換電池が出ています。価格は400円前後から1000円前後。
純正品が2000円なので安いというのが売りなんでしょうけど。
容量表示されている値は、どうも怪しい。
面白そうなので、とりあえず、いくつか電池を集めて放電特性を調べてみました。


①あるところで¥380で投売りしていた1000mAh(ドライバ付属、箱なし)
純正品と同じ型番?

②D社製1200mAh

③メーカー不明の1600mAh

④R社製1200mAh

⑤N社製1000mAh


メトロイドプライムピンボールを、画面輝度最小、音量最小、25℃環境でデモ実行
(振動パックは付けていません)
25℃環境で充電を行ったのち、満充電状態から、シャットダウンするまでの電圧を記録
何度かこれを実施して、良かった結果のみを記録
※あくまでも、私が入手した電池の話で、固体差までは確認できません。
※絶対的な時間は、電池の活性化状態や、DS本体の状況により変化します。

●計測結果

N社純正品は、ほぼ期待通り。
純正品以外も、期待通り(?)に怪しい結果に・・・。価格相応ということで期待しない方がよさそう。
ただ、予想外に¥380の1000mAh互換電池が健闘。当たりを引くこともあるんですね。

DS Lite本体のLEDは、およそ3.65Vくらいで緑から赤に変わります。このあたりで電圧が急激に落ち込み、一気にシャットダウンまで行きます。
バックライトを最高に明るくした状態だと、この放電特性も変わってきます。

N社純正電池動作の連続動作時間が2倍くらいになる電池があったら欲しいなぁ。

| | コメント (0)

Cheat Converter for CycloDS Evolution

R4用チートデータをCycloDS Evolution用のチートデータに変換するソフト(R4toEvo_v02)で、一つのタイトルのチートコードサイズが約64kバイトを超えると、アプリケーションエラーとなってしまうことが判明し、修正しました。(2008/5/1)
出力するファイルサイズが1MBを超えると、アプリケーションエラーとなってしまうことが判明し、修正しました。(2009/8/31)

R4toEvo_v03
R4toEvo_v032 8/31 : 不具合修正、更新しました。

あと、ソースコードが必要な人は、アーカイブのリンクからからダウンロードしてください。

| | コメント (4)

reset.mse for acekard2

公式に置いてある、MoonShell for AK2 のリンクをよく見ると、実は、acekard R.P.G用なんですよね。
付属している reset.mse も皇帝様作成された 06b そのものなので、R.P.GではOKですが、AK2では、リセットができないという問題があります。
R.P.Gと同じように、IOインタフェースが公開されていれば、それを組み込んでしまえばいいのですが、公開されていないので、やむを得ず、DLDI対応し、DLDIパッチをしたものを作成してみました。
(libfatにしてしまったため、ファイルサイズが肥大化するし、初期化のため遅くなるし...)
とりあえず、acekard teamが正式版を作成されるまでの中継ぎとして、お使いください。
(moonlight様、皇帝様、ソース公開ありがとうございます)

reset_mse_06b for ak2
解凍後、reset.mse を /moonshl/plugin フォルダにコピーしてください。

余談ですが、/moonshl/moonshl.iniの
[System]
....
NDSLiteDefaultBrightness=4
のあとに、
StartButtonExec=1
を追加しておくと、STARTボタンでソフトリセットが可能になります。

おまけ・・・
GBALoaderのソフトリセットに対応する、acekard2用TTMENU.DATです。

| | コメント (3)

GBA Expansion Pack

超初心者用acekard使用方法のDSブラウザ使用方法に、このブログへのリンクが張られているんですね。
(リンクそのものは、構わないけど、そこの説明と、このブログで書いていた内容が一致しないからなぁ・・・それとも違う意図でリンクしてくれたのかなぁ・・・)
説明によれば、GBA Expansion Pack(M3DS REALオプション)用ブラウザパッチは、G6Lite用を使えば、”ウマー”だそうですけど、”ウマー”なのは、M3DS REAL(M3R)を使った場合に限った話で、残念ながら、M3R以外では動作させることができません。

G6 Liteとは、仕様が異なる部分があるため、専用のパッチ対応が必要です。(M3DS REALに同梱される、Rumble RAM Packは、acekardでも、G6 Lite用で動作します)
使いたいという方(そんな人はいないと思うけど)のために日本語版ブラウザ用ipsパッチを置いておきます。
(皇帝様のGBA_ExpLoaderでソフトリセットが使えれば、パッチする必要はありません)

GBA Expansion PackのSDRAM初期化やRAM有効・無効を C言語で書くと、こんな感じになります。
(興味のある人に・・・参考まで)
もしかしたら、解析結果が間違っているかもしれません。ご指摘くださる人がいれば、いいなぁ。

| | コメント (0)

遅ればせながら、acekard2入手

takeruさんのご尽力により、acekard2に文字フォント・文字コードとして、acekard R.P.G用に用意していたものが含まれました。(でも、R.P.G用akmenu4は、更新されず・・・?)
acekard2を所有していなかったので、確認ができていませんでしたが、遅ればせながら、acekard2を入手したので、早速、文字コードの確認を。

acekard2用akmenu407(4.07a2)では、R.P.Gのバージョンと一緒ならば、文字コードの対応が一通り終わったはず(0xE5問題を除いて)・・・と、ワクワクしながら見てみると・・・日本語ファイル名・・・あれ?直っていない。

(1) 0x5C,0x7C問題 → 起動できない。”メディアの容量が不足しているので、ファイルをコピーできません”・・・?? microSDの容量は余っているけど・・・
(2) 第二水準文字表示 → 文字フォント参照計算が間違っているので、メチャクチャ
(3) 半角カタカナ → 表示されず
(4) 0xE5問題 → 表示されず

結局、acekard2のakmenu407は、acekard R.P.Gのakmenu406相当であることが判明。
パッチしないと日本語ファイル名でいろいろトラブルが発生するんだろうなぁ。(使わなければいいだけですけど)
あえて、日本語ファイル名を使いたいという場合は、

(1) 0x5C, 0x7C対策
5C 2F 3A 3B 2A 3F 22 3C 3E 7C 26 2B 2C 3D 5B 5D を探して、この先頭の5C00に変更
5C 2F 3A 2A 3F 22 3C 3E 7Cを探して、この先頭の5C00に変更
それぞれ2カ所あり、合計4カ所を変更。(前半の2つは、変更しなくてもよい)

(2) 第二水準文字違い
A0 68 08 18 10 BC 02 BC 08 47 0B 1C 35を探して、この最後の3534に変更
53 00 9B 18 9B 00 99 18 E6 E7 0B 1C 3Eを探して、この最後の3E3Fに変更
合計2カ所を変更

(3) 半角カタカナ
00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0A 3E 00 7F 00
F7 80 EB 80 EB 80 C1 80 DD 80 7F 00 3E 00 00 00 00 00 00 0A 3E 00 7F 00 C3 80 DD 80 C3 80 DD 80

を探して、この先頭から、0x1800バイトに __ak2\language\lang_jp\local.ank を上書き。

(4) 0xE5問題
大変なので保留coldsweats01

以前、作成していて、もう要らないと思っていたけど・・・。このパッチが面倒な人向け用パッチプログラムです。
Win32コンソールアプリなので、コマンドプロンプトから実行します。
解凍後、解凍したフォルダに移って

akpatch akmenu4.nds

と実行すると、akmenu4.ank と akmenu4.patch という2つのファイルができます。akmenu4.ankは、半角カタカナフォントまで含めたもの。akmenu4.patchは、半角フォントを含めないものです。どちらかを、akmenu4.nds とリネームしてmicroSDに入れてください。(お好きな方をどうぞ)
このソフトは、以前、やっつけで作成したものです。基本的に無保証ですので、自己責任でお使いください。
あと、0xE5問題はパッチしていません。

追記:
4.07a5
・同じ問題が残っています。
・lang_jpに限って言えば、language.txtとlocal.fonが更新されています。

----
と、ここまでは、公式リリースのakmenu4の話

blissさんのakmenu4がフォーラムにリリースされていますね。(この記事作成時点では、ak2_407_bliss_k02 です)
こちらは、akmenu4.ndsに対してパッチは不要です。(blissさん作成のakmenu4の方が公式より出来がいいような感じだなぁ...)
ちょっと変更するならば、公式リリースに同梱されている、lang_jpフォルダのlocal.fonとunicode.l2uを差し替えるくらいかな(半角カタカナや全角記号をファイル名に使わなければ差し替える必要もありません)。それと、language.txtは、はみ出したりするので、各自編集された方がいいかも。
参考までに、takeruさんのlanguage.txtに対して、blissさんのカーネル用に少し手直ししたものをここにおいておきます。(文字化けしたら、ブラウザのエンコードをシフトJISにして再読込してみてください)

----
文字の字体は、もう少し、なんとかしたいなぁ。

| | コメント (4)

その他のカテゴリー

その他 | ゲーム