Level viewer for Super Mario Maker 2, based on JiXiaomai's work

Related tags

Miscellaneous toost
Overview

Toost

Level viewer for Super Mario Maker 2, based on JiXiaomai's work

How to build

If building for desktop, obtain development files for sdl2, glew, glfw3, zlib, cairo, freetype2, and libcurl, as well as having an up to date GCC and pkg-config. Compilation on Windows should use MSYS2, on Mac should use homebrew and on linux should use standard GCC. Type make for a debug build and make BUILD=release for a release build. If building for web, first obtain a working Emscripten build environment and put its binaries on the path, such as emmake, emcc and em++. Next, run ./prepare_web_deps.sh. This only needs to be done once, as it downloads and compiles Cairo to prepare it for the web environment. Once that is done, you can run make PLATFORM=web for a debug build and make PLATFORM=web BUILD=release for a release build. To prepare a zip to distribute, run ./build_release.sh for desktop and ./build_release.sh web for web.

Hosting the web build

As long as all files in bin are in the same directory on your webserver and you are hosting them over https, you can access index.html to see the viewer.

Credits

  • Ji Xiaomai, as the core level renderer is based on his work
  • The Spriters Resource for the sprites
Comments
  • Segmentation fault on Arch Linux

    Segmentation fault on Arch Linux

    图片

    $ LD_LIBRARY_PATH="$(pwd)/../lib" ./toost --path course_data_163.bcd --overworld ./qwq.png
    Done parsing 4r4r
    zsh: segmentation fault (core dumped)  LD_LIBRARY_PATH="$(pwd)/../lib" ./toost --path course_data_163.bcd --overworl
    
    Stack trace of thread 7222:
    #0  0x00007f3a60f649d9 cairo_ft_font_face_create_for_ft_face (libcairo.so.2 + 0xd09d9)
    #1  0x000056016fe27e82 n/a (/home/yidaozhan/bin/toost + 0x1be82)
    ELF object binary architecture: AMD x86-64
    
    opened by YidaozhanYa 6
  • Crash on Linux

    Crash on Linux

    Distribution: Arch Linux gcc version: 11.2.0

    At first when compiling, decrypt.cpp encountered memcpy undeclared error, when I added "#include <cstring> to decrypt.h, the program could be compiled normally, but encountered the following error when executing:

    terminate called after throwing an instance of 'std::range_error'
      what():  wstring_convert::to_bytes
    
    opened by YidaozhanYa 4
  • Build issues on Ubuntu (Windows Subsystem for Linux)

    Build issues on Ubuntu (Windows Subsystem for Linux)

    Hey there, I have all the dependencies required for Desktop/CLI build as mentioned in your README and I have tried to run make BUILD=release but have run into a couple issues trying to build for Linux on WSL (Windows Subsystem):

    1. I am trying to use GCC and then got an make: c++: Command not found. Looking it up I switched your c++ in your Makefile to gcc which seemed to fix that issue.

    2. Then, I got this from GCC:
      gcc: error: unrecognized command line option ‘-std=gnu++20’; did you mean ‘-std=gnu++2a’?
      Googling it showed me that I have to change compiler options, but that was weird as I thought they should be correctly set in the Makefile, however I edited that and moved on.

    3. I got yet another error from GCC: gcc: error: unrecognized command line option ‘-mconsole’
      I removed this argument and it moved on from that error.

    4. collect2: error: ld returned 1 exit status After seeing this, I'm not sure how to proceed. Is there a potential that the Makefile is incorrect?

    opened by burritosoftware 4
  • Level ID XXXXXXXXX could not be downloaded

    Level ID XXXXXXXXX could not be downloaded

    Hi. I decided to try this SMM2 level viewer because the other one by JiXiaomai stopped working for me even though it was working before.

    When I type in the level code and click "Download Level", I get a very quick error message that says "Level ID XXXXXXXXX could not be downloaded", where the XXXXXXXXX is the code.

    It still creates a .BCD file, but when I attempt to load it, it gives another quick error: "Level file could not be parsed." By quick error, I mean it appears and disappears almost instantly, and I had to record my screen in order to read it.

    I'm guessing that something stopped working on the server's end.

    opened by unsightedmetal6 4
  • Update tile reference for semisolid (ID 16)

    Update tile reference for semisolid (ID 16)

    Incorrect tile for the end of this semisolid. Cross-referenced in JiXiaomai's original work (And I just happened to have a level that used a lot of these) https://github.com/JiXiaomai/SMM2LevelViewer/blob/b0b7c57a3c6b28160b1dda9c13ad9fd216217f91/Form1.vb#L1480

    I'm in the process of making a golang version of this for fun (started with the JiXiaomai's but C++ is much easier to reason about). I may find more things like this so if you want me to hold off and have a larger PR rather than as I find things I understand.

    opened by tparker00 2
  • Level cannot be downloaded

    Level cannot be downloaded

    Tried to access the level viewer and get an error that "Could not be downloaded"

    https://tgrcode.com/mm2/level_info/jgrk230dg

    this returns json that this is a valid level, and not a maker code.

    https://tgrcode.com/mm2/level_data/JGRK230DG and https://tgrcode.com/mm2/level_data/JGR-K23-0DG returns System.Net.WebException: An exception occurred during a WebClient request. ---> System.IO.IOException: Received an unexpected EOF or 0 bytes from the transport stream.

    opened by bilago 2
  • Crash while drawing some map

    Crash while drawing some map

    Distribution: windows 10/windows 11 hi, when i view a course,the application is crashed, the course id is P52-3WX-S2G,and the last debug info is: Printing tile X:1 Y:43 Printing tile X:1 Y:43 Printing tile X:2 Y:23 Printing tile X:3 Y:22 Printing tile X:2 Y:21 Printing tile X:3 Y:22 Printing tile X:3 Y:22 Printing tile X:3 Y:22 Printing tile X:2 Y:23 Printing tile X:12 Y:0 Printing tile X:11 Y:0 Printing 11153741 at X:1392 Y:368 with W:16 and H:16 Printing 11153741 at X:1408 Y:368 with W:16 and H:16 Printing 11153741 at X:1424 Y:368 with W:16 and H:16 Printing 11153741 at X:1440 Y:368 with W:16 and H:16 Printing 11153741 at X:1456 Y:368 with W:16 and H:16

    opened by huaimogu 1
  • 535-7PC-PGF crashing the program

    535-7PC-PGF crashing the program

    When you try to load the level 535-7PC-PGF, toost crashes after a couple of seconds. The overworld image gets created in the toost folder, so I am guessing something in the subworld is causing the issue.

    opened by emerald000 1
  • Clear pipe not showing up

    Clear pipe not showing up

    A clear pipe is not showing up on level HLG-T7M-YSG. There should be one on the overworld going from pipe A to the left donut around 20 tiles left.

    From what I can see, the other clear pipes show up correctly.

    opened by emerald000 1
  • Certain levels dont work with this level viewer

    Certain levels dont work with this level viewer

    I have tried a few levels. two seem to work but most don't. I keep getting an Internal sever error or Level ID could not be downloaded. I tried both JiXiaomai's program and your website both result in errors.

    Only two levels that seem to work C81-8H4-RGG SQG-9NT-9GF

    Levels that don't work 5BJ-G6X-LSG S0Q-MRG-5GG FXY-QKH-41G NJ0-0TF-4CG XFP-RLF-MGF XGM-H9L-0CG LB7-LDG-KJG BRG-477-VYG 0BH-621-HJF MKV-L45-TTG

    opened by PlaidXe 1
