Here is a thread about my random things that I've made over the past year ever since the last C3.
Original a script created by Treeki, I took the script and made general improvements. The script is pretty much a database of all of the New Super Mario Bros. U sprites in the game. The databases uses PHP, MySQL, and some JavaScript for toggling a menu.
What's new in this database that the old didn't have? Well...
This database has allowed us to document the sprites 100 times easier than manually exchanging XMLs. Satoru has a batch file I made that automatically downloads the categories and the sprite data XMLs if the user chooses to.
A bot named CafeBot also uses this SpriteDB for doing multiple tasks. This bot is an IRC bot I originally made when the RHCafe was originally opened. RoadrunnerWMC and I have actually helped each other on the IRC features, but all of the board ones I have coded.
One command is !sprite. It has this syntax:
and will return the sprite information on the sprite chosen.
It also has filters to know if it isn't a number being inputted to avoid bugs.
Not that special, but eh.
Another command I made was a sprite searching command. It would search the sprite database for any possible match for the name that was given.
and it will return any sprite it finds, if any.
It limits the return to avoid spam.
and of course, returns something if it can't find results.
Another feature that is really useful is the !randsprite command. It does exactly what it says, picks a random sprite and queries it to the user. It does exactly what "TAKE ME SOMEWHERE RANDOM" does, but on IRC.
It has no arguments.
oh and each of those outputs is color-coded to fit with all IRC clients, hopefully. I haven't had complaints yet so
The last feature I am going to show of CafeBot's IRC functions is reporting WiiU game updates. There is a script that is ran every 5 minutes through cron on my server that launches a PHP file. The original person who made the method was soneek, but I edited it to support more things, such as reporting to twitter.
Syntax:
$url is the URL to look out for
$version is the version for the TMD to look out for
$gameName is the game's name
$region is the region -- sometimes regions get the update before others
$txtName is the .txt file to write to my /home directory
For example, this would try to see if v192 of the game Splatoon existed on Nintendo's update servers. Then it would create splat192.txt in my /home directory with information about how big it is and whatnot.
The bot only has 1 function coded by me on the board; Newer U application processing.
The process beings with the application page: a way to submit without taking database space. This was the easy part of figuring out. I created the layout, made a few adjustments, and added filters to keep people from keeping stuff blank and submitting. It checks for the following:
Then it submits a query to make a thread in a separate forum with the information. Then it just gets accepted or declined.
Splat3D was an editor that I had made from the 3D World Editor. This was shown last year but this time it's back with more stabilization and more features!

One of the first changes I made for the new version was this loading screen. I changed it so it will give you more information.
It now follows this:
1st Line: The object being loaded
2nd Line: Loaded / Need To Load Percent(%)
3rd Line: Address of the node being loaded

Another new feature is the reset camera button. This is for the people that the program sends them to a random location because of the sensitivity of the camera and pan controls. It will reset back to it's original loading spot.
This will reset it at the pitch of 45, yaw of -45, and roll of 0. The coordinate it will reset at is 0, 0, -10.
Throughout my time I reverse engineered the game, I uncovered many unused settings. When I did that, I documented them on a place named The Cutting Room Floor, the home of many unused game features.
My page for unused NSMBU Sprites and Settings. I wrote everything in there except for a few grammar fixes and Jap translations.
I had also reverse engineered 2 of the energy saving features of the WiiU; the Auto Power-Down features, and the dimming features. I wrote a really early library to be able to read these functions. My example doesn't put them to use, but I will still post the code to show my progress.
will edit with more info later
New Super Mario Bros. U Sprite Database
Original a script created by Treeki, I took the script and made general improvements. The script is pretty much a database of all of the New Super Mario Bros. U sprites in the game. The databases uses PHP, MySQL, and some JavaScript for toggling a menu.
What's new in this database that the old didn't have? Well...
- No longer defines the DB credentials in the file, does it through the Blargboard interface
- New IRC system that allows reporting for sprite edits.
- Integrated with Blargboard to use Blargboard functions, such as the MySQL function Query(), Fetch(), FetchResult(), etc
- A category xml is generated from sprites having a list of themes that the sprite fits in, which goes into Reggie NSMBU or Satoru.
- Editable actor and files loaded list
- New nybbles added to the database now actually are loaded in numerical order by nybble, the old database just added it to the bottom of the list making it look ugly.
- Support for filters of sprites, Unknown, Known, Complete, and Unused.
- Feature that randomly gives you a sprite to reverse engineer if you're feeling bored.
- The ability to fetch the login information, so banned users & guests cannot edit the database
- Revisions page
- XML output automatically puts [UNUSED] for sprites that are unused
This database has allowed us to document the sprites 100 times easier than manually exchanging XMLs. Satoru has a batch file I made that automatically downloads the categories and the sprite data XMLs if the user chooses to.
CafeBot
A bot named CafeBot also uses this SpriteDB for doing multiple tasks. This bot is an IRC bot I originally made when the RHCafe was originally opened. RoadrunnerWMC and I have actually helped each other on the IRC features, but all of the board ones I have coded.
One command is !sprite. It has this syntax:
Code
!sprite <id>
and will return the sprite information on the sprite chosen.
Quote
<MrRean> !sprite 483
<CafeBot> Multi-bar Fire Bar (483): http://rhcafe.us.to/spriteDB.php?e=483
<CafeBot> Multi-bar Fire Bar (483): http://rhcafe.us.to/spriteDB.php?e=483
It also has filters to know if it isn't a number being inputted to avoid bugs.
Quote
<MrRean> !sprite asdf
<CafeBot> Invalid input. Try using a number between 0 and 723.
<CafeBot> Invalid input. Try using a number between 0 and 723.
Not that special, but eh.
Another command I made was a sprite searching command. It would search the sprite database for any possible match for the name that was given.
Code
!spritesearch search term
and it will return any sprite it finds, if any.
Quote
<MrRean> !spritesearch Fire
<CafeBot> - Pipe Venus Fire Trap - Up (6): http://rhcafe.us.to/spriteDB.php?e=6
<CafeBot> - Pipe Venus Fire Trap - Down (7): http://rhcafe.us.to/spriteDB.php?e=7
<CafeBot> - Pipe Venus Fire Trap - Left (8): http://rhcafe.us.to/spriteDB.php?e=8
<CafeBot> - Pipe Venus Fire Trap - Right (9): http://rhcafe.us.to/spriteDB.php?e=9
<CafeBot> - Grounded Venus Fire Trap (15): http://rhcafe.us.to/spriteDB.php?e=15
<CafeBot> and 11 more.
<CafeBot> - Pipe Venus Fire Trap - Up (6): http://rhcafe.us.to/spriteDB.php?e=6
<CafeBot> - Pipe Venus Fire Trap - Down (7): http://rhcafe.us.to/spriteDB.php?e=7
<CafeBot> - Pipe Venus Fire Trap - Left (8): http://rhcafe.us.to/spriteDB.php?e=8
<CafeBot> - Pipe Venus Fire Trap - Right (9): http://rhcafe.us.to/spriteDB.php?e=9
<CafeBot> - Grounded Venus Fire Trap (15): http://rhcafe.us.to/spriteDB.php?e=15
<CafeBot> and 11 more.
It limits the return to avoid spam.
and of course, returns something if it can't find results.
Quote
<MrRean>!spritesearch balls
<CafeBot>Sprite not found.
<CafeBot>Sprite not found.
Another feature that is really useful is the !randsprite command. It does exactly what it says, picks a random sprite and queries it to the user. It does exactly what "TAKE ME SOMEWHERE RANDOM" does, but on IRC.
Code
!randsprite
It has no arguments.
Quote
<MrRean> !randsprite
(In query)
<CafeBot> Big Snowy Floating Box(es) (444): http://rhcafe.us.to/spriteDB.php?e=444
(In query)
<CafeBot> Big Snowy Floating Box(es) (444): http://rhcafe.us.to/spriteDB.php?e=444
oh and each of those outputs is color-coded to fit with all IRC clients, hopefully. I haven't had complaints yet so

