Hacking Official Corbenik - Another CFW for advanced users (with bytecode patches!)

  • Thread starter Thread starter chaoskagami
  • Start date Start date
  • Views Views 287,452
  • Replies Replies 2,153
  • Likes Likes 60
Can you try compiling from git on your RPi again? I updated bdfe and I *should* have worked around this. It's technically undefined behavior in the C standard, anyways.
Just pulled and it compiled no problem at all.

...I feel like every feature I've implemented in git lately has been entirely cosmetic. I really need to get to work on adding some of the checklist to the VM, but I've been busy playing 7th Dragon, 7th Dragon 2020, and Rupeeland. Plus, IRL a lot has been going on.
Cosmetics are good too, the best tools are both powerful and beautiful.
And I do like eye candy when it fits well.

There's ~0 bugs left, which means I can pace myself now.
I see you like to tempt fate ;)
 
Yeah, no way am I continuing the workaholic mode. There's ~0 bugs left, which means I can pace myself now. And uh, I would kind of like to play some games on my 3DS, if you catch my drift. ^_^

All of the big tasks (overlays, etc) are in the class of 'drop off the internet for three months and do nothing else'. I'd rather not do that, so we're on Valve/HL3 time for those. B-)
Seriously, there is like like legit no bugs that I can find and I've just been beating this poor CFW to death. Without the bugs, I've just ended up playing a game for once.
 
  • Like
Reactions: gnmmarechal
  • Like
Reactions: Kirtai
Btw, I'm not sure if this is a Corbenik issue, but the Mystery Machine has some stuff that instead of giving you say, Manaphy, gives you a shiny Bulbasaur. Not sure if this is an issue with the patch or with the Salt server.

I've encountered that on X and Y and can't figure out the cause.

Shiny bulbasaur, for the uninitiated - is a garbage pokemon consisting of entirely zeroes. Not exactly missingno per se. It also never gets added to the game.

If you just hit recieve gift rather than a code it works fine to give yourself missed gifts, though.
 
  • Like
Reactions: gnmmarechal
Btw, I'm not sure if this is a Corbenik issue, but the Mystery Machine has some stuff that instead of giving you say, Manaphy, gives you a shiny Bulbasaur. Not sure if this is an issue with the patch or with the Salt server.
Invisible Shiny Bulbasaur (or just Shiny Bulbasaur in gen 6 games) is a placeholder for pokemon #0. There are some distributions that worked fine for me though (like Tyrunt, for example) so... maybe that's because of lack of wondercards on the server?

Ninja'd
 
I've encountered that on X and Y and can't figure out the cause.

Shiny bulbasaur, for the uninitiated - is a garbage pokemon consisting of entirely zeroes. Not exactly missingno per se. It also never gets added to the game.

If you just hit recieve gift rather than a code it works fine to give yourself missed gifts, though.
Some of the events work though. I never used the original Mystery Machine so Idk if it is a Corbenik problem.
 
Some of the events work though. I never used the original Mystery Machine so Idk if it is a Corbenik problem.

If some events work fine, it isn't my fault. SALT's server probably is missing some data. The actual server's source code isn't open, so I don't know if this is the case. I'm most certainly patching the game correctly, so I'm going with 'Blame SALT' here.
 
  • Like
Reactions: gnmmarechal
I'm wondering, could the size of the locale folder cause any performance issues in future? ~1400 files in one folder on Fat32 has noticeable slowdown when transferring.
 
I'm wondering, could the size of the locale folder cause any performance issues in future? ~1400 files in one folder on Fat32 has noticeable slowdown when transferring.
This is also why the Corbenik updater takes so long, especially on the o3DS. Extracting locale takes forever.
 
I'm wondering, could the size of the locale folder cause any performance issues in future? ~1400 files in one folder on Fat32 has noticeable slowdown when transferring.

This is also why the Corbenik updater takes so long, especially on the o3DS. Extracting locale takes forever.

Should I split out the locales next release then, for convenience? They aren't updated terribly often.

I don't find this an issue personally. On Linux it takes mere seconds to copy. Windows has efficiency issues with large file counts (TeraCopy seems to handle better.)

And LPP+'s zip file handling is less than optimized.
 
Last edited by chaoskagami,
Should I split out the locales next release then, for convenience? They aren't updated terribly often.

I don't find this an issue personally. On Linux it takes mere seconds to copy. Windows has efficiency issues with large file counts (TeraCopy seems to handle better.)
It's not the copying to the card that concerned me. It's how slow the 3DS itself is at reading it. If you try viewing the locale folder in ctrxplorer or over ftp the 3DS locks up for over a minute processing the folder.

I don't know if that could cause any problems in the usual case but I thought I'd better mention it since I Just saw it :)
 
Should I split out the locales next release then, for convenience? They aren't updated terribly often.

I don't find this an issue personally. On Linux it takes mere seconds to copy. Windows has efficiency issues with large file counts (TeraCopy seems to handle better.)

And LPP+'s zip file handling is less than optimized.
According to Rinnegatamante, LPP's unzipping is slow because of the 3DS' IO itself, and can't really be optimized. About splitting.... Well, I'm not sure. It doesn't matter too much. Well, if you do, I suppose I'll have to rewrite some stuff on the updater, and I'm not sure how to. I don't think it'd be of any use, unless I add an option to manually skip locale installation. Because I'd have to keep track of what version of Corbenik the user is using, and what version of locale he is using, and whether there is a new version of the locale zip or not. Which would be ok, unless the user sometime manually updates, making the tracking file wrong and ... stuff. I'm not sure. Should I let the user manually choose whether to update locale or not? Though I suppose I could add a server-side variable, and if there is an important locale update, change it so locale updates become mandatory?
 
