Skip to content

zrayyes/MarioMaker2CommentPlotter

 
 

Repository files navigation

Mario Maker 2 comment plotter

What is this?

A script that takes a png image and draws it as a comment in Mario Maker 2.

How does it work?

  1. A python script converts the image into an array of colors.
  2. The array gets written as a const to flash memory.
  3. Teensy Loader program loads compiled code onto Teensy board.
  4. The Teensy board reads the colors as instructions and acts as a switch controller to draw the image in-game.

How to run

Requirements

  • Nintendo Switch + Mario Maker 2
  • Teensy 2.0++ Board
  • Python 3.6 or 3.7
  • GCC + Make
  • Teensy Loader Application
  • 320x180 PNG Image

Instructions

Clone repository and submodule:

git clone https://github.com/zrayyes/MarioMaker2CommentPlotter.git
git submodule init
git submodule update

Install Pillow (Python Imaging Library Fork):

# Optional: Create a virtual environment
python -m venv venv
# Install Pillow
pip install Pillow==6.1.0

Run script:

# No dithering
python start.py image.png
# With dithering
python start.py image.png x
# You will find a preview.png to see what the image would approximately look like on the switch

Compile:

make

Afterwards:

  1. Connect teensy board.
  2. Flash outputted Joystick.hex onto teensy board using Teensy Loader.
  3. Turn on Mario Maker 2, open the comment screen, navigate to and enter drawing tab.
  4. Turn off active controller.
  5. Connect Teensy and wait. If it fails to connect, disconnect the cable and try again.

Example

Input:

Input image

Output:

Output image

The emote used (aurOk) belongs to Twitch streamer Aurateur.

TODO

  • Measure how long it takes for a single column to draw (single color). (2:22, 142s)
  • Reduce time taken for single step. Skip paint step? (1:12, 72s)
  • Reduce time waiting between move down (29s)
  • Reduce time waiting after column move(28s)
  • Need to test new time numbers are working properly
  • Reduce time switching colors
  • Skip painting (and switching to) White.
  • Add how-to instructions
  • Dockerfile?

Releases

No releases published

Packages

No packages published

Languages

  • C 98.5%
  • Python 1.2%
  • Makefile 0.3%