How to make a game in Unity Engine for Nintendo Wii on Windows WITHOUT the SDK for newbies

Hey folks! A few days ago talking with the_digi_law we discovered that you can actually run custom made stuff on Wii (retail and emulator) without the need of the SDK and official Unity addon. This won't be as straight forward as it would be with them but it's better than nothing. This is why I bring this tutorial in case someone wants to make games for Nintendo Wii using Unity.

1759345199044.png

Okay, first let's provide some context (I don't want to bore you to death, so if you don't want to read it or not need it, you can skip ahead to the setup steps below):
It's worth mentioning that if we followed the usual workflow back in 2007-2010, it would be exactly as we do now compiling a game for any other platform, albeit with some nuances. The Nintendo Developer Interface (NDI) did not exist back in 2007-2008. That's why the RVL SDK (Revolution SDK, aka the Wii SDK) had to be obtained directly from Nintendo through WarioWorld, the old developer website. It was MANDATORY to have the Developer Kit (the development kit), i.e., the physical machine on which to test the software, in order to obtain the SDK. And this had a price tag of $15,000. Not cheap by today's standards (the Switch version, for example, costs $450)... Once we had the SDK installed on our PC and had a DevKit, we could ask Unity to send us the version of the editor to use with the Wii Addon already installed. Then we could do what we always did: develop the game > compile the WAD (in the case of WiiWare) or ISO (in the case of retail) and with the Unity libraries connected to the SDK, everything would be easy and simple. Unfortunately, none of the possible versions of the add-on have ever been leaked, and until now (with what I'm bringing you), there has never been ANY information on how to make a game made in Unity run on a Wii console or emulator.

So... What can we do now if neither Nintendo nor Unity are going to give us the add-on and it was never leaked? Well, while surfing the net, I came across a user named the_digi_law who mentioned that the Wii has PowerPC (PPC) architecture and that's why it used “CodeWarrior” as its compiler. What does that have to do with anything? Well, Unity 2.6.0 and 2.6.1 still exported to MacOS X, which in 2008 was ALSO PPC. And then, chatting about it privately, we said to ourselves... “What if we put the MacOS PPC files into an already compiled Wii game... will it work?” Let's see!


It should be noted that this tutorial is for exporting a basic scene that ends up compiling a functional ROM natively on both a retail console and an emulator (e.g. Dolphin Emulator). However, making a complex game will require knowledge of the engine and general programming/coding with C#, JavaScript or UnityScript, as making a game in a large engine has a non-skippable learning curve, especially in such an old version of the engine. This tutorial WON'T share any copyrighted file and everything you do is under your responsability.


Step 1. Prepare Unity 2.6.0f7:

  • We'll download Unity 2.6.0f7 directly from the official Unity website. Why this one and not a more modern one that also compiles for Wii? Because it is the latest functional version for MacOS PPC. Unity 3.x only compiled for Macs with Intel processors. You can also use Unity 2.3 to 2.6.1 versions but in my tests, the best results were obtained with 2.6.0f7 due to numerous bugs within the editor...
  • Double-click on the .exe and install it as usual.
  • When you run Unity 2.6.0f7, it will ask you for a license registration. Tell it that you want to activate it online, and it will take you to the official Unity licensing page that was used at the time and is still maintained: https://license.unity3d.com/
  • If you don't have a Unity account, you will have to create one, as it is required. If you already have one, skip to the next step.
  • Now that you have created your account, if you have a plus or pro license, you can link it here. If not, we can click on Personal License and it will give us a free license (the advantage of 2.6.0 is that it was the first version with a free personal license, which is great!).
  • After accepting, we return to Unity and see that the registration has been completed.
  • We close the installer and can open Unity for a couple more steps later.
Step 2 Prepare the Wii game where you want to “inject”: From RVL to ISO

Okay, at this point, you probably have an idea of what we're going to do: we're going to replace the files compiled by Unity with those from an existing ROM. To do this, you need to know of a game that uses Unity 2.x and runs on a Wii. Some of these are:

  • Jumpstart Pet Rescue (ISO/RVL)
  • Lead the Merkaats (WiiWare->WAD)
  • Tiger Woods PGA Tour Online (ISO/RVL)
  • El Chavo (ISO/RVL)

