Có vẻ như một số người chưa hiểu rõ lắm về công việc trans text này. Bài này sẽ giới thiệu sơ qua một chút, cần tham khảo thêm
trang trước để hiểu rõ hơn.
__________________________________________________________________________
Như các bạn đã biết, mỗi ký tự trong game được quy định bằng một cặp số.
Chẳng hạn a= 01, b=02,.... Nhưng làm thế nào để xác định được cặp số nào là chữ cái nào?
Muốn biết được thì bạn phải dùng công cụ
Relative Search (tìm kiếm tương đối). Hình như
Windhex cũng có chức năng tìm kiếm tương đối này nhưng mình chưa thử qua.
Nguyên tắc của nó như sau (lưu ý là ở đây chỉ nói nguyên tắc hoạt động phổ thông chứ không nói cụ thể của một chương trình nào do đó có thể khác với thực tế)
+ Máy tính sử dụng hệ thập lục (hexa) và Rom là một chuỗi số liên tục. Hệ thập lục bao gồm 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
Như vậy ta có thể thấy được quan hệ tương đối giữa các con số. 1 cách 0 1 đơn vị, 2 cách 0 1 đơn vị, F cách D 2 đơn vị, A cách E 4 đơn vị. Dễ hiểu không ?
+ Dưới đây là bảng chữ cái Alphabet
http://www.spraypaintstencils.com/alphabetstencils/alphabet-stencil.gif
Tương tự như đối với dãy số trong Hex, bạn có thể thấy rõ vị trí tương đối của các chữ cái với nhau. A kém B 1 đơn vị, kém C 2 đơn vị, kém D 3 đơn vị, Z hơn X 2 đơn vị.
+ Dưới đây là bảng chữ Hiragana của tiếng Nhật
http://aozora2006.files.wordpress.com/2008/04/hiragana.gif
Bạn cũng có thể thấy được mối quan hệ tương đối giữa các chữ cái. A kém I 1 đơn vị, kém U 2 đơn vị, kém E 3 đơn vị, kém O 4 đơn vị, kém Ka 5 đơn vị, Me hơn Mi 2 đơn vị.
Có dễ hiểu không?
Như vậy, để tìm được ký tự nào tương đương với cặp số nào trong ROM thì bạn dùng soft Relative Search để dò ra vị trí tương đối của chúng.
Chẳng hạn, bạn mở game lên, vào
lúc đầu (nên chọn lúc đầu cho dễ dò) có nhân vật nói là Konnichiha (xin chào)
Tức vị trí tương đối của dãy ký tự này là: 9 (K)- 4 (O) - 45 (N) - 21 (Ni) - 16 (Chi) - 25 (Ha).
Bạn nhập dãy số 9445211625 vào trình relative search thì nó sẽ cho ra những vị trí của các dãy số thỏa mãn yêu cầu trên. Nếu may mắn thì chỉ có 1 kết quả duy nhất, đó chính là chuỗi ta cần tìm. Nhưng cũng có khi nó cho ra nhiều kết quả và lúc đó ta chỉ còn cách là thử từng trường hợp.
Thử như thế nào?
Chẳng hạn chương trình đã dò ra địa chỉ của chuỗi tương đối 9445211625 ở trên là
001234BC chẳng hạn. Bạn chỉ cần mở
Windhex (hay bất cứ soft chỉnh hex nào), nhảy tới vị trí 001234BC rồi thay đổi 1 con số, save rom. Load game và quan sát, nếu câu Konnichiha vẫn không đổi thì nghĩa là chúng ta đã tìm sai và thử lại kết quả khác. Nếu câu "Konnichiha" này biến đổi 1 từ trong đó thì ta đã dò ra được.
Chẳng hạn nếu ta sửa 05 thành 1A và game hiện câu Sonnichiha thay vì Konnichiha thì ta đã biết giá trị 1A=S và 05=K. Dễ hiểu không?
+ Khi đã xác định được 1 ký tự thì những ký tự còn lại rất dễ vì nó theo vị trí tương đối. Chẳng hạn bạn đã biết 1A=S thì 1B=T, 1C=U, 09=R, 08=Q,....
__________________________________________________________________________
Bạn đã biết giá trị nào là ký tự nào. Khi mở Rom (bằng Windex) thì sẽ thấy một chuỗi số liên tục và không biết đâu là data của Rom và đâu là data của lời thoại trong game.
Vì 01=A trong hội thoại nhưng 01 cũng là những giá trị khác của game, như sức đánh, bước đi, HP của nhân vật hay là code gì đó....
Như vậy làm cách nào để phân biệt đâu là script của game và đâu là data? Lúc đó ta cần đến khái niệm
table
Khi ta biết được 01=A, 02=B, 03=D,... (hay a, i, u, e, o trong tiếng Nhật) thì ta sẽ nhập dữ liệu này vào một file text. Đổi đuôi file thành .tbl
rồi load file này trong mục table của Windhex, và nó sẽ hiện ra nội dung hội thoại ở khung bên phải. Chẳng hạn bên trái có 010203 thì bên phải sẽ hiện ra ABCD...tương ứng.
Lúc đó ta có thể thay đổi nội dung lời thoại bằng cách thay đổi số hex.