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,

Toyskyline

Well-Known Member
Newcomer
Joined
Aug 10, 2013
Messages
45
Trophies
0
Age
30
Location
Oakville, Ontario
XP
195
Country
Canada
I'm greatly pleased this project is still alive, please keep it moving- the end is in sight. If you have to release this without an in app server I'm sure the community would still be perfectly fine with a way to import/share levels.
 

Sono

cripple piss
OP
Developer
Joined
Oct 16, 2015
Messages
2,829
Trophies
2
Location
home
XP
9,428
Country
Hungary
@MarcusD I am currently implemeting the conversion 3DS <-> WiiU.
Do you know anything about the thumbnail format?

3DS<-->WiiU is already implemented but whatever

yes, on the WiiU version it's just an 8byte-big -header -prefixed JPEG, on the 3DS it's just a Morton-interleaved ("swizzled") 168x216 and a 32x240 RGB565 thumbnail rotated to the right


it means "can't open ExtData because it doesn't exist"... did you ever get to the coursebot before opening OCDM? you need to have a valid savefile before being able to open OCDM
 

Tarnadas

Well-Known Member
Newcomer
Joined
Dec 21, 2016
Messages
76
Trophies
0
Age
34
Website
smmdb.ddns.net
XP
158
Country
Germany
3DS<-->WiiU is already implemented but whatever

yes, on the WiiU version it's just an 8byte-big -header -prefixed JPEG, on the 3DS it's just a Morton-interleaved ("swizzled") 168x216 and a 32x240 RGB565 thumbnail rotated to the right

Thanks, and no. It's only implemented in C, but I have to use it either with a CLI or I have to port it to Node
 

Sono

cripple piss
OP
Developer
Joined
Oct 16, 2015
Messages
2,829
Trophies
2
Location
home
XP
9,428
Country
Hungary
wait what are you talking about?^^
Can I somehow use this on a Node server?

oh ._.

sorry then


uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuh... can you understand C# ? I guess you could try porting it to JS
 

Sono

cripple piss
OP
Developer
Joined
Oct 16, 2015
Messages
2,829
Trophies
2
Location
home
XP
9,428
Country
Hungary
That's actually what I'm doing. Node is just on top of JS

wat

are you porting C# code to JS?
also, I know Node.js is JS :P I'm using it

(I have a feeling there's a serious misunderstanding in this conversation, but it's prolly my fault for losing the context)
 

Tarnadas

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

are you porting C# code to JS?
also, I know Node.js is JS :P I'm using it

(I have a feeling there's a serious misunderstanding in this conversation, but it's prolly my fault for losing the context)

