Code Monkey home page Code Monkey logo

miyamoto's Introduction

Miyamoto!

The New Super Mario Bros. U / New Super Luigi U Editor

A level editor for NSMBU and NSLU by AboodXD and Gota7, based on Reggie! Next by RoadrunnerWMC, which is based on Reggie by Treeki, Tempus et al. Uses Python 3, PyQt5, SarcLib and libyaz0.


Discord: https://discord.gg/AvFEHpp
GitHub: https://github.com/aboood40091/Miyamoto


Credits

Reggie! & Reggie! Next

  • Treeki & Tempus -- Creators of Reggie!
  • RoadrunnerWMC -- Creator of Reggie! Next
  • Grop, Hiccup, Kinnay, MrRean and RoadrunnerWMC -- Reggie! Next NSMBU

Miyamoto

  • AboodXD -- Lead Coder, Icons & Graphics, Sprite Images & Coding
  • Gota7 -- Founder, Icons
  • John10v10 -- Quick Paint Tool
  • mrbengtsson -- Sprite Images & Coding

Level and Tileset Data Reverse-engineering

  • AboodXD
  • Kinnay

Spritedata Reverse-engineering

  • AboodXD
  • mrbengtsson
  • Kinnay
  • Grop

Others

  • Gota7 -- Spritedata, Testing on Linux
  • Hiccup -- Spritedata, Sprite Categories
  • libtxc_dxtn -- Original DXT5 (De)compressor in C
  • Meorge -- Testing on macOS
  • NVIDIA -- NVCOMPRESS
  • reece stone -- Spritedata
  • RoadrunnerWMC -- Stamps offset fixes
  • Toms -- Spritedata, Testing on macOS
  • Wexos -- Original BC3 Compressor in C#
  • Wiimm -- WSZST

Building

Please note that when building Miyamoto, you have to remove any instances of Cython usage in both Miyamoto and libyaz0. (pyximport)
Alternatively, you can build the .pyx files and then remove any instances of pyximport in the code.


How To Use

STEP 1:

Download the source code from here:
https://github.com/aboood40091/Miyamoto

Or using git with the following command:
git clone --single-branch https://github.com/aboood40091/Miyamoto.git

STEP 2:

Install the latest version of Python 3 (make sure you install pip and, on Windows, select the option to add Python to PATH):
https://www.python.org/downloads/

STEP 3:

Open Command Prompt or PowerShell (Windows) or Terminal (Linux or Mac OSX) and type the following: (If you are on Linux or Mac OSX, replace py -3 with python3)
py -3 -m pip install PyQt5
py -3 -m pip install Cython
py -3 -m pip install libyaz0
py -3 -m pip install SarcLib

STEP 4: (Skip to 4.5 for Windows)

Make sure you have a compatible C compiler with Cython. For Linux and Mac OSX, you want "GCC".
GCC is usually preinstalled on Linux, but if you don't have it, the command sudo apt-get install build-essential will fetch everything you need.
On Mac OSX, you can retrieve gcc by installing Apple’s XCode through running the command xcode-select --install.

STEP 4.5 (C compiler for Windows):

Download the Microsoft Build Tools 2015 installer:
http://download.microsoft.com/download/5/F/7/5F7ACAEB-8363-451F-9425-68A90F98B238/visualcppbuildtools_full.exe

STEP 5:

You need the filesystem for New Super Mario Bros. U. You can get it by dumping the game using ddd: https://gbatemp.net/threads/ddd-wiiu-title-dumper.418492/

Finally, open Command Prompt or PowerShell (Windows) or Terminal (Linux or Mac OSX) and type the following: (If you are on Linux or Mac OSX, replace py -3 with python3)
py -3 miyamoto.py
You can replace miyamoto.py with the path to miyamoto.py (including "miyamoto.py" at the end)

It should ask you to choose a folder. Choose the course_res_pack folder, or where you've stored the levels (1-1.szs, at least).

Enjoy.

miyamoto's People

Contributors

aboood40091 avatar gamesquest1 avatar gota7 avatar john10v10 avatar mariomadproductions avatar mrbengtsson avatar roadrunnerwmc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

miyamoto's Issues

Invalid path (NSMBU DX)

Hi!

I extracted Romfs folder with Course folder inside. But when I choose the Course folder in the app, I always have a "Invalid Path!" message. I have my SARC-format levels inside it.

