Repository navigation
Releases
NSMBW 0.5.0: New Settings, HD Texture Pack, Newer on PC, Bluetooth Passthrough and more
0.5.0 rebuilds the Settings window for widescreen, adds the HD Texture Pack, puts Newer Super Mario Bros. Wii in the PC and Linux downloads, and makes the game thread faster. If you're on 0.3.0 or later, the orange Update button on the file select installs it. Your saves, settings and game files are kept.
Settings window, rebuilt for 16:9
- Nearly full screen, over the pause menu's see-through dark fill, with bigger tabs, rows, buttons and prompts. With a 4:3 picture, the window shrinks to fit inside it.
- Video is now two tabs. Display has Resolution, Aspect Ratio, Fullscreen, V-Sync and the Performance Monitor. Graphics has Renderer, Spinning Coins, Depth Blur, Battery Saver and Frame Interpolation.
- Dropdowns for Resolution, Aspect Ratio and Frame Interpolation: pick from the list instead of stepping through every choice. Fullscreen is a plain On/Off.
- Original 4:3 can be picked in Aspect Ratio, next to 16:9, 16:10 and (on screens wider than 16:9) Ultrawide. Switching between 4:3 and widescreen takes effect after a restart.
- Cleaner buttons: no white corner gloss, bigger centred labels, one size for every tab label.
Frame Interpolation in the Settings window
- Graphics > Frame Interpolation: Off, 120, 180, 240 or 300. It draws frames in between for smoother motion on screens above 60 Hz. It's still experimental.
- 60, with Battery Saver. While Battery Saver is on, 60 is offered too: it turns Battery Saver's 30 FPS back into 60 smooth frames.
- Android keeps the setting like the others.
Mods: the HD Texture Pack
- The Mods tab has its first mod: Bighead's NSMBW HD Texture Pack v2.81, with textures by Bighead, razius, jaco8, CDAMJC and Amon1995. Thanks to all of them.
- Download fetches it from the pack's own download links (this project doesn't host it), checks it, unpacks it and turns it on. It's about 23 MB to download and 38 MB on disk.
- Turn it on and off while you play. The first time each HD texture shows up costs a moment.
- On Android the app downloads it for the game. Like the Mods tab, it's for the original game only.
Newer Super Mario Bros. Wii on PC and Linux
- Ready to play, no build needed. The Windows and Linux downloads now include
NewerSMBWand its compat copy. The first start asks for your own Newer v1.30 (USA, SMNE03): its disc image or the folder Dolphin extracts. - Its own game folder, settings and saves. Newer looks for its extracted game in a
game-newerfolder beside it, and keeps its settings and saves apart from the base game's (Documents\NewerWiiSaveDataon Windows). Both programs live in one folder. - Built Newer from source with a
gamefolder beside it? Rename that folder togame-newer. - The Update button works from either program.
Real Wii Remotes over Bluetooth (experimental, Windows and Linux)
- Bluetooth passthrough: with a USB Bluetooth adapter the game can take over, the game's own Wii Remote code drives real Wii Remotes, as on a Wii: buttons, motion, rumble, lights and the speaker.
- Off by default. Turn it on in Settings > Gameplay > Bluetooth Passthrough (Auto / On / Off) and restart. Press F9 (or Pair Wii Remotes in the same tab), then the red SYNC button under each remote's battery cover. Holding F9 for 10 seconds forgets every paired remote.
- While it's on, the keyboard and controllers don't control the game. It's always off in LAN play.
- Windows: the adapter needs the WinUSB driver. Run Zadig, choose Options > List All Devices, pick the dongle (check its USB ID, so it isn't your PC's built-in Bluetooth), choose WinUSB and Replace Driver. Use a spare dongle: Windows can't use it for anything else until you put its driver back (Device Manager > uninstall the device with its driver, then replug it). Adapters with a Broadcom BCM20702 or CSR8510 A10 chip are the best bet, as with Dolphin; most Realtek, Intel and MediaTek ones won't work.
- Linux: the game needs read and write permission to the dongle's USB device (a udev rule). It borrows the dongle from the system while it runs.
- This hasn't been tried with a real adapter or a real Wii Remote yet. If you try it, please open an issue with the
[bluetooth]lines from the newestconsole.login the game'sLogsfolder.
Faster
- The game thread does less work. The game's own work per frame dropped by about 20–24% on a slower Android device we measured, in courses and on the world map, and desktops gain a little too. Calls inside the game's code are looked up faster, texture copies no longer make the game wait for the graphics thread, and each draw takes fewer steps. The game plays exactly as before: its memory matches 0.4.1's in our checks.
From PhilRoll, thanks (#38)
- Italian from your own European disc. The Italian language files can now sit inside the game folder (
DATA/files/EU/ItaEU), and the strap screen, Course Clear and Game Over layouts from the European disc now work. The steps are inprojects/nsmbw/BUILDING.md. - Tilt Left and Tilt Right can be rebound on a controller: a trigger, a stick or a button. On a trigger, how far you pull it sets how far the remote tilts. F10's controller setup has Shake and Tilt rows too.
Fixed
- Game folders are checked (#29). An import, or a game folder missing any of the disc's files (an extract that stopped partway, say), now says "The folder doesn't include all required files." instead of starting and crashing. On PC and Android.
- "1 Player" instead of "1 Players" on the character screen with one player.
- File select: the game's cursor no longer stays on a save file while Couch/LAN, the gear or Update is selected.
- Android: Auto Update also checks when you come back to the app, not only when it starts fresh.
- Android: the Newer module loads on Android 9 and 10. It was built for Android 11 and up, so it couldn't load there.
As always, everyone in a LAN game needs the same version. The Linux programs haven't been run by us in this release.
Downloads
- Android (arm64, Android 9+):
NSMBW-0.5.0-android-arm64.apk. On 0.2.1 or later, Check for Updates on the start menu installs it. - Windows (10/11, x64):
NSMBW-0.5.0-windows-x64.zip, withNSMBW.exe,NewerSMBW.exeand acompatfolder holdingNSMBW-compat.exeandNewerSMBW-compat.exefor processors without AVX2. - Linux (x86-64, glibc 2.35+: Fedora 36+, Ubuntu 22.04+):
NSMBW-0.5.0-linux-x86_64.tar.gz, with the same four programs:NSMBW,NewerSMBW,compat/NSMBW-compatandcompat/NewerSMBW-compat. NSMBW-0.5.0-newer-android-arm64.zipis the Newer support module for Android. The app downloads it for you, so you don't need to get it yourself.
Updating keeps your saves, settings and imported game. Untested on Mali GPUs (most MediaTek, Exynos and Tensor phones).
SHA-256
c9d3d7fd488b40f7c238ef5d223f74610d8d76702667a931e4b1e848b20e0116 NSMBW-0.5.0-android-arm64.apk
671204f87cc4dd5a9d35e984bb11950610db65f362108fb6e78b2b3fe692f00d NSMBW-0.5.0-windows-x64.zip
48a89df2707058582f51930761b12bc86657554470ed8627936e5f20e8db33cf NSMBW-0.5.0-linux-x86_64.tar.gz
66fcf66783654f584d2d1eabcc7c64cbce50454dccb671d5622b8eaf2d537c75 NSMBW-0.5.0-newer-android-arm64.zip
Source: this repository at v0.5.0, GPLv3. Not affiliated with Nintendo.
NSMBW 0.4.1: Newer support, Settings in the game's menus, Battery Saver and more
thanks mothy for testing a build of this version before release!
This release has everything since 0.3.1. If you're on 0.3.0 or later, the orange Update button on the file select installs it. Your saves, settings and game files are kept.
Newer Super Mario Bros. Wii
- Android: a new Newer Super Mario Bros. Wii tab on the start menu. Download the support module from there, then import your own copy of Newer v1.30 (USA, SMNE03): its disc image, the folder Dolphin's Extract Entire Disc makes from it, or a zip of that folder. Newer keeps its own settings, saves and logs, apart from the base game's.
- PC and Linux: Newer is built from source for now, thanks to andygruber's work (#21). See
projects/nsmbw/BUILDING.md. - On Newer's world map, the figure stays Mario whichever character you pick.
New
- Settings inside the game's own menus. The pause window and the world map's + menu each have a Settings button, made from the game's own disc art. Picking it plays the button's animation, the menu steps aside, Settings opens, and closing it brings the menu back with Settings still picked.
- A restyled Settings window: the game's own buttons and lined cream background, every button the same width, and a one-line explanation under every option.
- Keyboard key prompts: when you play with a keyboard, the on-screen prompts show the keys you bound instead of Wii Remote buttons, and they follow your bindings as you change them. The title screen only shows them once a keyboard is in use. thanks ral1009 for the inspiration to implement this!
- Controller button prompts (#32): with a controller, the prompts show its buttons (Xbox layout).
- Combination bindings: bind 2 or 3 keys or buttons pressed together to one control, in Keybinds or with F10's controller setup.
- Battery Saver (Video tab): the game keeps running at full speed but shows 30 FPS instead of 60, so the GPU does half the work. It pauses during LAN Play.
- Depth Blur (Video tab): turn off the blur and heat haze of desert, beach, water, lava and Bowser areas.
- Menu Sounds volume (Audio tab): the menus' cursor, select and back sounds on their own slider.
- Exit Course in courses you haven't cleared yet, from the pause menu (the world map's ambush fights still can't be left).
- PC: pick your game at the first start. Open ISO (a Wii
.isoor.wbfs) or Open Extracted Disc Folder, on Windows and Linux. I haven't tried the Linux one on a real Linux desktop yet. - Mods: a Mods tab in Settings, and Mods buttons on Android's start menu and the PC's disc picker. Coming Soon! They only show for the original game.
- Touch: the character select's OK, arrows and Back can be tapped, and a tap skips the title screen's idle movie and demos.
- Single player can pick a character (#25). The game's own player card now appears in single player, centred, so player 1 can be Mario, Luigi, Blue Toad or Yellow Toad. This uses mkwcat's "Player 1 Can Change Character" code, and your choice is remembered per save file.
- Gameplay tab in Settings (#27): No Time Limit (which also hides the timer), Infinite Lives, and Power-Up, which gives player 1 any power-up, including the Star (and the Hammer Suit in Newer). Infinite Lives and Power-Up ask first, then mark that save "Cheated" on the file select.
- Android: on-screen Cheat button. Turn it on in Settings and it gives you the selected power-up. It starts in the top left, and you can move it in the layout editor.
- Android: better touch controls editor. Add and Delete buttons (any Wii Remote button, plus the Power-Up button), Cancel, and profiles saved to files that survive updates. The panel can be dragged out of your way.
- Android: GPU Driver option under Xiaomi Mode on the start menu, for Snapdragon phones only (greyed out on others). Import a driver zip such as Turnip to use it in place of your phone's driver. If a new driver stops the game from starting, it goes back to Default by itself.
- Android: import a disc image directly. A Wii
.isocan now be imported on the phone, as well as a folder or zip. - Android: Controls tab on touch. With touch controls on, the Keybinds tab becomes Controls, with Edit Touch Layout, Reverse Tilt and Smart Spin.
- 16:10 screens: a new aspect ratio option in the Video tab, at every render scale.
- Back button on the file select: returns to the title screen. It only shows when you're using touch or a mouse.
- Rumble: the Wii Remote's rumble now reaches controllers, real Wii Remotes and phones, at levels meant to feel like the original.
- Controller motion: on a controller with motion sensors, tilt and shake use the controller, and on Android it takes priority over the phone. I couldn't test this one on a real controller.
- Italian: the whole start menu and the game's menus, including the accented letters the disc's fonts lack. The game's own text comes from a language pack you import.
- LAN: Direct Connection. Join a host by typing its address, under Join.
- Android: better tilt. Tilt now uses the phone's gyroscope along with its accelerometer where it has one, so it responds at once and shakes don't swing it.
Fixed
- Stuck at 40 FPS with frame interpolation (#33), for example after entering the pipe in 1-4. One late frame could leave the in-between frames a step behind for minutes. Now the delay clears within about half a second, and the lag with interpolation on is lower too.
- Windows: no more freeze when a controller connects or disconnects. Each one used to stop the game for up to 0.7 seconds.
- Android: settings changed in the game's Settings window are kept. They could be lost when the start menu saved its own settings afterwards, for example after picking the other game's tab.
- Older Intel GPUs on Direct3D 11: a "Loading shaders" screen at startup so the logos play smoothly, a guard against black light textures, and fewer draw calls on the HD Graphics 2000 to 6000 generations (newer Intel GPUs don't need it and don't get it).
- Two- and three-thread CPUs run faster: the graphics thread now helps there too (8-15% in courses and on the world map on a dual-core Celeron N2840, menus up to 30%), and the game's floating-point math takes a faster path when the result is the same.
- Intel GPUs on Direct3D 11: broken graphics and low FPS. Tested on an HD 4600 with an i5-4440, which now runs the game at 60 FPS, LAN play included. The title logo drawn as a black box, missing ground, washed-out colours, missing HUD icons, a solid yellow World 2 map and a black castle in the opening are all gone. FPS on the world maps and in the courses tested went from the 40s and 50s (18 on World 2's map) to 60. Other Intel GPUs on Direct3D 11 use the same fixes but haven't been tested.
- Fewer freezes the first time you reach an area. The list of shaders built up front is about 57% longer. In exchange, the "Compiling shaders" wait the first time you start this version is longer too. It only happens once.
- Ultrawide: the Items screen's models stay on their cards instead of drifting off them.
- Menu text: letters no longer lose the right side of their dark edge.
- The top-right Wii Remote panel and "Add Wii Remote" text are gone from the player selection screen.
- Modded or repacked discs are named clearly (#29). The game folder check now compares the code modules, instead of the game stopping at the first scene. Download Logs also keeps more of a crash's data.
- Android: controllers that report themselves as keyboards now work as controllers.
- Android: Newer's disc cache no longer takes so much memory that Android closes the game on 4 GB phones.
- Android: Settings now has the same background as the start menu, and its Gameplay rows match the Video tab's layout.
- Linux on X11: no more 10 ms lost every frame when the window wasn't exactly where SDL expected, such as on another monitor (#22, thanks andygruber).
Credit for projects built on this one
If you build on this project's own code without forking it on GitHub, please credit WitherBlitz in your README with a link to this repository (see NOTICE.md). Forks are exempt, and the WiiCompiled code it started from stays under the plain GPLv3.
Downloads
- Android (arm64, Android 9+):
NSMBW-0.4.1-android-arm64.apk. On 0.2.1 or later, Check for Updates on the start menu installs it. - Windows (10/11, x64):
NSMBW-0.4.1-windows-x64.zip - Linux (x86-64, glibc 2.35+: Fedora 36+, Ubuntu 22.04+):
NSMBW-0.4.1-linux-x86_64.tar.gz NSMBW-0.4.1-newer-android-arm64.zipis the Newer support module. The app downloads it for you, so you don't need to get it yourself.
Updating keeps your saves, settings and imported game. Untested on Mali GPUs (most MediaTek, Exynos and Tensor phones).
SHA-256
8c17cd831d960dd8bc42f5759f5eaf99724ec0da318bdeac1ad5d39238393022 NSMBW-0.4.1-android-arm64.apk
97ffbe79124ccf3df8fd30258a2db977fa426210755abd29811f4ca0db8c6b16 NSMBW-0.4.1-windows-x64.zip
37d94ca632976daea4579f7619c7b2c811c954897ce2c375865332bb5e60d4aa NSMBW-0.4.1-linux-x86_64.tar.gz
94ef42ce0d064b2d623216df9ab44370f94d52929b48a31538ece3f0a4ded113 NSMBW-0.4.1-newer-android-arm64.zip
Source: this repository at v0.4.1, ...
NSMBW 0.3.1: hotfix for wrong tiles in some courses
Hotfix: wrong tiles in some courses. 0.3.1 fixes a graphics bug 0.3.0 brought in. If you're on 0.3.0, the orange Update button on the file select installs it. Your saves, settings and imported game carry over.
Fixed in 0.3.1
- Fixed: wrong tiles in some courses (0.3.0). Parts of a course could show tiles from the course before it: grass and flower tiles with black boxes in the World 5 tower, stray icons in forest courses. To save time, 0.3.0 checked a course's 2 MB tile sheet for changes 64 KB at a time, skipping the pieces it believed untouched. One of the game's writes to its tiles is never reported, so the piece it lands in kept the old tiles. The game checks the whole tile sheet again, as 0.2.2 did. The cost is small now that the graphics work runs on its own CPU core.
Everything new in 0.3.0
Faster
- Graphics on a second CPU core (like Dolphin's dual-core mode). The game used to translate its Wii graphics commands for the GPU on the same core that runs the game. They now go to a second core, so the two run side by side, and the game only waits for the graphics where it reads a result back (the screen copies behind the ? blocks and Star Coin pictures, the depth checks). Where the game was held back by the CPU, frame rates go up by as much as half; devices that already ran at 60 fps stay there. It's on for Windows, Linux and Android on any device with 4 or more cores, except with the OpenGL ES renderer, which has to stay on one thread. To turn it off, start the game with
NSMBW_GX_THREAD=0. - Less work every frame on slower devices.
- The lighting maps that courses and the world map light their 3D models with were redrawn every frame even while no light moved (0.7-1 ms a frame on a Pixel 3 XL). They're now redrawn only when a light, its colour or the scene changes.
- Background tiles, text and other flat 2D pieces are drawn much more directly: their vertices go to the renderer as they are, instead of being decoded and re-encoded value by value, and a run of them with nothing changed in between becomes one draw.
- The 3D models' material lists are no longer re-checked on every call.
- Fixed: short frame drops when effects first appear (#13). Collecting coins, a Star Coin or a 1UP could stutter for a frame, mostly on phones. Each new texture or texture combination the game used (an effect, a score pop-up) was created on the game's own thread, which had to wait 3–10 ms for the renderer to finish sending the previous frame to the GPU. The renderer now creates them itself. On a Snapdragon 6 Gen 1 phone, a new texture now costs the game about 0.05 ms instead of up to 10 ms, and 1-1 plays with no frames over 20 ms.
- Fixed: runs of slow frames in levels with Star Coins (World 1-3 most of all). The game renders each Star Coin on screen into a small texture every frame. Those textures should be reused, but the fix for #13 kept every old one marked as in use for about 40 frames, so the game made new ones every frame instead, each waiting several milliseconds for the renderer. On a Pixel 3 XL, 1-3 spent half a second at a time at 25–35 ms a frame. It now holds 60 fps there (6 frames over 24 ms in a minute of play, all at the level's start, instead of 87). The world map got faster too.
New
- Update button (PC, Linux and Android). When a newer release is out, an orange Update button shows at the top of the file select. Press it and the game downloads the release in the background, checks it against GitHub's checksum, installs it and starts again on the new version. Your saves, settings and game files are kept. On Android, the first update asks you to allow installs from NSMBW and to confirm; after that, Android 12 and up install updates without asking. Android may not reopen the game by itself afterwards, so you might have to open it from your home screen.
- Autosave after every level (#10). Clearing a level now saves your progress to your file automatically, with no prompt, as soon as you're back on the world map. Before, the game (like the Wii original) only kept progress you saved at a tower, a castle or from the map menu, so closing it after a level lost that level.
- Older Windows GPUs: Direct3D 11 fallback (#9). GPUs with no Vulkan or Direct3D 12 driver, like Intel HD 2000/2500/4000, used to end up on Windows' slow software renderer (about 12 fps, with black backgrounds and broken transitions). The game now uses Direct3D 11 on them instead, and only falls back to software rendering if nothing else works.
- Renderer setting (Video tab). Pick the graphics API yourself, or leave it on Automatic, which tries the best one first and falls back down the list. It applies the next time the game starts.
- Windows: Direct3D 12 → Vulkan → Direct3D 11.
- Android: Vulkan → OpenGL ES 3.1+. It's in the app's Display menu too. OpenGL ES can't be picked by hand yet (it's greyed out, for a later version); Automatic still falls back to it on a phone with no working Vulkan.
- Android 9 and up, and older phone CPUs (#16). The app used to need Android 11 and a 2018-or-newer CPU. It now installs on Android 9 and 10, and runs on older ARMv8 CPUs, on OpenGL ES where the phone's Vulkan driver is too old.
- Controller Bindings. With a controller connected, the Keybinds tab becomes Controller and lists the controller's buttons for each action. Pick one and press the new button to rebind it; Reset puts the defaults back.
- PC: mouse buttons in Keybinds (requested by mothy, thanks!). Any action can now be bound to a mouse button: pick the action and click the button you want, left, middle, right or a side button. Right click crouches (Down) by default.
- PC: Mouse as Gyro (Keybinds menu, off by default). Turn it on with the checkbox next to Smart Spin and Reverse Tilt, and the mouse stands in for the Wii Remote's tilt and shake. Move it left or right and the remote tilts that way for 5 seconds, for the tilting platforms. Move it quickly left and right and the remote shakes, so you spin. It switches itself off while a controller or a Wii Remote is connected.
- Reverse Tilt (Keybinds menu, all devices, on by default). A checkbox next to Smart Spin that swaps tilt left and right, so a tilting platform goes the way you tilt the phone or push the stick. Turn it off there if you prefer the original direction.
- Click or tap a world on Select a World. Clicking (or tapping, on Android) an island turns the ring to that world, clicking the island at the front goes there, and Back can be clicked too. Worlds you haven't reached yet ignore the click.
- Performance Monitor. The FPS counter and the frametime graph are now one setting, Performance Monitor, and its size slider (5-200%) scales the FPS counter too.
- Android: Language button on the start screen. Left of Help, with a globe: English (the default), Español or Français, the same three as the game's Language tab and the same setting, so changing one changes the other. The start screen and its Settings, Help and LAN windows switch to it straight away; the game uses it the next time you press Play.
- Android: touch controls get out of the way of a controller. When a controller connects, or you press its buttons or move its sticks, the on-screen remote hides. Tap the screen while playing (in a course or on the world map, with no menu open) and it comes back. It also comes back by itself when the controller disconnects.
- Android: Touch Controls switch in the Keybinds menu. Turn the on-screen buttons on or off from inside the game.
- Android: Xiaomi Mode (fixes the black screen on Xiaomi, Redmi and POCO phones). Xiaomi's system closes an app's extra processes, even one on screen, and the game runs in one. That left it restarting over and over on a black screen. On those phones the game now runs in the app's main process, and leaving it restarts the app cleanly. It's a switch on the start screen, on by default only on Xiaomi phones.
- Android: Download Logs (For Github Reports). A button at the bottom of the app's start screen that saves a zip of the last few play sessions' logs, your settings and the phone's model, ready to attach to a GitHub issue. It doesn't include saves or game files.
Fixes
- Fixed: Larry slides off his platform in ultrawide (#8). In a view wider than 16:9, a room narrower than the screen (the castle bosses' arenas) left the camera pinned to one edge. Bosses measure their moves from the middle of the screen, so Larry's shell turned around 76 units off and slid off the edge.
- Ultrawide: boss arenas sit in the middle of the screen. Any room narrower than your screen is now centred, with the extra width split evenly on both sides, instead of pushed to one side. The middle of the screen is exactly where it is in 16:9, so every boss moves as it does there. Players still stop at the room's own edges, and 16:9 is unchanged.
- Android: a controller that disconnects works again when it reconnects. Before, a USB controller that dropped out and came back stopped moving Mario until you restarted the app. The controller now goes through Android's own input system, so it picks up where it left off.
- Android: a real controller is player 1. Some Android devices have a built-in TV remote service that shows up as a gamepad with no sticks. It could take player 1, so your controller drove player 2 and seemed to do nothing. A real controller now always comes before a remote like that.
- Android: sleeping the phone pauses the game instead of closing it. Turning t...
NSMBW 0.3.0: graphics on a second core, Update button, autosave, Android 9+
Faster, and a lot more for controllers. 0.3.0 moves the game's graphics work onto a second CPU core, adds an in-game Update button, autosaves after every level, brings Direct3D 11 for older Windows GPUs, installs on Android 9 and 10, and adds controller rebinding, mouse buttons and a language picker on Android. Your saves, settings and imported game carry over.
Faster
- Graphics on a second CPU core (like Dolphin's dual-core mode). The game used to translate its Wii graphics commands for the GPU on the same core that runs the game. They now go to a second core, so the two run side by side, and the game only waits for the graphics where it reads a result back (the screen copies behind the ? blocks and Star Coin pictures, the depth checks). Where the game was held back by the CPU, frame rates go up by as much as half; devices that already ran at 60 fps stay there. It's on for Windows, Linux and Android on any device with 4 or more cores, except with the OpenGL ES renderer, which has to stay on one thread. To turn it off, start the game with
NSMBW_GX_THREAD=0. - Less work every frame on slower devices.
- The game re-checked a course's whole 2 MB tile sheet every frame, because the animated tiles (coins, ? blocks) are copied into it. It now only re-checks the 64 KB piece that changed.
- The lighting maps that courses and the world map light their 3D models with were redrawn every frame even while no light moved (0.7-1 ms a frame on a Pixel 3 XL). They're now redrawn only when a light, its colour or the scene changes.
- Background tiles, text and other flat 2D pieces are drawn much more directly: their vertices go to the renderer as they are, instead of being decoded and re-encoded value by value, and a run of them with nothing changed in between becomes one draw.
- The 3D models' material lists are no longer re-checked on every call.
- Fixed: short frame drops when effects first appear (#13). Collecting coins, a Star Coin or a 1UP could stutter for a frame, mostly on phones. Each new texture or texture combination the game used (an effect, a score pop-up) was created on the game's own thread, which had to wait 3–10 ms for the renderer to finish sending the previous frame to the GPU. The renderer now creates them itself. On a Snapdragon 6 Gen 1 phone, a new texture now costs the game about 0.05 ms instead of up to 10 ms, and 1-1 plays with no frames over 20 ms.
- Fixed: runs of slow frames in levels with Star Coins (World 1-3 most of all). The game renders each Star Coin on screen into a small texture every frame. Those textures should be reused, but the fix for #13 kept every old one marked as in use for about 40 frames, so the game made new ones every frame instead, each waiting several milliseconds for the renderer. On a Pixel 3 XL, 1-3 spent half a second at a time at 25–35 ms a frame. It now holds 60 fps there (6 frames over 24 ms in a minute of play, all at the level's start, instead of 87). The world map got faster too.
New
- Update button (PC, Linux and Android). When a newer release is out, an orange Update button shows at the top of the file select. Press it and the game downloads the release in the background, checks it against GitHub's checksum, installs it and starts again on the new version. Your saves, settings and game files are kept. On Android, the first update asks you to allow installs from NSMBW and to confirm; after that, Android 12 and up install updates without asking. Android may not reopen the game by itself afterwards, so you might have to open it from your home screen.
- Autosave after every level (#10). Clearing a level now saves your progress to your file automatically, with no prompt, as soon as you're back on the world map. Before, the game (like the Wii original) only kept progress you saved at a tower, a castle or from the map menu, so closing it after a level lost that level.
- Older Windows GPUs: Direct3D 11 fallback (#9). GPUs with no Vulkan or Direct3D 12 driver, like Intel HD 2000/2500/4000, used to end up on Windows' slow software renderer (about 12 fps, with black backgrounds and broken transitions). The game now uses Direct3D 11 on them instead, and only falls back to software rendering if nothing else works.
- Renderer setting (Video tab). Pick the graphics API yourself, or leave it on Automatic, which tries the best one first and falls back down the list. It applies the next time the game starts.
- Windows: Direct3D 12 → Vulkan → Direct3D 11.
- Android: Vulkan → OpenGL ES 3.1+. It's in the app's Display menu too. OpenGL ES can't be picked by hand yet (it's greyed out, for a later version); Automatic still falls back to it on a phone with no working Vulkan.
- Android 9 and up, and older phone CPUs (#16). The app used to need Android 11 and a 2018-or-newer CPU. It now installs on Android 9 and 10, and runs on older ARMv8 CPUs, on OpenGL ES where the phone's Vulkan driver is too old.
- Controller Bindings. With a controller connected, the Keybinds tab becomes Controller and lists the controller's buttons for each action. Pick one and press the new button to rebind it; Reset puts the defaults back.
- PC: mouse buttons in Keybinds (requested by mothy, thanks!). Any action can now be bound to a mouse button: pick the action and click the button you want, left, middle, right or a side button. Right click crouches (Down) by default.
- PC: Mouse as Gyro (Keybinds menu, off by default). Turn it on with the checkbox next to Smart Spin and Reverse Tilt, and the mouse stands in for the Wii Remote's tilt and shake. Move it left or right and the remote tilts that way for 5 seconds, for the tilting platforms. Move it quickly left and right and the remote shakes, so you spin. It switches itself off while a controller or a Wii Remote is connected.
- Reverse Tilt (Keybinds menu, all devices, on by default). A checkbox next to Smart Spin that swaps tilt left and right, so a tilting platform goes the way you tilt the phone or push the stick. Turn it off there if you prefer the original direction.
- Click or tap a world on Select a World. Clicking (or tapping, on Android) an island turns the ring to that world, clicking the island at the front goes there, and Back can be clicked too. Worlds you haven't reached yet ignore the click.
- Performance Monitor. The FPS counter and the frametime graph are now one setting, Performance Monitor, and its size slider (5-200%) scales the FPS counter too.
- Android: Language button on the start screen. Left of Help, with a globe: English (the default), Español or Français, the same three as the game's Language tab and the same setting, so changing one changes the other. The start screen and its Settings, Help and LAN windows switch to it straight away; the game uses it the next time you press Play.
- Android: touch controls get out of the way of a controller. When a controller connects, or you press its buttons or move its sticks, the on-screen remote hides. Tap the screen while playing (in a course or on the world map, with no menu open) and it comes back. It also comes back by itself when the controller disconnects.
- Android: Touch Controls switch in the Keybinds menu. Turn the on-screen buttons on or off from inside the game.
- Android: Xiaomi Mode (fixes the black screen on Xiaomi, Redmi and POCO phones). Xiaomi's system closes an app's extra processes, even one on screen, and the game runs in one. That left it restarting over and over on a black screen. On those phones the game now runs in the app's main process, and leaving it restarts the app cleanly. It's a switch on the start screen, on by default only on Xiaomi phones.
- Android: Download Logs (For Github Reports). A button at the bottom of the app's start screen that saves a zip of the last few play sessions' logs, your settings and the phone's model, ready to attach to a GitHub issue. It doesn't include saves or game files.
Fixes
- Fixed: Larry slides off his platform in ultrawide (#8). In a view wider than 16:9, a room narrower than the screen (the castle bosses' arenas) left the camera pinned to one edge. Bosses measure their moves from the middle of the screen, so Larry's shell turned around 76 units off and slid off the edge.
- Ultrawide: boss arenas sit in the middle of the screen. Any room narrower than your screen is now centred, with the extra width split evenly on both sides, instead of pushed to one side. The middle of the screen is exactly where it is in 16:9, so every boss moves as it does there. Players still stop at the room's own edges, and 16:9 is unchanged.
- Android: a controller that disconnects works again when it reconnects. Before, a USB controller that dropped out and came back stopped moving Mario until you restarted the app. The controller now goes through Android's own input system, so it picks up where it left off.
- Android: a real controller is player 1. Some Android devices have a built-in TV remote service that shows up as a gamepad with no sticks. It could take player 1, so your controller drove player 2 and seemed to do nothing. A real controller now always comes before a remote like that.
- Android: sleeping the phone pauses the game instead of closing it. Turning the screen off now freezes the game in memory: nothing runs, no sound plays, and nothing is saved, to save battery. Wake the phone and you're right where you left off. This also fixes two crashes that could close the game after waking.
- *...
NSMBW 0.2.2: V-Sync on Android, smoother scene changes, PC stutter fixed
Smoother on every device. 0.2.2 removes the stutter some of you felt on PC since 0.2.0, brings V-Sync to Android, and cuts the hitches when the game changes scene (entering a level, the world map, the course intro). Your saves, settings and imported game carry over.
- Fixed: stutter on Windows and Linux. 0.2.0 changed the order in which a frame is prepared and shown, to speed up slow phones, and on PC that made motion less even than 0.1.1. PCs are back to 0.1.1's order; phones keep the speed-up.
- Android: V-Sync (on by default; Settings > Display, or the game's Video tab). Frames now go out in step with the screen, and the game's clock follows the phone's own refresh. Before, the game kept its own clock and once in a while a frame landed a refresh early or late, which showed as yellow spikes in the frametime graph.
- Smoother scene changes. On a Galaxy S26 Ultra, a loop through World 1-1, the world map and back now holds every frame for at most two refreshes (33 ms); before, some transitions held one frame for 50 to 86 ms. On a Pixel 3 XL the longest load frames are about a third shorter. What changed:
- Android phones with 3 GB of memory or more keep the game files in memory, read once in the background (under a second on the S26, 4 s on the Pixel), as the PC version already did. Reads from the phone's storage were up to 107 ms of a scene change.
- Loading a scene's effects, which looks up thousands of names, runs natively and no longer takes most of the course intro's slowest frame.
- Textures the new scene shares with the last one are reused instead of rebuilt, and big ones (like a course's tile set) are decoded on several cores.
- Game files are copied into the game's memory in one go instead of byte by byte.
- Frametime graph: with V-Sync on, it shows how many screen refreshes each frame was up for (16.7 ms, or 33.3 ms for a frame shown twice), so it matches what you see.
- Android: new start menu. Rounded buttons, a big Play button, the options grouped into cards, On/Off switches for Auto Update and Skip Start Menu, and a status line with a green or amber dot. In landscape, Play sits beside the rest.
The game itself is unchanged: a scripted run through World 1-1 leaves the game's memory identical to 0.2.1 at every one of 104 checkpoints, so LAN play works between 0.2.2 devices as before (all players need the same version).
Tested on a Galaxy S26 Ultra and a Google Pixel 3 XL, and on Windows and Linux.
Important
No game files are included. You need your own New Super Mario Bros. Wii (USA, SMNE01, revision 1), extracted with Dolphin. See Getting the game files.
Downloads
- Android (arm64, Android 11+):
NSMBW-0.2.2-android-arm64.apk. On 0.2.1, Check for Updates on the start menu installs it. - Windows (10/11, x64):
NSMBW-0.2.2-windows-x64.zip - Linux (x86-64, glibc 2.35+: Fedora 36+, Ubuntu 22.04+):
NSMBW-0.2.2-linux-x86_64.tar.gz
Updating keeps your saves, settings and imported game. Untested on Mali GPUs (most MediaTek, Exynos and Tensor phones).
SHA-256
1d7a17ac19fa95e9446f0a78cd4ccfa87cc7ef058b5d9ad3e53aa6b1c21e0b28 NSMBW-0.2.2-android-arm64.apk
63589bbb6116a1a15a825244fba183bc6913643607f1d720026d098f1ba52dab NSMBW-0.2.2-windows-x64.zip
9deeba089d203f124f2b05643b37f5e39f20f7cb72d61ab8b441a823f6c606d1 NSMBW-0.2.2-linux-x86_64.tar.gz
Source: this repository at v0.2.2, GPLv3. Not affiliated with Nintendo.
NSMBW 0.2.1: fixed level tiles, Android updates
A hotfix for 0.2.0, plus updates from inside the Android app. 0.2.0's downloads were taken down because of the bug below; 0.2.1 has everything 0.2.0 added, so if you're coming from 0.1.1, read the 0.2.0 notes too: Linux, older PCs, Spanish and French, audio sliders, fullscreen options, Android pausing in the background, and up to 50% more performance on older phones.
- Fixed: wrong level tiles. In 0.2.0, Toad Houses (all of them, the yellow one included) and some courses, such as 5-1, could be drawn with the tiles of the course you played before, like World 1-1's grass in a Toad House. A 0.2.0 speed-up changed how the game notices that a new course's graphics were loaded, and missed some. It's undone, so courses always show their own tiles again. That speed-up was worth about 2% on a Pixel 3 XL, so performance is practically the same as 0.2.0.
- Android: Check for Updates. A new button under Play on the start menu. It looks up the newest release here and, when there is one, downloads it, checks it against the checksum on this page and installs it. Your saves, settings and imported game are kept. The first time, Android asks you to allow installs from NSMBW and to confirm the update; on Android 12 and newer, later updates can install without asking again.
- Android: Auto Update (off by default). Does the same each time you open the app. With Skip Start Menu on, the game opens as soon as the check finds nothing to install.
Updating from 0.1.1 or earlier: download the APK below as usual. Every update after this one can come through Check for Updates.
Tested on a Google Pixel 3 XL, a REVVL 7 5G and a Galaxy S26 Ultra (all Toad Houses and 5-1 checked on the Pixel), and on Windows and Linux.
Important
No game files are included. You need your own New Super Mario Bros. Wii (USA, SMNE01, revision 1), extracted with Dolphin. See Getting the game files.
Downloads
- Android (arm64, Android 11+):
NSMBW-0.2.1-android-arm64.apk - Windows (10/11, x64):
NSMBW-0.2.1-windows-x64.zip - Linux (x86-64, glibc 2.35+: Fedora 36+, Ubuntu 22.04+):
NSMBW-0.2.1-linux-x86_64.tar.gz
Updating keeps your saves, settings and imported game. Untested on Mali GPUs (most MediaTek, Exynos and Tensor phones).
SHA-256
10a0fe1c1b365dc6b324bba8624c489cac76c33bae434c3e05648c8a1f6cec64 NSMBW-0.2.1-android-arm64.apk
ecd8b2921bc46230f1c9a0fd7ef4870d629ad620c5cd22606bcd3de4b061a5d1 NSMBW-0.2.1-windows-x64.zip
1147b449af0a8602dabeca787060779018af00b2873d0f811a271fd48f3a5e26 NSMBW-0.2.1-linux-x86_64.tar.gz
Source: this repository at v0.2.1, GPLv3. Not affiliated with Nintendo.
NSMBW 0.2.0: Linux, older PCs, languages, fullscreen, and up to 50% performance gains
Disclaimer, this is NOT the decomp release I was talking about before. I realized how much longer it was going to take for the decomp to finish, so decided to retouch on the recomp and fix everything I had written down and everyone's issue reports. I also wanted to see how much I could push recomp performance, turns out that's pretty far, from what I saw up to a 100% increase in performance on this update, and this isn't even it either. from a simple survey I found that there's at least 20% more CPU performance on the table and counting. If anyone has any information that could decrease the amount of time and tokens it takes to decompile Wii games, feel free to create an issue report on github.
Linux, older PCs, Spanish and French, audio sliders, fullscreen options, Android no longer loses your game when you switch apps, and a lot faster on older phones. Most of this came from your issues: thanks for them.
- Linux (#3). A native x86-64 build: extract it and run
./NSMBW. It needs a Vulkan driver and glibc 2.35 or newer: Fedora 36 and later, Ubuntu 22.04 and later, Debian 12, Arch, SteamOS. Tested on Fedora 44 and Ubuntu 26.04. It asks for your game folder with the desktop's own picker, keeps its data in~/.local/share/WiiCompiled, and plays LAN games with phones and Windows PCs. If something it needs is missing, such as the Vulkan driver, it says which package to install on Fedora or Ubuntu. - Older processors (#5). PCs without AVX2 (older than Intel Haswell or AMD Excavator) used to close at once. Both the Windows and Linux downloads now include
NSMBW-compatin acompatfolder, whichNSMBWstarts by itself on such a processor. It does the fused math those processors lack in software, exactly, so it still plays LAN games in lockstep with everyone else. - Language (#4). A new Language tab in Settings: English, Español or Français, Nintendo's own translations from the USA disc. Restart the game after switching. (German, Italian, Dutch and the European Spanish and French are only on the PAL disc, which this port doesn't run.)
- Android: leaving the app pauses the game (#2). Switching apps or locking the phone no longer throws you out: the game freezes where you were and carries on when you come back. In a level, it first makes a Quick Save as a backup, so if Android closes the app while you're away, you continue from that level. The backup is removed again when you come back to the game. (With the pause window or the world map's menu open, it pauses without the backup, since that menu has Quick Save itself.)
- Much faster on older phones. A Google Pixel 3 XL (Snapdragon 845) went from 30-40 fps in 0.1.1 to a steady 60 fps in levels and on the world map, its heaviest scene (45-50 there once the phone gets hot). The game thread does roughly 40% less work and waiting per frame:
- The game no longer waits for the graphics thread to finish sending the previous frame before starting the next one; the two now overlap. On a hot Pixel this alone took the world map from about 33 to 46 fps.
- Every single-precision float operation of the game's code is cheaper: the exact Wii rounding now takes a fast path that gives the same bits, twice as fast on a phone CPU. The game's reverb effect, the busiest game code, costs half as much, and so does all the other float math.
- Couch play only: the reverb runs as native code, and textures the game never changes are no longer re-checked every frame (130 MB a second of hashing on the world map). LAN play keeps the original code paths, so devices still stay in lockstep.
- Memory access on ARM phones no longer re-reads a setting before every load and store.
- Fullscreen (Windows and Linux). A new Fullscreen button in Settings > Video: Off, Borderless or Exclusive, each press moving to the next, with the same sound the game plays when you pick a save file. F11 still toggles Borderless.
- Audio settings. A new Audio tab in Settings with Master, Music and Sound Effects sliders, each showing its percentage. Drag them with a finger or the mouse, or move them 5% at a time with left and right. Music and Sound Effects only change what you hear, so devices in a LAN game can each set their own.
- Space Smart Spin QoL (keyboard). Space pressed while Mario is in the air now spins him, as shaking the remote does, instead of pressing 2. Wall jumps, swimming and Yoshi's flutter jump keep using 2, and pressed within about a small Mario's height of the ground it is your next jump instead of a spin. It can be turned off with its checkbox in the Keybinds tab.
- Settings in the pause window. The little gear on a level's pause window is now a Settings button between Continue and Exit Course, like the one on the world map, the same size as the other two and growing like them when selected.
- The LAN screen's Create Room now says that Tailscale works, but is unstable.
- On the keyboard, the Wii Remote's A button is now on B by default. If you changed it in Keybinds, your choice stays.
- Saves made on Windows now load on Linux too, and LAN play logs failed sends to help track down connection problems.
- From Jude (@YlPorts), thanks: phones no longer count every draw call unless the FPS log is on, and Mali GPUs (most MediaTek, Exynos and Tensor phones) now skip the vertex workaround Adreno needs, which should run faster there. If a Mali phone shows broken graphics, turn on Display > Graphics Compatibility.
Tested on a Google Pixel 3 XL (60 fps, 45-50 on the world map when hot; LAN play), a REVVL 7 5G and Galaxy S26 Ultra (60 fps), and a Ryzen 7 5700X3D with an RTX 5070 Ti (60 fps, LAN play). The LG V30+ can't run it: it needs Android 11 and Vulkan 1.1.
Important
No game files are included. You need your own New Super Mario Bros. Wii (USA, SMNE01, revision 1), extracted with Dolphin. See Getting the game files.
Downloads
- Android (arm64, Android 11+):
NSMBW-0.2.0-android-arm64.apk - Windows (10/11, x64):
NSMBW-0.2.0-windows-x64.zip - Linux (x86-64, glibc 2.35+: Fedora 36+, Ubuntu 22.04+):
NSMBW-0.2.0-linux-x86_64.tar.gz
Updating keeps your saves, settings and imported game. Untested on Mali GPUs (most MediaTek, Exynos and Tensor phones).
SHA-256
a4bc4833570bba941fd40c14adfc9c9d2a3de3a9de0a255f76b41f469634f31e NSMBW-0.2.0-android-arm64.apk
23193131e28b5c626f538d52ab15c51afb0086deb90500a66e9aa7f21f74c134 NSMBW-0.2.0-windows-x64.zip
1e5b5ff017f31f3c2d73e87bb0946fbe428fea93c11b94a24dbb5825369790f1 NSMBW-0.2.0-linux-x86_64.tar.gz
Source: this repository at v0.2.0, GPLv3. Not affiliated with Nintendo.
found a game breaking tiling bug, removed downloads
NSMBW 0.1.1: V-Sync, done right
This'll be the last update for a while as I attempt to decompile the game starting today, unless someone reports an issue.
I'm aware of the performance issues on lower-end hardware, especially on the phone side of things, Mali GPUs and CPUs like the Snapdragon 835/845's (the Snapdragon 855 CPU seems to be the minimum spec, 60FPS Pixel 4 XL) being too slow (ridiculous for a game this old obviously), I'm working on an engine overhaul that SHOULD support something as slow as a dual core 1.2Ghz CPU and an adreno 225 from what I've seen, but that's only speculation for now haha. the next release will be the decomp of this game with features from the issues page. I haven't given up on this project or anything, it's just taking longer than I expected haha.
V-Sync is back, done right.
- V-Sync (Windows). A new switch at the bottom of the Video tab, off by default. On, the picture never tears: each frame waits for the display, and the game's own clock follows the display's real refresh, one frame per refresh on a 60 Hz screen, one every third refresh at 180 Hz. Because the two clocks stay in step, frames never pile up waiting for the display, so it no longer slows the game down the way V-Sync in 0.0.10 did (a World 5 tower test that dropped 232 frames then drops none now). Displays whose refresh isn't a whole multiple of 60 (75 Hz, 144 Hz) still get tear-free frames, but keep the game's own 60 Hz clock.
- It can be switched on and off while playing.
Important
No game files are included. You need your own New Super Mario Bros. Wii (USA, SMNE01, revision 1), extracted with Dolphin. See Getting the game files.
Downloads
- Android (arm64, Android 11+):
NSMBW-0.1.1-android-arm64.apk - Windows (10/11, x64):
NSMBW-0.1.1-windows-x64.zip
Updating keeps your saves, settings and imported game. Untested on Mali GPUs (most MediaTek, Exynos and Tensor phones).
SHA-256
a4273dceff7d3c6e74599921954a1db3b8d59653284a4295e10c5d5754e6239e NSMBW-0.1.1-android-arm64.apk
ab011594e7e0bff5d11b2b890937c887ce76f2cfa7d0c46641b9fe93d00aca86 NSMBW-0.1.1-windows-x64.zip
Source: this repository at v0.1.1, GPLv3. Not affiliated with Nintendo.
NSMBW 0.1.0: no more flashing platforms, smoother on busy PCs
No more flashing platforms, and smoother play on busy PCs.
- Fixed: platforms flashing white. The moving yellow platforms (most visible in World 5's giant Piranha Plant course) turned white for moments. These platforms change their texture's settings every frame, and on some frames the texture was read as a single blank pixel. The texture is now always read correctly, for these platforms and anything else in the game that does the same.
- Smoother on busy Windows PCs. The game read its files from disk while you played (the music streams from them), reopening the file every time. On a PC with a lot running (antivirus, sync tools, a hard disk), each read could cost a frame. On Windows the game files (about 340 MB) are now loaded into memory in the background a few seconds after start, so play never waits on the disk. The game also runs at above-normal priority and is excluded from Windows' power-saving slowdown.
- Better drop reports. Each slow frame logged in
console.lognow also shows how long went to file reads and to graphics. If you still see drops, attach the newestconsole.logfromDocuments\MarioWiiSaveData\Logsto an issue.
Known issue: entering a course or the world map takes a few long frames while the game loads, so the FPS counter dips for a second after a load.
Important
No game files are included. You need your own New Super Mario Bros. Wii (USA, SMNE01, revision 1), extracted with Dolphin. See Getting the game files.
Downloads
- Android (arm64, Android 11+):
NSMBW-0.1.0-android-arm64.apk - Windows (10/11, x64):
NSMBW-0.1.0-windows-x64.zip
Updating keeps your saves, settings and imported game. Untested on Mali GPUs (most MediaTek, Exynos and Tensor phones).
SHA-256
9773b89b9e0976372be8532f77ca21c4d9ce6b64bdfce5c8669c97ae1f00660f NSMBW-0.1.0-android-arm64.apk
ac96514c66c228a153694e7e959817ad8a78392af6704be9f5c8f04fefc2a5ca NSMBW-0.1.0-windows-x64.zip
Source: this repository at v0.1.0, GPLv3. Not affiliated with Nintendo.
NSMBW 0.0.13: click levels on the world map, View Map fix, frametime graph
Click a level to walk there, a View Map fix and a frametime graph.
- Click or tap levels on the world map. Mario walks along the map's paths to the level (or Toad house, tower or castle) you picked. Click the one he's standing on to play it. Paths that are still locked stop him where the way ends.
- View Map no longer crashes. Pressing View Map (A) on the world map closed the game: it calls a game function the recompiler had missed. It's translated now.
- Frametime Graph. A new switch in the Video tab, under Show FPS Counter (and in Settings › Display on Android), draws each frame's time under the FPS counter: green on time, yellow one dropped frame, red more.
- Dropped frames are logged. Every frame over 20 ms is written to the log with where the time went (game, graphics, presenting), at most 30 a minute. If you see drops, the newest
console.loginDocuments\MarioWiiSaveData\Logs(Windows) shows the cause; attach it to an issue.
Known issues:
- Entering a course or the world map takes a few long frames while the game loads, so the FPS counter dips for a second after a load.
- Platforms in some World 5 courses (e.g. the giant Piranha Plant's course on the map) can turn white for moments.
Important
No game files are included. You need your own New Super Mario Bros. Wii (USA, SMNE01, revision 1), extracted with Dolphin. See Getting the game files.
Downloads
- Android (arm64, Android 11+):
NSMBW-0.0.13-android-arm64.apk - Windows (10/11, x64):
NSMBW-0.0.13-windows-x64.zip
Updating keeps your saves, settings and imported game. Untested on Mali GPUs (most MediaTek, Exynos and Tensor phones).
SHA-256
d2b49f013e060dcc5af91210c18443d2bda1d521b9fea996aaf21413b65f58fd NSMBW-0.0.13-android-arm64.apk
2e1f6e655d3bc44adfcaab581820dab89351e7640040baccc9ab880fdaf8eda7 NSMBW-0.0.13-windows-x64.zip
Source: this repository at v0.0.13, GPLv3. Not affiliated with Nintendo.