ROM Hack 3DS Mii Modifier (Computer Utility)

  • Thread starter Deleted User
  • Start date
  • Views 87,239
  • Replies 400
  • Likes 24

SomeGamer

Well-Known Member
Member
Joined
Dec 19, 2014
Messages
6,827
Trophies
1
XP
4,912
Country
Hungary
I just saw this thread and the new Mii page on 3dbrew. I added all my findings on Miis (mainly about which part can vary how much).
It's all from NTR debugging so not really useful as is.
I'll map those NTR addresses to decrypted Mii offsets when I'll get some time.
If some are interested in Mii research I have a Java app that can concert a QR code to a an encrypted .bin (and vice versa), a small HB that unwrap an input.bin to output.mii (and wrap an input.mii to output.bin), not sure that would be useful, thus not posting if no one interested.
Just post your app! I'm sure there's interest for it, including myself.
 

DrakeLyon

Console Perfectionist
Member
Joined
Sep 15, 2015
Messages
336
Trophies
0
Age
29
Location
Moss Point, MS
XP
484
Country
United States
@GamerDudeK upon taking away golden pants from my Primary Mii with this program, I'm unable to re-enable Sharing again. Is there a way you could possibly implement a feature to fix this for the primary Mii when disabling golden pants?
 

Goombi

my_crypto = meme_crypto
Member
Joined
Jun 1, 2014
Messages
144
Trophies
0
Location
RnVja1lvdU15RHVkZQ
Website
www.goombi.fr
XP
178
Country
France
Okay I finally got my shit together:
Here is the QR code encode/decoder (and futur encrypt/decrypt/edit app). Did I said that was in Java? Well I wanted everyone to enjoy it without having to install Java.
And here is the Mii decryptor. Use the QR code decoder to get a .bin and place it in the homebrew folder as input.bin.
Launch the HB and choose the option you want. Basically it's a APT:Wrap/Unwrap wrapper.

Hope those tools will help!

EDIT: Those expect decrypted Mii to be 0x60 bytes long. If you read your CFL_DB.dat they are 0x5c bytes long. You can add 4 null bytes, none of my apps nor the 3DS checks it but those bytes are required when reading the QR code.
 
Last edited by Goombi,

SomeGamer

Well-Known Member
Member
Joined
Dec 19, 2014
Messages
6,827
Trophies
1
XP
4,912
Country
Hungary
Okay I finally got my shit together:
Here is the QR code encode/decoder (and futur encrypt/decrypt/edit app). Did I said that was in Java? Well I wanted everyone to enjoy it without having to install Java.
And here is the Mii decryptor. Use the QR code decoder to get a .bin and place it in the homebrew folder as input.bin.
Launch the HB and choose the option you want. Basically it's a APT:Wrap/Unwrap wrapper.

Hope those tools will help!
Nice! Is there a self-hosatble version?
 

Chrushev

Well-Known Member
Member
Joined
Jul 23, 2013
Messages
642
Trophies
1
XP
1,482
Country
Serbia, Republic of
Okay I finally got my shit together:
Here is the QR code encode/decoder (and futur encrypt/decrypt/edit app). Did I said that was in Java? Well I wanted everyone to enjoy it without having to install Java.
And here is the Mii decryptor. Use the QR code decoder to get a .bin and place it in the homebrew folder as input.bin.
Launch the HB and choose the option you want. Basically it's a APT:Wrap/Unwrap wrapper.

Hope those tools will help!

EDIT: Those expect decrypted Mii to be 0x60 bytes long. If you read your CFL_DB.dat they are 0x5c bytes long. You can add 4 null bytes, none of my apps nor the 3DS checks it but those bytes are required when reading the QR code.

So what exactly can we do with this?
 

Goombi

my_crypto = meme_crypto
Member
Joined
Jun 1, 2014
Messages
144
Trophies
0
Location
RnVja1lvdU15RHVkZQ
Website
www.goombi.fr
XP
178
Country
France
Nice! Is there a self-hosatble version?
Well you can't host it offline for now, I call Google chart API to generate the QR code. If you want to host it elsewhere, just download the page, your browser should do the rest.

