This program will capture level info & events from a Mario Maker 2 game feed and display on a locally hosted web app. This includes the the level name, level code, level creator, death counter and level timer.
Mario Maker 2 OCR.exe
Example of the program in use from Karibukai Play.
1) Open OBS before this program. 1) In OBS, verify the VirtualCam is started. 1) Open the Mario Maker 2 OCR program. 1) Select the capture device with Mario Maker 2 gameplay from the dropdown
ocrLevel.json
file. To customize the included overlays (font, color, etc.) make adjustments to the settings file for the overlay you are using: ex: \web\drambar\settings.js
.
The web
directory is where the web server will be hosted, any web apps created here can be used as a stream overlay. Feel free to create and share your own!
The wiki contains documentation on the program logic.
Once the program is started, the following websocket messages will be broadcast when detected. By default the address for this is ws://localhost:3000/wss
. This is how the web overlays are updated. If you are integrating an external bot or custom overlay, you should connect to this web socket server and read in the messages.
On new level
{
"level": {
"author": "Valdio",
"code": "8DY-1WC-FQG",
"name": "Thwomping Grounds"
}
}
On level clear
{
"type" : "clear",
"data" : "01'54\"743"
}
On death
{ "type" : "death" }
On start over
{ "type" : "restart" }
On exit or quit
{ "type" : "exit" }
On gameover
{ "type" : "gameover" }
On skip
{ "type" : "skip" }
On world record
{ "type" : "worldrecord" }
On first clear
{ "type" : "firstclear" }
The OpenCV library is used for image processing and Tesseract library is used for OCR (Optical Character Recognition). EmguCV provides a .NET wrapper for both of these libraries and is directly used for this project. EmbedIO for Websocket and HTTP server.
https://github.com/dram55/MarioMaker2OCR/network/dependencies