Custom IOS38 rev14、またまた弄った! [Wii]
SD/SDHCの不具合対策後も IOSについて少し調べていました。
Custom IOSの導入は、NANDの書換えを伴いますので最悪の場合は、ブラックアウトなどの
致命的な状態になることも考えられます。
その中でも「shared」領域に、モジュールを書いた場合は簡単には削除できないので
あまりお勧めできません(mloadはこのケース)。
また、「cioscorp」などではオリジナルのIOSを弄っているので、もっと危険です。
その点でも 「Custom IOS38 rev 14」は、安全なのですが一部のIOS 55を要求するゲームが
起動しないため「WBFS ExpLoader」でも mload(Use IOS 37 merged with IOS 36/38)を
使用するようにしていました。
そこで、「shared」領域を書き換えるmloadの使用を止めて、「Custom IOS38 rev 14」で
対応させるために...またしてもチョット弄ってみました。
導入のテストは、私の環境でしか行っておりません。エラーが発生して導入できない場合は
詳しい環境を教えていただければ対応できるかもしれません。
<注意等>
・SD/SDHCに不具合が無い方は、USB HID(KBD)モジュールのみ修正してください。
・もし、導入途中でエラーが発生した場合や <B>ボタンでアンインストールした場合は、
IOS 249に何も導入されていない状態になりますので「Custom IOS38 rev 14」の
導入からやり直してください。
・NANDに、2MB以上の空きが必要です(チェックしていません)。
・FATモジュールは、テストしていません。
・USB HID(KBD)モジュールを修正した場合は、IOS 38でのUSB接続機器(キーボード等)が
使えなくなる事が想定されます。
mloadの導入で、困っていた方..これが使えればいいな!と思いますが...
Custom IOS38 rev14、修正してみた.. [Wii]
R25の方で書いていたのですが...
私の環境では、Custom IOS38 rev14で SD/SDHCが非常に認識され難く
まともにWBFSが使用できませんでした。
多くの方は、問題ないのかもしれませんが..私と同じような状況の方もいらっしゃるようです。
そこで、導入されているCustom IOS38 rev14を修正するツールを作成してみました。
インストールプログラムの作成は、ソースが公開されていないため諦めて...
NANDから導入されているIOS249をダンプして、SDHCとFATのモジュールだけを差し替えて
新たにIOS249にインストールする仕組みにしました。
このツールを実行する場合は、事前にCustom IOS38 rev14を導入しておく必要があります。
また、この状態でSD/SDHCが問題なく使用できる場合は適用しないでください。
NANDの書換え等の危険な行為を伴いますので、自己責任で利用してください。
<注意>
・もし、導入途中でエラーが発生した場合はIOS249には何もインストールされていない状態に
なりますので「Custom IOS38 rev 14」の導入からやり直してください。
・NANDに、2MB以上の空きが必要です(チェックしていません)。
・FATモジュールについては、まったくテストをしていません。
USB Loader GXについて [Wii]
まだまだ、開発途上のUSB Loader GXですが...
多言語化対応が進んでいます。FreeTypeGXの日本語対応を公開させて
いただいだ事もありますので..チョットだけ説明しておきます。
多言語化対応といっても組込まれているttfフォントは、日本語フォントは
含まれていません。日本語Unicode対応のttfフォント(font.ttf)に置換えて
リビルドする必要があります。
また、コード変換(Unicodefix)は簡体と繁体中国語しか組込まれていません。
当然、UTF-8で記述すれば良いと思うのですが...
残念ながら現状ではUTF-8からUnicode(UTF-16)の変換処理は、
1バイト系しか対応しておりません(近く対応されるとは思いますが..)。
結局、FreeTypeGX.cppの修正も必要になります。
ttfフォントのLSBの処理は追加(カーニング処理はあまり気にしなくてもいい)
されたので、UTF-8からUTF-16への変換部分だけの修正で十分です。
<FreeTypeGX.cppの修正箇所>
68: char *tempSrc = strChar;
69: wchar_t *tempDest = strWChar;
70: while((*tempDest++ = *tempSrc++));
を、
68: int ln = mbstowcs(strWChar, strChar, strlen(strChar));
69: if(ln < 0) ln = 0;
70: strWChar[ln] = (wchar_t)'\0';
に、修正します。
当然、「FreeTypeGX_JPN」を修正して使用すればSJISも使用できますが..
都度、修正が面倒だと思いますので....
但し、上記の修正ではゲームタイトルや言語ファイルはUTF-8で記述して
ください(ソースに日本語を入れる場合も..)。
UTF-8を使用する場合、半角カナのバイト数に注意が必要です。
表示上では、全角で2バイト半角で1バイトですが、実際には殆どが3バイトで定義されます。
表示上の桁数だけで、記入するとプログラム中で定義した桁数を超えてしまい
不具合が発生する可能性があります。全角は表示上と同じ2バイトです。
FreeTypeGX SJIS/UTF-8対応 [Wii]
FreeTypeGXの日本語対応で、SJISだけでなくUTF-8にも対応してみました。
判定は非常に適当なので、もしメッセージがバケる場合は表示するメッセージ側で
適当に調整してください。
今回の修正で、snes9x-gx等のlibfatを使用してファイル名を表示している
プログラムでも日本語を表示することができるようになります。
また、ソース内の日本語のメッセージやタイトルをUTF-8で記述するが可能になりました。
但し、「libogc_SJIS」はUTF-8には対応していませんので、「libogc_SJIS」を使用する場合は、
今まで通りSJISにて記述する必要があります。
== 「読んでネ」の修正箇所 2009/5/5 ==
「usbloader-gui_DevJ」を、「FreeTypeGX_JPN」に読み替え
・libogc等の最新版を導入(snes9x-gxやfceugcから)
snes9x-gx.googlecode.com/files/libogc-30-04-2009.zip
fceugc.googlecode.com/files/libogc-30-04-2009.zip
(USB Iso Loader GUIの場合もこちらの方がいいと思います)
・FreeTypeGX_JPNからsourceフォルダをコピー
sjis2unicode.tblを、sourceフォルダ直下にコピー
日本語用のフォントを、USB Iso Loader GUIのsource\fontsに上書きコピー
(bg_options_entry.pngは、オリジナルが同一になったため削除しました)
FreeTypeGX 日本語対応 [Wii]
libogcの日本語対応に続いて、FreeTypeGXも日本語対応にしてみました。
FreeTypeGXは、USB Iso Loader GUIでしか確認しておりませんので
他のソフトでは問題があるかもしれません。
詳しくは、「読んでネ.txt」をご覧ください。
テストに参加して頂いた方々に、感謝いたします。
USB Iso Loader GUIは、今のところ頻繁に更新されています。
メッセージの日本語化の作業は、暫く様子を見てから行った方がいいかと思います。
「読んでネ.txt」だけでは、良く分からない方が多いようならば..
R25に書きますのでリクエストしてください。R25の方は自分で調べてネ!