Releases(v2.0.2)
Owner
TheGreatRambler
I love to program in Javascript and C++. One day, I'll be doing web dev, the other day systems hacking
TheGreatRambler
A Super Mario 64 decompilation, brought to you by a bunch of clever folks.

Super Mario 64 This repo contains a full decompilation of Super Mario 64 (J), (U), (E), and (SH). Naming and documentation of the source code and data

Nintendo 64 Decompilation Projects 6.5k Dec 28, 2022
Custom code toolkit for Super Mario Galaxy 2.

Syati Syati is a coding toolkit for custom code injections in Super Mario Galaxy 2. It is able to compile code, link to existing functions and structu

Aurum 9 Nov 28, 2022
Unix pager (with very rich functionality) designed for work with tables. Designed for PostgreSQL, but MySQL is supported too. Works well with pgcli too. Can be used as CSV or TSV viewer too. It supports searching, selecting rows, columns, or block and export selected area to clipboard.

Unix pager (with very rich functionality) designed for work with tables. Designed for PostgreSQL, but MySQL is supported too. Works well with pgcli too. Can be used as CSV or TSV viewer too. It supports searching, selecting rows, columns, or block and export selected area to clipboard.

Pavel Stehule 1.9k Jan 4, 2023
A modern-day Boss Key software tool. Switch instantly from work to play & play to work with Bosky.