For our example, we will use Jumpstart Pet Rescue. Since it is irrelevant, we will assume that we have all obtained our game legally and ripped it as a personal backup, rather than downloading it from the seven seas. The fact is that if we already have the game in ISO format, we can continue. The following steps are for if we have the game in RVL format:

  • Download the Wii and GameCube emulator “Dolphin” from its official website.
  • Install or unzip it wherever you want, depending on whether you are using the “archive” version. Open it by double-clicking on the .exe file.
  • Go to Options > Settings > Paths and set the folder where your RVL is currently located. It will appear in the list of games available to run.
  • Right-click on it and select “Convert File.” Make sure it is set to ISO type and accept. A file with the .iso format will be added to the same folder, which will be much larger than the original (since it is not encrypted or compressed).
  • Now we have the game, which we can unzip to extract its files.

Step 3 Prepare the Wii game to be “injected”: Unzip the ISO into files

To unzip an ISO and extract all its files, we will use one of the best Wii RomHacking tool for ISO: WIT Wimms Tools.

  • Go to the official WIT website and download the Windows version. In this case, version 3.05, which is the latest: https://wit.wiimm.de/download.html#vers-v3.05a
  • Unzip it into a folder that you will remember. In my case, it will be C:\Wit so that the executable we are going to use is in C:\Wit\bin\wit.exe.
  • We don't really need to add it to Environment Variables because in this tutorial we are going to launch everything from the command console (CMD) using global paths, but you can do so if you wish. In any case, open the command console by right-clicking > open terminal here, from Cortana > Command Console or Windows + R > cmd.
  • Use WIT to decompile the ROM using (replace my path with yours) “C:\Wit\bin\wit.exe” extract “path to the ISO” “Path where it is extracted”
  • When you press enter, it will take you to where we have defined the entire decompiled ROM. That will be our “final compilation place.” Remember where it is, as we will recompile the .ISO in the future.

Step 4 Prepare the game for injection

With Unity opened from Step 1, we are going to make a simple "game":

  • Create a scene with File > New Scene.
  • Add an object with the menu above GameObject > Create Empty (or press Control + Shift + N).
1759346029625.png
  • Leaving it selected > Components > Rendering > GUITexture.​
1759346097349.png

  • Drag an image from your PC to the “Project” tab.
  • Select the object with GUITexture > drag the newly imported image to the inspector where it says Texture. You will see it in the Game tab.

1759346129737.png

  • Go to File > Save Scene and save your scene as you would in any Unity project.
  • Open File > Build Settings and click “Add Current” to add it to the list of scenes. Important: in this step, select MacOS PPC (OS X) as the target platform.
1759346155201.png

  • We click Build and compile the game for MacOS X PPC. The folder will open at the end.
Step 5. Copy the files to the Wii ISO

Okay, from the folder where we had the ISO, let's go to DATA/files/unity/Data. We can delete EVERYTHING there because we don't need it. The only exception would be “unity default resources” because it already has the shaders ready for Wii. In any case, this is where we are going to copy our files, so leave this folder open in a separate window. Which files do we put? Only those from our game:

  • Go back to where the Mac game has been compiled and go inside .app/Contents and grab the files from:
    • Data: mainData and sharedassets0.assets. If we had several scenes and so on, we would take EVERYTHING from here (Levels, sharedAssets, bundles...).
    • Frameworks/Mono.framework: Boo.Lang.dll, mscorlib.dll, and UnityDomainLoad.exe.
    • Resources: UnityEngine.dll and unity default resources (this is not necessary if we keep the one that was already in the Wii game).
  • Go back to where you had the ISO unzipped into files and copy all the files to PathToIso/DATA/files/unity/Data.
  • You should end up with something like:

1759346279517.png


  • Our game is now ready to test.
Step 6. Encrypt the ROM back to an ISO

  • We are going to use Wit again, but now with “C:\Wit\bin\wit.exe” copy “path where we extracted the ROM” “path where we want the ISO to be placed.”
  • Once this is done, a ROM in .iso format will have been created. This will fail if there was previously an .ISO file with the same name, so make sure to delete it first.
  • Open Dolphin and you will see that it is listed even though it has the name Jumpstart Pet Rescue (you can change this by modifying the opening.bnr files).
  • Run the game and voilà! You have your Unity game on Nintendo Wii!

1759346332345.png

