It would probably have to be rewritten, not only because we would have to adjust it to write to SB4's save data, but also because a lot of the code it uses is based off of other, bigger 3DS projects.Nice! Maybe I should improve my wording in the readme but I'll update the project list prjlist.txt every Saturday (school eats away any other day) before 8PM CET. You will be able to see the download menu in action in ~3 days when I release the next 3DSX/CIA version. Please try the in-app updater first though, so I can improve it, when needed. EDIT: If my internet provider f's my plan, then I'm sorry!Thanks for making this a reality, CY! Just one question. In case we get to release the final version of SB3 Download Station, is it possible to make the Download Station for SB4? Because im planning to make a download station for SB4 too, but not right now.
The "SB Download Station Project"
Root / Talk About Programs / [.]
the_squat1115Created:
I could update it everyday.I just added a painting application I created as an example. I'm a bit new to github and joined 2 weeks ago.Nice! Maybe I should improve my wording in the readme but I'll update the project list prjlist.txt every Saturday (school eats away any other day) before 8PM CET. You will be able to see the download menu in action in ~3 days when I release the next 3DSX/CIA version. Please try the in-app updater first though, so I can improve it, when needed. EDIT: If my internet provider f's my plan, then I'm sorry!
Actually, most code would not. Maybe controls etc. It would probably have to be rewritten, not only because we would have to adjust it to write to SB4's save data, but also because a lot of the code it uses is based off of other, bigger 3DS projects.Nice! Maybe I should improve my wording in the readme but I'll update the project list prjlist.txt every Saturday (school eats away any other day) before 8PM CET. You will be able to see the download menu in action in ~3 days when I release the next 3DSX/CIA version. Please try the in-app updater first though, so I can improve it, when needed. EDIT: If my internet provider f's my plan, then I'm sorry!Thanks for making this a reality, CY! Just one question. In case we get to release the final version of SB3 Download Station, is it possible to make the Download Station for SB4? Because im planning to make a download station for SB4 too, but not right now.
Thanks for making this a reality, CY! Just one question. In case we get to release the final version of SB3 Download Station, is it possible to make the Download Station for SB4? Because im planning to make a download station for SB4 too, but not right now.Uh... unfortunately, I don't have a hacked Switch and won't be able to get one any time soon. Theoratically, it might be extremely similar to SB3 though.
@CY64 I want to add this project to the repo, it's basicaly a easter egg from homestar runners called clapping party and mystman made it on sb. But the key got removed and you can't get it anymore. That was until I discovered SBAPI cached it.I'm pretty sure it's still available, but I'd have to double check. SBAPI reports the key "BDDXVKKE" as available, though. Anyway, I think the repo is meant for original projects, iirc
If its for secret demos, you can definitely do it. We just need a way to hide the game from anyone that wants to download it without entering a secret code... And button combinations.@CY64 I want to add this project to the repo, it's basicaly a easter egg from homestar runners called clapping party and mystman made it on sb. But the key got removed and you can't get it anymore. That was until I discovered SBAPI cached it.I'm pretty sure it's still available, but I'd have to double check. SBAPI reports the key "BDDXVKKE" as available, though. Anyway, I think the repo is meant for original projects, iirc
If its for secret demos, you can definitely do it. We just need a way to hide the game from anyone that wants to download it without entering a secret code... And button combinations.I could add a special flag to the prjlist, so games show up differently or not at all. Maybe even that to include tags, like "Beta", "Cancelled", etc.
Anyway, I think the repo is meant for original projects, iircWell, yes. I'd only like original projects, such as games, tools, and demos of them. Note: Project MUST NOT be over 20MB big but they can, if resources taking up that much are necessary for the project. (I may compress GRPs and DATs if my local disk space is getting too low, since my repos (including the download repo) are mirrored on my hard disk too.)
Yeah. We could do that to preserve demos from cancelled games so people can play it even if the final version was canned.If its for secret demos, you can definitely do it. We just need a way to hide the game from anyone that wants to download it without entering a secret code... And button combinations.I could add a special flag to the prjlist, so games show up differently or not at all. Maybe even that to include tags, like "Beta", "Cancelled", etc.
Which button are we supposed to press? all 3 buttons fail to do anything.
What button 1 does
It try's to download a cia, but freezes on the latest fw.(11.13)What button 2 does
Loads for 1 second, then crashes.What button 3 does
Says to reboot your 3DS,Asks you why your still here and then says something in german.Oh, looks like I hit a massive brick during the making of the download menu.
Turns out, that C2D_SpriteSheets can only accommodate so many PNGs before crashing everything when releasing them during app exit.
I only got to 20 icons before it started to crash.
How am I supposed to load project icons now?
ideas
- Maybe instead of a t3x, replace it with a list of the icons and use libPNG to draw instead (I have no clue, how to do it practically but I'd like this option) - Only allow projects to use specific icons (which may be boring to scroll through) - Limit selection to use 20 icons at once and load different t3xs, depending on page number (No sorting or filtering will be possible)Which button are we supposed to press? all 3 buttons fail to do anything.That's weird. The first two buttons work fine on me though. The third button doing that is intended for now since I wanted to test a thread function that draws the wait icon and even pieces of text. EDIT: This works on my New2DS, my O2DS and my sisters' 2DSs.What button 1 does
It try's to download a cia, but freezes on the latest fw.(11.13)What button 2 does
Loads for 1 second, then crashes.What button 3 does
Says to reboot your 3DS,Asks you why your still here and then says something in german.
It doesn't work for me and I'm using a N3DS XL.Which button are we supposed to press? all 3 buttons fail to do anything.That's weird. The first two buttons work fine on me though. The third button doing that is intended for now since I wanted to test a thread function that draws the wait icon and even pieces of text. EDIT: This works on my New2DS, my O2DS and my sisters' 2DSs.What button 1 does
It try's to download a cia, but freezes on the latest fw.(11.13)What button 2 does
Loads for 1 second, then crashes.What button 3 does
Says to reboot your 3DS,Asks you why your still here and then says something in german.
Oh, looks like I hit a massive brick during the making of the download menu. Turns out, that C2D_SpriteSheets can only accommodate so many PNGs before crashing everything when releasing them during app exit. I only got to 20 icons before it started to crash. How am I supposed to load project icons now?I know how! Just use a single Sprite sheet containing all. Use this https://www.codeandweb.com/free-sprite-sheet-packerideas
- Maybe instead of a t3x, replace it with a list of the icons and use libPNG to draw instead (I have no clue, how to do it practically but I'd like this option) - Only allow projects to use specific icons (which may be boring to scroll through) - Limit selection to use 20 icons at once and load different t3xs, depending on page number (No sorting or filtering will be possible)
I know how! Just use a single Sprite sheet containing all. Use this https://www.codeandweb.com/free-sprite-sheet-packerCitro2D sheets don't really work like PNG sheets. They are encoded as Tex3DS, not PNG. I put all assets in a PNG as spritesheet, but Citro2D doesn't seem to support reading arbitrary positions in the sheet (or the sprite that contains everything). Having every PNG sprite (assets and project icons) in one sheet still crashes when exiting the app. Also, Citro2D will slow down the 3DS if the top-left of the texture is beyond the screenborders or cause the texture to vanish. No, something like GCOPY doesn't exist for Citro2D unless I code one on my own.
the problem with that
I cannot read the RGB values of the pixels. I cannot find any function that would do it easily.Huh?
I'd have to use SmileBASIC's or a custom font to draw instead. The graphics have to be rendered per-pixel as well. The issue will then be speed, since I'd use rectangles/lines to draw each pixel. Using threads may help but the app won't run as fast anymore, as it did before. Complexity of my code would also increase extremely.How to even store the data?
I'd have to use JS to generate the spritesheet and fonts byte-packed and store it in RomFS since I don't want my app to be gigantic in size. Graphics would be kept as RGB565 + A8, fonts only A8. I have thought about using SmileBASIC's font, since... y'know... it's a project downloader for SB3, right?What the issue is
If you managed to open the download menu, you'll see garbled mess in the description of the first project in the list. The garbled text should say "サカキバラUI". This is likely because of the UTF-8 encoding messing with non-ASCII characters.What a fix may be
Encode the prjlist.txt in UTF-16 and tell the 3DS to use 2 bytes to form a character instead of one.for libbpng use this https://www.nongnu.org/pngpp/ EDIT: for 2 issue with japan chars, and https://stackoverflow.com/questions/49727145/japan-character-bytes-lengthI know how! Just use a single Sprite sheet containing all. Use this https://www.codeandweb.com/free-sprite-sheet-packerCitro2D sheets don't really work like PNG sheets. They are encoded as Tex3DS, not PNG. I put all assets in a PNG as spritesheet, but Citro2D doesn't seem to support reading arbitrary positions in the sheet (or the sprite that contains everything). Having every PNG sprite (assets and project icons) in one sheet still crashes when exiting the app. Also, Citro2D will slow down the 3DS if the top-left of the texture is beyond the screenborders or cause the texture to vanish. No, something like GCOPY doesn't exist for Citro2D unless I code one on my own.I have to either code my own sprite and display manager routines (and ditch Citro2D from that)the problem with that
I cannot read the RGB values of the pixels. I cannot find any function that would do it easily.Huh?
I'd have to use SmileBASIC's or a custom font to draw instead. The graphics have to be rendered per-pixel as well. The issue will then be speed, since I'd use rectangles/lines to draw each pixel. Using threads may help but the app won't run as fast anymore, as it did before. Complexity of my code would also increase extremely.or try libPNG and see, if it won't crash. EDIT: I may have found a fix for an issue I faced:How to even store the data?
I'd have to use JS to generate the spritesheet and fonts byte-packed and store it in RomFS since I don't want my app to be gigantic in size. Graphics would be kept as RGB565 + A8, fonts only A8. I have thought about using SmileBASIC's font, since... y'know... it's a project downloader for SB3, right?What the issue is
If you managed to open the download menu, you'll see garbled mess in the description of the first project in the list. The garbled text should say "サカキバラUI". This is likely because of the UTF-8 encoding messing with non-ASCII characters.What a fix may be
Encode the prjlist.txt in UTF-16 and tell the 3DS to use 2 bytes to form a character instead of one.
for libbpng use this https://www.nongnu.org/pngpp/ EDIT: for 2 issue with japan chars, and https://stackoverflow.com/questions/49727145/japan-character-bytes-lengthUuh... I just used UTF-16 encoding and use sprintf with %lc to manage to draw japanese chars.
Last time i checked, you could also use C3D to do it insteadThat would be more confortable but the problem: There is barely any documentation I can find for Citro3D. Citro2D is decently documented while Citro3D only has a few unofficial documentations that almost don't have any content that I could use. I have only managed to change the viewport, add anti-aliasing and improve the app by despawning menus that aren't in focus. BTW the garbage background was the main background but trashed due to a memory corruption that my new icon drawing function causes. (I'll remove it now and retry the t3x solution since it worked best so far.)