SMS Power! Logo Forums
Sega Master System / Mark III / Game Gear
SG-1000 / SC-3000 / SF-7000 / OMV
Home - Forums - Games - Development - Music

 View topic - Royal Stone translation
Log in
Search
Memberlist
Membermap
Profile
Register
 Log in to check your private messages
Reply to topic    Forum Index - Development
Author Message
Maxim
Site Admin

Joined: 19 Oct 1999
Posts: 7468
Location: London, UK
Royal Stone translation
Post Posted:  Wed Jul 14, 2004 7:41 pm Reply with quote

Quote:
> You may know me as the romhacker behind the english translations of Phantasy Star Adventure and Sylvan Tale. I'm also *cough* working on a translation for the apparent sequel to Crystal Warriors, "Royal Stone." I've got a willing translator who's completed the game (Shihtzu, same guy who did Sylvan Tale's script) and everything's all set to go.

> The way the script's stored is interesting. Each letter actually takes up two bytes, one of which will be printed -above- the current text line, specifically for those little symbols that modify the way a particular Japanese character is sounded.

A lot like Phantasy Star, which uses 2 rows of tiles to allow it to use one tile for katakana and one for the modifier. But it only uses 1 byte for encoding the character, which it looks up in a table for the tile indices.

Quote:
> This gives us both a lot of window space and a lot of text space, but there's a bit of a problem. The way the current text system is set up, it'd be printing two lines at a time, and the actual text itself would have to be arranged in the most obtuse manner during insertion for the extra space to be taken advantage of.

I presume you mean that one line of data gives 2 rows of tiles, a bit like having an 8x16 font. Maybe you could use that? Many characters share their upper or lower half, so the tile count might be low enough for mixed case.

Quote:
> So, this is me asking for someone to help modify the text read and display routines. It needs to be able to read one byte instead of two, and linebreak down a single line instead of two.

Fairly simple stuff to write, more tricky to insert. How much tile space is there for the font? Has anyone found the existing routines? What do you know about the available RAM for the text display routines, or special codes for things like character names, button prompts and items?

Quote:
> If Royal Stone was for the SNES, which has far more hacking utilities for it and whose assembly language I'm much more familiar with, I could do it myself -- it should be a fairly simple hack, but unless I see the game's code (and can understand it, heh) I can't really say. I can handle the rest of the game's hacking, but this is something that needs to be taken care of if we want any decent amount of space for reinserted text.

Z80 is easy to learn, more so if you've worked on a similar chip (eg. x86). But I think you might not want to do that just for this :)

Maxim
Back to top

View user's profile Send private message Visit poster's website
Gideon Zhi
Guest

Re: Royal Stone translation
Post Posted:  Wed Jul 14, 2004 9:49 pm Reply with quote

Quote:
> > You may know me as the romhacker behind the english translations of Phantasy Star Adventure and Sylvan Tale. I'm also *cough* working on a translation for the apparent sequel to Crystal Warriors, "Royal Stone." I've got a willing translator who's completed the game (Shihtzu, same guy who did Sylvan Tale's script) and everything's all set to go.

> > The way the script's stored is interesting. Each letter actually takes up two bytes, one of which will be printed -above- the current text line, specifically for those little symbols that modify the way a particular Japanese character is sounded.

> A lot like Phantasy Star, which uses 2 rows of tiles to allow it to use one tile for katakana and one for the modifier. But it only uses 1 byte for encoding the character, which it looks up in a table for the tile indices.

> > This gives us both a lot of window space and a lot of text space, but there's a bit of a problem. The way the current text system is set up, it'd be printing two lines at a time, and the actual text itself would have to be arranged in the most obtuse manner during insertion for the extra space to be taken advantage of.

> I presume you mean that one line of data gives 2 rows of tiles, a bit like having an 8x16 font. Maybe you could use that? Many characters share their upper or lower half, so the tile count might be low enough for mixed case.

> > So, this is me asking for someone to help modify the text read and display routines. It needs to be able to read one byte instead of two, and linebreak down a single line instead of two.

> Fairly simple stuff to write, more tricky to insert. How much tile space is there for the font? Has anyone found the existing routines? What do you know about the available RAM for the text display routines, or special codes for things like character names, button prompts and items?

> > If Royal Stone was for the SNES, which has far more hacking utilities for it and whose assembly language I'm much more familiar with, I could do it myself -- it should be a fairly simple hack, but unless I see the game's code (and can understand it, heh) I can't really say. I can handle the rest of the game's hacking, but this is something that needs to be taken care of if we want any decent amount of space for reinserted text.

> Z80 is easy to learn, more so if you've worked on a similar chip (eg. x86). But I think you might not want to do that just for this :)

> Maxim

Perhaps an example would be in order. It's honestly been ages since I looked at the game last, but I was struck with wanting to clear up some of my old hangers-on just before midnight last night (when I was trying to go to sleep, whee!)

There's "plenty" of tile space, as far as that goes -- examining it in Meka's tile viewer shows enough for 12 tiles for each line in the dialogue segments. Given that the text is drawn the way it is (as a bitmap rather than a tilemap) it may be in my interests to attempt a VWF for some of it, but that's another matter. Suffice it to say that there's enough window and tile space for five lines of twelve tiles each.

As far as the actual storage method of the characters, perhaps I didn't explain it fully enough. Either that or it's just weird that anybody'd do it that way, which is very possible :) Basically, each character stored in the rom is a two-byte pair. One is usually null, but when it's not, it shows the little " or circle -- dakuten and handakuten marks -- that modify the sounds of the original Japanese text.