This game is "fully" functional in retail hardware and emulator, so it could already be used for Fangaming or Homebrew. However, you may be wondering: What about the API for Wii-specific features such as Inputs, Saving, Language... those things come in the SDK. You're right! If we use DNSpy or ILSpy to check the C# DLLs of the original game, if we take a look at UnityEngine.dll you can find all the stuff required for those. You can handle them in one single file or separate them.

Here's a video of the Inputs working:



This way, the workflow would remain the same: make the game in Unity 2.6 > Compile for Mac > Copy the files > Encrypt the ISO > Test.

Suffice it to say that no one who still has the official SDK + Addon is going to publish it so for now this is the only and best way to get our Unity games running on Nintendo Wii...

And that's it!

Special thanks to The_Digi_Law (DigiSpace-Productions) for not only pointing in the right direction but spending time with me reverse engineering all this process!

Troubleshooting and limitations I discovered while battling with Unity and Wii:

  • You can't use asset bundles (for now) as they are compiled to .wii and .ures by the SDK. We could make something to manually create them but otherwise, you won't be able to load them. They are limited to Unity Pro so you also need an official serial key in order to handle them.
  • Normals seem completely off. It might be something with how the wii renders stuff:
1759346890174.png
  • When trying animations imported from an FBX (which also needs to be backported to FBX 2010 with autodesks tools), the model just disappears. No idea why (yet). I would recommend using DAE as it seems to be supported.
  • Audio is not working for me. Probably bc the wii only recognizes DSP or PCM and Unity 2.5 only wav (that can be converted).
  • I backported NGUI 2.7.0 (unity 3.5) to Unity 2.6.0 but it gives more troubles than solutions... So... no useful way to make user interface...

===========================
Compiling from Unity 3.5.6f4 for Nintendo Wii and replacing on Big Time Rush game makes it to work as well!



In order to use Unity 3.5.6, you need an official Unity Pro license (obtained by paying it) or hacking the editor through reverse engineering. Then, add the Wii option in the ulf license and make a custom playback engine with this structure:

WiiPlayer
├── BuildTools
├── Data
│ └── unity default resources
├── DVD
│ ├── HomeButton2
│ │ ├── config.txt
│ │ ├── homeBtn.arc
│ │ ├── homeBtn_CHN.arc
│ │ ├── homeBtn_ENG.arc
│ │ ├── homeBtn_FRA.arc
│ │ ├── homeBtn_GER.arc
│ │ ├── homeBtnIcon.tpl
│ │ ├── homeBtn_ITA.arc
│ │ ├── homeBtn_KOR.arc
│ │ ├── homeBtn_NED.arc
│ │ ├── homeBtn_SPA.arc
│ │ ├── HomeButtonSe.arc
│ │ ├── home.csv
│ │ ├── home_nosave.csv
│ │ └── SpeakerSe.arc
│ ├── Resources
│ │ └── unity default resources
│ ├── setup.bat
│ └── Strap
│ ├── 16_9_1.tpl
│ ├── 16_9_3.tpl
│ ├── 16_9_4.tpl
│ ├── 4_3_1.tpl
│ ├── 4_3_3.tpl
│ └── 4_3_4.tpl
├── Managed
│ └── UnityEngine.dll
└── unity-disk
├── opening.bnr
├── unity-disk.minimap
├── unity-disk.ddf
├── unity-disk.elf
└── unity-disk.map

Then you should be able to compile directly for wii and make the game as usual. Here you have a small minigame I made within that version:



You can follow Extintor's tutorial to see how to install the required editor + hacked license + custom playback engine:



=====================

Other games made in Unity you can try and their versions:

  • JumpStart Pet Rescue Wii (Disk) Sept 8 2009 (Unity 2.1)
  • JumpStart Escape from Adventure Island Wii (Disk) Nov 17 2009 (Unity 2.1)
  • Max & the Magic Marker (WiiWare) USA/EU Mar 8 2010 (US) / Mar 5 2010 (EU) (Unity 2.5)
  • Lead the Meerkats (WiiWare) USA Jun 7 2010 (Unity 2.5)
  • JumpStart Get Moving Family Fitness Wii (Disk) Jun 8 2010 (Unity 2.1)
  • JumpStart Crazy Karts Wii (Disk) Apr 19 2011 (Unity 2.1)
  • Retail Santa Claus is Comin’ to Town! Wii (Disk) Nov 8 2011 (Unity 3.2)
  • Nickelodeon Big Time Rush – Dance Party Wii (Disk) Nov 13 2012, (Unity 3.5.6f7) -> latest unity version?
  • El Chavo (Latin America) Wii (Disk) Apr 27 2012 (Unity 3.2)
  • My Animal Centre Wii (Disk) 2009 (Unity 2.1)
  • FroBot (Disk) 2010 (Unity 2.5)
  • Frogger: Hyper Arcade Edition (Unity 3.4.1f5, WiiWare)
  • Let’s Create! Pottery (version unknown, WiiWare)
  • Zombii Attack (version unknown, WiiWare)
  • Inkub (version unknown, WiiWare)
  • Anima: Ark of Sinners (version unknown, WiiWare)

