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 > devkitpro installing help

#152249 - Cyanide001 - Wed Mar 12, 2008 8:03 pm

iv followed some guides and im stuck at a certain part of the installation (guide: http://patater.com/files/projects/manual/manual.html#id2532773)

"Change your current directory to $DEVKITPRO/libnds and type make.
If devkitARM is installed properly, libnds will compile in a matter of seconds"

Iv got the correct folders and files in the correct names etc but i dont know what to do at this point 'type make and it will compile together'

can anyone help me with this? oh the program what you use to develop NDS homebrew is it called "Programmer's NoteBook"?

#152250 - nczempin - Wed Mar 12, 2008 8:33 pm

Cyanide001 wrote:
iv followed some guides and im stuck at a certain part of the installation (guide: http://patater.com/files/projects/manual/manual.html#id2532773)

"Change your current directory to $DEVKITPRO/libnds and type make.
If devkitARM is installed properly, libnds will compile in a matter of seconds"

Iv got the correct folders and files in the correct names etc but i dont know what to do at this point 'type make and it will compile together'

can anyone help me with this? oh the program what you use to develop NDS homebrew is it called "Programmer's NoteBook"?


1. Are you on Linux or on Windows?

2. which part of "type make" don't you understand? you are asked to type the letter m a k e and then hit the return key...
No offense, but if you're having this much trouble already I'm not sure you are ready yet to develop software for the DS.

(what am I missing?)

#152252 - Cyanide001 - Wed Mar 12, 2008 8:38 pm

windows...and yes i have tried, and where do i type 'make'? in the folder? cos that doesnt work doesnt tell me to go on some program then type it does it? no it just say go to the directory <_<

#152259 - tepples - Wed Mar 12, 2008 10:04 pm

Cyanide001 wrote:
windows...and yes i have tried, and where do i type 'make'? in the folder?

Do you know how to open a command prompt, either an MS-DOS style command prompt (cmd.exe) or a UNIX style command prompt (MSYS bash)?
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#152290 - nczempin - Thu Mar 13, 2008 11:42 am

tepples wrote:
Cyanide001 wrote:
windows...and yes i have tried, and where do i type 'make'? in the folder?

Do you know how to open a command prompt, either an MS-DOS style command prompt (cmd.exe) or a UNIX style command prompt (MSYS bash)?


the devkit comes with msys, which is a ready-to-use mingw implementation.

Start it using the batchfile, and then you have a command prompt, and you can change folders using shell commands, e. g. "cd /d/devkitPro" etc. (with /d/ being substituted for D:\

Alternatively, open a windows shell (start->run... then enter "cmd") and change directory there.

Note: The request to change your _current_directory_ pretty much implies some kind of command shell; in Windows there is no current directory.


Again, no offense, but I think you'd be better off picking an easier platform to develop software for if you're a beginner.

#152311 - Cyanide001 - Thu Mar 13, 2008 6:14 pm

well i was only following the guide, its not like they said "hey click start then click run, then type cmd" does it? no. Also just because the guide wasnt clear enough doesnt mean im not able to develop my own software if im able to develop my own software for BYOND i think i can move on to this <_<...

Code:
#define DEBUG
/var/const/
   scoreboard={""}
   scoreboardtitle={"<STYLE>BODY {background: black; scrollbar-face-color:0000CC; scrollbar-highlight-color:003399; scrollbar-base-color:003399; scrollbar-darkShadow-color:003399; scrollbar-shadow-color:003399; scrollbar-arrow-color:000000; color: white}</STYLE><head><title>Scoreboard</title></head></body>"}
/Rank_Entry/
   var{Name;Key;Level;Date}
   New(mob/person)
      if(!person)return
      Name=(person.name)
      Key=(person.key)
      Level=(person.maxpowerlevel)
      Date=(time2text(world.realtime))
/proc/
   RankingDisplay(var/mob/person)
      var/list/levels=new()
      var/savefile/F=new("levels.sav")
      F[("stuff")]>>(levels)
      var/html="<center><TABLE BORDER=1><TR><TH><html><BODY><center><h1><U><font color=red>Scoreboard<font color=white></u></h1><TABLE CELLSPACING=10>"
      if(!levels)html+="<TR><TD>No high rankings to display.</TD></TR>\n"
      else
         html+="<tr><th><B>#</th><th>Name <I>(key)</I></th><th>Maxpowerlevel</th><th>Date</th></tr>\n<br>"
         for(var/number in 1 to levels.len)
            var{character=(levels[(number)]);Rank_Entry/player=(levels[(character)])}
            html+="<tr><td><u>[(number)]\th</td><td></u>[(player.Name)] <I>([(player.Key)])</I></td><td>[num2text(round(player.Level),100)]</td><td>[(player.Date)]</td></tr>\n"
      person<<browse("[scoreboardtitle][html]","window=scoreboard;size=524x344")
   Ranking(var/mob/player)
      if(!player||!player.client)return
      var/savefile/F=new("levels.sav")
      var/list/level=new()
      F[("stuff")]>>(level)
      if(!level)level=new()
      var{character="[(player.client.ckey)]/[(player.name)]"
         score=level.Find(character)
         Rank_Entry/newest=new(player)
         Rank_Entry/last}
      if(score)
         var/Rank_Entry/old=(level[(character)])
         if(old.Level>=player.maxpowerlevel)return score
         while(score>1)
            last=level[(level[(score-1)])]
            if(last.Level>=player.maxpowerlevel)break
            level[(score)]=(level[(score-1)])
            level[(--score)]=(character)
            level[(level[(score+1)])]=(last)
         level[(character)]=(newest)
         F[("stuff")]<<(level)
         return score
      score=(level.len)
      if(score>=100)
         last=(level[(level[(score)])])
         if(last.Level>=player.maxpowerlevel)return 101
         level[(score)]=(character)
      else score=(level.len+1),level+=(character)
      while(score>1)
         last=(level[(level[(score-1)])])
         if(last.Level>=player.maxpowerlevel)break
         level[(score)]=(level[(score-1)])
         level[(--score)]=(character)
         level[(level[(score+1)])]=(last)
      level[(character)]=(newest)
      F[("stuff")]<<(level)
      return score

mob
   verb/Scoreboard()RankingDisplay(src)


see, im more than experienced to start learning a new code language.

#152313 - Sweater Fish Deluxe - Thu Mar 13, 2008 6:37 pm

Don't listen to these obscurantists. I'm sure you're perfectly capable of developing on the DS. It's really relatively simple, in fact (depending on what you want to do, of course).

I advise creating a build.bat or make.bat file that just contains the command "make" in any folder where you'll be compiling things, that way you you don't need to open up a command prompt just to type four letters. There's other related commands like make clean or archive that you might want batch files for as well, though personally, I just "clean" things myself by deleting them.


...word is bondage...

#152317 - wintermute - Thu Mar 13, 2008 7:26 pm

Sweater Fish Deluxe wrote:
Don't listen to these obscurantists. I'm sure you're perfectly capable of developing on the DS. It's really relatively simple, in fact (depending on what you want to do, of course).


They're not obscurantists. They're experienced developers who know what stages people should be going through on the journey to writing a game.

Quote:

I advise creating a build.bat or make.bat file that just contains the command "make" in any folder where you'll be compiling things, that way you you don't need to open up a command prompt just to type four letters. There's other related commands like make clean or archive that you might want batch files for as well, though personally, I just "clean" things myself by deleting them.


This is extremely poor advice.

I know you mean well but this is the sort of thing that really shouldn't be getting propagated. Your bat files aren't making things easier, they're avoiding a necessary part of the learning process - if you plan on eventually creating large projects you need to understand make and know your way around a command prompt.

On windows we supply a nice little editor called Programmer's Notepad. If you install this through the devkitPro updater, navigate to the examples folder and double click on any of the .pnproj files then the project will open. Click on Tools->make or use ALT+1 to build, Tools->clean to clean. I'm not sure how it gets much easier.

nczempin wrote:

Again, no offense, but I think you'd be better off picking an easier platform to develop software for if you're a beginner.


On the other hand this sort of thing can be a little offputting.

I put a great deal of work into the devkitARM specifically directed towards making it easier for novices to install a toolchain and started on building code.

Programming is fairly hard on any platform depending on your natural aptitude. Personally, I think the DS and the GBA are great little machines for learning game development.
_________________
devkitPro - professional toolchains at amateur prices
devkitPro IRC support
Personal Blog

#152319 - tepples - Thu Mar 13, 2008 7:45 pm

wintermute wrote:
On windows we supply a nice little editor called Programmer's Notepad. If you install this through the devkitPro updater, navigate to the examples folder and double click on any of the .pnproj files then the project will open. Click on Tools->make or use ALT+1 to build, Tools->clean to clean. I'm not sure how it gets much easier.

That's a good start, but I can think of a couple phony targets that I find helpful. A lot of IDEs for native development (e.g. Windows host, Windows target) have a single button that builds the program and then, if there were no errors, starts the program. In my own makefiles, I have implemented this behavior as a phony target called run, which uses Windows' start.exe to locate the emulator associated to .gba or .nds files.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#152322 - wintermute - Thu Mar 13, 2008 8:06 pm

A run target is something that the user is of course free to add but how do we provide one that will work on all devkitPro supported platforms. At what point does it stop becoming "ease of use" and venture into "doing everything for you"?
_________________
devkitPro - professional toolchains at amateur prices
devkitPro IRC support
Personal Blog

#152334 - nczempin - Thu Mar 13, 2008 9:51 pm

wintermute wrote:

nczempin wrote:

Again, no offense, but I think you'd be better off picking an easier platform to develop software for if you're a beginner.


On the other hand this sort of thing can be a little offputting.

I put a great deal of work into the devkitARM specifically directed towards making it easier for novices to install a toolchain and started on building code.

Programming is fairly hard on any platform depending on your natural aptitude. Personally, I think the DS and the GBA are great little machines for learning game development.


I am aware this sort of thing is offputting. I am not just telling every beginner or inexperienced developer to go elsewhere (especially since I'm a newbie on the DS myself). You may have seen in another thread that I am giving my source to the guy that wanted the poker clock, and while I am encouraging him to add other tools to his arsenal, I'm encouraging him that it's not _that_ hard. It will be a rough road, but it has been travelled before.

It takes a lot of resilience to learn C programming on an embedded system, even one which has such an excellent layer around the hardware. I don't know how much you've dealt with people who want to learn to code (presumably quite a lot given all the PALib users' support requests), but I think it is fair to assume that someone who doesn't know how to "change directory", i. e. has never used any kind of command shell before, will require a lot of toughness to get anywhere near any kind of productivity on a system as complex as the DS (and of course it is simpler than a PSP or a PS3, but it is far more complex than, say, making some changes to some Mod or writing a Starcraft level, or writing a 2D game on the Java Platform).
Many many of these potential developers have a lot of motivation initially, but then simply get overwhelmed by all these things that they have to keep track of. I am not trying to turn them away from game coding in general, just trying to suggest a route that will leave them less frustrated, and actually keep them in our favourite hobby (and for some, business).
I am an experienced developer, and I have enough trouble getting through all the NDS documentation. Try to picture someone who doesn't even know what a command line is and how far he'll get. I'd rather have him gain some realistic experience.

If it sounds arrogant or elitist from me to tell him to get more experience first, I apologize. I'm only trying to help.

#152335 - Sweater Fish Deluxe - Thu Mar 13, 2008 10:02 pm

wintermute wrote:
if you plan on eventually creating large projects you need to understand make and know your way around a command prompt.

But if you don't eventually plan on creating large projects, then you're just wasting your time with archaic nonsense.

Many programmers, especially ones who went to school to learn how to program, have this idea that you have to avoid "learning bad habits" early on. It's something akin to "you can't teach old dogs new tricks," I suppose. Common popular wisdom, but in my experience it has not held true in programming any more than other fields. The human brain (perhaps as opposed to a dog's brain, I don't know) is fluid and perfectly able to learn and adapt to new things when they become necessary, so in my opinion, it's best to take the easiest route first since it will give you the quickest sense of reward which gives you the necessary encouragement to continue. Then, later, if it becomes necessary, you can expand the depth of your knowledge as deep as it needs to go. But if you force yourself to take the hard road in the beginning, you may never get the initial sense of reward that outweighs the punishment you've gotten from the experience and so you might just give up before you've ever really started.


...word is bondage...

#152346 - wintermute - Fri Mar 14, 2008 12:32 am

Sweater Fish Deluxe wrote:
wintermute wrote:
if you plan on eventually creating large projects you need to understand make and know your way around a command prompt.

But if you don't eventually plan on creating large projects, then you're just wasting your time with archaic nonsense.



1. Make and command prompts are far from "archaic nonsense"
2. Apparently you missed the bit where I told you how to use devkitARM without having to deal with either.

There are certain bad habits and methods of working which will make it almost impossible to progress beyond a certain point unless you recognise them for what they are and abandon them.

You don't appear to understand that the more experienced developers here are actually directing people towards the easy way and a direction that will lead to faster progress.

I also fail to see how creating .bat files and manually deleting files is somehow easier than the PN2 approach.
_________________
devkitPro - professional toolchains at amateur prices
devkitPro IRC support
Personal Blog

#152352 - Sweater Fish Deluxe - Fri Mar 14, 2008 1:06 am

wintermute wrote:
You don't appear to understand that the more experienced developers here are actually directing people towards the easy way and a direction that will lead to faster progress.

Faster progress towards what? You seem to be making some assumptions about what people's goals are when they begin homebrewing on the DS. How do you assess you competence when it comes to understanding the goals of others?

Quote:
I also fail to see how creating .bat files and manually deleting files is somehow easier than the PN2 approach.

I fail to see the difference. If your argument is that programmers need to learn about command prompts and makefiles, how does using PN to make you project accomplish that more than using a batch file would?

Personally, I don't use PN, so that's why using a batch file is easier for me. If I did use PN, then I'm sure using it to make my projects would indeed be easier.


...word is bondage...

#152355 - wintermute - Fri Mar 14, 2008 2:45 am

Faster progress towards understanding the processes which make for easy maintainance and actually understanding why they're doing the things they're doing.

Quote:

How do you assess you competence when it comes to understanding the goals of others?


By the success of devkitPro toolchains, how do you assess yours?


The PN2 approach avoids having to learn about makefiles and command prompts just to get code built. This allows for more instant gratification than forcing the user to understand make and command prompts before they reach a level where they can appreciate the advantages.

Quote:

Personally, I don't use PN, so that's why using a batch file is easier for me. If I did use PN, then I'm sure using it to make my projects would indeed be easier.


This statement is particularly telling. Let me rephrase that in an attempt to show you how it comes across to someone competent.

Quote:

Personally I don't use the recommended tools for compiling so that's why using a proven problematic method is easier for me. If I did use the recommended tools then I'm sure my own projects would be easier.

_________________
devkitPro - professional toolchains at amateur prices
devkitPro IRC support
Personal Blog

#152360 - Sektor - Fri Mar 14, 2008 3:55 am

In Patater's guide, the "Building libnds from source" step is optional and should not be done if you use the devkitpro updater (you only need to bulid libnds from source if you aren't using the updater or you need some unfinished updates that are only in CVS). Perhaps Patater's guide should be updated to say which steps are optional and mention that using the devkitpro updater installs devkitARM and libnds (if you select them).

The guide (well actually Patater) makes assumptions since most programmers should know what "building from source" means and they should notice libnds is listed in the updater but I can understand how there could be some confusion if someone was following every single step in the guide without actually understanding all of them.
_________________
GTAMP.com/DS

#152379 - Sweater Fish Deluxe - Fri Mar 14, 2008 5:00 pm

wintermute wrote:
Quote:
How do you assess you competence when it comes to understanding the goals of others?


By the success of devkitPro toolchains, how do you assess yours?

That's a pretty silly way of trying to understand someone's goals. Are you actually assuming that everyone who uses dkA and libnds has the same goals in creating homebrew on the DS? I submit that this is likely the root cause of your misunderstanding.


...word is bondage...