Specs: NES | M82 | (T)FC | SNES | BS-X | VB | N64 | 64DD | NGC | Q | Q GBP | G&Ws | GB(L) | GB(A) (SP) | GBM | DS(L) | Wii
Mijn foto's op Flickr.
Maar ik heb geen idee wat het precies inhoudt.
NMAKE Fatal Error U1073
don't know how to make 'targetname'
The specified target does not exist, and there is no command to execute or inference rule to apply.
One of the following may be a solution:
Check the spelling of the target name.
If targetname is a pseudotarget, specify it as a target in another description block.
If targetname is a macro invocation, be sure it does not expand to a null string.
Specs: NES | M82 | (T)FC | SNES | BS-X | VB | N64 | 64DD | NGC | Q | Q GBP | G&Ws | GB(L) | GB(A) (SP) | GBM | DS(L) | Wii
Mijn foto's op Flickr.
Welcome to Windows programming
edit: vaagheid... hij staat toch echt in dezelfde directory
Specs: NES | M82 | (T)FC | SNES | BS-X | VB | N64 | 64DD | NGC | Q | Q GBP | G&Ws | GB(L) | GB(A) (SP) | GBM | DS(L) | Wii
Mijn foto's op Flickr.
edit: en waarin proggen jullie die? En welke compiler?
Specs: NES | M82 | (T)FC | SNES | BS-X | VB | N64 | 64DD | NGC | Q | Q GBP | G&Ws | GB(L) | GB(A) (SP) | GBM | DS(L) | Wii
Mijn foto's op Flickr.
Verwijderd
Specs: NES | M82 | (T)FC | SNES | BS-X | VB | N64 | 64DD | NGC | Q | Q GBP | G&Ws | GB(L) | GB(A) (SP) | GBM | DS(L) | Wii
Mijn foto's op Flickr.
Daar staat bij de Tutorials een newbee guide met de linkjes erin. Die van VerticalE
Specs: NES | M82 | (T)FC | SNES | BS-X | VB | N64 | 64DD | NGC | Q | Q GBP | G&Ws | GB(L) | GB(A) (SP) | GBM | DS(L) | Wii
Mijn foto's op Flickr.
http://www.ngine.de/gbadoc/newbieguide.txt
Ik ben trouwens nog steeds wel geinteresseerd wie hier allemaal games progt!
Specs: NES | M82 | (T)FC | SNES | BS-X | VB | N64 | 64DD | NGC | Q | Q GBP | G&Ws | GB(L) | GB(A) (SP) | GBM | DS(L) | Wii
Mijn foto's op Flickr.
Weet jij wat de mogelijkheden zijn om die dingen op cartridges (wat zijn het? flash kaarten?) te krijgen zodat je ze ook echt op je GBA zelf ook kan spelen?
zelf had ik wat probleempjes met gcc... Maar ik neem aan dat jij met gcc compilet? Want de compiler van VC++ zelf gaat natuurlijk niet werken
post je makefile hier eens alsjewilt
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
OiSyN: wat is er zo bijzonder aan die ARM SDK dan? Als hij echt zo bijzonder is mocht ik weleens de neiging krijgen om hem aan te schaffenGBAMAKE (by Warp): Visual C++ users, make your lives even simpler by using this program in combination with the ARM GCC compiler we installed earlier to allow you to compile code straight from VC++.
http://www.agbdev.net/gbadev/files/gbamake.zip
Hij ondersteund alleen geen exceptions en met templates heeft ie het ook vaak moelijk (van een template functie in een template class gaat ie bijvoorbeeld over z'n nek), maar dat zijn toch niet echt dingen die je in een gba spel/demo gaat gebruiken
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Je kunt op verschillende plaatsen van die flashlinkers kopen... Dat is gewoon een apparaatje dat je op je printerpoort aansluit, en dan koop je er een ROM cartridge bij zodat je kan flashen. Ze zijn bedoeld voor het kopieren van spellen, maar spelen van je eigen binaries is ook erg lacheOp dinsdag 25 december 2001 23:19 schreef stylee het volgende:
Weet jij wat de mogelijkheden zijn om die dingen op cartridges (wat zijn het? flash kaarten?) te krijgen zodat je ze ook echt op je GBA zelf ook kan spelen?
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Oisyn: zou je me aub ff kunnen contacten op MSN?
edit: Dit is trouwens de error die ik krijg (met die files is niks mis trouwens, want hij heeft het een keer gedaan :\)
gbamake -pc:\armgcc CCPTest.dsp
ERROR : failed to launch zarmcpp.exe
ERROR : failed to launch zarmasm.exe
ERROR, cannot compile .\CPPTest.mak : unknown file format
ERROR, cannot compile .\Linkscript : unknown file format
***[.\main.o]***
***[.\boot.o]***
CCPTest.bin - 2 error(s), 0 warning(s)
Specs: NES | M82 | (T)FC | SNES | BS-X | VB | N64 | 64DD | NGC | Q | Q GBP | G&Ws | GB(L) | GB(A) (SP) | GBM | DS(L) | Wii
Mijn foto's op Flickr.
Maar dat probleem ziet eruit als een verkeerde path instelling... gebruik je VC++? Dan moet je even naar Tools -> Options -> Directories gaan, en daar de arm dir toevoegen aan de executable file directories
(Vergeet overigens ook niet de ARMLIB en ARMINC environment variabelen te zetten naar respectievelijk je lib en include dir... als je dat gedaan hebt moet je wel VC opnieuw starten (voor WinNT/2K/XP), of je pc opnieuw starten (9x/ME))
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Specs: NES | M82 | (T)FC | SNES | BS-X | VB | N64 | 64DD | NGC | Q | Q GBP | G&Ws | GB(L) | GB(A) (SP) | GBM | DS(L) | Wii
Mijn foto's op Flickr.
Mischien is het ook wel interessant om deze tutorial door te nemen.
OiSyN: heb jij mischien ergens een linkje oid naar een super-simpele hello-world iets? Meeste sources die ik zie beginnen gelijk bij scrollers, etc. Ben wel bekend met C/C++ maar de traditie vereist dat je begint met hello world op een nieuw platform
c:\gbadev\testbestand>as -I c:\devkitadv\arm-agb-elf\include -I c:\devkitadv\lib\gcc-lib\arm-agb-elf\3.0.2\include -mthumb-interwork c:\gbadev\testbestand\boot.s -oboot.o
Doet ie het prima. Dit staat ook in de makefile, maar als ik het wil compileren in Visual C++ kan ie gcc niet eens vinden
uhmm... help!
Specs: NES | M82 | (T)FC | SNES | BS-X | VB | N64 | 64DD | NGC | Q | Q GBP | G&Ws | GB(L) | GB(A) (SP) | GBM | DS(L) | Wii
Mijn foto's op Flickr.
Dat in opties etc moest "c:\devkitadv\bin" zijn ipv "c:\devkitadv"
Pfoe.. kan ik eindelijk beginnen
Specs: NES | M82 | (T)FC | SNES | BS-X | VB | N64 | 64DD | NGC | Q | Q GBP | G&Ws | GB(L) | GB(A) (SP) | GBM | DS(L) | Wii
Mijn foto's op Flickr.
Specs: NES | M82 | (T)FC | SNES | BS-X | VB | N64 | 64DD | NGC | Q | Q GBP | G&Ws | GB(L) | GB(A) (SP) | GBM | DS(L) | Wii
Mijn foto's op Flickr.
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Zodra ik iostream.h include krijg ik namelijk allemaal "undefined" errors
Specs: NES | M82 | (T)FC | SNES | BS-X | VB | N64 | 64DD | NGC | Q | Q GBP | G&Ws | GB(L) | GB(A) (SP) | GBM | DS(L) | Wii
Mijn foto's op Flickr.
Een simpele
1
| cout << "Hello world" << endl; |
gaat dus echt niet werken, aangezien je niet een console/text interface hebt op de gameboy om tekst naar te schrijven... En een filesystem heb je er ook niet, dus gebruik maken van filestreams zit er ook niet in
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Heb jij trouwens wat goede, simpele tutorials? Waar ze ook met de wat makkelijkere dingen beginnen en uitleggen wat ze nou eigenlijk doen, en niet alleen hoe? Ik ben nu al superlang aan het zoeken, maar nog niet echt succesvol
Specs: NES | M82 | (T)FC | SNES | BS-X | VB | N64 | 64DD | NGC | Q | Q GBP | G&Ws | GB(L) | GB(A) (SP) | GBM | DS(L) | Wii
Mijn foto's op Flickr.
Verder ken ik niet echt tutorials voor de gba...
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
En daarnaast ook nog eens alles 404
deze doet het wel: http://www.thepernproject.com/English/tutorial.html
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
c:/gbadev/tutos/day2/tutor2.cpp:9: parse error before `*' token
c:/gbadev/tutos/day2/tutor2.cpp:11: parse error before `short'
c:/gbadev/tutos/day2/tutor2.cpp: In function `void plotPixel(...)':
c:/gbadev/tutos/day2/tutor2.cpp:12: `y' undeclared (first use this function)
c:/gbadev/tutos/day2/tutor2.cpp:12: (Each undeclared identifier is reported
only once for each function it appears in.)
c:/gbadev/tutos/day2/tutor2.cpp:12: `x' undeclared (first use this function)
c:/gbadev/tutos/day2/tutor2.cpp:12: `c' undeclared (first use this function)
c:/gbadev/tutos/day2/tutor2.cpp: In function `int main()':
c:/gbadev/tutos/day2/tutor2.cpp:17: invalid suffix on integer constant
NMAKE : fatal error U1077: 'C:\devkitadv\bin\gcc.exe' : return code '0x1'
Stop.
Error executing nmake.
day2.bin - 3 error(s), 0 warning(s)
En dit is m'n source... ik zie eigenlijk niet wat er fout aan is, het is iig hetzelfde als wat op die tuto site staat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| // tutor2.cpp - door Yoshi.
#include "gba.h"
#include "screenmode.h"
#define RGB(r,g,b) ((r) + ((g)<<5) + ((b)<<10))
#define unsigned short int u16
u16 VideoBuffer = (u16*)0x6000000;
void plotPixel(int x, int y, unsigned short int c){
VideoBuffer[(y)*240+(x)] = (c);
}//plotPixel
int main (){
int x,y;
SetMode(MODE_3 | BG2_ENABLE);
for (x=0;x<240;x++){
for (y=0;y<160;y++){
plotPixel(x,y,RGB(31,0,0));
}//for
}//for
while(1){}
return 0;
}//main |
Oja, en nog 1 vraagje: waarin gebruiken ze meestal een C_Entry() of iets dergelijks ipv een main?? Bij mij gaat ie lopen zeuren als je geen main hebt
Specs: NES | M82 | (T)FC | SNES | BS-X | VB | N64 | 64DD | NGC | Q | Q GBP | G&Ws | GB(L) | GB(A) (SP) | GBM | DS(L) | Wii
Mijn foto's op Flickr.
gebruik voor dat soort dingen altijd typedef, daar issie voor gemaaktOp donderdag 27 december 2001 00:44 schreef www.Goku.nl het volgende:
#define unsigned short int u16
dus
1
| typedef unsigned short u16; |
Je wilt je videobuffer een pointer naar u16 laten zijn, maar je declareert m als gewoon u16. Doe dusu16 VideoBuffer = (u16*)0x6000000;
1
| u16 * VideoBuffer = (u16*)0x6000000; |
Maar waarom zou je dat sowieso doen? Ik geloof dat dat al in gba.h gedefinieerd staat (tenminste, als je die van the PERN project gebruikt)
Volgens mij compile je m dan niet helemaal goed... Als je m op de goede manier compilet en je linkt m met boot.o, dan is de entry procedure C_Entry ()Oja, en nog 1 vraagje: waarin gebruiken ze meestal een C_Entry() of iets dergelijks ipv een main?? Bij mij gaat ie lopen zeuren als je geen main hebt
Maar post je makefile nou eens, dan kunnen we zien hoe het in elkaar zit
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
gba.h
main.c
Makefile
Nou gebruik ik ipv. de entry procedure C_Entry() ArmMain(), omdat ik link met crt0.o (1 kb), maar dat zou niet zoveel moeten uitmaken.
Ik gebruik zoals eerder gezegd de devkitadv (gcc) en heb gewoon de path naar d:/devkitadv/bin toegevoegd. Start vervolgens je command-prompt en ga naar de dir waar je deze bestanden hebt gegooid en typ make. Hij zou gewoon moeten compilen als het goed is.
hth
edit: nou nog alleen uitvogelen waarom er nix op het scherm komt
Makefile:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
| # Define some directories;
# -------------------------------------------
SRCDIR = c:\gbadev\tutos\day2
CMPDIR = c:\devkitadv\bin
LIBDIR = c:\devkitadv\lib\gcc-lib\arm-agb-elf\3.0.2\interwork
LIBDIR2 = c:\devkitadv\arm-agb-elf\lib\interwork
INCDIR = c:\devkitadv\lib\gcc-lib\arm-agb-elf\3.0.2\include
INCDIR2 = c:\devkitadv\arm-agb-elf\include
# -------------------------------------------
# Define what extensions we use;
# -------------------------------------------
.SUFFIXES : .cpp .s
# -------------------------------------------
# Define the flags for the compilers;
# -------------------------------------------
CFLAGS = -I $(INCDIR2) -I $(INCDIR) -I $(SRCDIR) -mthumb-interwork -c -g -O2 -Wall -fverbose-asm
SFLAGS = -I $(INCDIR2) -I $(INCDIR) -mthumb-interwork
LDFLAGS = -L $(LIBDIR) -L $(LIBDIR2) -T LinkScript
# -------------------------------------------
# Define the list of all O files;
# -------------------------------------------
O_FILES = boot.o \
crtbegin.o \
crtend.o \
tutor2.o
# -------------------------------------------
# Define the final dependecy;
# -------------------------------------------
all : day2.bin
# -------------------------------------------
# Define the copy from .elf to .bin file
# -------------------------------------------
day2.bin : CPPTest.elf
objcopy -v -O binary CPPTest.elf CPPTest.bin
-@echo ------------------------------------------
-@echo Done
-@echo ------------------------------------------
# -------------------------------------------
# Define the linker instruction;
# -------------------------------------------
CPPTest.elf : $(O_FILES)
ld $(LDFLAGS) -o CPPTest.elf $(O_FILES) -lstdc++ -lgcc -lc
-@echo ------------------------------------------
-@echo Linking Done
-@echo ------------------------------------------
# -------------------------------------------
# Define each compile;
# -------------------------------------------
{$(SRCDIR)}.cpp.o::
gcc $(CFLAGS) $<
-@echo ------------------------------------------
-@echo CPP-Sources Compiled
-@echo ------------------------------------------
# -------------------------------------------
# Define each assemble;
# -------------------------------------------
{$(SRCDIR)}.s.o:
as $(SFLAGS) $(SRCDIR)\$*.s -o$@
-@echo ------------------------------------------
-@echo ASM-Sources Compiled
-@echo ------------------------------------------
# -------------------------------------------
# EOF; |
Uit een andere tuto gehaald, en beetje aangepast
Specs: NES | M82 | (T)FC | SNES | BS-X | VB | N64 | 64DD | NGC | Q | Q GBP | G&Ws | GB(L) | GB(A) (SP) | GBM | DS(L) | Wii
Mijn foto's op Flickr.
Je main is de entry-prcocedure voor je linker. Het punt waarop het OS je code begint uit te voeren. Deze hoeft helemaal niet eens persé main te heten. In windows heet deze bijvoorbeeld WinMain. Als je linkt met boot.o moet deze dus C_Entry() heten.
Schrijf je programma dus als volgt:
1
2
3
| void C_Entry (void) {
...
} |
en hij zou moeten compilen.
Vertel me ff of je emulator hem draait.
Ik heb wat zitten kijken in boot.s, en ik zag daar iets staan met main en agbMain... dus ik ga ff kijken of het werkt met agbMain
edit: btw, heb je MSN/ICQ?
Specs: NES | M82 | (T)FC | SNES | BS-X | VB | N64 | 64DD | NGC | Q | Q GBP | G&Ws | GB(L) | GB(A) (SP) | GBM | DS(L) | Wii
Mijn foto's op Flickr.
Dit staat in mijn boot.s:
@ Uncomment the following line to support C++ development.
@ You also need to name your main C function the following:
@ int main (void) ...instead of... int AgbMain (void)
@ Doing so will cause ~5500 bytes of c++ support code to be
@ linked in with your project so do not enable c++ support
@ unless you plan to use it.
Specs: NES | M82 | (T)FC | SNES | BS-X | VB | N64 | 64DD | NGC | Q | Q GBP | G&Ws | GB(L) | GB(A) (SP) | GBM | DS(L) | Wii
Mijn foto's op Flickr.
ICQ gebruik ik niet meer (tja alle dames hebben msn
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
bij cygwin staat ie onder /lib.Op donderdag 27 december 2001 16:24 schreef OiSyN het volgende:
waar heb je die crt0.o vandaan? Ik zocht m laatst (ivm met interrupt routines), maar ik kon m nergens vinden... (maar ik zal wel weer iets over het hoofd hebben gezien)
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
is eigenlijk ook wel logisch jaOp donderdag 27 december 2001 16:34 schreef OiSyN het volgende:
oh nee wacht laat maar foutje van mij... dit is ook een gcc versie, en ik zoek dus de ARM SDK versie