Homebrew Homebrew Development

nop90

Well-Known Member
Member
Joined
Jan 11, 2014
Messages
1,556
Trophies
0
Location
Rome
XP
3,136
Country
Italy
3DS homebrew is just born, it's very experimental and runs on bare metal: if you don't want risks, you should not play whith it since it become more stable (Smealum advised very clearly everyone).

But, assuming that you're using Fierce Faffle ROPLoader for these initial Homebrew experiments, and GW Loader for playing Russian Roulet with your consolle, the homebrew code of Pong and Tetris should not damage your 3DS.

Fiecre Waffle ROPLoader is a little bit instable and sometimes won't install properly on some consolle. It's better not to press A button after the installation and to press Home button instead. On my 3DS the DS mode get bricked if I do not remove the cart (a DSTwo) befor pressing A or Start, and I had to reformat my 3DS several times before doscovering the cause (http://gbatemp.net/threads/roploader-on-4-5-xl.360531/).

If something goes wrong installing the ROPLoader and you can't go anymore in DS mode with your bluecard, you have to reformat your 3DS.

An other thing that can hang the hoembrews (and probably the GW software too) is the SD being too fragmented. Developing my code I copy several times different versions of launcher.dat on the SD and after a while the program strarts not loading. Since I have a separate SD for my experiments, I reformat it regularly: you ca try backupping you data before reformatting and the restoring SD content (this should work, but wait for a confirm from someone that did this before).

Good luck!
 
  • Like
Reactions: Snailface

nop90

Well-Known Member
Member
Joined
Jan 11, 2014
Messages
1,556
Trophies
0
Location
Rome
XP
3,136
Country
Italy
i work on a project, a very little poor Homebrew channel, i search person who know develloped in c++

I would be pleased to help you in my free time (mostly the week-end nights) , but do you have a strategy for your loader?

I know how to parse an Elf file and load the bin part in memory, but from what i can understand of 3DS architecture, memory areas where you write don't have the execution flag set, so creating a thread (SVC code in on 3DBrew) and jumping to the entrypoint of the just loaded program should not work.

And why C++? For low level programming i prefer C and inline ASM.
 

Darkrevol

Well-Known Member
Newcomer
Joined
Jan 27, 2014
Messages
45
Trophies
0
XP
94
Country
France
for the moment i search a strategy, i'm at the begining of the project, if you prefer C we can devellop it in C, i think about c++ because i have a big experience with it
Edit: for the moment i'm a little noob on 3ds but i work on ps3 scene so i can do it
 
  • Like
Reactions: SLiV3R

CalebW

Fellow Temper
Member
Joined
Jun 29, 2012
Messages
638
Trophies
0
Location
Texas
XP
545
Country
United States
Pong3D and Tetris 3DS HB does'nt works on my 3DS 4.3.0-9E, i 've use Gateway Bluecard and once ROPLoader but i have an error and restart 3DS...

The first two homebrews I test does not work on my 3DS, I do not call it the first official homebrew ...

Since I tried to execute these two homebrew, the linker Bluecard no longer wants to work on my 3DS and my hack Gateway does not work ...

Greet, I feel that the homebrews have fucking mess in my console!

Homebrews kill Gateway ?

Edit : I managed to put everything in order in my console formatting :D
Try using this. It's a lot faster than fierce waffle's, and I've never had any trouble with it.
 

Gadorach

Electronics Engineering Technologist
Member
Joined
Jan 22, 2014
Messages
970
Trophies
0
Location
Canada
XP
956
Country
Canada
Here is my mandelbrot demo in a more fleshed out form. It is an explorer now and the 3D effect is quite cool. Attached.

Though really cool, for sure, the program will, over time, end up breaking and not being able to render anything but solid red when you even press A once. It seemed to happen after zooming in and then zooming out multiple times. I even got the pointer onto the bottom screen, so yeah, I don't think that was intended. Otherwise, looking good, thanks for your contribution!
 

Snailface

My frothing demand for 3ds homebrew is increasing
Member
Joined
Sep 20, 2010
Messages
4,324
Trophies
2
Age
40
Location
Engine Room with Cyan, watching him learn.
XP
2,256
Though really cool, for sure, the program will, over time, end up breaking and not being able to render anything but solid red when you even press A once. It seemed to happen after zooming in and then zooming out multiple times. I even got the pointer onto the bottom screen, so yeah, I don't think that was intended. Otherwise, looking good, thanks for your contribution!
Ok, I fixed the bounds checking on the cursor (honestly I knew about the bug before but left it in because it amused me :P).

As for the other issue, solid red screen, that occurs when you zoom in too far and there is no precision left to calculate the screen. All mandelbrot programs have this issue. When scaleX and scaleY approach 0 (that's the pixel size unit) you will soon get the solid screen, no way to avoid it but zoom out (B or X). There is another way the screen can mess up and it seems to occur if the system is left running for about 15-30 minutes -- no idea what is causing this. A lot of weird stuff happens in this experimental homebrew environment.
 

Kane49

Well-Known Member
Member
Joined
Nov 4, 2013
Messages
446
Trophies
0
Age
36
XP
343
Country
Gambia, The
You should change the SD Card Read Delay Multplier from 13 to 35.
Never Call SDCard Init, only Controller Init.
Force set SDHC in the sdmmc file.

Once you go over 15kb filesize everything will get completely random, some parts of the memory where we are at randomly have the NX Bit Set and throw faults.
Aka the code not working when you add a few new lines of codes but then working when you add more / remove some althought functionality didnt change.

If not for all that stuff i wouldve released a complete elf loader a week ago.
 

nop90

Well-Known Member
Member
Joined
Jan 11, 2014
Messages
1,556
Trophies
0
Location
Rome
XP
3,136
Country
Italy
You should change the SD Card Read Delay Multplier from 13 to 35.
Never Call SDCard Init, only Controller Init.
Force set SDHC in the sdmmc file.

Once you go over 15kb filesize everything will get completely random, some parts of the memory where we are at randomly have the NX Bit Set and throw faults.
Aka the code not working when you add a few new lines of codes but then working when you add more / remove some althought functionality didnt change.

If not for all that stuff i wouldve released a complete elf loader a week ago.

Thank you for your hints kane49. I'm working too on an elf loader (to load bin in memory i mean, I still don't know if i could ever launch it :P). Probably you'll release your code before mine, but it's still very istructive, so I'll continue on my way.

I managed to compile the Smealum libs (APT, GSP, SVC. etc.), both for arm6 istruction set and arm5, with some simple but probably dangerouse tweaks to the not allowed ASM istructions. I was never able to use this code and I lost every hope to use it since it every time frezes, but after your hints I'll probably fill the code with debug messages to find if some parte can be usable.
 

Kane49

Well-Known Member
Member
Joined
Nov 4, 2013
Messages
446
Trophies
0
Age
36
XP
343
Country
Gambia, The
Thank you for your hints kane49. I'm working too on an elf loader (to load bin in memory i mean, I still don't know if i could ever launch it :P). Probably you'll release your code before mine, but it's still very istructive, so I'll continue on my way.