Feel free to share your knowledge if you discover more stuff!
 

Attachments

  • 1759346064242.png
    1759346064242.png
    50.6 KB · Views: 74
Last edited by Manurocker95,
Great news. Thanks to my impatience, I spent the day trying to manually unlock 3.5.6 properly myself, and after some intense x86 asm black magic, managed to achieve it :grog:

As expected, the output Data files work absolutely perfect in place of the Big Time Rush files. And as the video shows, skinning works nicely as well. Will definitely have a play around with this more in the near future.

View attachment 536921View attachment 536922

Noice! Audio works as well with regular audio source btw! Willing to see more stuff coming from here!

I've been playing a little bit with a custom SpriteRenderer and bitmap text I made. Still need to make the classic cursor that follows the player and a selectable button with it.





btw, for saving data you need to manually saving in blocks like 2.1-2.6 butusing NVSystem bc of the banner and stuff) and for Inputs, you will need to decompile UnityEngine dll, take the Wii classes and take them into your project. You can get the console settings and aspect ratio.

In the case you want to make save banner and icons, the dimension and format must be:

Banner: 192×64 Wii RGB5A3
Icon: 48×48 Wii RGB5A3

Simple save:

C#:
public uint SaveScoreData(string file_name, int score)
{
    int num = 0;
    int size = 192;
    AlignedBuffer alignedBuffer = new AlignedBuffer(size, AlignedBuffer.Memory.Mem2, 32);
    NVSystem nvsystem = new NVSystem();
    NVFile nvfile = new NVFile();
    byte[] bytes = BitConverter.GetBytes(score);
    alignedBuffer.CopyFrom(bytes, 0, 0, 4);
    num += 4;
    nvsystem.Delete(file_name);
    nvfile.Create(file_name, 63, 0);
    if (nvfile.success)
    {
        nvfile.Open(file_name, WiiNand.Access.ReadWrite);
    }
    if (nvfile.success)
    {
        nvfile.Write(alignedBuffer, alignedBuffer.length);
        nvfile.Close();
        return 1U;
    }
    return 0U;
}
 
Last edited by Manurocker95,
  • Like
Reactions: Voxel
Noice! Audio works as well with regular audio source btw! Willing to see more stuff coming from here!

I've been playing a little bit with a custom SpriteRenderer and bitmap text I made. Still need to make the classic cursor that follows the player and a selectable button with it.


View attachment 536957


btw, for saving data you need to manually saving in blocks like 2.1-2.6 butusing NVSystem bc of the banner and stuff) and for Inputs, you will need to decompile UnityEngine dll, take the Wii classes and take them into your project. You can get the console settings and aspect ratio.

In the case you want to make save banner and icons, the dimension and format must be:

Banner: 192×64 Wii RGB5A3
Icon: 48×48 Wii RGB5A3

Simple save:

C#:
public uint SaveScoreData(string file_name, int score)
{
    int num = 0;
    int size = 192;
    AlignedBuffer alignedBuffer = new AlignedBuffer(size, AlignedBuffer.Memory.Mem2, 32);
    NVSystem nvsystem = new NVSystem();
    NVFile nvfile = new NVFile();
    byte[] bytes = BitConverter.GetBytes(score);
    alignedBuffer.CopyFrom(bytes, 0, 0, 4);
    num += 4;
    nvsystem.Delete(file_name);
    nvfile.Create(file_name, 63, 0);
    if (nvfile.success)
    {
        nvfile.Open(file_name, WiiNand.Access.ReadWrite);
    }
    if (nvfile.success)
    {
        nvfile.Write(alignedBuffer, alignedBuffer.length);
        nvfile.Close();
        return 1U;
    }
    return 0U;
}