I think so too :rofl:
I am porting your code to JS. I don't know C# a lot, but isn't your code C (which I don't know either a lot)? :D
 

Sono

cripple piss
OP
Developer
Joined
Oct 16, 2015
Messages
2,829
Trophies
2
Location
home
XP
9,428
Country
Hungary
I think so too :rofl:
I am porting your code to JS. I don't know C# a lot, but isn't your code C (which I don't know either a lot)? :D

yeeeees, but the thumbnail creator/importer I quickly made is C#, because I have previously worked with raw image files, so I just repurposed some old code for creating a png and importing a png into the course files
 

Tarnadas

Well-Known Member
Newcomer
Joined
Dec 21, 2016
Messages
76
Trophies
0
Age
34
Website
smmdb.ddns.net
XP
158
Country
Germany
Last edited by Tarnadas,

Sono

cripple piss
OP
Developer
Joined
Oct 16, 2015
Messages
2,829
Trophies
2
Location
home
XP
9,428
Country
Hungary

hmm... I could try making that Morton (un)swizzler in JS... umm, is the "jimp" Node module usable for you? because if I really do this then I'll base my code around that

edit: I have also noticed a flaw in your code... the WiiU version uses standard CRC32 outputted in Big Endian order, whereas the 3DS version uses ZIP(?) CRC (aka. CRC32 with 0xFFFFFFFF as the initial value instead of 0x00000000), and the result is NOT'd and written in the file in Little Endian order
 
Last edited by Sono,

THYPLEX

Well-Known Member
Member
Joined
May 20, 2017
Messages
632
Trophies
0
Age
28
Location
Rome
XP
747
Country
Italy
3DS<-->WiiU is already implemented but whatever

yes, on the WiiU version it's just an 8byte-big -header -prefixed JPEG, on the 3DS it's just a Morton-interleaved ("swizzled") 168x216 and a 32x240 RGB565 thumbnail rotated to the right



it means "can't open ExtData because it doesn't exist"... did you ever get to the coursebot before opening OCDM? you need to have a valid savefile before being able to open OCDM
So , what i need to do , in short ?

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

But strangely enough , the old homebrew version works pretty well
 

Sono

cripple piss
OP
Developer
Joined
Oct 16, 2015
Messages
2,829
Trophies
2
Location
home
XP
9,428
Country
Hungary
So , what i need to do , in short ?

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

But strangely enough , the old homebrew version works pretty well

have you tried the current homebrew version? the homebrew version has a slightly different filesystem implementation, so it may work

also, by that I meant that you need to open the game, wait for the main menu to load, and go to coursebot, and then press the HOME button and close Mario Maker. this is the least effort you need to make in order for OCDM to be usable, otherwise you'll get errors on startup similar to this
 

Tarnadas

Well-Known Member
Newcomer
Joined
Dec 21, 2016
Messages
76
Trophies
0
Age
34
Website
smmdb.ddns.net
XP
158
Country
Germany
hmm... I could try making that Morton (un)swizzler in JS... umm, is the "jimp" Node module usable for you? because if I really do this then I'll base my code around that

edit: I have also noticed a flaw in your code... the WiiU version uses standard CRC32 outputted in Big Endian order, whereas the 3DS version uses ZIP(?) CRC (aka. CRC32 with 0xFFFFFFFF as the initial value instead of 0x00000000), and the result is NOT'd and written in the file in Little Endian order

Yes I already use Jimp.

I also implemented the exact same algorithm as yours and got the same result as with the standard Crc32 algorithm. I checked both crcs before and after conversion and they were the same. I just had to use LE
 
Last edited by Tarnadas,

THYPLEX

Well-Known Member
Member
Joined
May 20, 2017
Messages
632
Trophies
0
Age
28
Location
Rome
XP
747
Country
Italy
have you tried the current homebrew version? the homebrew version has a slightly different filesystem implementation, so it may work

also, by that I meant that you need to open the game, wait for the main menu to load, and go to coursebot, and then press the HOME button and close Mario Maker. this is the least effort you need to make in order for OCDM to be usable, otherwise you'll get errors on startup similar to this
Can you post me the QRcode download of the latest 3dsx version ?
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • BigOnYa @ BigOnYa:
    Did you feed the hamster in your internet router? It prob died and is running slow now.
  • Xdqwerty @ Xdqwerty:
    @BigOnYa, why did you start saying my pc has a hamster in the first place?
    +1
  • BigOnYa @ BigOnYa:
    Its actua!ly just a old joke, meaning its slow. Was just kidding around with you.
    +1
  • BigOnYa @ BigOnYa:
    I bet @AncientBoi has some hamsters hidden somewhere tho....
    +2
  • Psionic Roshambo @ Psionic Roshambo:
    I think Game streaming should work like this.... Local Hardware able the run the game fine, game engine and common assets stored locally, all FMV and music and textures could be streaming
    +1
  • Psionic Roshambo @ Psionic Roshambo:
    Some temporary storage
  • Xdqwerty @ Xdqwerty:
    also @BigOnYa im making some progress on my gdevelop project, implemented various mechanics
  • Psionic Roshambo @ Psionic Roshambo:
    They went all in on streaming, should have been more of a hybrid approach
    +1
  • BigOnYa @ BigOnYa:
    Or free government supplied high speed internet be nice also. Like Obama care. Xdqwerty that's cool, its time consuming but rewarding once done or playable, to see what you've made from scratch. Animations take forever, but worth it.
    +1
  • Xdqwerty @ Xdqwerty:
    @BigOnYa, although the bullets are a bit buggy
    +1
  • Psionic Roshambo @ Psionic Roshambo:
    Not to mention this would be a massive pain to pirate
  • Xdqwerty @ Xdqwerty:
    @BigOnYa,
    and the visual aspect of the game is quite crude (the sprite that looks best is that of the protagonist just because he is a stickman with sunglasses)
    +1
  • BigOnYa @ BigOnYa:
    There is a bullets behaviour you assign to your character, that makes the code easier, under "behaviours"
  • Xdqwerty @ Xdqwerty:
    i meant that when the character is pointing to the right, the bullets spawn where they should, but when he is on the right, they move to the right but the spawn point is incorrect
  • BigOnYa @ BigOnYa:
    Itch.io has lots of free assets also. Under the bullets behavior tab, there is a "rotate bullets" option, can try that. Or in the code can try
    - fire bullet Player.X(PlayerDirection)
  • Xdqwerty @ Xdqwerty:
    im taking a break for today anyway
    +1
  • BigOnYa @ BigOnYa:
    YEa gotta after a while, looking at code for long periods will bug your eyes.
    +1
  • BigOnYa @ BigOnYa:
    That's cool tho, I'm proud of you going back to it, not giving up. It is difficult at first to learn, but fun once you get the hang of it. I think I've watched every tutorial video there is, but I still struggle sometimes to get stuff to work right. But gotta keep trying dif things, and eventually you will get it right.
    +1
  • K3Nv2 @ K3Nv2:
    Lol McDonald's has a grandma mcflurry
  • Xdqwerty @ Xdqwerty:
    @K3Nv2, furry grandma?
  • BigOnYa @ BigOnYa:
    It sounds good actually, I like butterscotch
  • K3Nv2 @ K3Nv2:
    It sucked don't know wtf these little bits and pieces are they use now
    +1
    K3Nv2 @ K3Nv2: It sucked don't know wtf these little bits and pieces are they use now +1