ROM Hack 3DNUS - Linux & Mac OS mod

Dr.Hacknik

Ashley | Developer | Trans
Member
Joined
Mar 26, 2014
Messages
1,773
Trophies
1
Age
24
Location
inside your fridge
Website
dochacknik.keybase.pub
XP
2,219
Country
United States
Alright, source code received.
There was a lot more in terms of windows media player calls to comment out in this one, and I must say it took me about two minutes to figure out where the text box was supposed to be.

But after that (and struggling for about 20 minutes to make the zip library the new version uses compile in mono), it's done, I think. I'll add modded 3.0.1 and source to the OP, as well as the original source for 3.0.1 since it appears it's kind of hard to find.

oT6eB33.png
Thanks a ton for doing all of this; and sorry for any trouble that may be caused due to other libraries being used.
Also, the "unfinished" branch on GitHub contains the latest 3.0.1 source code, within "unfinished\Source\3DSNUS_Material_source\3DNUS_Material_Edition."
Again, thank you very much; and I hope to see you Improve 3DNUS for Linux and Mac users.
 
Last edited by Dr.Hacknik,

wyatt8740

Member
OP
Newcomer
Joined
Mar 15, 2017
Messages
24
Trophies
0
Age
27
Location
That's neither here nor there.
XP
109
Country
United States
Thanks a ton for doing all of this; and sorry for any trouble that may be caused due to other libraries being used.
The zip library wasn't really a problem as much as the problem was my inexperience with .NET/CIL.
The "material design" library was kind of an odd choice, but it was actually easier to get to compile than the zip library, and it beats relying on a system-specific binary like 2.x does with 7-zip via shellExecute().
Again, thank you very much; and I hope to see you Improve 3DNUS for Linux and Mac users.
I will try to. I have used C# only very rarely, so I can't tell how much I'll be able to do, but I will try to make it more robust.
 

wyatt8740

Member
OP
Newcomer
Joined
Mar 15, 2017
Messages
24
Trophies
0
Age
27
Location
That's neither here nor there.
XP
109
Country
United States
Looks like MaterialSkin.dll is the reason that 3.x is not cross-platform native via mono.
Mono's WinForms implementation does not have some of the font loading calls that MaterialSkin uses. So if I can manage to strip the material skin theme out, it should probably work more natively.
 

Dr.Hacknik

Ashley | Developer | Trans
Member
Joined
Mar 26, 2014
Messages
1,773
Trophies
1
Age
24
Location
inside your fridge
Website
dochacknik.keybase.pub
XP
2,219
Country
United States
Looks like MaterialSkin.dll is the reason that 3.x is not cross-platform native via mono.
Mono's WinForms implementation does not have some of the font loading calls that MaterialSkin uses. So if I can manage to strip the material skin theme out, it should probably work more natively.
The material Skin Library was only meant to make 3DNUS look more, clean. You should be able to remove the library quite easily. You'll just need to modify the code here and there, and re-add some of the functions.
 

wyatt8740

Member
OP
Newcomer
Joined
Mar 15, 2017
Messages
24
Trophies
0
Age
27
Location
That's neither here nor there.
XP
109
Country
United States
I didn't even have to add any functions, I just commented out about 150 lines.
(did it before I even saw this, actually).
Here's the preliminary result (e.g., the first build not relying on material), running in pure mono (no wine):
RKawvSt.png


I will continue to work on this for a little bit to make it less ugly and then upload the result.

Apart from removing some code lines, I also replaced all references to material design elements with their Windows Forms equivalents, since Mono implements all of those. Doing this lost all the mouse hover tooltips, but nothing else of value was lost.
 
Last edited by wyatt8740,

wyatt8740

Member
OP
Newcomer
Joined
Mar 15, 2017
Messages
24
Trophies
0
Age
27
Location
That's neither here nor there.
XP
109
Country
United States
OK, I've built a native Mono version.
Doesn't work in OS X until I or someone else has time to compile make_cdn_cia, though (it will still work on OS X as-is via Wine, which will run the windows make_cdn_cia.exe).

Links in the OP.
 

orangesoncom

Member
Newcomer
Joined
May 25, 2016
Messages
8
Trophies
0
XP
493
Country
Indonesia
Hi,
The apps crash when I tried to download firmware for New 3DS, but run normal on Old 3DS firmware download

Code:
System.IO.InvalidDataException: Invalid report file!
  at _3DNUS.YLS.Import (System.String wat) <0x41be8400 + 0x0046b> in <filename unknown>:0
  at _3DNUS_Material_Edition.FormMain.materialFlatButton1_Click (System.Object sender, System.EventArgs e) <0x41b383c0 + 0x001db> in <filename unknown>:0
  at System.Windows.Forms.Control.OnClick (System.EventArgs e) <0x41b2ed50 + 0x00065> in <filename unknown>:0
  at System.Windows.Forms.Button.OnClick (System.EventArgs e) <0x41b38350 + 0x00053> in <filename unknown>:0
  at System.Windows.Forms.ButtonBase.OnMouseUp (System.Windows.Forms.MouseEventArgs mevent) <0x41b2e7b0 + 0x000ff> in <filename unknown>:0
  at System.Windows.Forms.Button.OnMouseUp (System.Windows.Forms.MouseEventArgs mevent) <0x41b38330 + 0x00013> in <filename unknown>:0
  at System.Windows.Forms.Control.WmLButtonUp (System.Windows.Forms.Message& m) <0x41b2e540 + 0x00110> in <filename unknown>:0
  at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) <0x41a60550 + 0x00217> in <filename unknown>:0
  at System.Windows.Forms.ButtonBase.WndProc (System.Windows.Forms.Message& m) <0x41b064b0 + 0x00073> in <filename unknown>:0
  at System.Windows.Forms.Button.WndProc (System.Windows.Forms.Message& m) <0x41b08280 + 0x00013> in <filename unknown>:0
  at System.Windows.Forms.Control+ControlWindowTarget.OnMessage (System.Windows.Forms.Message& m) <0x41a60520 + 0x00024> in <filename unknown>:0
  at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) <0x41a604e0 + 0x00036> in <filename unknown>:0
  at System.Windows.Forms.NativeWindow.WndProc (IntPtr hWnd, Msg msg, IntPtr wParam, IntPtr lParam) <0x41a5ec20 + 0x003b4> in <filename unknown>:0

