PSP xvi

PSPプログラミングを教えるブログ(本気で頑張る人アクセス大歓迎サイト)

PSP-X.gif

記事の間違いを報告  新アップローダー
記事修正情報 PSPプログラミング資料 自作ゲーム PSP用エミュレータ リンク

公認リンク
公式PSP専科 公式PSVita専科 はじめるPSPSDK PSP EXEC GAME M@STER PSP 猫山のYouTubeチャンネル

TAG
全記事にタグをつけています  http://nekoyama2gillien.blog36.fc2.com/?tag=タグ
PSP PSPプログラミング DXライブラリPortable OSLib ショートプログラム ハローワールド
PSP自作ゲーム PSP自作ソフト エミュレータ ゲームアーカイブス PSP動画
動画 初音ミク ミクミクダンス MMDドラマ ゲーム 魔法少女まどか☆マギカ 侵略!イカ娘
アイドルマスター

このブログについて

このブログでは、非公式のPSPソフト、いわゆる自作ソフト( PSP Homebrew )を作る事を目的とします。

著作権などの こまかい利用規約については、こちらを開いてお読み下さい

このブログについて知りたい方、初めて来訪された方はこちらを開いてお読みください
お問い合わせは 猫山猫宗(nekomune@gmail.com)までどうぞ


当ブログはリンクフリーです。ブログ名は、アルファベットで「PSP xvi」と書いて『ピーエスピー・エクシビ』とお読みください。
相互リンクを希望されるブログ運営者様は、ココで申請して下さい。


このブログで全記事から探し物の方は、ここをクリックして下さい。
http://nekoyama2gillien.blog36.fc2.com/?all

スポンサーサイト 

--/--/--
--. --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[edit]

CM: --
TB: --

page top

PSPプログラミング 制御文字への対応・・・。 

2009/11/11
Wed. 07:25

現行のPSPSDKは、シングルバイト文字コードの C++コンパイラ です。

PSPSDK では、エスケープ文字(制御文字)として、¥ (0x5c) が使われています。
このため、ソースをコンパイルさせた段階で、ソースの中の 文字列 の 中に 0x5c というコードを発見すると、コンパイラ(psp-gcc.exe)が勝手に制御文字チェックをしてしまい、無効な制御文字を省いた文字列に改変してしまうのです。

例 だめな文字列
    "あいうえおAB1\\表十噂浬欺圭構蚕 "

これをバイナリで見ると(コンパイル前)

    82 A0 82 A2 82 A4 82 A6 82 A8 41 42 31 5C 5C 95  あいうえおAB1\\表
    5C 8F 5C 89 5C 8A 5C 8B 5C 8C 5C 8D 5C 8E 5C   十噂浬欺圭構蚕

ビルドした EBOOT.PBP のバイナリでは(コンパイル後)

    82 A0 82 A2 82 A4 82 A6 82 A8 41 42 31 5C 95 8F  あいうえおAB1\撫
    89 8A 8B 8C 8D 8E 00 炎旧克

     ↑↑↑ コンパイラにより、文字列が誤変換されています。

そこで、どうしたら良いか いろいろ考えてみました。
文字列中の 0x5C を 全角文字の場合だけ2バイト目が 0x5C だったら 直後に
もう一個 0x5C をつけてやると正常な ¥ になる事が判明したのです。

そこで、『制御文字 0x5C を正しく修繕するアプリ for Win32(仮称)』を作り、
そのパッチでC++ソース中の文字列に \を必要なら追加してファイル上書きしてから
そのC++ソースでビルド作業をすればいいんじゃね? という、実にくだらない発想
をしてみました。

変換するソースは、そのアプリにドロップしたファイルのみ、とか考えています。
パッチあてに失敗したら、ソースがぐちゃぐちゃになる可能性があるので、
上書きはやめておきます。別ファイル名で新規作成とか。

PSPSDKの日本語化パッチ作成 も考えましたが、苦労して制御文字の日本語対応
のみ、では むなしいので却下ですよ。
(実は、psp-gcc.exe を 逆アセンブルしてアセンブラソースで解析していたという裏話)
↑↑ コレをやるなら、エラーメッセージとか警告とかも日本語化させるべきですよ。
私は80x86アセンブラならなんとか解りますよ。R4000アセンブラはムズイ。