And for precision, I used both v27 and v28 (DX) versions to see if it was a version specific bug.

Thanks for your help.image

Undo/Redo missing

Maybe I am just unable to find it, it appears to me that there is no undo or redo.

Fatal Error

Failed to execute script miyamoto
The same for puzzle.exe

Python 3.6
Windows 10 pro
I know that will not center much: but before it worked, the current was blown, in turning on the PC and start miyamoto gave this error

Swaying Controller Object does not have proper value label.

In the "Movement Controller - Swaying" Object, object 69 (nice), there seems to be an oversight. There are a lot of values which have not been noted. I'll list them below:

In the case of Movement-Controlled Pipes:

"Unknown Value 6" can be set to these values for their corresponding effects:

0 - Normal, applies the rotation and arc angles to the far right.
1 - Applies the rotation and arc angles to the right by half. (Basically not as steep of a rotation.)
2 - Applies the rotation and arc angles to the left by half.
3 - Applies the rotation and arc angles to the far left.
4 - Applies the rotation and arc angles to the left even farther.
5 - Same as 3
6 - Same as 2
7 - Same as 1
8 - Same as 0
9 - Applies the rotation and arc angles to the right by two.
10 - Applies the rotation and arc angles to the right by two and a half.
11 - Applies the rotation and arc angles to the right by three.
12 - Applies the rotation and arc angles to the right by three and a half.
13 - Same as 11
14 - Same as 10
15 - Same as 9

Any other Unknown Value inputs do nothing.

Swaying Controller Issue #2: Value is over-sighted.

either "Unknown Value 5" or "Unknown Value 7", two checkboxes on the Swaying Controller, or object 69 (nice), needs to be checked in order for the movement-controlled coin to sway at all. If they are both unchecked, the coin will remain stationary.

Sprite data and rendering for Expanding/Contracting Pipes are wrong

The sprite data currently has:

<value nybble="11" title="Starting Height" comment="The height when the pipe starts moving."/>
<value nybble="12" title="Ending Height" comment="Goes back up when it reaches this height."/>

whereas it should be like this

<value nybble="11" title="Ending Height" comment="Goes back up when it reaches this height."/>
<value nybble="12" title="Starting Height" comment="The height when the pipe starts moving."/>

The rendering (for the sideways pipes at least) doesn't how it is in-game. The sideways "extended length" rendering is offset by +2 (atl least with some length values). E.g. in-game it will be extended by two, but it will show in the editor as being extended by four.

McAfee Anti-Virus

i tried to download the v29 DX version of miyamoto on my windows 11 but my McAfee Antivirus stopped that.

'modify selected sprite properties' window

after being afk for a bit whilst not using miyamoto when the window is still open when you click a sprite they stop displaying the 'modify selected sprite properties' window.

Freezes every time I enter a custom level

On the Wii U, everytime I try to load my custom NSMBU levels with loadiine gx2, it freezes. Like when I'm on the world map and try to enter the level, it freezes while its loading the level. I always save my levels as a compressed szs. file.

Improve saving

Some suggestions to improve saving:

  • Put the internal level name as a setting, rather than promoting you every save
  • Add a save icon back to the toolbar
  • Also, if you haven't actually used any extra tiles could you make it so it doesn't recompress everything?
  • And maybe you could add an option to include the whole tileset in each level to avoid the compression times? But maybe that'd make the levels too big?

Prefabs

Allow the user to save a pattern of tiles/sprites which can be placed together at the same time, like with clipboards. Prefabs could even get their own pallette tab.

What is it mean?


2023-12-03, 16:06:43

Traceback (most recent call last):
File "miyamoto.py", line 5659, in
File "miyamoto.py", line 5649, in main
File "miyamoto.py", line 305, in init2
File "miyamoto.py", line 3158, in HandleRotationPreview
AttributeError: 'NoneType' object has no attribute 'sprites'

Tilesets get corrupted.

From the limited testing I did, it seems to happen either when saving a level or when adding something new to the level. Might have something to do with SZS compression? For example,
This:
Screen Shot 2020-08-23 at 5 49 34 PM
Could Become This:
Screen Shot 2020-08-23 at 5 48 39 PM

I cannot open any level

log: --------------------------------------------------------------------------------
2020-03-03, 17:30:42

Traceback (most recent call last):
File "miyamoto.py", line 2733, in HandleOpenFromFile
File "miyamoto.py", line 3457, in LoadLevel
File "miyamoto.py", line 3561, in LoadLevel_NSMBU
Exception