So what exactly can we do with this?
Well not much outside of doing research of offsets and making special Mii QR Code.
 

SomeGamer

Well-Known Member
Member
Joined
Dec 19, 2014
Messages
6,827
Trophies
1
XP
4,912
Country
Hungary
Well you can't host it offline for now, I call Google chart API to generate the QR code. If you want to host it elsewhere, just download the page
Thanks! I had a fear it had an online dependency. I don't know why, I like to host these kinds of things on my LAN. :P
 

Goombi

my_crypto = meme_crypto
Member
Joined
Jun 1, 2014
Messages
144
Trophies
0
Location
RnVja1lvdU15RHVkZQ
Website
www.goombi.fr
XP
178
Country
France
Thanks! I had a fear it had an online dependency. I don't know why, I like to host these kinds of things on my LAN. :P
I understand that very well, removing that dependancy is on the TODO list, I'll @' you once that's sorted out ;)

How about a "Mii research lab" thread instead of being topic-borderline?
 
  • Like
Reactions: SomeGamer

Jiro2

Well-Known Member
Member
Joined
Mar 28, 2011
Messages
781
Trophies
1
XP
750
Country
United States
Well, there's one of the very few advantages of a NNID, personal mii sync :)

----

Given how you're forced to create one before any other Mii, I wouldn't be too surprised if your personal Mii is just the first one in the file, hmmmm

The problem I am having is that I can't edit my personal Mii because the system thinks I didn't create it (since it was imported from another machine). So I would need to change whatever identifier is in the Mii to match my current machine so that the system will let me edit it.
 

Nyap

HTML Noob
Banned
Joined
Jan 13, 2016
Messages
971
Trophies
0
Age
55
Location
That Chaos Site
XP
483
Country
I'm trying to do this on linux using wine but when I choose my "CFL_DB.dat" it says "Load Error! No Miis Detected!"