では、『制御文字 0x5C を正しく修繕するアプリ for Win32(仮称)』とやらの製作に
入りますので しばらくお待ちください。

【 関連記事 】
Windowsアプリ 制御文字リペア 【はるるん v0.2】 リリース!

関連記事
スポンサーサイト

[edit]

CM: 5
TB: 0

page top

この記事に対するコメント

Cygwin等のiconvが使える環境だと、MakefileのCFLAGSに--input-charset=cp932と記述すれば解決なんですけどね・・・
Minimalist PSPSDKに含まれていないのが痛い><。

憂煉 #- | URL | 2009/11/11 08:56 * edit *

自分も十字キーが表示できませんでした。
⇒warning: unknown escape sequence: '216'

まぁよくあるミスだったのですが、Shift-Jisの場合
以下の文字が、対象です。
[―](815C) [ソ](835C) [Ы](845C) [Ⅸ](875C) [噂](895C)
[浬](8A5C) [欺](8B5C) [圭](8C5C) [構](8D5C) [蚕](8E5C)
[十](8F5C) [申](905C) [曾](915C) [箪](925C) [貼](935C)
[能](945C) [表](955C) [暴](965C) [予](975C) [禄](985C)
[兔](995C) [喀](9A5C) [媾](9B5C) [彌](9C5C) [拿](9D5C)
[杤](9E5C) [歃](9F5C) [濬](E05C) [畚](E15C) [秉](E25C)
[綵](E35C) [臀](E45C) [藹](E55C) [觸](E65C) [軆](E75C)
[鐔](E85C) [饅](E95C) [鷭](EA5C)
わざわざ、作らなくても以下の文字列をレコード登録して、置換した後、コンパイルすればいいと思います。

時間の無駄な・・・w

sss #UaI1IDQo | URL | 2009/11/14 00:01 * edit *

Windows版の変換ソフトをつくってるんだが。

> 自分も十字キーが表示できませんでした。
> ⇒warning: unknown escape sequence: '216'
>
> まぁよくあるミスだったのですが、Shift-Jisの場合
> 以下の文字が、対象です。
> [―](815C) [ソ](835C) [Ы](845C) [Ⅸ](875C) [噂](895C)
> [浬](8A5C) [欺](8B5C) [圭](8C5C) [構](8D5C) [蚕](8E5C)
> [十](8F5C) [申](905C) [曾](915C) [箪](925C) [貼](935C)
> [能](945C) [表](955C) [暴](965C) [予](975C) [禄](985C)
> [兔](995C) [喀](9A5C) [媾](9B5C) [彌](9C5C) [拿](9D5C)
> [杤](9E5C) [歃](9F5C) [濬](E05C) [畚](E15C) [秉](E25C)
> [綵](E35C) [臀](E45C) [藹](E55C) [觸](E65C) [軆](E75C)
> [鐔](E85C) [饅](E95C) [鷭](EA5C)
> わざわざ、作らなくても以下の文字列をレコード登録して、置換した後、コンパイルすればいいと思います。
>
> 時間の無駄な・・・w

ぐはっ。
まぁ、出来たら、みんなで使おうぜッ! と言うことで、フリーソフトで配布するから、待っててチョ。

出来かけなんですよ。もうちっと待っててくれい!!

猫山猫宗 #jjrqi.Ao | URL | 2009/11/14 00:17 * edit *

うわぁ・・・
どうも文字化けする思ったらこれのせいか・・・OTZ
さっそくはるるん使わせてもらいました。

「ソ」は致命的ですねぇ・・・よく使うし・・・OTZ

ひ 魔人 #- | URL | 2010/07/28 17:07 * edit *

一回しか使えない「はるるん v0.2」

一回しか使えない「はるるん v0.2」なので、近日中に改良版「はるるん v0.3」をリリースします。

何回でも使えるよ版にバージョンアップ予定。

今まで不具合報告が来なかったのが不思議なくらいです。

猫山猫宗 #jjrqi.Ao | URL | 2010/07/28 22:55 * edit *

page top

コメントの投稿

Secret

page top

トラックバック

トラックバックURL
→http://nekoyama2gillien.blog36.fc2.com/tb.php/188-5da51c35
この記事にトラックバックする(FC2ブログユーザー)

page top


h o m e |


 

2017-05