But yeah, one line of text gives two lines of data, very much like having an 8x16 font, except that the top sound-modifier line gets fused with the top window border via a special hybrid character.

If it can be jury-rigged so that one line of text gives only one line of data, and that the extra bytes (that're usually null) that serve to post the sound-altering things can be used for actual text... It's theoretically possible to do with the way it's currently set up, but when the text scrolls the top line of data would overwrite the window border, you'd get two lines printing at the same time, and you'd have to store it so that two lines are combined as one, like so:

This is
some text.

would be something like...

sTohmies ties x t .

Special codes? Far as I know, only to pause text output, linebreak, and terminate a string. Haven't looked too deeply into the game though.

I wouldn't mind learning Z80 myself -- it might help with a few of my other, non-Sega related projects (like Star Ocean Blue Sphere... er.) Only chip I've dealt with myself is the 65816, and while I've looked at some gameboy documentation, Z80 definitely seems foreign to me. This is the first I've really dealt with messing with the routine, though.

I'll take a few screenshots, both of the game in Meka and of the data in the hex editor I'm using, and post them here in a bit.
Back to top

Isaac B.
Guest

Re: Royal Stone translation
Post Posted:  Fri Jul 16, 2004 10:15 pm Reply with quote

Quote:
> > > You may know me as the romhacker behind the english translations of Phantasy Star Adventure and Sylvan Tale. I'm also *cough* working on a translation for the apparent sequel to Crystal Warriors, "Royal Stone." I've got a willing translator who's completed the game (Shihtzu, same guy who did Sylvan Tale's script) and everything's all set to go.

> > > The way the script's stored is interesting. Each letter actually takes up two bytes, one of which will be printed -above- the current text line, specifically for those little symbols that modify the way a particular Japanese character is sounded.

> > A lot like Phantasy Star, which uses 2 rows of tiles to allow it to use one tile for katakana and one for the modifier. But it only uses 1 byte for encoding the character, which it looks up in a table for the tile indices.

> > > This gives us both a lot of window space and a lot of text space, but there's a bit of a problem. The way the current text system is set up, it'd be printing two lines at a time, and the actual text itself would have to be arranged in the most obtuse manner during insertion for the extra space to be taken advantage of.

> > I presume you mean that one line of data gives 2 rows of tiles, a bit like having an 8x16 font. Maybe you could use that? Many characters share their upper or lower half, so the tile count might be low enough for mixed case.

> > > So, this is me asking for someone to help modify the text read and display routines. It needs to be able to read one byte instead of two, and linebreak down a single line instead of two.

> > Fairly simple stuff to write, more tricky to insert. How much tile space is there for the font? Has anyone found the existing routines? What do you know about the available RAM for the text display routines, or special codes for things like character names, button prompts and items?

> > > If Royal Stone was for the SNES, which has far more hacking utilities for it and whose assembly language I'm much more familiar with, I could do it myself -- it should be a fairly simple hack, but unless I see the game's code (and can understand it, heh) I can't really say. I can handle the rest of the game's hacking, but this is something that needs to be taken care of if we want any decent amount of space for reinserted text.

> > Z80 is easy to learn, more so if you've worked on a similar chip (eg. x86). But I think you might not want to do that just for this :)

> > Maxim

> Perhaps an example would be in order. It's honestly been ages since I looked at the game last, but I was struck with wanting to clear up some of my old hangers-on just before midnight last night (when I was trying to go to sleep, whee!)

> There's "plenty" of tile space, as far as that goes -- examining it in Meka's tile viewer shows enough for 12 tiles for each line in the dialogue segments. Given that the text is drawn the way it is (as a bitmap rather than a tilemap) it may be in my interests to attempt a VWF for some of it, but that's another matter. Suffice it to say that there's enough window and tile space for five lines of twelve tiles each.

> As far as the actual storage method of the characters, perhaps I didn't explain it fully enough. Either that or it's just weird that anybody'd do it that way, which is very possible :) Basically, each character stored in the rom is a two-byte pair. One is usually null, but when it's not, it shows the little " or circle -- dakuten and handakuten marks -- that modify the sounds of the original Japanese text.

> But yeah, one line of text gives two lines of data, very much like having an 8x16 font, except that the top sound-modifier line gets fused with the top window border via a special hybrid character.

> If it can be jury-rigged so that one line of text gives only one line of data, and that the extra bytes (that're usually null) that serve to post the sound-altering things can be used for actual text... It's theoretically possible to do with the way it's currently set up, but when the text scrolls the top line of data would overwrite the window border, you'd get two lines printing at the same time, and you'd have to store it so that two lines are combined as one, like so:

> This is
> some text.

> would be something like...

> sTohmies ties x t .

> Special codes? Far as I know, only to pause text output, linebreak, and terminate a string. Haven't looked too deeply into the game though.

> I wouldn't mind learning Z80 myself -- it might help with a few of my other, non-Sega related projects (like Star Ocean Blue Sphere... er.) Only chip I've dealt with myself is the 65816, and while I've looked at some gameboy documentation, Z80 definitely seems foreign to me. This is the first I've really dealt with messing with the routine, though.

> I'll take a few screenshots, both of the game in Meka and of the data in the hex editor I'm using, and post them here in a bit.



What are you guys trying to do? I can give whatever I can, I'm familiar with both x86 amd Z80 asm.
Back to top

Reply to topic    Forum Index - Development All times are GMT
Page 1 of 1

 

Script phpBB © 2001, 2005 phpBB Group



Back to the top of this page
Back to SMS Power!