Bosky By: Seanpm2001, Bosky-dev Et; Al. Top README.md Read this article in a different language Sorted by: A-Z Sorting options unavailable ( af Afrika

Sean P. Myrick V19.1.7.2 2 Sep 10, 2022
Table Maker for Modern C++

Source for the above image can be found here Table of Contents Quick Start Formatting Options Style Inheritance Model Word Wrapping Font Alignment Fon

Pranav 1.4k Dec 30, 2022
KEM Keyboard Extender Maker

KEM Keyboard Extender Maker KEM Keyboard Extender Maker Las principales características de KE-M son: 8 teclas configurables en dos posibles modos: --

akirasan 5 Aug 1, 2022
A header maker, this project will create your header file with all your declaration in

Headermaker Install: git clone https://github.com/rmechety42/Headermaker.git cd Headermaker make install Usage: Headermaker src_folder_you_want_to

Rayan Mechety 35 Dec 8, 2022
Maker of special .exe, which contains additional files which are unpacked when .exe is run

exe-archivator Program that make exec-me.exe, which contains additional files which are unpacked when exec-me.exe is run. After compleating unpacking

Roman Karetnikov 4 Dec 17, 2021
High-level interface for low-level programming

Singeli Singeli is now able to compile useful programs to C, but it's very rough around the edges, with poor error reporting. We are beginning to use

Marshall Lochbaum 40 Dec 30, 2022
A water tank level sensor **Built With WisBlock** to detect overflow and low level conditions.

RAK12014 Laser TOF sensor coming soon WisBlock Watertank Level Sensor Watertank Overflow detection using the RAKwireless WisBlock modules. It implemen

Bernd Giesecke 3 Feb 3, 2022
Mario Kart 7 semi-primary exploit for the Nintendo 3DS.

kartdlphax kartdlphax is a semiprimary exploit for the download play mode of Mario Kart 7. It can be used to run an userland payload in an unmodified

PabloMK7 44 Jan 3, 2023
Extracts and Decompress Mario Sports Mix Files

MSM-File-Converter This is a tool created by TheN00b21 to extract and compress Mario Sports Mix's files. So far it only works with the Menu and Tour f

null 2 Dec 22, 2021
Source code for the Mario Kart Wii Tournament Museum mod

Mario Kart Wii Tournament Museum Source code for the MKWTM mod. Includes the rel source and the loader. Building To compile code you'll need: NXP 'Cod

Puzzle 12 Nov 29, 2022
SFML-based Mandelbrot viewer program

mandelbrot SFML-based Mandelbrot viewer program. Dependencies CMake 3.16 C++17 SFML 2.5 Building cmake -B build -DCMAKE_BUILD_TYPE=Release cmake --bui

Chris Thrasher 13 Sep 28, 2022
mstatus is a super minimal entirely signal based statusbar for DWM.

mstatus is a uber-minimalistic signal based statusbar for DWM. All components of the statusbar are modules that must either be written by the user, or written by someone else and copied by the user.

Thomas Voss 1 Feb 2, 2022
per - Simple unix permission viewer and converter

Per is a simple utility that can verbosely print unix permissions and convert between symbolic and numeric notations and vice-versa.

jarmuszz 5 Oct 23, 2022
DICOM images and volumes viewer with advanced processing infrastructure (WPF, ITK, VTK)

DicomViewer DICOM images and volumes viewer with advanced processing infrastructure Stack: WPF (C#) ITK (C++) VTK (C++) Structure: DicomViewer - WPF a

Paweł Piorun 1 Sep 8, 2022
An image viewer for 9front

An image viewer for 9front

phil9 4 Nov 30, 2021
QOI image viewer on top of the Sokol headers

qoiview A simple .qoi image file viewer on top of the sokol headers. QOI: https://github.com/phoboslab/qoi Sokol: https://github.com/floooh/sokol WASM

Andre Weissflog 107 Dec 6, 2022