Hi
I want to translate "Captain Tsubasa Vol. II - Super Striker (J) [!].nes" from Japanese to Persian
But there is a problem
Japanese is written from Left-to-Right but Persian is written from Right-to-Left
So for the fist step I have to change the text direction which appears from Left-to-Right to Right-to-Left
I made some progress already :
I go to a page that the text appears gradually from Left-to-Right.
Then I hit the Pause button and then Debug --> Name Table Viewer
By pointing the first character of the sentence I found some nice info : Tile ID : #$4B / PPU address : $2269
Debug --> Debugger --> add --> address : 2269 / Write / PPU Mem --> OK
Then I restart the game and Debug --> Trace Logger --> Start Logging
Then I found this :
LDA $05EB,X @ $05EC A:00 X:01 Y:01
STA $2007 A:4B X:01 Y:01
So 4B (hex value of the character) is coming from $05EC
I set a write break point for $05EC and I found this :
LDA ($4D),Y @ $A2AD A:A2 X:05 Y:00
.
PHA A:4B X:22 Y:49
.
PLA A:82 X:03 Y:49 S:4D
.
STA $05E9,X @ $05EC A:4B X:03 Y:49
So 4B is coming from $A2AD
Debug --> Hex Editor --> File --> Go Address --> A2AD --> Right Click --> Go Here In Rom File --> $62BD
I change the 4B to 4C to see if the first character changes, and yes that's it!
************************************
Then I set a Read break point for $A2AD, well nothing new I found this already :
LDA ($4D),Y @ $A2AD
Then a write break point for $2006 :
LDA $05EA,X @ $05EA A:02 X:00 Y:02
STA $2006 A:22 X:00 Y:02
LDA $05E9,X @ $05E9 A:22 X:00 Y:02
STA $2006 A:49 X:00 Y:02
$2249 is the PPU address and goes high on showing up every character, so I have to trace $05E9 and #$49
I set a write break point for $05E9 and I found this :
LDY $0053 A:4C X:22 Y:00
.
TYA A:22 X:00 Y:49
STA $05E9,X @ $05E9 A:49 X:00 Y:49
This shows that #$49 is coming from $0053
So I set a write break point for $0053 :
LDA $0051 A:22 X:03 Y:00
STA $0053 A:49 X:03 Y:00
Another write break point for $0051 :
LDA $004F A:22 X:03 Y:00
STA $0051 A:49 X:03 Y:00
Another write break point for $004F :
$84CF:A9 49 LDA #$49 A:08 X:03 Y:00
$84D1:85 4F STA $004F = #$49 A:49 X:03 Y:00
Debug --> Hex Editor --> File --> Go Address --> 84CF --> Right Click --> Go Here In Rom File --> $04E0
I change #$49 to #$5C and I expect the sentence appears from somewhere near to the right edge of the screen, Yes that's it!
************************************
As I found before the PPU address goes high on showing up every character so I have to change something to make it go down
I look at ram address while the text appears and I found that $0053 goes high as the text appears so I set a write break point for $0053 :
$84F6:E6 53 INC $0053 A:82 X:05 Y:59
Debug --> Hex Editor --> File --> Go Address --> 84F6 --> Right Click --> Go Here In Rom File --> $0506
So I have to change E6 (INC) to C6 (DEC)
YES it worked! The text appears from Right-to-Left!
************************************
OK it is good so far!
But what is the problem now?
When the page changes the old text won't disappear!
But the new text appears just fine while overwriting the old text!
I seems after the first page, the game tries to clears the original place of the text on the left alignment of the screen.
Should I check for $2007 / $2006 / $2249 (Original PPU address of the) for anything like 00 or FF on them?
Any help would be appreciated.
I want to translate "Captain Tsubasa Vol. II - Super Striker (J) [!].nes" from Japanese to Persian
But there is a problem
Japanese is written from Left-to-Right but Persian is written from Right-to-Left
So for the fist step I have to change the text direction which appears from Left-to-Right to Right-to-Left
I made some progress already :
I go to a page that the text appears gradually from Left-to-Right.
Then I hit the Pause button and then Debug --> Name Table Viewer
By pointing the first character of the sentence I found some nice info : Tile ID : #$4B / PPU address : $2269
Debug --> Debugger --> add --> address : 2269 / Write / PPU Mem --> OK
Then I restart the game and Debug --> Trace Logger --> Start Logging
Then I found this :
LDA $05EB,X @ $05EC A:00 X:01 Y:01
STA $2007 A:4B X:01 Y:01
So 4B (hex value of the character) is coming from $05EC
I set a write break point for $05EC and I found this :
LDA ($4D),Y @ $A2AD A:A2 X:05 Y:00
.
PHA A:4B X:22 Y:49
.
PLA A:82 X:03 Y:49 S:4D
.
STA $05E9,X @ $05EC A:4B X:03 Y:49
So 4B is coming from $A2AD
Debug --> Hex Editor --> File --> Go Address --> A2AD --> Right Click --> Go Here In Rom File --> $62BD
I change the 4B to 4C to see if the first character changes, and yes that's it!
************************************
Then I set a Read break point for $A2AD, well nothing new I found this already :
LDA ($4D),Y @ $A2AD
Then a write break point for $2006 :
LDA $05EA,X @ $05EA A:02 X:00 Y:02
STA $2006 A:22 X:00 Y:02
LDA $05E9,X @ $05E9 A:22 X:00 Y:02
STA $2006 A:49 X:00 Y:02
$2249 is the PPU address and goes high on showing up every character, so I have to trace $05E9 and #$49
I set a write break point for $05E9 and I found this :
LDY $0053 A:4C X:22 Y:00
.
TYA A:22 X:00 Y:49
STA $05E9,X @ $05E9 A:49 X:00 Y:49
This shows that #$49 is coming from $0053
So I set a write break point for $0053 :
LDA $0051 A:22 X:03 Y:00
STA $0053 A:49 X:03 Y:00
Another write break point for $0051 :
LDA $004F A:22 X:03 Y:00
STA $0051 A:49 X:03 Y:00
Another write break point for $004F :
$84CF:A9 49 LDA #$49 A:08 X:03 Y:00
$84D1:85 4F STA $004F = #$49 A:49 X:03 Y:00
Debug --> Hex Editor --> File --> Go Address --> 84CF --> Right Click --> Go Here In Rom File --> $04E0
I change #$49 to #$5C and I expect the sentence appears from somewhere near to the right edge of the screen, Yes that's it!
************************************
As I found before the PPU address goes high on showing up every character so I have to change something to make it go down
I look at ram address while the text appears and I found that $0053 goes high as the text appears so I set a write break point for $0053 :
$84F6:E6 53 INC $0053 A:82 X:05 Y:59
Debug --> Hex Editor --> File --> Go Address --> 84F6 --> Right Click --> Go Here In Rom File --> $0506
So I have to change E6 (INC) to C6 (DEC)
YES it worked! The text appears from Right-to-Left!
************************************
OK it is good so far!
But what is the problem now?
When the page changes the old text won't disappear!
But the new text appears just fine while overwriting the old text!
I seems after the first page, the game tries to clears the original place of the text on the left alignment of the screen.
Should I check for $2007 / $2006 / $2249 (Original PPU address of the) for anything like 00 or FF on them?
Any help would be appreciated.