I’m very new here as well, so I haven’t even begun to work on my first VB game yet. You’re in luck because there’s a VB homebrew competition in progress that will be ending on November 11th:
http://www.planetvb.com/modules/newbb/viewtopic.php?topic_id=3912&forum=11
First thing’s first: do you have any computer programming experience, and if so, what language(s)? do you have any game programming experience? any experience writing games for other consoles (Gameboy, DS, etc)?
How to proceed truly depends on your answers to those questions. It would probably be accurate to say that most VB homebrew developers write their code in C or assembly language. They have probably ALL written games on the PC and/or other game consoles before getting started on the Virtual Boy. They have probably all invested several years of self-study in computer programming, computer science, game development, and console programming before being able to write a game demo for the VB.
If you are a complete beginner, DON’T DESPAIR! Everyone started from nothing and, for most people, determination is the key. Just a few days ago, I wrote an outline for someone showing how to proceed from zero experience to writing Xbox 360 Indie Games. I can share that here if you are interested, as well as tweak it for someone who would prefer to write VB games. A beginner need only have a “path” (a list of good tutorials and resources) and the determination to see it through to the end. A knowledgeable community helps, too.
However, maybe you’re a seasoned programmer and you just need the tools?… in that case I just made a fool of myself 😛 I think people develop primarily in Windows, but I’ve setup the toolchain in Linux, so I’d bet it can be done in OS X as well.
Steve
Hi,
I just wanted to mention I’m very interested in this project. I used the script to compile GCC in Ubuntu 10.04 on both my 32-bit netbook and 64-bit desktop. Both succeeded once I installed the correct dependencies (curl, libmpfr-dev, and others), though I’ve installed other toolchain dependencies prior to trying your script.
It would be great to unite efforts on single dev package and it would be an added bonus if the main version was written on a Unix platform and kept Cygwin compatible. I’d like to help, but I’m still new to building cross-compilers, so I don’t know how I could pitch in.
General question: I used the GCC4 patches mentioned in a different thread to build gccvb on my 32-bit computer, but I had trouble building on the 64-bit machine. I was able to compile gcc for the V850 architecture on my 64-bit machine, but I could not compile any VB demos with that compiler (surprise, surprise). I see your script builds a V850 compiler… Have you been able to compile any VB code with it or is the next step to adapt (or write) the GCC4 patches necessary to target the V810?
-Steve
hmmm… I’m relatively new to compiling gcc as well, but I’m under the impression that gccvb is a cross-compiler for the V810 processor. So I believe compiling gccvb on a 64-bit processor would have the effect of making gccvb’s machine code 64-bit compatible whereas gccvb will then compile code for Virtual Boy’s 32-bit registers.
It is an interesting observation, though, that my 64-bit GCC might be somehow spilling 64 bit code into the cross-compiler. GCCVB could then generate 64-bit literal values in the assembly output as it compiles newlib, which is rejected by the assembler. Note that I successfully compiled the toolchain for the “V850” target–no errors compiling newlib. This could be an indication of a bug in the patches.
Fwirt wrote:
Sorry for double posting… I thought something looked wrong about the compilation process Tarsius used,
It’s very likely that I did not compile the demo properly. I essentially did my best to mimic the steps employed by the Windows batch file included with the demo. The demo did run in mednafen after I followed those steps. I posted my procedure mainly to get feedback, since I’m not sure it’s correct. I see now that I generated “demo.hdr” but my steps do not appear to incorporate it into “demo.vb”
Hi,
I’m now having trouble compiling gccvb on my 64-bit Ubuntu 10.04 machine. The steps I posted earlier in this thread (http://www.planetvb.com/modules/newbb/viewtopic.php?post_id=11238#forumpost11238) worked on my 32-bit netbook and I am pleased to see that they worked for Fwirt.
Following those steps, I hit a roadblock at step 15, where I am building newlib. Here is the relevant output when make fails:
v810-cc -B/home/tarsius4/gccvb/newlib_build/v810/newlib/ -isystem /home/tarsius4/gccvb/newlib_build/v810/newlib/targ-include -isystem /home/tarsius4/gccvb/newlib-1.17.0/newlib/libc/include -DPACKAGE_NAME=\”newlib\” -DPACKAGE_TARNAME=\”newlib\” -DPACKAGE_VERSION=\”1.17.0\” -DPACKAGE_STRING=\”newlib\ 1.17.0\” -DPACKAGE_BUGREPORT=\”\” -I. -I../../../../../newlib-1.17.0/newlib/libc/stdlib -O2 -DPREFER_SIZE_OVER_SPEED -mv810 -DMISSING_SYSCALL_NAMES -fno-builtin -g -O2 -c -o lib_a-strtoll_r.o `test -f ‘strtoll_r.c’ || echo ‘../../../../../newlib-1.17.0/newlib/libc/stdlib/’`strtoll_r.c
/tmp/ccNqOS8G.s: Assembler messages:
/tmp/ccNqOS8G.s:176: Error: mov 9223372036854775807,r24: immediate operand is too large
/tmp/ccNqOS8G.s:337: Error: mov -9223372036854775808,r24: immediate operand is too large
/tmp/ccNqOS8G.s:393: Error: mov 9223372036854775807,r10: immediate operand is too large
/tmp/ccNqOS8G.s:459: Error: mov -9223372036854775808,r10: immediate operand is too large
make[5]: *** [lib_a-strtoll_r.o] Error 1
I couldn’t find anything like this online. I also tried compiling the entire toolchain _without_ the patches (using v850 as the target) and everything compiled successfully on my 64-bit machine. Therefore I suspect that either (A) there is something subtly wrong with how I am building gccvb and I would appreciate a makefile or some directions for building correctly, or (B) this is a flaw in the patches.
Also, I looked through the patches and notice that they specifically add “v810” as a target for gcc. Would it then be possible to submit these patches for inclusion in the GCC, binutils, and newlib projects? If accepted, wouldn’t this alleviate the problem of gccvb aging as the other GCC et. al are updated?
Steve
I’ve got GCC 4 compiled under Ubuntu 10.04 and I was able to use it to build the demo VB game from the dev wiki. Time to read the rest of the wiki.
Steve
Just to follow up on my compilation problem: I successfully built GCC 4.4.2, used it to compile the VB demo from the dev wiki, and ran it on Mednafen.
Here’s some of the commands I used:
1. mkdir binutils_build
2. cd binutils_build
3. ../binutils-2.20/configure –target=v810 –prefix=/opt/gccvb
4. make all install
5. PATH=$PATH:/opt/gccvb
6. mkdir ../gcc_build
7. cd ../gcc_build
8. ../gcc-4.4.2/configure –target=v810 –prefix=/opt/gccvb –enable-languages=c –without-headers –with-newlib –disable-shared –disable-threads
9. make all-gcc install-gcc
10. mkdir ../newlib_build
11. cd ../newlib_build
12. PATH=$PATH:/opt/gccvb/bin
13. sudo ln -s /opt/gccvb/bin/v810-gcc /opt/gccvb/bin/v810-cc # Because newlib wanted to use v810-cc but couldn’t find it.
14. ../newlib-1.17.0/configure –target=v810 –prefix=/opt/gccvb
15. make all install
16. cd ../gcc_build/
17. ../gcc-4.4.2/configure –target=v810 –prefix=/opt/gccvb –enable-languages=c
18. make all install
I used these commands to compile the demo:
1. v810-as demo.vbh -o demo.zzh
2. v810-objcopy -S -O binary demo.zzh demo.hdr
3. rm demo.zzh
4. v810-gcc -nodefaultlibs -mv810 -x c -o demo.o demo.c
5. v810-objcopy -S -O binary demo.o demo.vb
Steve
Thanks RunnerPack. Since my post above, I read about GCC compiling and moved forward to the point I’m at in the GCC4 patch thread. Here’s a link to what I just posted there: http://www.planetvb.com/modules/newbb/viewtopic.php?post_id=11170#forumpost11170
Thanks again 🙂
Steve
Hi,
I am attempting to patch and compile gcc for the first time, and I am running into some trouble.
I am using Ubuntu 10.04 32-bit and gcc 4.4.3. I have downloaded binutils-2.20.tar.bz2, gcc-core-4.4.2.tar.bz2, and newlib-1.17.0.tar.gz from their respective locations and applied the patches posted by M.K.
I followed the general outline of the “make_v810.sh” script in [http://goliathindustries.com/vb/download/gccvb/vb_v810_gcc_03.tar.gz], which was originally intended for gcc 2.95. Essentially, I untarred the three archives, applied the three patches, built and installed binutils successfully, then continued on to configure and compile gcc.
The issue is that, during the gcc build, I eventually hit an error. Here’s how I configured and compiled it:
> mkdir gcc_build
> cd gcc_build
> ../gcc-4.4.2/configure –target=v810 –prefix=/opt/gccvb/bin –enable-languages=c –without-headers –with-newlib
> make all install
And after several minutes of compiling, I hit this:
————————-
(A bit too long, so I uploaded it. Note that this output was produced without the –without-headers flag, but it’s pretty much identical)
http://www.codeupload.com/526
————————-
I find it peculiar that the preprocessor cannot find “string.h” and the others, as they are definitely on my system. Note the line: “checking for string.h… (cached) no” This seems to be a configure step performed specifically for zlib.
How to I ensure compiler finds all the necessary headers? Am I missing a step or compiling incorrectly?
Thanks,
Steve
Thanks for the info. For now I will use the pre-compiled Cygwin version in an XP virtual machine. If anyone could point me toward the Linux build script, I’d be truly grateful.
Also, I’d attempt the patches, but I’m not sure which version of gccVB (or just the GCC source?) to apply them to. The very first line of “gcc-4.4.2-vb.patch” suggests I have the wrong version:
“diff -uNr gcc-4.4.2.org/config/mt-v810 gcc-4.4.2/config/mt-v810”
I have gccVB code from [http://goliathindustries.com/vb/download/gccvb/vb_v810_gcc_03.tar.gz], whose gcc folder is gcc-2.95-2/
I’m excited about the coding competition and I hope I have something to offer by November.
Steve
Hi,
I’ve been trying to compile an older version of gccVB (2.95) on Ubuntu 10.4 and I ran into some issues. After googling the error that stopped the compile, I think I’ve hit a roadblock that I’m sure many of you know about.
I’m now looking for the most recent version of gccVB. Parasyte, it seems you’re the active developer on gccVB… where might I find the latest revision or that wonderful build script you described?
Many thanks,
Steve