Baten Kaitos Origins - Female spirit disabled in US

Started by gadesx, April 19, 2020, 01:19:40 PM

Previous topic - Next topic

gadesx

I'm translating this game
and there's text about
select gender, File_60006009

With the Us version there's only Male, and that Window is skipped.

The script usually has
2 texts, with same content,
maybe the first is for male and the other message is for female.

I didn't checked that,
with the code

Female spirit (NA)
042D8760 00000001

Female can be always and maybe I can try if the text changed.
But I can't add again the spirit gender selection when you start a new game...

FAST6191

Interesting. Don't often see those kind of translation changes, though if it results in half the text (normally you pay by the word and this was a somewhat niche game) then I guess it makes sense.

So that code you posted presumably flips the game into being the female character? If you check the game and it uses the secondary female text (should be easy enough if you find the first lines in a game and change them to be different) then you have various choices.
1) Hardpatch the cheat into the game. (use this patch if you want to play as a girl sort of thing)
2) See if the devs merely skipped the selection screen and with that assumed nobody would be able to access it in normal play. How hard it might be to restore such a thing varies.
3) Add in your own selection option (possibly adding a button activator to the cheat*)

If the devs did not change the text along with it then it should not be too hard to change it. If it is mostly the same then you can presumably shuffle the pointers for the text along by however much is needed, or create a whole other pointer table. Manually setting pointers and doing another hardpatch to go along with your cheat would be the easiest option, getting something to change at runtime is a bit harder if it is not a simple addition to a pointer read (if you have different dialogue for some in game reason or even have a different length name then everything after that potentially starts to get out of line and makes a simple addition a harder prospect).

*that could also be the start of a character swapping hack (think fighting games, castlevania portrait of ruin or something else where you can tag in another character) but I will skip that one for now.

gadesx

#2
Well,
really in this game it's the spirit (the hero moves and ask to the player)
The code change to Female spirit,
I have no idea about if it's possible make a patch,
so maybe can be possible a "female spirit patch" always.
I have tools to translate the game made in 2011,
it's a big 6MB xml

The romhackers actually don't try things with this game,
I'm only the spanish translator that also tries to fix bugs,
and content censored.
Some of this content can be seen in the cutting room floor,
but maybe there is more censored.

I will try change any part with
text that can be different
with that code using Dolphin cheats.


April 21, 2020, 04:55:30 PM - (Auto Merged - Double Posts are not allowed before 7 days.)

Tested the code and tried
change a selection (of a lot that was copy-paste in usa)

Without code (male 1)
With code (female 2)



So they disabled that function
to have less text to translate in english.

And I don't know how to make a patch to restore/always enabled the female spirit.
Maybe someone discover a way in a future.

FAST6191

If you have a cheat to allow you to see it and the game still understands everything (as opposed to being stripped out) and you don't fancy tangling with the text engine to see how it was done (it might be quite basic -- see what the text looks like at that point in the Japanese version and it might be a matter of copying back in a command, especially if the devs otherwise left all the other code in there to handle it) you get the two options I mentioned.

1) You hardpatch the cheat into the game
2) You overwrite the pointer table (and possibly any sprite/model and attendant animations) for the text.

1) then.
Cheat engines usually work in games by injecting a small bit of code that always runs (say once a frame). You then find this and add a bit saying to write the area that your cheat there writes. Might not even have to do it every time but a simple write like that probably won't hurt anything.

Second option there is you set something that reads that area* and force its return value to be what you want. It will probably run something like read this area of memory, compare it to whatever it wants it to be, react accordingly or react another way if not. Change it so every time it takes say the female path and you have your hack.

*quick test that might be worth doing. Does the game check that area before every line? Which is to say if you force it male to start the game and then a few lines in manually change that memory to female does it change the lines or is it set? I have seen games do both major options here (check once on boot/loading save/selection and then go from there, and have seen them check every time).

All of this is big scary assembly hacking on its face but in reality you can probably accomplish this with a simple possibly even single instruction if you so desired.

2) Pointers.
Games are dumb by design and have no idea about the contexts of the text. The pointer in this case literally saying fetch this line (of segment of text) and display it. If you change the pointers you change the game.
You might need to overwrite models but as the game presumably already was able to handle the model it is not like you are dragging one in from another game and having to animate everything, make sure you don't run out of memory and do all that other stuff that comes with model editing and sprite fiddling.
Most certainly a tedious hack but should mostly amount to copy and pasting.