edit: also, when I open up the other .exe (fixcrc.exe) it crashes and says:
Unhandled exception: page fault on read access to 0x00000034 in 32-bit code (0x7bc40231).
Register dump:
CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
EIP:7bc40231 ESP:0033fcf0 EBP:0033fd08 EFLAGS:00010206( R- -- I - -P- )
EAX:7eca6eb9 EBX:7bcdd000 ECX:0033fd20 EDX:7ed4f1a0
ESI:00000020 EDI:004033a0
Stack dump:
0x0033fcf0: 7ed4f1c0 7bc40226 0033fd20 7ed40000
0x0033fd00: 00000000 004033a0 0033fd38 7ecb9e0c
0x0033fd10: 0033fd30 7ed40000 7eca6eb9 7ecb9e0c
0x0033fd20: 00000020 7ecf8ce0 7ecbee3d 7ecb9de4
0x0033fd30: 0033fd50 7ed40000 0033fd88 7ecc0dc6
0x0033fd40: 00461798 00461798 00402114 7ecc0dc6
000c: sel=0067 base=00000000 limit=00000000 32-bit rw-
Backtrace:
=>0 0x7bc40231 RtlEnterCriticalSection+0x21() in ntdll (0x0033fd08)
1 0x7ecb9e0c MSVCRT__lock_file+0x3b() in msvcr120 (0x0033fd38)
2 0x7ecc0dc6 MSVCRT_fread+0x35() in msvcr120 (0x0033fd88)
3 0x004010bc in fixcrc (+0x10bb) (0x0033fdd0)
4 0x004012ec in fixcrc (+0x12eb) (0x0033fe10)
5 0x7b85f76c call_process_entry+0xb() in kernel32 (0x0033fe28)
6 0x7b860a28 in kernel32 (+0x50a27) (0x0033fe68)
7 0x7bc866ec call_thread_func_wrapper+0xb() in ntdll (0x0033fe98)
8 0x7bc897bd call_thread_func+0xfc() in ntdll (0x0033ff98)
9 0x7bc866ca RtlRaiseException+0x21() in ntdll (0x0033ffb8)
10 0x7bc593d6 in ntdll (+0x393d5) (0x0033ffe8)
11 0xf7536b1d wine_call_on_stack+0x1c() in libwine.so.1 (0x00000000)
12 0xf7536c80 wine_switch_to_stack+0x1f() in libwine.so.1 (0xfffc46d8)
13 0x7bc5d752 LdrInitializeThunk+0x231() in ntdll (0xfffc4738)
14 0x7b866d9e __wine_kernel_init+0x8ad() in kernel32 (0xfffc58a8)
15 0x7bc5e6f3 __wine_process_init+0x162() in ntdll (0xfffc5918)
16 0xf7534cd7 wine_init+0x2c6() in libwine.so.1 (0xfffc5978)
17 0x7bf00ef2 main+0x81() in <wine-loader> (0xfffc5dd8)
18 0xf7352646 __libc_start_main+0xf5() in libc.so.6 (0x00000000)
0x7bc40231 RtlEnterCriticalSection+0x21 in ntdll: movl 0x14(%esi),%eax
Modules:
Module Address Debug info Name (19 modules)
PE 400000- 452000 Export fixcrc
ELF 7b800000-7ba67000 Dwarf kernel32<elf>
\-PE 7b810000-7ba67000 \ kernel32
ELF 7bc00000-7bcfa000 Dwarf ntdll<elf>
\-PE 7bc20000-7bcfa000 \ ntdll
ELF 7bf00000-7bf04000 Dwarf <wine-loader>
ELF 7ec74000-7ed51000 Dwarf msvcr120<elf>
\-PE 7ec90000-7ed51000 \ msvcr120
ELF 7ef51000-7ef64000 Deferred libnss_files.so.2
ELF 7ef64000-7ef71000 Deferred libnss_nis.so.2
ELF 7ef71000-7ef8c000 Deferred libnsl.so.1
ELF 7ef8c000-7efe1000 Deferred libm.so.6
ELF f7335000-f733a000 Deferred libdl.so.2
ELF f733a000-f74ee000 Dwarf libc.so.6
ELF f74ef000-f750c000 Deferred libpthread.so.0
ELF f7521000-f752b000 Deferred libnss_compat.so.2
ELF f752b000-f76f3000 Dwarf libwine.so.1
ELF f76f5000-f771a000 Deferred ld-linux.so.2
ELF f771c000-f771d000 Deferred [vdso].so
Threads:
process tid prio (all id:s are in hex)
0000000e services.exe
0000001e 0
0000001d 0
00000014 0
00000010 0
0000000f 0
00000012 winedevice.exe
0000001a 0
00000019 0
00000018 0
00000013 0
0000001b plugplay.exe
00000020 0
0000001f 0
0000001c 0
00000021 explorer.exe
00000027 0
00000026 0
00000025 0
00000022 0
00000023 3DSMiiModifierV1.2.exe
0000002b 0
0000002a 0
0000002e 3DSMiiModifierV1.2.exe
00000033 0
00000032 0
00000053 3DSMiiModifierV1.2.exe
00000058 0
00000057 0
00000065 3DSMiiModifierV1.2.exe
0000006a 0
00000069 0
0000011a (D) Z:\home\nyap\3DS\fixcrc.exe
0000011b 0 <==
0000011c wineconsole.exe
0000011d 0
System information:
Platform: i386 (WOW64)
Version: Windows 7
 
Last edited by Nyap,

Nyap

HTML Noob
Banned
Joined
Jan 13, 2016
Messages
971
Trophies
0
Age
55
Location
That Chaos Site
XP
483
Country
Making another mii and then using that CFL_DB.bat seems to have fixed the "Load Error! No Miis Detected!" but when I select to make my personal mii a golden mii, and then I click the "apply and save" button, the program crashes. I think this is because the fixcrc.exe doesn't work.
 

Nyap

HTML Noob
Banned
Joined
Jan 13, 2016
Messages
971
Trophies
0
Age
55
Location
That Chaos Site
XP
483
Country
I'm also having a similar problem with the program throwing an error after saving.

Here's the image of the program opening before I click the save button.
70d41beb73ef2dabec3bacd8b33dcd44.png


Then, once I click, I see cmd open and close like it's supposed to and the program throws an out of bounds exception.
Here's the image:
fea9d13c0c44577c9083965168fd79e9.png


