**Welcome to the Virtual Boy Development Wiki!** This is a collaborative effort of the VB (homebrew) community to document Virtual Boy programming, compile tutorials, share tips, code snippets, custom libs or whatever. Every registered Planet Virtual Boy user can contribute! Information about how this wiki works can be found on the [[quickstart]] page, or you can go directly to the [[wiki:syntax|syntax page]]. ====== Introduction ====== * [[System Overview]] ====== Setup ====== Before we can do anything, we want to set up our compiler for comfortable use. Which way you want to use it, is your own choice. * [[Setting up UltraEdit as gccVB frontend]] * [[Setting up Eclipse as gccVB frontend]] * [[Setting up Programmers Notepad as gccVB frontend]] ====== Getting Started ====== After everything is set up, we can start programming. Here's some well-documented sample code for beginners to start learning. Advanced users can skip this part. * [[http://www.vr32.de/content/downloads/roms/vb_programming_intro_demo.zip|Sample Demo]] * [[http://www.acm.uiuc.edu/webmonkeys/book/c_guide/|Handy C language reference]] ====== VB Programming Documentation ====== * Graphics Subsystem * [[Graphics Overview]] * [[Characters]] * [[Background Map]] * [[Object]] * [[Affine]] * [[World]] * [[BGM Normal Mode]] * [[BGM Object Mode]] * [[BGM HBias Mode]] * [[BGM Affine Mode]] * Colors * [[Palettes and Transparency]] * [[Brightness]] * [[Repeat]] * [[GClock]] * [[Direct Screen Draw]] * [[Column Table]] * Audio Subsystem * [[Audio Overview]] * [[VSU Register Map]] * Memory and I/O Registers * [[Condensed Memory Map]] * [[Detailed Memory Map]] * [[Info at the end of the ROM]] * [[Info at the end of the ROM#List of Publisher IDs|List of Publisher IDs]] * [[Info at the end of the ROM#List of Game IDs|List of Game IDs]] * CPU * [[Overview]] * Peripherals * [[Controller Port]] * [[Link Port]] * [[Cartridge]] * [[Timer]] * [[Interrupts/Exceptions|Interrupt Generator]] * [[Instruction Summary]] * [[V810 Opcode Formats]] * [[Opcode Summary]] * [[Instruction Details]] * [[Reset]] ====== Other Documentation ====== * [[vbJAEngine Programmer's Guide]] * [[How to compile gccVB]] ======= Mad Scientists' Laboratory ======= Does it need to be added to the VB? Should it be removed? What about replacing it with a faster, smaller, or just plain //better// version? This is the place for all those crazy things that simply //must// be done to, with, or for the VB... **just because we can!** * [[Analog Control|Adding Proportional ("Analog") Controls to the VB]] ====== References ====== * [[http://www.goliathindustries.com/vb/|Tucker, David]]. //Virtual Boy Programmers Manual//. * [[http://www.goliathindustries.com/vb/|Tucker, David]]. //A brief introduction to Affine mode programming//. ====== Links ====== More info about coding for and/or hacking the Virtual Boy can be found on the following sites: * [[http://www.goliathindustries.com/vb/|The Unofficial Nintendo Virtual Boy Homepage]]\\ Homepage of the Reality Boy Emulator as well as the very useful "VB Programmer's Manual". * [[http://www.projectvb.com/|Project: VB]]\\ Some hacking tutorials, sample codes and tech info! * [[http://www.emuunlim.com/VirtualE/|Virtual-E Homepage]]\\ Homepage of the Virtual-E Emulator and the Virtual Environment IDE. It also contains some programming tutorials. They're all focused on Assembly, though.