The VE Project

Author:
Alberto Covarrubias


  This document is an early but useful introduction on the VirtualE project. Written to solve many of the doubts about what this VE project expects to do and the goals to cover if this project is completed. To understand this document you need only a little background on programming and had seen at least once the Virtual Boy.

Main Scene

The VirtualE idea came first when I saw my VB stored in its original box with dust around and all my games for this system in the same state. When I looked these I asked to my self... Why don't you plug this VB on your PC? and really... Why not? is cheap and it can be used as a 3D device for the PC. Well... after this little story, the VirtualE started with many things happened (described in project section by date).

I'm trying to follow a basic squeme to use the VB as a PC device, as explained in the following figure:

As you can see, both systems (PC and VB) needes a software part and a hardware part. This is defined using the Client/Server Arquitecture, so for instance, the PC for us will be the SERVER and the VB will be the CLIENT. In the next section of this document all parts will be explained.

Details

PC: This part needs two details to be covered. First, we need a solid graphic language to build a complete scene (2D or 3D) and as easy as possible. Second, we need a communication protocol to transfer this scene to VB as fast as possible.

To cover the first thing, we can use a standard as OpenGL, but with the needed variations to make a scene as we want. The second thing is covered defining a simple transfer protocol to send the complete scene to client(VB). I called this complete variation VEGL, because it will be an API as OpenGL for programming but with using an external device to display.

VEGL will be designed using three layers of abstraction:

  1. Physical Layer: The wire to connect the VB and the PC. A physycal media.
  2. I/O Layer: Provides a protocol to transfer data to VB. Uses functions for transfer and receive all the needed data. Serves the next layer.
  3. Graphic Layer: Oriented to programmer and graphics. You can make a program using defined functions for this purpose, so for a programmer will be easy to make a game or any application using VB as the display device without think on how does it's interfaced.

Virtual Boy: This part needs also two things. First, an interpreter for the PC communications protocol to display data as its received. Second, an Electronic cartridge to store this interpreter.

The complexity of this part is based on the solid knowledge of the GameLink Socket (or Link port) because is not easy to find the Nintendo documents about VB development, and it also needs electronic pieces to build this cartridge. The interpreter can be finished if we have both parts.

The complete scheme can be looked as follows:

With all this information you can see that the VirtualE project is possible and the most difficult part to face is focused on client(VB), but is still possible. If the VB is used as a device for PC and this project is finished the potential is quite awesome, you can build your own games and applications in a real 3D display, or port Quake and Doom, or almost any 3D game to this plataform if I make it full compatible with OpenGL.

To finish this project would be helpful the VB Developer Docs, so I can start to work on the Interpreter. If you know some way to have these docs or you want to help, please write to virtuale98@yahoo.com .

 

Any comment? Write us: virtuale98@yahoo.com

The Virtual Boy and Nintendo logos are trademarks of Nintendo Co. Ltd.