Here is the text containing the details of the error:
Code:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at _3DSMiiModifier.Form1.parseFields(String file, Int32 miiIndex)
   at _3DSMiiModifier.Form1.saveButton_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.1063.1 built by: NETFXREL3STAGE
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
3DSMiiModifier
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Users/PERSONAL/Downloads/EXE%20-%203DSMiiModifierV1.2/3DSMiiModifierV1.2.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.1038.0 built by: NETFXREL2
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.1038.0 built by: NETFXREL2
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.1038.0 built by: NETFXREL2
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.1038.0 built by: NETFXREL2
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

I haven't tested the results yet.
I've tested the results. My Mii shows up with Gold Pants. Great.
You should note in your OP that if you want your Gold Pants Mii to be in Mii Plaza you gotta reselect your Mii again.
I tried it on winXP again and I get the same error as this guy but no golden pants when I tested it D:

edit: output from wine in terminal:
fixme:module:load_dll Loader redirect from L"C:\\windows\\mono\\mono-2.0\\lib\\mono\\gac\\System.Windows.Forms\\4.0.0.0__b77a5c561934e089\\uxtheme" to L"uxtheme-gtk.dll"
Gtk-Message: Failed to load module "unity-gtk-module"
Gtk-Message: Failed to load module "canberra-gtk-module"
Gtk-Message: Failed to load module "canberra-gtk-module"
fixme:msg: Pack_message msg 14 (WM_ERASEBKGND) not supported yet
Z:\home\nyap\3DS\CFL_DB.dat
Currently Loading284376468560652744836928102011121204129613881480157216641756184819402032212422162308240024922584267627682860295230443136322833203412350435963688378038723964405641484240433244244516460847004792488449765068516052525344543655285620571258045896598860806172626463566448654066326724681669087000709271847276736874607552764477367828792080128104819682888380847285648656874888408932902491169208Done
Currently LoadingNew MiiFalseCurrently LoadingFalse : False
Currently LoadingCurrently LoadingLoaded from MiiSystem.ComponentModel.Win32Exception: ApplicationName='fixcrc.exe', CommandLine='"Z:\home\nyap\3DS\CFL_DB.dat"', CurrentDirectory='Z:\home\nyap\3DS', Native error= File not found.

at System.Diagnostics.Process.Start_noshell (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process) <0xb4f79a0 + 0x0054f> in <filename unknown>:0
 
Last edited by Nyap,

CyberMario

Well-Known Member
Newcomer
Joined
Jan 10, 2016
Messages
87
Trophies
0
Location
???
XP
191
Country
United States
I tried it on winXP again and I get the same error as this guy but no golden pants when I tested it D:

edit: output from wine in terminal:

You have an entirely different error than mine. My best guess is that your exported Mii file from your 3DS got corrupted in some way.

Here is what I recommend to try and fix:
  1. With your 3DS SD already inserted, load Mii Maker on your 3DS. Click on your Mii. Check to see if anything is wrong. (For an extra step make a Mii and then delete it)
  2. Exit Mii Maker by going back to the home menu and X-ing it out. Reboot your 3DS
  3. Now export your Mii Maker file as OP described.
  4. BACK UP THAT SAVE FILE
  5. DOUBLE CHECK THAT YOU BACKED IT UP
  6. Try the program again.
 

DrakeLyon

Console Perfectionist
Member
Joined
Sep 15, 2015
Messages
336
Trophies
0
Age
29
Location
Moss Point, MS
XP
484
Country
United States
Anyone having an error with your Primary Mii not being your own anymore, just go to your Nintendo Network ID Settings and edit your avatar. It'll take away the gold pants, but you can simply bring it back later.
 

Jiro2

Well-Known Member
Member
Joined
Mar 28, 2011
Messages
781
Trophies
1
XP
750
Country
United States
Anyone having an error with your Primary Mii not being your own anymore, just go to your Nintendo Network ID Settings and edit your avatar. It'll take away the gold pants, but you can simply bring it back later.

This system doesn't have a NNID. I never created one.
 
Last edited by Jiro2,
  • Like
Reactions: DrakeLyon

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    NinStar @ NinStar: the voices inside my head