Should I split out the locales next release then, for convenience? They aren't updated terribly often.

I don't find this an issue personally. On Linux it takes mere seconds to copy. Windows has efficiency issues with large file counts (TeraCopy seems to handle better.)

And LPP+'s zip file handling is less than optimized.
I personally like being able to see all of the files that build my CFW.
Outside of the few seconds to copy over my files, I don't notice any other slowdown well using this CFW. Not even during the boot up process.
It's not the copying to the card that concerned me. It's how slow the 3DS itself is at reading it. If you try viewing the locale folder in ctrxplorer or over ftp the 3DS locks up for over a minute processing the folder.

I don't know if that could cause any problems in the usual case but I thought I'd better mention it since I Just saw it :)
What class speed is your SD card? I am using a 64GB Class 10 U1 Sandisk MicroSD card on my old3DS. And I am not experiencing any that much when viewing folder. Although I haven't tested FTP yet because I never use it.
 
Last edited by The Catboy,
  • Like
Reactions: chaoskagami
BTW, I'm fine with keeping all the files together and haven't noticed any actual slowdown. I just noticed how slow the 3DS was at handling big folders and thought I should mention it.
...
and now I'm repeating myself. Sleep calls :)
 
Last edited by Kirtai,
  • Like
Reactions: chaoskagami
Yeah, opening the locale directory on the 3DS is a big no-no. PCs cache the data in memory, so it isn't an issue there.

The 3DS is nigh incapable of seeking through and listing the contents, I admit. Last time I did that I had to kill my power. Since we already know the Title ID, Corbenik itself never actually performs a listing on the folder (and thus, never hits the awful five minute lagspike.)

According to Rinnegatamante, LPP's unzipping is slow because of the 3DS' IO itself, and can't really be optimized. About splitting.... Well, I'm not sure. It doesn't matter too much. Well, if you do, I suppose I'll have to rewrite some stuff on the updater, and I'm not sure how to. I don't think it'd be of any use, unless I add an option to manually skip locale installation. Because I'd have to keep track of what version of Corbenik the user is using, and what version of locale he is using, and whether there is a new version of the locale zip or not. Which would be ok, unless the user sometime manually updates, making the tracking file wrong and ... stuff. I'm not sure. Should I let the user manually choose whether to update locale or not? Though I suppose I could add a server-side variable, and if there is an important locale update, change it so locale updates become mandatory?

The locale format isn't changing anytime soon, FYI. The user can continue to use old locale data. Format hasn't changed since 0.0.1.

Rinne could keep a 64MB buffer of filenames and extracted data and dump it when full - LPP+ just dumps each file to disk immediately in chunks per file which thrashes the disk. There's even a codepath in LPP+ where pixel formats are converted four times before they hit the screen. Also, the use of unrar in LPP+ as a library is technically illegal. I'll stop ranting now, but he has no clue how to optimize honestly.
 
Last edited by chaoskagami,
Yeah, opening the locale directory on the 3DS is a big no-no.

The 3DS is nigh incapable of seeking through and listing the contents, I admit. Last time I did that I had to kill my power. Since we already know the Title ID, Corbenik itself never actually performs a listing on the folder (and thus, never hits the awful five minute lagspike.)



The locale format isn't changing anytime soon, FYI. The user can continue to use old locale data. Format hasn't changed since 0.0.1.

Rinne could keep a 64MB buffer of filenames and extracted data and dump it when full - LPP+ just dumps each file to disk immediately in chunks per file which thrashes the disk. There's even a codepath in LPP+ where pixel formats are converted four times before they hit the screen. Also, the use of unrar in LPP+ as a library is technically illegal. I'll stop ranting now, but he has no clue how to optimize honestly.
I see. I'll add a manual option to update locale then, just in case the user wants to do so (for whatever reason). In that case, yes, please do split locale and the CFW itself on the zips. I'll need to know how the locale zip is though. will the zip have a /corbenik/locale folders inside? Or just the locale files? Or just a locale folder?
 
I see. I'll add a manual option to update locale then, just in case the user wants to do so (for whatever reason). In that case, yes, please do split locale and the CFW itself on the zips. I'll need to know how the locale zip is though. will the zip have a /corbenik/locale folders inside? Or just the locale files? Or just a locale folder?

The vote seems to be 2-1 (not including me) so far for 'keep everything together', and it's more effort on my end. I'm probably not going to do this, since there's no pressing need to.

You could skip extraction of the locale folder, right? Unless LPP+ lacks that.
 
  • Like
Reactions: The Catboy
The vote seems to be 2-1 (not including me) so far for 'keep everything together', and it's more effort on my end. I'm probably not going to do this, since there's no pressing need to.

You could skip extraction of the locale folder, right? Unless LPP+ lacks that.
Nope, because I can extract a specific file from the ZIP or extract it all. I could split them myself when I upload it to the server, but I would rather not tamper with the files. When/If I implement the SHA512 checks, it would mean I'd have to recalculate them every time. Or use a server script to do so.

Sent from my Nokia 3310 using Tapatalk
 
What class speed is your SD card? I am using a 64GB Class 10 U1 Sandisk MicroSD card on my old3DS. And I am not experiencing any that much when viewing folder. Although I haven't tested FTP yet because I never use it.
Sandisk Ultra 64B class 10 on a N3DS. It's fast in the sd card reader, I just hate opening it up over and over :)

The 3DS is nigh incapable of seeking through and listing the contents, I admit. Last time I did that I had to kill my power. Since we already know the Title ID, Corbenik itself never actually performs a listing on the folder (and thus, never hits the awful five minute lagspike.)
It does manage it ...eventually, after several minutes.
 

Site & Scene News

Popular threads in this forum