ROM Hack Help with Fire Emblem DS2 display/font issue

Aveyn Knight

Active Member
OP
Newcomer
Joined
Oct 20, 2011
Messages
25
Trophies
0
XP
143
Country
Actually, I've already done exactly as you suggested and all the translated text (barring special symbols) in the game is written using ASCII ^^;;;

I'm afraid there isn't anything magical about the EU font, itself, that prevents it from getting cut off in Shadow Dragon. Therefore, inserting the EU glyphs into this game as is (which I've done) does not solve the cut off issue either. It gives me much nicer looker English text though : P
 

Prof. 9

Well-Known Member
Member
Joined
Jun 17, 2008
Messages
324
Trophies
1
Location
The Netherlands
Website
twitter.com
XP
853
Country
Netherlands
I believe this is what you're looking for?

::Fix bottom of text box
52046F34 E59D3010
E2046F34 00000030
FAFFFFFF 433E9B04
35083301 930467AE
2B0A3410 E800F000
E585A07C 028DDF56
08BD8FF8 E3530008
02855D09 EAFFFF81
D2000000 00000000

All this does is make the character drawing routine for name boxes run for two more lines, and update the write address accordingly. I had to jump through a few hoops to fit everything in there though.

You'll have to write this to the arm9 binary somehow, but I wouldn't have the slightest clue how to as it appears to be encrypted (this is the case in just about every modern DS game unfortunately). You could employ a strategy similar to what modern anti-piracy patches do and patch a minimalistic cheat engine to the ROM.
 

Prof. 9

Well-Known Member
Member
Joined
Jun 17, 2008
Messages
324
Trophies
1
Location
The Netherlands
Website
twitter.com
XP
853
Country
Netherlands
Well, yes. If you want to go that route, this should do the trick.

00004508: 48 F4 66 F4 C2 A9 A0 DC → 18 10 9F E5 18 20 9F E5
00004510: A9 F5 A2 FC 89 83 29 C8 E8 CD DD 64 5F F8 F2 48 → 00 00 91 E5 02 00 50 E1 10 00 8F 02 18 20 A0 03
00004520: 87 55 8C 66 6B CB 51 12 29 21 AC A2 89 0C A9 D6 → 00 00 0B 0F 1E FF 2F E1 34 6F 04 02 10 30 9D E5
00004530: 34 EF 45 BD DA CA 08 25 81 52 A9 D4 59 8C 61 90 → FF FF FF FA 04 9B 3E 43 01 33 08 35 AE 67 04 93
00004540: 31 25 63 C5 80 7C C7 ED 8C 51 CE 65 37 19 CD 9F → 10 34 0A 2B 00 F0 00 E8 7C A0 85 E5 56 DF 8D 02
00004550: 6F 00 27 26 4E 38 C4 88 59 BA 0C C6 FB 71 C7 82 → F8 8F BD 08 08 00 53 E3 09 5D 85 02 81 FF FF EA
00004EA8: 1E FF 2F E1 → 96 FD FF EA
 

Aveyn Knight

Active Member
OP
Newcomer
Joined
Oct 20, 2011
Messages
25
Trophies
0
XP
143
Country
Cool, thanks! I'll try it out as soon as I have access to my files.

I can decrypt/encrypt the arm9.bin file, but I'm not super familiar with editing the file. I'll give it my best try : )

EDIT1

I got the cheat working. Wow, it looks really good. I'm shedding tears here. Thanks, you're a real life-saver!

Now to try and implement it in the game and hope it doesn't break anything!

EDIT2

Done and it works for me! Thanks again!
 

Prof. 9

Well-Known Member
Member
Joined
Jun 17, 2008
Messages
324
Trophies
1
Location
The Netherlands
Website
twitter.com
XP
853
Country
Netherlands
No problem. I took the liberty of looking at the following bug as well:

B. The text rewind function (press R when in dialogue) cuts off towards the far right.

Fix: Available, but apparently causes graphical glitches.
The reason this happens is because the game stores all the text displayed on the screen somewhere in order to be used by the text rewind function. For this, it allocates 40 (decimal) bytes per line, including a line terminator (0x00), no more, and cuts off lines that are too long. Effectively, this caps the number of characters able to be displayed on a single line in the text rewind function to 39 characters. I see two ways to fix it:

- Increase the amount of bytes allocated for each line. Cumbersome as you'll need to find all the limiting values and patch them. I tried this myself and got a nice freeze; you'll likely also have to move the actual storage area someplace else which is about 2 or 3 times more difficult. It also means you'd have to beta test EVERYTHING all over again. I would not recommend this option.
- Manually limit every single (dialogue) line in the game to 39 characters. Sounds annoying, but you could easily write a program that searches for lines that are too long. You may run into problems if you can't add new text boxes, but that shouldn't be too hard to figure out.
 

Blazer

Well-Known Member
Member
Joined
Aug 10, 2008
Messages
281
Trophies
0
XP
470
Country
United States
We tried the first option and get some good progress but it was too complicated.

The second option is too impractical given that the character limit in the normal text boxes is significantly higher IIRC

also that's an interesting fix though it's not the best one IMO, thanks a lot not that it technically affects me but it looks nice so I approve
 

Prof. 9

