#36925 - Vylrath - Thu Mar 03, 2005 7:50 pm
Heya,
I'm looking for a guide on how to use Visual Studio.net's IDE to write my GBA programs. I looked in the sticky FAQ and in the Visual Studio section it pointed to a dead link. Does anyone have a working mirror, or can anyone help me to set up VS.net so that I can link it to DevKitARM? BTW, I don't have VS version 6, so I can't use the GBA App Wizard.
Thanks!
-Vyl
_________________
Brian Chambers
brian.chambers@charter.net
#36948 - Vylrath - Fri Mar 04, 2005 2:32 am
Wow, I got it to work flawlessly. I'll probably write and post a tutorial later. Now I can write projects using Visual Studio.net, compile them, and test them using an emulator all with the same IDE. :D
_________________
Brian Chambers
brian.chambers@charter.net
#36980 - ymalik - Fri Mar 04, 2005 5:06 pm
Are you also able to use the version of make that comes with DevkitARM?
#37102 - OpticEvIl - Mon Mar 07, 2005 5:04 am
Vylrath wrote: |
Wow, I got it to work flawlessly. I'll probably write and post a tutorial later. Now I can write projects using Visual Studio.net, compile them, and test them using an emulator all with the same IDE. :D |
I have been trying for a week to get the .net IDE to work with DKArm, If you could post anything about it, or a Project file, I would be most greatful!!!
#37130 - Vylrath - Mon Mar 07, 2005 8:53 pm
I loosely followed this tutorial:
http://www.auby.no/files/tutorial.php
ymalik wrote: |
Are you also able to use the version of make that comes with DevkitARM? |
I took and altered the Makefile from a tutorial called SimpleBGScroll. I believe the tutorial tells which lines to alter.
OpticEvIl wrote: |
Vylrath wrote: | Wow, I got it to work flawlessly. I'll probably write and post a tutorial later. Now I can write projects using Visual Studio.net, compile them, and test them using an emulator all with the same IDE. :D |
I have been trying for a week to get the .net IDE to work with DKArm, If you could post anything about it, or a Project file, I would be most greatful!!! |
The above tutorial did most of the work for me. After altering the Makefile, and setting the correct paths, I created an "External Command" from the Tools window, and set the path to my GBA emulator. Finally, I took the SimpleBGScroll Visual Studio 6 file and converted it to a Visual Studio.net project. I deleted all of the code, put in a basic function with proper headers, and renamed all of the files. I keep the empty project in its own directory, and when I make a new game, I just copy the project and rename. Finally, open the gba.h in the Solution Viewer (it has to be in the correct directory for the Makefile to use it), then finally #include the header with double quotes. Hope that helps a little!
Note: If this doesn't work, feel free to ask more specific questions. I'm thinking of going back and starting over, and documenting what needs to be done, so it can be semi-standardized. :)
_________________
Brian Chambers
brian.chambers@charter.net
#37140 - OpticEvIl - Tue Mar 08, 2005 12:50 am
Thank you Vylrath for putting this together for us! I found this post immensely helpful and this post should be sticky?d asap. Can you post your skeleton project also?
#37141 - Vylrath - Tue Mar 08, 2005 1:23 am
OpticEvIl wrote: |
Thank you Vylrath for putting this together for us! I found this post immensely helpful and this post should be sticky?d asap. Can you post your skeleton project also? |
Sure!
Now, for some reason, you can't use this in a directory with spaces; it's probably because of the Makefile, but I haven't had time to troubleshoot yet. I'm posting my skeleton file here [zipped]:
http://www.geocities.com/vylrath/EmptyProject.zip
If you have any problems with it, post it here or e-mail me. :) It works fine on my computer, 0 errors and 0 warnings, and the ROM tests fine. As soon as I finish typing it up, I'll post how to test the ROM within VS.net as well using an External Command.
_________________
Brian Chambers
brian.chambers@charter.net
#37143 - Vylrath - Tue Mar 08, 2005 1:35 am
To be able to test a GBA ROM inside Visual Studio:
- Go to Tools | External Tools.
- Click Add.
- Under Title, type "Test GBA ROM" or something similar.
- Under Command, type the path to your emulator (/emulatorDir/emulator.exe).
- Under Arguments, type "$(TargetName)$(TargetExt)" (without the quotes).
- Under Initial Directory, type "$(TargetDir)" (without the quotes).
- Note which position the new Tool is located in the dialog. I personally moved it to the first slot.
- Click Apply.
- Go to Tools | Customize.
- Go to the Toolbars tab if not there already.
- Click New.
- Type "Test GBA ROM" or something similar. A small box should appear next to the window.
- Change to the Commands tab.
- In the Categories window, go to Tools.
- In the Commands window, go to External Command 1 (or External Command 2, 3, etc. depending on in what position the command was created.
- Drag the "External Command [x]" to the new toolbar that you created.
- Dock the toolbar to the top of the program.
- Click the button after compilation to test the new ROM.
-----
I believe that should do it. Any questions, type them here or e-mail me at brian.chambers at charter.net. :)
_________________
Brian Chambers
brian.chambers@charter.net
#37148 - wintermute - Tue Mar 08, 2005 3:20 am
can't say I'm terribly keen on seeing yet another set of GBA headers being distributed as part of a 'skeleton project'. If you want to standardise, use a set which is reasonably popular and available from a single source.
Any suggestions for improvement of libgba are gratefully received
#37149 - Vylrath - Tue Mar 08, 2005 3:25 am
wintermute wrote: |
can't say I'm terribly keen on seeing yet another set of GBA headers being distributed as part of a 'skeleton project'. If you want to standardise, use a set which is reasonably popular and available from a single source.
Any suggestions for improvement of libgba are gratefully received |
Eh, well, I just started programming the GBA a week or two ago, I'm quite the newbie ... so this was the best I could do. :) No worries though! :D
_________________
Brian Chambers
brian.chambers@charter.net
#37154 - OpticEvIl - Tue Mar 08, 2005 5:45 am
wintermute wrote: |
can't say I'm terribly keen on seeing yet another set of GBA headers being distributed as part of a 'skeleton project'. If you want to standardise, use a set which is reasonably popular and available from a single source.
Any suggestions for improvement of libgba are gratefully received |
If this was posted in anything other than the beginner?s forum I may tend to agree with you on keeping the headers from a single source. The fact is that the information I requested from Vylrath was a big help on helping me setup a good programming environment with my .net IDE. I haven?t seen any single source that details how to achieve the results that he and I are looking for with the .net IDE, so on the same token if you have any idea on how we can successfully setup a functional GBA programming environment with the .net IDE, your comments will be gratefully received.
#37167 - wintermute - Tue Mar 08, 2005 12:30 pm
OpticEvIl wrote: |
If this was posted in anything other than the beginner?s forum I may tend to agree with you on keeping the headers from a single source.
|
that's precisely why the headers shouldn't be included as part of a skeleton project. A decent set of headers for a particular platform should be in only one place in any developer's setup. This is done as a matter of course by experienced programmers and is one of the major sources of problems for beginners.
Quote: |
The fact is that the information I requested from Vylrath was a big help on helping me setup a good programming environment with my .net IDE. I haven?t seen any single source that details how to achieve the results that he and I are looking for with the .net IDE
|
the link he posted to Desktopman's site seems to have the information you need. It's one of the sites referenced in the links section at devkit.tk
#37179 - Vylrath - Tue Mar 08, 2005 3:33 pm
wintermute wrote: |
that's precisely why the headers shouldn't be included as part of a skeleton project. A decent set of headers for a particular platform should be in only one place in any developer's setup. This is done as a matter of course by experienced programmers and is one of the major sources of problems for beginners. |
Hmm ... I included the headers because I always include gba.h, so I put all the necessary headers in the project directory. I'm always eager to learn from my mistakes ... what was it I did wrong? Thankee!
_________________
Brian Chambers
brian.chambers@charter.net
#37194 - OpticEvIl - Tue Mar 08, 2005 8:17 pm
wintermute wrote: |
the link he posted to Desktopman's site seems to have the information you need. It's one of the sites referenced in the links section at devkit.tk |
This is after the fact; I?m sure there must be hundreds of documents in the dark recesses of the internet that may have helped. The point is that he posted it here in this thread solidified the knowledge he has gained in the last few weeks.
Setting up the complier to work with .net IDE, although a big part, is only one step in the process of setting up a functional environment to develop code for the GBA (inside the .net IDE). For example Vylrath explained how to add the emulator as a tool option to run complied roms straight from the IDE.
I guess the real point I?m trying to make here is this: If you take the effort to come to the beginner?s forum to point out errors in development doctrine you should also take the effort to leave a small piece of advice on what we should be doing to achieve our goal.
#37199 - Fatnickc - Tue Mar 08, 2005 9:03 pm
Sorry for being very off-topic, but, Vylrath, you have the same surname as me. scary, eh?
#39187 - kusma - Tue Apr 05, 2005 7:59 pm
here is a sed-script that converts gcc-style errors and warnings to msvc-style. it's neat to skip to the right codeline etc ;)
sed s/"^\([a-zA-Z0-9_.: \\/]\+\):\([0-9]\+\):"/"\1(\2) :"/
#39188 - kusma - Tue Apr 05, 2005 8:02 pm
btw, a makefile-rule to use this could be:
Code: |
%.o : %.c
-$(CC) $(CPPFLAGS) $(CFLAGS) $(THUMB) -c $< -o $@ 2> $(TMP)\ccerr.txt
sed s/"^\([a-zA-Z0-9_.: \\/]\+\):\([0-9]\+\):"/"\1(\2) :"/ < $(TMP)\ccerr.txt
|
this ofcourse requires having sed for win32 installed.
#39218 - wintermute - Wed Apr 06, 2005 2:32 am
or you can just pipe straight through sed
Code: |
#---------------------------------------------------------------------------------
%.o : %.c
@echo $(notdir $<)
@$(CC) -MMD $(THUMB) $(CFLAGS) -o $@ -c $< 2>&1 | sed s/"^\([a-zA-Z0-9_.: \\/]\+\):\([0-9]\+\):"/"\1(\2) :"/
|
#46357 - wintermute - Thu Jun 23, 2005 4:37 pm
I've just been playing around with this some more.
In VS6 use
Code: |
make -r 2>&1 | sed -e 's/\(.[a-zA-Z]\+\):\([0-9]\+\):/\1(\2):/'
|
as the build command line in the project settings dialog