I managed to compile the Smealum libs (APT, GSP, SVC. etc.), both for arm6 istruction set and arm5, with some simple but probably dangerouse tweaks to the not allowed ASM istructions. I was never able to use this code and I lost every hope to use it since it every time frezes, but after your hints I'll probably fill the code with debug messages to find if some parte can be usable.


Smeas code is for ARM11, you wont be able to use any of it ^^
Launching the Code is easy, its just privy to the same restrictions
 

nop90

Well-Known Member
Member
Joined
Jan 11, 2014
Messages
1,556
Trophies
0
Location
Rome
XP
3,136
Country
Italy
Smeas code is for ARM11, you wont be able to use any of it ^^
Launching the Code is easy, its just privy to the same restrictions

Probably not everithing! but something should work on the ARM9 too (some SVC for examples) and, even if I don't know very much of 3DS architectures yet, why the ARM9 should not be able to use the GPU?

Of course i'ts a different thing saying that the process that runs ours programs hasn't rights to do it.
 

CalebW

Fellow Temper
Member
Joined
Jun 29, 2012
Messages
638
Trophies
0
Location
Texas
XP
545
Country
United States
When compiling Pong3D, I notices that Snailface did not use the 3dsploit.py to create his Launcher.dat. He cated the payload.bin file in between a exp.bin and a pad.bin file. Is there a reason why the pad.bin file is 32768 bytes? The entire file consists of "E0 3E 0C 08" repeated over and over. So if one where to cut a lot of the data, would there be any problems with the .dat file created?
 

Snailface

My frothing demand for 3ds homebrew is increasing
Member
Joined
Sep 20, 2010
Messages
4,324
Trophies
2
Age
40
Location
Engine Room with Cyan, watching him learn.
XP
2,256
When compiling Pong3D, I notices that Snailface did not use the 3dsploit.py to create his Launcher.dat. He cated the payload.bin file in between a exp.bin and a pad.bin file. Is there a reason why the pad.bin file is 32768 bytes? The entire file consists of "E0 3E 0C 08" repeated over and over. So if one where to cut a lot of the data, would there be any problems with the .dat file created?
As long as the resulting binary is at least 0x9000 bytes (36K) then the .dat file should work -- and that's why the pad.bin is the size it is. You could probably reduce the size of the pad.bin file (repeating E0 3E 0C 08's), but you have to be careful about not going to far. The size I chose is safe.
 

CalebW

Fellow Temper
Member
Joined
Jun 29, 2012
Messages
638
Trophies
0
Location
Texas
XP
545
Country
United States
As long as the resulting binary is at least 0x9000 bytes (36K) then the .dat file should work -- and that's why the pad.bin is the size it is. You could probably reduce the size of the pad.bin file (repeating E0 3E 0C 08's), but you have to be careful about not going to far. The size I chose is safe.
I created one that was 25K and it worked, but I didn't know if there would be any side effects...
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: Well start walking towards them +1