Does the unity engine on the Wii allow for Gamecube controllers as well or just Wii remotes?
 
I wanted to start by saying this is awesome! I'm glad someone finally addressed Unity for the Wii.

I was able to successfully inject a simple test project from Unity 2.6.0f7 and run it in dolphin! But after looking at this post it seems like 3.5.6f4 would be the preferred version to get running. I’m confused on how to build on Unity 3. If we don’t have the official Wii add-on how is this possible? Maybe I’m just missing something

Anyways thanks for the effort you have put into this! I hope to build a full game some time soon.
 
I wanted to start by saying this is awesome! I'm glad someone finally addressed Unity for the Wii.

I was able to successfully inject a simple test project from Unity 2.6.0f7 and run it in dolphin! But after looking at this post it seems like 3.5.6f4 would be the preferred version to get running. I’m confused on how to build on Unity 3. If we don’t have the official Wii add-on how is this possible? Maybe I’m just missing something

Anyways thanks for the effort you have put into this! I hope to build a full game some time soon.

For 3.5.6f4 you need to partially recreate the playback engine on your own with Big Time Rush files (the map, minimap templates, the wiiware/unity-disk folder)… then it lets you build from Unity itself to Wii, and you replace those files on BTR game disk.

I already made a simple minigame with 3.5.6f4:



However, you can use 2.1-2.6 and just follow the tutorial using a 2.x Wii game from the list I provided.
 
Last edited by Manurocker95,
  • Like
Reactions: Disorarara
For 3.5.6f4 you need to partially recreate the playback engine on your own with Big Time Rush files (the map, minimap templates, the wiiware/unity-disk folder)… then it lets you build from Unity itself to Wii, and you replace those files on BTR game disk.

I already made a simple minigame with 3.5.6f4:



However, you can use 2.1-2.6 and just follow the tutorial using a 2.x Wii game from the list I provided.


I see. Is there any tutorial on recreating the playback engine? If so how do we get Unity 3 to use that playback engine? Does it involve modding Unity or using a pro license? Or is this method not available yet to the public?

Sorry I'm asking so many questions, I'm just interested in this. For now, I'll probably just use Unity 2 as the FBX model limitations and audio issues look like they are possible to circumvent. But it would be great to be able to use the most modern version of Unity the Wii supports.
 
I see. Is there any tutorial on recreating the playback engine? If so how do we get Unity 3 to use that playback engine? Does it involve modding Unity or using a pro license? Or is this method not available yet to the public?

Sorry I'm asking so many questions, I'm just interested in this. For now, I'll probably just use Unity 2 as the FBX model limitations and audio issues look like they are possible to circumvent. But it would be great to be able to use the most modern version of Unity the Wii supports.
You need to reverse engineer the post process build code to understand the files you need. From what it works for me you need to add to Editor\Data\PlaybackEngines:

- WiiDevelopmentPlayer
- WiiPlayer

And inside:

- UnityWii.ddf
- UnityWii.elf
- UnityWii.map
- UnityWii.minimap
- BuildTools/
- Data/
- DVD/
- Managed/
- unity-disk/
- unity-wiiware/
 
  • Like
Reactions: WalterMan
You need to reverse engineer the post process build code to understand the files you need. From what it works for me you need to add to Editor\Data\PlaybackEngines:

- WiiDevelopmentPlayer
- WiiPlayer

And inside:

- UnityWii.ddf
- UnityWii.elf
- UnityWii.map
- UnityWii.minimap
- BuildTools/
- Data/
- DVD/
- Managed/
- unity-disk/
- unity-wiiware/
Do these need to contain files inside these?:
BuildTools/
- Data/
- DVD/
- unity-disk/
- unity-wiiware/
Post automatically merged:

You need to reverse engineer the post process build code to understand the files you need. From what it works for me you need to add to Editor\Data\PlaybackEngines:

- WiiDevelopmentPlayer
- WiiPlayer

And inside:

- UnityWii.ddf
- UnityWii.elf
- UnityWii.map
- UnityWii.minimap
- BuildTools/
- Data/
- DVD/
- Managed/
- unity-disk/
- unity-wiiware/
I got the disk part to build successfully for Unity 3.5.6 myself
 
Last edited by _RedFire,
Do these need to contain files inside these?:
BuildTools/
- Data/
- DVD/
- unity-disk/
- unity-wiiware/
Post automatically merged:


