OCDM - Mario Maker 3DS course manager

OCDM stands for Online Course Database Manager

Features*:
  • import and export courses, both** 3DS and WiiU
  • cryptofix saves (if the game marked your save as "corrupted")
    • Note: this will overwrite the LockoutID in your courses, not in the save file, so please be fair and don't reupload others' courses :)
  • make/apply save snapshots (exports all files which are used in the save)
    • Note: please format your save data before restoring your save otherwise the game could mark your save as "corrupted", and this one is not cryptofixable
  • browse SMMDB
    • download courses
    • discontinued

*: these features are in the latest build at the time of editing this post, so functionality in the public build could differ
**: due to differences in the 3DS and the WiiU version, importing a converted course file on a foreign platform could crash the game on loading the course


bf9dd7f81f.jpg

dfa53dcd86.jpg

82f4e899ed.jpg

2d84f7a0f6.jpg

9f7d574fee.png

fd529e16c1.png

3e10674a00.png

fd5ea7441e.png

d593f2b5ff.png

f4b4b4fcf4.jpg



[Download] (not supported anymore)​
 
Last edited by Sono,

Tarnadas

Well-Known Member
Newcomer
Joined
Dec 21, 2016
Messages
76
Trophies
0
Age
34
Website
smmdb.ddns.net
XP
158
Country
Germany
first of all, gg

second, does it support the Range HTTP header? that's what I need

