I just finished a systems programming class at college where we used assmebly programming. It looks like most programming for VB is done in C with a little bit of assembly. I feel pretty comfortable interfacing both of these now so I think that means I’m ready to start tinkering with VB programming.
Any suggestions for first (easy) projects? I’m still a little unsure of how game logic works or how the display is created with worlds and sprite, etc… I’ve read most of the documentation on programming for the VB and I guess at this point I should dive in to other people’s code to get a feel for how these games are structured. Anyone’s advice on how to get started from where I am would be greatly appreciated!
Yeti_dude wrote:
I just finished a systems programming class at college where we used assmebly programming. It looks like most programming for VB is done in C with a little bit of assembly. I feel pretty comfortable interfacing both of these now so I think that means I’m ready to start tinkering with VB programming.
Actually, at this point, most things can be done without touching asm. However, if you want to upgrade or add to the standard library with some speedy/tiny asm code, I for one would appreciate it (especially if it has good comments)!
Any suggestions for first (easy) projects? I’m still a little unsure of how game logic works or how the display is created with worlds and sprite, etc… I’ve read most of the documentation on programming for the VB and I guess at this point I should dive in to other people’s code to get a feel for how these games are structured. Anyone’s advice on how to get started from where I am would be greatly appreciated!
Just do some tests to get used to the graphics (sound, etc.) hardware. My first few programs were “hello world” programs to mess with the graphics stuff. When you want to start a real project, if you don’t have any good ideas of your own, just pick some game you really like and make your own version.
Make sure and keep us updated on your progress!
Yea, I dunno how much assembly programming is needed for developing homebrew with VB, but I figure it can’t hurt to know about that stuff. At the very least, my learned from my class how to make procedures in assembly and then use them in C programs.
I’ve gotten VIDE set up and I’m beginning to mess with some of the demos. What I’d really like to do is learn more about the virtual boy rom file types. Specifically I’d like to be able to compile the VBgcc stuff and look at assembly output for it, but I don’t know if that is possible. I’m just gonna keep looking through the VBgcc headers and reading the programming guides to learn more about the VB and how games operate on it. Thanks for the welcoming post!
Yeti_dude wrote:
Yea, I dunno how much assembly programming is needed for developing homebrew with VB, but I figure it can’t hurt to know about that stuff. At the very least, my learned from my class how to make procedures in assembly and then use them in C programs.
That’s a handy skill to have…
Are you more familiar with Intel (x86) or AT&T (gcc) asm syntax? I’ve only dabbled in x86 assembly, so I don’t have the Intel syntax baggage, which probably makes it easier to study the V810 architecture (which differs quite a bit from that of the x86).
I’ve gotten VIDE set up and I’m beginning to mess with some of the demos. What I’d really like to do is learn more about the virtual boy rom file types.
I’m not sure what you mean… There’s only one ROM file format for the VB. It’s just a straight dump of the contents of the ROM chip. The layout of said dump is pretty simple, too: it’s just a big chunk of code and data with a fixed-size header stuck on, at the very end of which is the interrupt jump-table.
Specifically I’d like to be able to compile the VBgcc stuff and look at assembly output for it, but I don’t know if that is possible.
That’s an easy one:
v810-objdump -d main.o > main.s
I’m just gonna keep looking through the VBgcc headers and reading the programming guides to learn more about the VB and how games operate on it.
Sounds like a plan. Be sure to check the Wiki and ask questions here if something is unclear.
Thanks for the welcoming post!
And thank you for taking the time to see what makes our little red outcast tick. The more experienced programmers we have, the bigger the VB library will grow!
RunnerPack wrote:
Are you more familiar with Intel (x86) or AT&T (gcc) asm syntax? I’ve only dabbled in x86 assembly, so I don’t have the Intel syntax baggage, which probably makes it easier to study the V810 architecture (which differs quite a bit from that of the x86).
In my class this summer we used nasm which is Intel syntax but we also fooled around on a MIPS architecture using Qtspim (which is RISC like the 810). From what I’ve read of the hardware manuals the assembly is pretty clean and easy.
I’m not sure what you mean… There’s only one ROM file format for the VB. It’s just a straight dump of the contents of the ROM chip. The layout of said dump is pretty simple, too: it’s just a big chunk of code and data with a fixed-size header stuck on, at the very end of which is the interrupt jump-table.
SWEET! Everything you just said here makes me super excited to do VB programming. A great advantage of assembly over C is the way you can handle interrupts in a more direct way. One major problem I wanted to avoid with VB was being fixed to “polling” to deal with input, but having control of the jump table should provide a good deal of flexibility in the important places.
That’s an easy one:
v810-objdump -d main.o > main.s
Here’s where I think it’ll pay off to know assembly and be able to look at C code compiled to assembly. I know the basics of calling conventions that can let your C programs call assembly procedures. But being able to write all the code in C and see how it compiles to V810 assembly is essential for learning about the system and it’s areas for optimization.
Sounds like a plan. Be sure to check the Wiki and ask questions here if something is unclear.
Thank you for answering my questions so far. It’s very encouraging to know there are such knowledgeable people who are willing to help a newcomer get on their feet.
And thank you for taking the time to see what makes our little red outcast tick. The more experienced programmers we have, the bigger the VB library will grow!
Maaaan… The Virtual Boy was cool as heck when I was 10 and nothing has changed since. Considering the VB’s technology, just the idea that this system is so raw and untested provides the right incentive to make me want to experiment! And let’s be honest, the only outcasts are the ones who kept away from the VB and it’s glorious potential.