Well-Known Member
Member
Joined
Jun 17, 2008
Messages
324
Trophies
1
Location
The Netherlands
Website
twitter.com
XP
853
Country
Netherlands
Ah, hold up... I didn't realize the Shadow Dragon official translation moved the name up 2 pixels. Well, that makes this a whole lot easier... like 1 byte easy.

1o793.png


::Fix bottom of name box v2
52046B70 E3530002
02046B70 E3530000
D2000000 00000000

EDIT: You said you could decrypt/encrypt the arm9 binary so I'll leave the rest to you I guess. Also what do you use to do that? I haven't found a tool that lets me do so, I made my own decrypter but it'd be much easier if there was already something available.

Anyhow this shifts the character name up two pixels (or more accurately, un-shifts it down). I haven't tried it with the original fix but if you get any glitches try taking that off first. If you want to only shift it up 1 pixel that's possible too, you'd have to use both fixes at the same time and tweak them a little.
 

Aveyn Knight

Active Member
OP
Newcomer
Joined
Oct 20, 2011
Messages
25
Trophies
0
XP
143
Country
Awesome, I didn't realise it could get any easier. Thanks!

I use CrystalTile2 to compress/decompress the arm9 and overlay files. You can do this once you open the file tree system.

If it's not a bother, could you please convert the code to a hack, like what you did last time?
00004508: 48 F4 66 F4 C2 A9 A0 DC → 18 10 9F E5 18 20 9F E5
00004510: A9 F5 A2 FC 89 83 29 C8 E8 CD DD 64 5F F8 F2 48 → 00 00 91 E5 02 00 50 E1 10 00 8F 02 18 20 A0 03
00004520: 87 55 8C 66 6B CB 51 12 29 21 AC A2 89 0C A9 D6 → 00 00 0B 0F 1E FF 2F E1 34 6F 04 02 10 30 9D E5
00004530: 34 EF 45 BD DA CA 08 25 81 52 A9 D4 59 8C 61 90 → FF FF FF FA 04 9B 3E 43 01 33 08 35 AE 67 04 93
00004540: 31 25 63 C5 80 7C C7 ED 8C 51 CE 65 37 19 CD 9F → 10 34 0A 2B 00 F0 00 E8 7C A0 85 E5 56 DF 8D 02
00004550: 6F 00 27 26 4E 38 C4 88 59 BA 0C C6 FB 71 C7 82 → F8 8F BD 08 08 00 53 E3 09 5D 85 02 81 FF FF EA
00004EA8: 1E FF 2F E1 → 96 FD FF EA
 

Prof. 9

Well-Known Member
Member
Joined
Jun 17, 2008
Messages
324
Trophies
1
Location
The Netherlands
Website
twitter.com
XP
853
Country
Netherlands
If you can edit the decompressed ARM9 binary, it's not hard... just subtract 0x02004000 from the ARDS offset...
Code:
Decompressed ARM9 patch:
00042B70: 02 00 53 E3 → 00 00 53 E3

If that doesn't work for you, try this instead, this one is like the previous fix:
Code:
Full ROM patch:
00004508: 48 F4 66 F4 C2 A9 A0 DC → 00 40 2D E9 FF FF FF FA
00004510: A9 F5 A2 FC 89 83 29 C8 E8 CD DD 64 5F F8 F2 48 → 03 49 04 4A 08 68 90 42 01 D1 00 20 08 70 00 BD
00004520: 87 55 8C 66 6B CB 51 12 → 70 6B 04 02 02 00 53 E3
00004EA8: 1E FF 2F E1 → 96 FD FF EA
 

Blazer

Well-Known Member
Member
Joined
Aug 10, 2008
Messages
281
Trophies
0
XP
470
Country
United States
Yeah, I figured that moving it up two pixels would not only be easier but what would also be what Shadow Dragon did (since I did some researching my own) and thus also look better/be more professional

actually doing it was the main issue but apparently it's piss easy for you lol, man I wish I had your skills XD

tl;dr thanks for your awesomeness lol so I wonder if I changed that to 0xFF if it'd go up by 3 pixels (since you said you un-shifted it down, and 0x02 went to 0x00, if the value is signed, then 0xFF would be it... unless it actually uses a halfword and I'd have to put 0xFFFF or something but that wouldn't make a lick of sense especially since the DS screen isn't that tall to need it)
 

Prof. 9

Well-Known Member
Member
Joined
Jun 17, 2008
Messages
324
Trophies
1
Location
The Netherlands
Website
twitter.com
XP
853
Country
Netherlands
If you want it to go up by 3 pixels there's some more stuff you have to do, because this modifies ASM instructions. Shouldn't be too hard but moving it up 2px lines it up with Shadow Dragon exactly so eh.
 

Aveyn Knight

Active Member
OP
Newcomer
Joined
Oct 20, 2011
Messages
25
Trophies
0
XP
143
Country
Thanks!

Ahaha, I'm not familiar with cheat codes or arm hacking, so I didn't notice the relationship between the two. Well, the single byte hack seems to work right now, which is very nice : )
 

Frank Cadena

Well-Known Member
Member
Joined
Sep 13, 2009
Messages
317
Trophies
0
XP
123
Country
You can edit the cheat file on the flashcard and insert the "Fix bottom of name box v2" cheat. Activate the cheat and voilà the name cut off problem is solved and you don't have to worry about saves and what not. Just for the record, when they release a new patch, you won't have to start over from scratch or anything.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    ButterScott101 @ ButterScott101: +1