--edite--
forgot to mention, I use gentoo linux 64 bit
 

wyatt8740

Member
OP
Newcomer
Joined
Mar 15, 2017
Messages
24
Trophies
0
Age
27
Location
That's neither here nor there.
XP
109
Country
United States
Hi,
The apps crash when I tried to download firmware for New 3DS, but run normal on Old 3DS firmware download

Code:
System.IO.InvalidDataException: Invalid report file!
  at _3DNUS.YLS.Import (System.String wat) <0x41be8400 + 0x0046b> in <filename unknown>:0
  at _3DNUS_Material_Edition.FormMain.materialFlatButton1_Click (System.Object sender, System.EventArgs e) <0x41b383c0 + 0x001db> in <filename unknown>:0
  at System.Windows.Forms.Control.OnClick (System.EventArgs e) <0x41b2ed50 + 0x00065> in <filename unknown>:0
  at System.Windows.Forms.Button.OnClick (System.EventArgs e) <0x41b38350 + 0x00053> in <filename unknown>:0
  at System.Windows.Forms.ButtonBase.OnMouseUp (System.Windows.Forms.MouseEventArgs mevent) <0x41b2e7b0 + 0x000ff> in <filename unknown>:0
  at System.Windows.Forms.Button.OnMouseUp (System.Windows.Forms.MouseEventArgs mevent) <0x41b38330 + 0x00013> in <filename unknown>:0
  at System.Windows.Forms.Control.WmLButtonUp (System.Windows.Forms.Message& m) <0x41b2e540 + 0x00110> in <filename unknown>:0
  at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) <0x41a60550 + 0x00217> in <filename unknown>:0
  at System.Windows.Forms.ButtonBase.WndProc (System.Windows.Forms.Message& m) <0x41b064b0 + 0x00073> in <filename unknown>:0
  at System.Windows.Forms.Button.WndProc (System.Windows.Forms.Message& m) <0x41b08280 + 0x00013> in <filename unknown>:0
  at System.Windows.Forms.Control+ControlWindowTarget.OnMessage (System.Windows.Forms.Message& m) <0x41a60520 + 0x00024> in <filename unknown>:0
  at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) <0x41a604e0 + 0x00036> in <filename unknown>:0
  at System.Windows.Forms.NativeWindow.WndProc (IntPtr hWnd, Msg msg, IntPtr wParam, IntPtr lParam) <0x41a5ec20 + 0x003b4> in <filename unknown>:0

--edite--
forgot to mention, I use gentoo linux 64 bit
Hmm, I'll look at it in the morning. I think I know why this happens, but I just got home from work and I'm exhausted.

Thank you for letting me know!
You're using the native version, right? or do all of them do this?
 

orangesoncom

Member
Newcomer
Joined
May 25, 2016
Messages
8
Trophies
0
XP
493
Country
Indonesia
Hmm, I'll look at it in the morning. I think I know why this happens, but I just got home from work and I'm exhausted.

Thank you for letting me know!
You're using the native version, right? or do all of them do this?
Yes I use the native version, and have a good rest :)
 

wyatt8740

Member
OP
Newcomer
Joined
Mar 15, 2017
Messages
24
Trophies
0
Age
27
Location
That's neither here nor there.
XP
109
Country
United States
Yes I use the native version, and have a good rest :)
Looks like it's caused by nintendo throwing a curveball in Taiwan ~17 days ago (march 2). They released an update with the "version number" N/A.
I don't know what version this represents, so I'm tempted to just discard that entry since it causes problems. Unless anyone here can tell me what version it is?

https://yls8.mtheall.com/ninupdates/reports.php#Systems

See how the latest for New3DS is "N/A".
 
Last edited by wyatt8740,

wyatt8740

Member
OP
Newcomer
Joined
Mar 15, 2017
Messages
24
Trophies
0
Age
27
Location
That's neither here nor there.
XP
109
Country
United States
OK, updated again. This version includes a fix for New3DS systems (edit for posterity: if you want that release, ask for "11.3.0-36T" on New3DS and it'll get downloaded. It's just an ugly hack to "make it work" without more significant restructuring; it's not actually version 11.3.0-36T).

I suspect that all previous versions of 3DNUS released by me and Dr.Hacknik prior to now will fail to download New3DS firmwares on account of that strange taiwanese firmware version.
 
Last edited by wyatt8740,

orangesoncom

Member
Newcomer
Joined
May 25, 2016
Messages
8
Trophies
0
XP
493
Country
Indonesia
OK, updated again. This version includes a fix for New3DS systems.

I suspect that all previous versions of 3DNUS released by me and Dr.Hacknik prior to now will fail to download New3DS firmwares on account of that strange taiwanese firmware version.
Hi, I've tested and it's work for New 3DS and Old 3DS
Thank you very much :grog:
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Xdqwerty @ Xdqwerty: I'm sleepy good night