Hey Sam, I think I should warn you about something. I've made great progress with Emerald Dragon so the project can go forward with now having a good handle on it and with David's recompression code from Ys IV working! But, in working on the first text block, I see that we will have problems fitting in your translated results. The LZSS text codec will not cut it for the amount of English text that you wrote...
When I started, the text block compressed ~4,000 bytes in excess of the space allocated (the allocated block is 4,175 bytes, and it needed ~8000 bytes initially!). This is 101 strings, and so the last 40 were blanked out to "T\pause\0" temporarily so that I could shrink it and recompress it to fit, just get something working and visible for testing/learning! The process since then has been editing your results down, examples as follow:
** Logical trimming with context. She's standing right in front of the town, next to the Town of Ulwan sign.
[07]Young Girl<\r>
No, I'm not Tamryn.<\p> If<\r>
you're looking for her, you<\r>
might try up in the Town of<\r>
Ulwan.<\p><\0>
[07]Young Girl<\r>
Ulwan is just right over<\r>
there.<\p> Just walk straight<\r>
north and you should<\r>
reach it.<\p><\0>
[07]Young Girl<\r>
No, I'm not Tamryn but you<\r>
might find her here.<\p><\0>
[07]Young Girl<\r>
This is the Town of Ulwan.<\r>
Just head north.<\p><\0>
** This idea we're definitely gonna have to do: Since you are talking to the character that's perfectly visible throughout the message boxes that appear, you only need to state their name or description on the first line once!
[07]<YELLOW>Lady<WHITE><brk><\r>
That Heretic <GREEN>Bagin<WHITE> is a<\r>
terrible man.<\p><\0>
[07]<YELLOW>Lady<WHITE><brk><\r>
10 years ago, he left his<\r>
own child somewhere and he<\r>
almost never visits her...<\p><\0>
[07]<YELLOW>Lady<WHITE><brk><\r>
In fact, he won't even let<\r>
her call him "father."<\p><\0>
[07]<YELLOW>Lady<WHITE><brk><\r>
"The Heretics Way" seems to<\r>
mean isolating yourself from<>
the rest of us.<\p><\0>
[07]<YELLOW>Lady<WHITE><brk><\r>
That Heretic <GREEN>Bagin<WHITE> is a<\r>
terrible man.<\p><\0>
[07]10 years ago, he left his<\r>
own child somewhere and he<\r>
almost never visits her...<\p><\0>
[07]In fact, he won't even let<\r>
her call him "father."<\p><\0>
[07]"The Heretics Way" seems to<\r>
mean isolating yourself from<>
the rest of us.<\p><\0>
** The other idea is something your programmer EsperKnight would probably have no problem implementing. It's a basic compression idea from David that can be accomplished with the hacking of the print routine. It's based on the fact that 20-30% of a script is space characters. So, take this example string:
Text Input:
"TheBoyWentToTheStore."With some recoding in the print routine, a simple algorithm is implemented to lowercase and interpret a space character need based on a previous letter being lowercase and the next one being uppercase.
1) Read character.
2) If uppercase, check if previous char is lowercase. If false, print normally. If true, print space character, lowercase the current char, then print it.
3) LOOP/REPEAT TILL CHAR = 0x00.
So, with that basic hack to the print routine, the previous ASCII input is outputted to this:
Display Output:
"The boy went to the store."The LZSS codec will have 20-30% less text to compress as a result of this! Now, I'm not saying for sure this would be needed, you might get away without it, but if you can't, I'm putting the idea out there so you can pass it along to him... I'm not 100% sure I'll need it for Emerald Dragon, I'll find out soon enough, but yeah. It's a good, simple idea and it's possible to implement if enough of the S-JIS processing code in the print routine is overwritten with new code to do it!
The bottomline of my warning here was you need to be thinking about how to say just about the same thing with less words... I dunno if you've ever gotten to the post-editing phase with any of your projects with him, and maybe you just wanted to cross that bridge when you get to it, but just FYI, I have A LOT of trimming to do for this first text block with Emerald Dragon! I don't know if I can implement that space compression idea, I might try when I track down the print routine. I can definitely get rid of the 0x07 font switch code for going to 8x12 mode, and not having to use the code with every string! That'll save me 101 bytes for this 1st text block (7,357 bytes considering the whole script), so that's a start! The biggest savings is of course not repeating the name/description of a character every time they speak! So yeah, things to consider for your other projects. Anyway, stay tuned for an upcoming progress update for ED in my thread!