for course info I just get the first 240 bytes (thumbnails aren't supported in the course list), then clicking on the course the thumbnail will be requested, and depending on the level type it should decode JPEG (not implemented yet) otherwise it'll fallback to Morton-swizzled 3DS thumbnail data

but anyways, I'll push a PHP script soon that'll be usable for knowing how OCDM works with networking shit

I use express to handle requests. It seems like range is not implemented in the default version, but there is a middleware which I will add: https://www.npmjs.com/package/express-range

Wait why don't you use the API? :D
https://github.com/Tarnadas/smmdb
Is JSON such a pain to parse? You wouldn't have to use that range HTTP header. You also wouldn't have to decode thumbnails, because you can request them with http://smm-test.alextc.de/courseimg/<course-id>_full.jpg

Another idea I have in mind:
You don't seem to like making GUIs, so what about using the website to browse courses and download via OCDM? I could make a button to copy courseID to clipboard, which you could paste somewhere inside OCDM to download that course. I would have to add proper media queries to the website though, because it looks shitty on mobile devices and I am also wondering if there is a special media query for the 3DS webbrowser, so that I can hide that "copy courseID" button on non-3DS devices
 

Tarnadas

Well-Known Member
Newcomer
Joined
Dec 21, 2016
Messages
76
Trophies
0
Age
34
Website
smmdb.ddns.net
XP
158
Country
Germany
my question is, what happens in all these conversions when it comes to amiibo costumes?

Well that's still a thing which must be investigated. Currently nothing is happening to unsupported blocks, so I either expect 3DS to automatically remove them or to crash. If it crashes, I would have to improve the conversion
 

Giodude

GBAtemp's official rock
Member
Joined
May 17, 2015
Messages
5,094
Trophies
1
Age
23
Location
New York
XP
2,761
Country
United States
Well that's still a thing which must be investigated. Currently nothing is happening to unsupported blocks, so I either expect 3DS to automatically remove them or to crash. If it crashes, I would have to improve the conversion
The issue is the 3ds does have a scrapped buggy amiibo costume that loaded sometimes by accident before it got patched out.
 

Tarnadas

Well-Known Member
Newcomer
Joined
Dec 21, 2016
Messages
76
Trophies
0
Age
34
Website
smmdb.ddns.net
XP
158
Country
Germany
The issue is the 3ds does have a scrapped buggy amiibo costume that loaded sometimes by accident before it got patched out.

Oh great :D Maybe it will load again...

Can someone with a 3DS tell me if the Download button is replaced with a "Copy Course ID" button on http://smm-test.alextc.de/ and if it actually copies the course ID to clipboard?
 

Tarnadas

Well-Known Member
Newcomer
Joined
Dec 21, 2016
Messages
76
Trophies
0
Age
34
Website
smmdb.ddns.net
XP
158
Country
Germany
If you visit the page on the n3ds browser it's just a yellow screen

Could you try again? I totally forgot to support older browsers. If it is still not working I have to decrement supported browser versions even further.

Is there a way to display a console for error messages on the 3DS webbrowser?
 

Giodude

GBAtemp's official rock
Member
Joined
May 17, 2015
Messages
5,094
Trophies
1
Age
23
Location
New York
XP
2,761
Country
United States
Could you try again? I totally forgot to support older browsers. If it is still not working I have to decrement supported browser versions even further.

Is there a way to display a console for error messages on the 3DS webbrowser?
Still gives a yellow screen. Requesting the mobile version didnt help either. And i've looked through all the browser settings and options and there's nothing along the lines of error messages.
 

Tarnadas

Well-Known Member
Newcomer
Joined
Dec 21, 2016
Messages
76
Trophies
0
Age
34
Website
smmdb.ddns.net
XP
158
Country
Germany
Still gives a yellow screen. Requesting the mobile version didnt help either. And i've looked through all the browser settings and options and there's nothing along the lines of error messages.

You could try again? :D I theoretically polyfilled now and support very old browsers, even IE...
 

Sono

cripple piss
OP
Developer
Joined
Oct 16, 2015
Messages
2,820
Trophies
2
Location
home
XP
9,305
Country
Hungary
I use express to handle requests. It seems like range is not implemented in the default version, but there is a middleware which I will add: https://www.npmjs.com/package/express-range

Wait why don't you use the API? :D
https://github.com/Tarnadas/smmdb
Is JSON such a pain to parse? You wouldn't have to use that range HTTP header. You also wouldn't have to decode thumbnails, because you can request them with http://smm-test.alextc.de/courseimg/<course-id>_full.jpg

Another idea I have in mind:
You don't seem to like making GUIs, so what about using the website to browse courses and download via OCDM? I could make a button to copy courseID to clipboard, which you could paste somewhere inside OCDM to download that course. I would have to add proper media queries to the website though, because it looks shitty on mobile devices and I am also wondering if there is a special media query for the 3DS webbrowser, so that I can hide that "copy courseID" button on non-3DS devices

I have my own API, because I hate both networking and GUIs, so ye...

3DS doesn't have a clipboard. also, I doubt old3DS supports CSS3 too much... I know it supports width/height selectors though

and I highly doubt 3DS has special CSS query selectors... the most you can do is use JS to add a CSS class to body to indicate that you're on a 3DS

Can someone with a 3DS tell me if the Download button is replaced with a "Copy Course ID" button on http://smm-test.alextc.de/ and if it actually copies the course ID to clipboard?

umm... 3DS doesn't have a clipboard

Is there a way to display a console for error messages on the 3DS webbrowser?

new3DS browser yes, hold ABXY while it's starting, and it should ask you to enable the devtools... you'll need Opera or Chrome for that though, and it's insanely buggy :/
 

Giodude

GBAtemp's official rock
Member
Joined
May 17, 2015
Messages
5,094
Trophies
1
Age
23
Location
New York
XP
2,761
Country
United States
considering save decryption is now possible, is it possible for me to import a 100 percent save? If so, could somebody dump theirs for me, i cant for the life of me beat these challenges and i want to use the bowser jr and red coin tools when the final version of OCDM is released.
 

Sono

cripple piss
OP
Developer
Joined
Oct 16, 2015
Messages
2,820
Trophies
2
Location
home
XP
9,305
Country
Hungary
considering save decryption is now possible, is it possible for me to import a 100 percent save? If so, could somebody dump theirs for me, i cant for the life of me beat these challenges and i want to use the bowser jr and red coin tools when the final version of OCDM is released.

actually... there are some safety measures in the savefile, so I haven't yet been able to import a savefile from an older save without the "this save is from another gamecart" error
 

Tarnadas

Well-Known Member
Newcomer
Joined
Dec 21, 2016
Messages
76
Trophies
0
Age
34
Website
smmdb.ddns.net
XP
158
Country
Germany
yes, if the user remembers some sort of ID and types in manually

This is so goddamn genius!
I just made the decision, that I won't support ancient browsers like the one 3ds is apparently using. There is way too much broken stuff and with all the dependencies of my project it is like finding a needle in a haystack.

Is this what you want for range header? https://github.com/Tarnadas/smmdb/commit/faf386f997905744bc3ba449b53167aac1d6ebef
Only works for requests of 3DS type.

I am now also supporting small screen sizes. You should try it out, but a few things are still missing

Edit: mobile friendliness approved by Google: http://imgur.com/a/UDymB :D It could need some performance improvements though
 
Last edited by Tarnadas,
  • Like
Reactions: Sono

Merch

Tutorial God, Apparently.
Banned
Joined
Feb 9, 2016
Messages
225
Trophies
0
Age
25
Location
Music Park, Mushroom Kingdom
Website
www.olivebowlgraphics.weebly.com
XP
135
Country
United States
This is so goddamn genius!
I just made the decision, that I won't support ancient browsers like the one 3ds is apparently using. There is way too much broken stuff and with all the dependencies of my project it is like finding a needle in a haystack.

Is this what you want for range header? https://github.com/Tarnadas/smmdb/commit/faf386f997905744bc3ba449b53167aac1d6ebef
Only works for requests of 3DS type.

I am now also supporting small screen sizes. You should try it out, but a few things are still missing

Edit: mobile friendliness approved by Google: http://imgur.com/a/UDymB :D It could need some performance improvements though
You, sir, are fucking amazing. All we need now is to figure out how save data works.

--------------------- MERGED ---------------------------

actually... there are some safety measures in the savefile, so I haven't yet been able to import a savefile from an older save without the "this save is from another gamecart" error
Try importing the extData along with it. That should probably help out.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • BakerMan
    The snack that smiles back, Ballsack!
    BakerMan @ BakerMan: test what?