gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

DS development > Idea for not having to reboot the DS

#60091 - tuLL - Mon Nov 07, 2005 2:48 am

I'm quite illiterate when it comes to programming to devices especially the DS, but I was thinking of something that might be useful.

Would it be possible to make a default/standart NDS loader, so that homebrewers could add it to every homebrew nds so that it ran the _boot_mp.nds?

With this we wouldn't need to boot the DS everytime we need to switch programs/games.

We would just select that run capability and then run the next program we wanted to use, being it _boot_mp.nds, to go back to Moonshell in my case.

What do you think? Is it possible? Doable?

#60129 - darkfader - Mon Nov 07, 2005 10:29 am

No. Let's just keep things simple.
Next thing you want is multitasking :)

#60131 - josath - Mon Nov 07, 2005 11:05 am

the code already exists, its like 5 lines of code on each arm7 & arm9, anybody is free to add it to their apps

#60150 - Darkflame - Mon Nov 07, 2005 7:08 pm

Yes, but agreeing a "standard" could be helpfull no?
And encourageing everyone to add it.

Its a simple thing, easy for everyone to do.
Its just a mater of convienceing people to do it ;)

#60158 - Joat - Mon Nov 07, 2005 7:52 pm

Darkain came up with a standard, the code is already in libnds, you just have to use it.
_________________
Joat
http://www.bottledlight.com

#60164 - tepples - Mon Nov 07, 2005 8:54 pm

In other words:
Where can I find the page of the libnds documentation that describes this function?
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#60179 - josath - Mon Nov 07, 2005 9:43 pm

actually, there are two methods, and i think they are different:
1. Darkain's standard (used in his loader + multinds)
The info needed to support it, is here:
http://cvs.sourceforge.net/viewcvs.py/ndslib/ndslib/include/NDS/ndsload.h?rev=1.1&view=markup

2. The gbamp standard (supported by the gbamp firmware, used by mighty max's loader, moonshell, and SaTa's "rain")
Source for the gbamp firmware:
http://www.geocities.com/chishm1/gbamp/ndsmp.zip

Source for "rain":
http://www.pat.hi-ho.ne.jp/~sata68/nds/rain04d.lzh

#60180 - tuLL - Mon Nov 07, 2005 9:48 pm

I'm not asking for it. Just adding ideas to the big soup.

I don't program, trying to start, but college keeps me pretty occupied.

I'm glad it already exists.

#60184 - dovoto - Mon Nov 07, 2005 10:36 pm

It would be nice if we could stick some reset code in the crt0 for arm9 and arm7 that returned both processors to their post flashme/wifime/passme state when the program exits main()--arm9 in a busy loop, irqs disabled, arm7 branch to 0x80000C0 (?).

This would be placed after the bx to main and then would require the user to simply exit the arm7 and arm9 main loops to return control to a loader--much like a normal PC application--(the code would have to do some simple comms to make sure they are in synch prior to passing control back). Some room could easily be set asside for shells to allow them to maintain state (I am thinking a small amount like 128 to 1024 bytes of memory that the application is garunteed to leave intact).

This will be even more useful when wifi is released and we can have normal remote booting of the DS from a shell of some sort. (wifime is nice but going through the menu each time is a pain and having to have two nic cards even more so). Not having to power cycle the DS to reload would be a handy standard feature I think as would be the ability to cycle through multiple demos.
_________________
www.drunkencoders.com

#60218 - Darkflame - Tue Nov 08, 2005 4:29 am

Joat wrote:
Darkain came up with a standard, the code is already in libnds, you just have to use it.


It just has to be used.

Well, I'll just complain then on each and every thread when someone makes a new game/app without that feature then :p