DougRPG wrote:
Quote:
At any rate, I can finally see a light at the end of the tunnel if only I can quit overloading the VRAM with story bytes sporadically. You said this game is 2.5 M. Well, I wish we could expand it to 3.0 and point all of this dialogue somewhere else! I may have just exposed my technical naivete here, though. It could be that I'm overloading just certain strings with script that are crashing the game in a way that expansion wouldn't help. I tried reducing the font size, but my current VRAM corruption in late Scenario 5 is still crashing the game, regardless, and right now I don't know where to cut bytes to fix it.
Maybe is there a dialogue size limit? I'm translating some games where the size limit for each dialogue is 256 bytes (or something like that), and if the translated string is larger than the limit, the results are unpredictable. Maybe the dialogue routines don't check the size, so it's crashing the game in some way. If this is the case your inserter could check these limits, or I think Bongo could "easily" rewrite these routines to allow an unlimited dialogue size, maybe adding some new control bytes, etc.
I think that expanding to 3M only gives you more space, and isn't related to crashes, unless your script is already very large and is beginning to overlap other data.
Sorry if I'm talking some nonsense, because I don't know the details about this game and I don't have as much romhacking experience as you guys.
Your theory makes perfect sense to me. We had a similar problem in Burning Heroes, at first, but ROM expansion and other alterations to the routines seemed to fix it. 256 bytes rings a bell, but it may have been a game other than BH.
Also, in CS, we seem to have a glitch when we add continuation screens to a string. Generally, Bongo` and Drakee have forewarned me not to add continuation screens, but to work within a 4-line screen that offers great flexibility through auto-formatting the dialogue box's size.
However, I've encountered some strings in Scenario 5 that appear to have multiple screens formatted via the control codes. I've run with these, although they break the general mold I've followed through five previous CS scenarios. Here's an example:
;------------------------;
; Declared Pointer Label ;
;------------------------;
_Label_08EA:
.TEXTBOX.STYLE [$FD]
;#######################;
; Open Dialogue Session ;
;#######################;
.TEXT.OPEN
No, you got what was coming![newl]
No one who keeps someone[newl]
waiting that long deserves[newl]
any consideration![Keyp]
Wh-What... I'm[newl]
the bad one!?[Keyp]
Where does a some hick[newl]
redneck such as you get[newl]
off speaking to me this[newl]
way!?
.TEXT.CLOSE
.TEXTBOX.STYLE [$FD]
Typically, in every string, I am confined to 1-to-4 lines.
These are separated by the [newl] control code,
and the final line has no code.
As you can see in the example above,
three screens are formatted in a single string.
These are separated by the control code [keyp].
Now, this is all fine and dandy if the original game format replicated this exact pattern.
What I was told not to do specifically was add new screens within a string using [keyp] or it's equivalent.
In nearly all of the games we do, however, this type of story augmentation is never a major problem.
The thing is, I don't know the original game layout in these instances of dialogue that I "inherited" in Scenario 5.
I do know that I can add as little as one-byte-to-two-full-lines of text to a any given string and occasionally crash this game!
The same thing happened frequently in Mystic Ark after we altered our whole architecture to run on real hardware.
Eventually, we'll sort all of this out, but this is just one more example of the many learning curves we have experienced with CS.
I wish I had been paying closer attention and detected this crash immediately after I loaded the rewritten string that caused it.
As it stands, it could be between 1 and 400 lines of text in any one of about a dozen blocks.
All I'm fairly certain about is that it happened in the town of Doutenpuku, very late in Scenario 5,
between exiting the cave to just before the fight with General Raikan in the army HQ.