I got the disk part to build successfully for Unity 3.5.6 myself
In Unity-disk (as we are compiling for disk) you need:

- opening.bnr (this should be generated through WiiBannerMaker.exe in the RVL SDK but I could not get the example working)
- unity-disk.master.ddf
- unity-disk.master.elf
- unity-disk.master.map
- unity-disk.master.minimap

and the release versions depending on the exported config.

In DVD the hbm, Resources, Strap and the cmd.

And in Data the default resources. Unity skips some of these if they are not present there tho.

For BuildTools, the MiniMapBuilder.exe is present in unity 3.4.2 at Editor\Data\BuildTargetTools\WiiPlayer as well as MonoWii folder.
 
Do these need to contain files inside these?:
BuildTools/
- Data/
- DVD/
- unity-disk/
- unity-wiiware/
Post automatically merged:


I got the disk part to build successfully for Unity 3.5.6 myself
I saw in a previous post you had these same errors, how were you able to fix them?:

ArgumentException: The Assembly mscorlib is referenced by UnityEngine. But the dll is not allowed to be included or could not be found.

UnityEditor.AssemblyHelper.AddReferencedAssembliesRecurse (System.String assemblyPath, System.Collections.Generic.List`1 alreadyFoundAssemblies, System.String[] allAssemblyPaths, System.String[] foldersToSearch, System.Collections.Generic.Dictionary`2 cache) (at C:/BuildAgent/work/14194e8ce88cdf47/Editor/Mono/AssemblyHelper.cs:72)UnityEditor.AssemblyHelper.FindAssembliesReferencedBy (System.String[] paths, System.String[] foldersToSearch) (at C:/BuildAgent/work/14194e8ce88cdf47/Editor/Mono/AssemblyHelper.cs:107)

This is my current folder structure:
WiiPlayer
├── BuildTools
├── Data
│ └── unity default resources
├── DVD
│ ├── HomeButton2
│ │ ├── config.txt
│ │ ├── homeBtn.arc
│ │ ├── homeBtn_CHN.arc
│ │ ├── homeBtn_ENG.arc
│ │ ├── homeBtn_FRA.arc
│ │ ├── homeBtn_GER.arc
│ │ ├── homeBtnIcon.tpl
│ │ ├── homeBtn_ITA.arc
│ │ ├── homeBtn_KOR.arc
│ │ ├── homeBtn_NED.arc
│ │ ├── homeBtn_SPA.arc
│ │ ├── HomeButtonSe.arc
│ │ ├── home.csv
│ │ ├── home_nosave.csv
│ │ └── SpeakerSe.arc
│ ├── Resources
│ │ └── unity default resources
│ ├── setup.bat
│ └── Strap
│ ├── 16_9_1.tpl
│ ├── 16_9_3.tpl
│ ├── 16_9_4.tpl
│ ├── 4_3_1.tpl
│ ├── 4_3_3.tpl
│ └── 4_3_4.tpl
├── Managed
│ └── UnityEngine.dll
└── unity-disk
├── opening.bnr
├── uinty-disk.minimap
├── unity-disk.ddf
├── unity-disk.elf
└── unity-disk.map
 
I saw in a previous post you had these same errors, how were you able to fix them?:

ArgumentException: The Assembly mscorlib is referenced by UnityEngine. But the dll is not allowed to be included or could not be found.

UnityEditor.AssemblyHelper.AddReferencedAssembliesRecurse (System.String assemblyPath, System.Collections.Generic.List`1 alreadyFoundAssemblies, System.String[] allAssemblyPaths, System.String[] foldersToSearch, System.Collections.Generic.Dictionary`2 cache) (at C:/BuildAgent/work/14194e8ce88cdf47/Editor/Mono/AssemblyHelper.cs:72)UnityEditor.AssemblyHelper.FindAssembliesReferencedBy (System.String[] paths, System.String[] foldersToSearch) (at C:/BuildAgent/work/14194e8ce88cdf47/Editor/Mono/AssemblyHelper.cs:107)

