Mario US with european languages
Users browsing this thread: 1 Guest(s)

Hello,

Mario 64 Pal with french, germain, spanich language is in 50 Hz.
Is-it possible to change the US rom for play in 60 Hz with french, germain, spanich language ?

Thanks.
(This post was last modified: 03-10-2016, 03:13 PM by zouzzz.)

I would say that it is possible to add language options in the (U) ROM, but quite difficult. I took a stab at disassembling the SM64 (E) ROM and found that it had the exact same level commands as (U), but its assembly and text storage is vastly different. It looks like for the (E) ROM, they used different compiler optimizations than (J) or (U) ROMs. This means that the code is much shorter and harder to read and match up with the (U) ROM. That said, I was still able to identify similar menu functions and some language specific settings.

If you want to start digging into the ROM, I have a lot of notes in an n64split config file for SM64 (E). Here are some pertinent notes:

Code:
​Functions:
(U) RAM / ROM    (E) RAM / ROM    Name
--------/------  8026B05C/02A85C  GetLanguage
801764E0/2269A0  801756A4/206744  MenuSelect
801758A0/225D60  801748D4/205974  SoundSelect(and language)
802D7B84/092B84  802ADC18/06D418  PutString(A3=string ptr)

Variables:
801A6D84(byte) Language in Menu (00 = English, 01 = Françias, 02 = Deutsch)
802030D2(half) Global Language returned from GetLanguage()

I have only looked at how the large text strings are stored for the menu. Each time PutString is called in the menus, it performs a lookup on the string. In this "Sound Select"/"Son"/"Sound" example, it is indexing into the String at 0x801A714C, where 0xB bytes are allocated for each string.

Code:
​lb    $t4, 0x801A6D84 # Load menu language (00=EN, 01=FR, 02=DE)
 la    $t6, 0x801A714C # String pointers for "Sound Select"
 sll   $t5, $t4, 2
 subu  $t5, $t5, $t4
 sll   $t5, $t5, 2
 addu  $t5, $t5, $t4   # t5 = 0xB * t4
 addu  $a3, $t5, $t6
 addiu $a0, $zero, 2
 addiu $a1, $zero, 0x2f
 jal   PutString
 addiu $a2, $zero, 0x20

Thanks for reply.
I'll be difficult for me.

Is there a tool for editing text Mario 64 (Pal version) ?

(26-10-2016, 05:12 PM)zouzzz Wrote: Is there a tool for editing text Mario 64 (Pal version) ?


No, not that I am aware of. Did you get any further decoding how the strings are stored for each language?

You could edit the texture of the font to add special characters by replacing unused ones. That's what I did and it works.
"Even if you build speed for 12 hours,  you can't escape the pain"

(27-10-2016, 03:25 PM)Biobak Underscore Wrote: You could edit the texture of the font to add special characters by replacing unused ones. That's what I did and it works.


This is also a good point. If you don't care about there being multiple language options, just want diacritic characters, then replacing unused ones or even expanding the dialog lookup table are options. I've got a full documentation on these characters and lookup table stored in the (U) ROM in the SM64 Segment 02 thread.

Mario US with european languages
Users browsing this thread: 1 Guest(s)