The last feature I am going to show of CafeBot's IRC functions is reporting WiiU game updates. There is a script that is ran every 5 minutes through cron on my server that launches a PHP file. The original person who made the method was soneek, but I edited it to support more things, such as reporting to twitter.
Syntax:
Code
function reportGame($url, $version, $gameName, $region, $txtName)
$url is the URL to look out for
$version is the version for the TMD to look out for
$gameName is the game's name
$region is the region -- sometimes regions get the update before others
$txtName is the .txt file to write to my /home directory
Code
$splatUSA = 'http://nus.cdn.wup.shop.nintendo.net/ccs/download/0005000E10192900/tmd.192'; reportGame($splatUSA, 'v192', 'Splatoon', 'USA', 'splat192.txt');
For example, this would try to see if v192 of the game Splatoon existed on Nintendo's update servers. Then it would create splat192.txt in my /home directory with information about how big it is and whatnot.
The bot only has 1 function coded by me on the board; Newer U application processing.
The process beings with the application page: a way to submit without taking database space. This was the easy part of figuring out. I created the layout, made a few adjustments, and added filters to keep people from keeping stuff blank and submitting. It checks for the following:
- A username
- A way to contact the user
- At least 1 desired position
- A message
Then it submits a query to make a thread in a separate forum with the information. Then it just gets accepted or declined.
Splat3D
Splat3D was an editor that I had made from the 3D World Editor. This was shown last year but this time it's back with more stabilization and more features!
What's new?
One of the first changes I made for the new version was this loading screen. I changed it so it will give you more information.
It now follows this:
1st Line: The object being loaded
2nd Line: Loaded / Need To Load Percent(%)
3rd Line: Address of the node being loaded
Another new feature is the reset camera button. This is for the people that the program sends them to a random location because of the sensitivity of the camera and pan controls. It will reset back to it's original loading spot.
Code
def resetCamera(self): self.rotx = 45 self.roty = -45 self.rotz = 0 self.posx = self.posy = 0 self.posz = -10
This will reset it at the pitch of 45, yaw of -45, and roll of 0. The coordinate it will reset at is 0, 0, -10.
New Super Mario Bros. U Unused Settings & Sprites
Throughout my time I reverse engineered the game, I uncovered many unused settings. When I did that, I documented them on a place named The Cutting Room Floor, the home of many unused game features.
My page for unused NSMBU Sprites and Settings. I wrote everything in there except for a few grammar fixes and Jap translations.
Unused Areas and Zones
WiiU Energy Saving Features
I had also reverse engineered 2 of the energy saving features of the WiiU; the Auto Power-Down features, and the dimming features. I wrote a really early library to be able to read these functions. My example doesn't put them to use, but I will still post the code to show my progress.
C Source
C Header
will edit with more info later