I tried to make the text boxes wider some time ago, and I failed. I had the tiles set correctly, but not the palette mappings, so I could say it was 50% failure. The calculations needed to remap the palettes are quite complex. Also, a few years ago, I made a small sub-hack that made the box taller, almost twice as tall. However, I think it was not really functional with very long text strings. Or maybe it required some ASM, I can't remember exactly.
The other thing you have to consider is whether you foresee the use of accented characters. If you do, you have to leave an empty line between each line of text. If you don't, you can effectively double the available lines by canceling the line skip.
Thanks for stopping by my humble thread, Trax! hahah
So you have attempted expanding the text boxes before, but you say the palettes are what made it difficult?
As for what you mention in the second paragraph, by accented characters you mean like Á, É, etc, or special characters like ', ?, !, etc?
I did notice that the game tends to jump one whole row of tiles to print the next line of text, so perhaps we could somehow bypass this to effectively have around 8 lines of text per textbox instead of the 4 we have at the moment.
I believe Bisquit did the same thing for Castlevania II's textboxes, where he made it so that each text box has 8 lines now instead of 4. Both CV2 and Zelda 2 seem to use a very similar textbox setup.
I'll try to attempt the 8 lines thing and see if I can make something out of it.
Thank you so much, Trax!
I searched a little bit around the disassembly and found this in particular:
ldy #$0B ; 0xf666 $B656 A0 0B ; 0B = delay after dialog line with FD
cmp #$FD ; 0xf668 $B658 C9 FD ;
beq LB65E ; 0xf66a $B65A F0 02 ;
ldy #$2D ; 0xf66c $B65C A0 2D ; 2D = delay after dialog line with FE
sty $0566 ; 0xf66e $B65E 8C 66 05 ; Delay between letters
lda #$00 ; 0xf671 $B661 A9 00 ; A = 00
sta $0489 ; 0xf673 $B663 8D 89 04 ; New Letter X Position (offset)
lda $048A ; 0xf676 $B666 AD 8A 04 ; Next Letter Y Position
clc ; 0xf679 $B669 18 ;
adc #$40 ; 0xf67a $B66A 69 40 ; Go down 2 tiles (0x10 pixels)
sta $048A ; 0xf67c $B66C 8D 8A 04 ; New Letter Y Position
jmp LB752 ; 0xf67f $B66F 4C 52 B7 ;
This seems to be related to the FD/FE commands that the text uses to make a new line.
The portion I focused on was the [69 40] in particular.
I tried to change it to [69 20] to try to make the game print to the tile below instead of skipping one.
It DOES print to the tile below, but not without deleting the one above as it prints new letters.
I also tried [69 60] just to try and see what it does when skipping 2 tiles and printing to the third one, and this one effectively makes it so that I can only have 3 lines of text in a textbox (just as a simple test).
But 69 20 keeps removing the line above as it prints letters sadly.
I'll try to see what I can do in the meanwhile with this.
Hopefully that's what you meant by the line skip, if not then I am screwing around somewhere else lol