Also, what's a unit folder?

Quick paint doesn't work

I try to drag tilesets to the quick paint but it does nothing, I tried also to click first on the tilesets and then on quick paint also did nothing.

When going through the steps, my command executor gives these messages.

The term 'py' is not recognized as the name of a cmdlet, function, script file, or opera
ble program. Check the spelling of the name, or if a path was included, verify that the
path is correct and try again.
The term 'python3' is not recognized as the name of a cmdlet, function, script file, or opera
ble program. Check the spelling of the name, or if a path was included, verify that the
path is correct and try again.
At the steps where I need to use a command executor, I try to run the listed commands and type what is listed but then receive these error messages. I already have all of the files and have extracted all of the zip files.

Swaying Controller Object has oversighted values.

In the "Movement Controller - Swaying" Object, object 69 (nice), there seems to be an oversight. There are a lot of values which have not been noted. I'll list them below:

In the case of Movement-Controlled Pipes:

"Unknown Value 6" can be set to these values for their corresponding effects:

0 - Normal, applies the rotation and arc angles to the far right.
1 - Applies the rotation and arc angles to the right by half. (Basically not as steep of a rotation.)
2 - Applies the rotation and arc angles to the left by half.
3 - Applies the rotation and arc angles to the far left.
4 - Applies the rotation and arc angles to the left even farther.
5 - Same as 3
6 - Same as 2
7 - Same as 1
8 - Same as 0
9 - Applies the rotation and arc angles to the right by two.
10 - Applies the rotation and arc angles to the right by two and a half.
11 - Applies the rotation and arc angles to the right by three.
12 - Applies the rotation and arc angles to the right by three and a half.
13 - Same as 11
14 - Same as 10
15 - Same as 9

Unknown Value 5 - Does Nothing
Unknown Value 7 - Does Nothing
Unknown Values 5 and 7 - Does Nothing

Unknown Value 8:

1-15 Only - Does Nothing
Unknown Value 5 = True and 1 - Does Nothing
Unknown Value 5 = True and 2 - Does Nothing
Unknown Value 5 = True and 2 - Does Nothing

Problem with saving :(

I can't save my levels on Miyamoto v24 D:
Really annoying :( Help please, i tried to dl zlib1.dll and drag it in Tools file
Get me an error code.

Big File Sizes

I've came across an issue with this editor that it creates 11MB files for levels that dont have anything in them (szs). Im using the Wii U version v29 and it randomly happened. Yesterday, everything was absolutely fine (1-1 is only 4.3MB in size.). Saving it again makes it up to 13 now. I designed a bit of an level (very small) and it already exceeds 70MB.

Suggestion: Add a Pipfile

What is a Pipfile?

A Pipfile describes the dependencies of a project in a way that allows people to run a single command to install them. If the dependencies changes, one can simply rerun the command (Or a different one, I can't remember) to get the new ones. It is used by Pipenv

Pipenv is a Python tool that allows you to create a 'virtual environment' (Like virtualenv), where the packages installed inside are isolated from global packages. Say I have version 2.3.6 of the package foo. There's this open source project I want to contribute to. However, it requires version 1.4.3 of foo. The versions aren't compatible, so I can either use one or the other. That's where Pipenv comes in. The creator of the open source project used Pipenv, so I can just clone it with Git and run pipenv install. I then have version 1.43 of foo in this virtual environment, and 2.3.6 in my global one.

Why should we use this?

To make installing dependencies much easier, as I'm sure most people don't wanna deal with dependency management themselves.

Are there any alternatives?

You could also add a requirements.txt file, and have people use Pip to install dependencies from that (Also with a single command), but using this method, dependencies aren't isolated from the rest of the system.

Levels won't open

Hi!

When I choose a level .sarc, the app says "Couldn't find the inner level file. Aborting." twice then crashes.

How do I solve this please?

Best regards.

Suggestion: Nsmbu to Nsmbu dx

Hi Abood, I think it would be cool if you could open files from Nsmbu levels in Miyamoto dx and then save them as nsmbu dx level. This would bring the nsmbu dx modding so much further because the large nsmbu mods could be ported to nsmbu dx so easily.

Invalid Game Path

What Game Path should I use in the beginning? I'm not completely sure if Windows 7 is compatible, but I followed the steps, and it gives me the Invalid Path! message, no matter what I try.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.