This is my current folder structure:
WiiPlayer
├── BuildTools
├── Data
│ └── unity default resources
├── DVD
│ ├── HomeButton2
│ │ ├── config.txt
│ │ ├── homeBtn.arc
│ │ ├── homeBtn_CHN.arc
│ │ ├── homeBtn_ENG.arc
│ │ ├── homeBtn_FRA.arc
│ │ ├── homeBtn_GER.arc
│ │ ├── homeBtnIcon.tpl
│ │ ├── homeBtn_ITA.arc
│ │ ├── homeBtn_KOR.arc
│ │ ├── homeBtn_NED.arc
│ │ ├── homeBtn_SPA.arc
│ │ ├── HomeButtonSe.arc
│ │ ├── home.csv
│ │ ├── home_nosave.csv
│ │ └── SpeakerSe.arc
│ ├── Resources
│ │ └── unity default resources
│ ├── setup.bat
│ └── Strap
│ ├── 16_9_1.tpl
│ ├── 16_9_3.tpl
│ ├── 16_9_4.tpl
│ ├── 4_3_1.tpl
│ ├── 4_3_3.tpl
│ └── 4_3_4.tpl
├── Managed
│ └── UnityEngine.dll
└── unity-disk
├── opening.bnr
├── uinty-disk.minimap
├── unity-disk.ddf
├── unity-disk.elf
└── unity-disk.map
I added the dll to the project
 
I saw in a previous post you had these same errors, how were you able to fix them?:

ArgumentException: The Assembly mscorlib is referenced by UnityEngine. But the dll is not allowed to be included or could not be found.

UnityEditor.AssemblyHelper.AddReferencedAssembliesRecurse (System.String assemblyPath, System.Collections.Generic.List`1 alreadyFoundAssemblies, System.String[] allAssemblyPaths, System.String[] foldersToSearch, System.Collections.Generic.Dictionary`2 cache) (at C:/BuildAgent/work/14194e8ce88cdf47/Editor/Mono/AssemblyHelper.cs:72)UnityEditor.AssemblyHelper.FindAssembliesReferencedBy (System.String[] paths, System.String[] foldersToSearch) (at C:/BuildAgent/work/14194e8ce88cdf47/Editor/Mono/AssemblyHelper.cs:107)

This is my current folder structure:
WiiPlayer
├── BuildTools
├── Data
│ └── unity default resources
├── DVD
│ ├── HomeButton2
│ │ ├── config.txt
│ │ ├── homeBtn.arc
│ │ ├── homeBtn_CHN.arc
│ │ ├── homeBtn_ENG.arc
│ │ ├── homeBtn_FRA.arc
│ │ ├── homeBtn_GER.arc
│ │ ├── homeBtnIcon.tpl
│ │ ├── homeBtn_ITA.arc
│ │ ├── homeBtn_KOR.arc
│ │ ├── homeBtn_NED.arc
│ │ ├── homeBtn_SPA.arc
│ │ ├── HomeButtonSe.arc
│ │ ├── home.csv
│ │ ├── home_nosave.csv
│ │ └── SpeakerSe.arc
│ ├── Resources
│ │ └── unity default resources
│ ├── setup.bat
│ └── Strap
│ ├── 16_9_1.tpl
│ ├── 16_9_3.tpl
│ ├── 16_9_4.tpl
│ ├── 4_3_1.tpl
│ ├── 4_3_3.tpl
│ └── 4_3_4.tpl
├── Managed
│ └── UnityEngine.dll
└── unity-disk
├── opening.bnr
├── uinty-disk.minimap
├── unity-disk.ddf
├── unity-disk.elf
└── unity-disk.map
I modified the Unity Editor script / DLL from the location of the Editor at the Data folder
 
For 3.5.6f4 you need to partially recreate the playback engine on your own with Big Time Rush files (the map, minimap templates, the wiiware/unity-disk folder)… then it lets you build from Unity itself to Wii, and you replace those files on BTR game disk.

I already made a simple minigame with 3.5.6f4:



However, you can use 2.1-2.6 and just follow the tutorial using a 2.x Wii game from the list I provided.


Incredible work!!
 
  • Like
Reactions: Manurocker95
I modified the Unity Editor script / DLL from the location of the Editor at the Data folder
I was able to just include in the 'mscorlib.dll' in the project as Manurocker suggested.

When building, the progress gets to the very end but one last error is tripping me up:

