2012-09-02 39 views
0

我使用XCode在Mac OS X 10.6上編程。我試圖製作一個「解密」口袋妖怪GBA遊戲的程序,以便您可以使用任何文本編輯器閱讀遊戲對話框。Hex編輯C++中的GBA

我已經有了一個PROGRAMM完成巫婆這樣做,這樣我就可以閱讀所有的文本數據。

我的問題是,我需要對其進行編輯後更改明文回十六進制,但我不知道什麼即時作出錯誤的。

string PathDE; 
string PathGBA; 
string Zeichen; 
int kontrolle = 0; 
int current = 0; 

char buffer1[3] = "00"; 
char buffer2[3] = "a1"; 
... 

schreiben.open(PathGBA.c_str(), ios::out | ios::binary); //writes out the edited hex 
lesen.open(PathDE.c_str(), ios::in); //reads in the plain text 


while(current <= kontrolle){ 
    lesen.read(reinterpret_cast<char*>(&a), 1); 
    converter << a; 
    converter >> Zeichen; 
    if(Zeichen == "_"){ 
     schreiben.write(buffer1,3); 
    } 
    else if(Zeichen == "0"){ 
     schreiben.write(buffer2,3); 
    } 
... 

我tryed的是,但是當我在十六進制編輯器打開結果,ASCII碼是唯一的a8.a8.a8.a8 ...等等,直到EOF,和十六進制代碼是61 38 00 ...直到eof。

我也tryed等方法,但都具有相同的結果,我不能寫解碼GBA爲十六進制,所以我可以編輯的文本播放。

+0

你想要它成爲a8a8a8?或a8 a8 a8 a8而不是a8.a8.a8 –

+0

不,我不想讓它成爲a8 a8 a8。我要到一個文本文件中像這樣的內容翻譯: – user1641602

+0

你希望它是00 00 00或00000000 –

回答

0

您將需要用正確的編碼將字符串轉換爲byte []。 這裏是口袋妖怪的Gen3文本表 http://datacrystal.romhacking.net/wiki/Pok%C3%A9mon_FireRed_-_TBL

一旦轉換正確,你只需將它插入到你的ROM。

很抱歉,如果這並不幫助非常,但我只取得了C#口袋妖怪的工具,而不是C++。

而且順便說一句口袋妖怪犯規利用它採用UTF8的形式的ASCII十六進制加密。