Failed to find 'YOUR_PRODUCT_NAME_HERE'
UnityEngine.Debug:LogError(Object)PostProcessWiiPlayer:CopyAndModifyUnityFile(String, String, String, String) (at C:/BuildAgent/work/14194e8ce88cdf47/Editor/Mono/BuildPipeline/PostProcessWiiPlayer.cs:252)PostProcessWiiPlayer:PostProcess(BuildTarget, BuildOptions, String, String, String, String, String) (at C:/BuildAgent/work/14194e8ce88cdf47/Editor/Mono/BuildPipeline/PostProcessWiiPlayer.cs:457)UnityEditor.HostView:OnGUI()

Do I need to modify PostProcessWiiPlayer.cs in some way? Or am I still missing some file. I did a grep search on the BTR files and didn't find anything that mentioned YOUR_PRODUCT_NAME_HERE. I set a product name in the player settings in Unity but the issue still persists.
 
I was able to just include in the 'mscorlib.dll' in the project as Manurocker suggested.

When building, the progress gets to the very end but one last error is tripping me up:

Failed to find 'YOUR_PRODUCT_NAME_HERE'
UnityEngine.Debug:LogError(Object)PostProcessWiiPlayer:CopyAndModifyUnityFile(String, String, String, String) (at C:/BuildAgent/work/14194e8ce88cdf47/Editor/Mono/BuildPipeline/PostProcessWiiPlayer.cs:252)PostProcessWiiPlayer:PostProcess(BuildTarget, BuildOptions, String, String, String, String, String) (at C:/BuildAgent/work/14194e8ce88cdf47/Editor/Mono/BuildPipeline/PostProcessWiiPlayer.cs:457)UnityEditor.HostView:OnGUI()

Do I need to modify PostProcessWiiPlayer.cs in some way? Or am I still missing some file. I did a grep search on the BTR files and didn't find anything that mentioned YOUR_PRODUCT_NAME_HERE. I set a product name in the player settings in Unity but the issue still persists.
You still need to modify post process for the Wii player script.
 
You still need to modify post process for the Wii player script.
No, you need to modify the .elf to add the default variables unity expects…

I was able to just include in the 'mscorlib.dll' in the project as Manurocker suggested.

When building, the progress gets to the very end but one last error is tripping me up:

Failed to find 'YOUR_PRODUCT_NAME_HERE'
UnityEngine.Debug:LogError(Object)PostProcessWiiPlayer:CopyAndModifyUnityFile(String, String, String, String) (at C:/BuildAgent/work/14194e8ce88cdf47/Editor/Mono/BuildPipeline/PostProcessWiiPlayer.cs:252)PostProcessWiiPlayer:PostProcess(BuildTarget, BuildOptions, String, String, String, String, String) (at C:/BuildAgent/work/14194e8ce88cdf47/Editor/Mono/BuildPipeline/PostProcessWiiPlayer.cs:457)UnityEditor.HostView:OnGUI()

Do I need to modify PostProcessWiiPlayer.cs in some way? Or am I still missing some file. I did a grep search on the BTR files and didn't find anything that mentioned YOUR_PRODUCT_NAME_HERE. I set a product name in the player settings in Unity but the issue still persists.
The error persists because we don’t have the original playback engine where there was a template of the .elf file. If you take a look at the postprocesswiiplayer, it replaces variables inside that elf (like the one you mention) with the values you set in player settings. You can either modify the unityeditor.dll to skip that or modify the .elf replacing big time rush values with the default variables so unity process them properly.
 
Last edited by Manurocker95,
  • Like
Reactions: WalterMan
I was able to get it to build! Thanks for the all the help! I'm curious to see what the limits are for this and with the Wii. Maybe online multiplayer?? I'm getting ahead of myself.

Anyways I took a quick video, should probably test on real hardware as well but idk why it wouldn't work.
 
  • Like
Reactions: Manurocker95
I was able to get it to build! Thanks for the all the help! I'm curious to see what the limits are for this and with the Wii. Maybe online multiplayer?? I'm getting ahead of myself.

Anyways I took a quick video, should probably test on real hardware as well but idk why it wouldn't work.
View attachment 540794
From my tests, it works just fine using GX USB Loader :) Limits are always shaders, memory... Wii is pretty similar to N3DS so you can make some tests looking for those.
 
From my tests, it works just fine using GX USB Loader :) Limits are always shaders, memory... Wii is pretty similar to N3DS so you can make some tests looking for those.

In theory could someone port superhot to the Wii as of right now? the original web demo version not the later versions
 

Site & Scene News

Popular threads in this forum