12/09/08 - Wow, another long stretch! DogP made a very nice contribution to the emulator and I had been doodling around with it for the past several months so I decided it was time to release a new version. DogP added sound support (win32 only) and added link port emulation using tcp/ip. He also fixed some major bugs in Affine mode and in the opcodes. Now all commercial roms run and all but the direct draw games are fully playable. I have been cleaning up the code in preparation of porting it to both SDL and the XBox. This should open things up to being ported to more interesting platforms like the Nintendo Wii. You can grab reality boy 0.84 for windows here and the source code here. I decided to stop distributing the compiled versions of both linux and dos, you can still compile them from source if you need them.
3/26/07 - Long time no see... Here is a slightly updated V810 compiler, this has the crt0.s and vb.ld already linked in and has an improved build script that should make install a lot easier. GCC 2.95 for V810 and Virtual Boy
My father in law came down with lung cancer a year ago, and last summer we moved back to Tucson to be with him, sadly he passed away shortly after the move (don't smoke kids). So now Life is getting back to normal and I'm finaly back to looking for a videogame job, hopefully in Colorado. And of cource life has stabalized to the point that I am starting to play around with the Virtual Boy again. Hopefully I can make an Affine 3D demo and get GDB working with loading and debugging over the link port.
3/26/06 - Oops, I goofed up the uploads, if you had trouble unpacking the archives I uploaded yesterday, download them again. Also I updated my gccvb patch to automaticaly include the vb.ld file in the build. Also I improved the documentation.
3/24/06 - Wow things got busy at work, I never thought I would be learning so much about fortran (yuck) and strange Motif bugs. Anyway before my brain completely stagnate and I forget everything I decided to put up my latest compiler and Alpha build of reality boy.
You can grab the compiler from here. Just grab everything in the directory and follow the directions in vb_v810_gcc_01.zip. This does not include any of the helper functions defined in the old gccvb packages. For now just import the elements you need. In the future we need to put together a proper library that is separate from the compiler. But I can assure you that this compiler is capable of building most anything you through at it.
You can download the latest alpha as well. This fixes many small (obscure) screen wrapping bugs, and implements overplain, also it fixes a bug in the parallel port driver, hstretch, and adds more brightness controls. Consider this an early alpha, I have done absolutely no testing and I really tore apart the graphics code, also the documentation is out of date.
11/28/05 - I have been working hard on fixing up gccvb, I discovered that all of the problems i was having (no support for doubles, can't link more than one .c file, cant run optimizer) all steamed from a lack of a default library. To that end I have newlib running and it fixes everything. I don't have printf or new/delete going yet but I think that sprintf works, and memcpy etc are all there along with a full math library. I am 90% of the way through building a new crt0.o and link script that will eliminate the need for paddr and allow more customization of interrupt and exception handlers in the header. I have a small bug in my interrupt handler but I think its easy to fix. I managed to build a very large project with this configuration (and it ran!) anyway wish I could say more.
I'm going to start working on porting GDB over to the VB next that will allow you to download code to the VB through the link cable and step through it on the real hardware. I figure this is a better use of my time than making my own serial loader since it will include much more. I should be releasing proper patches once everything is working correctly.
11/08/05 - I started to update my programming doc, but its boring work so I'm not to into it. Anyway I did some real VB hardware testing and I don't quite have affine mode working as it should. I definitely don't understand parallax and possibly other aspects as well. Anyway I cant ship untill affine is in good shape (yes I am a perfectionist).
In other news I ordered some 512 K flash chips in a DIP package: AM29F040B-90PC from Newark Electronics. This dropped in perfectly to my EPROM cartridge and I do not need an expensive adapter for my EPROM programmer. I should have done this a long time ago, now I can turn around code in 10 minutes down from an hour with EPROMs. I would like to get the link cable going, then I could turn it around in a minuet or less. Anyway I'm going to start experimenting with in game programming of the flash cart and link cable communications, along with finishing out affine mode scaling and parallax.
10/31/05 - I have affine mode working now but I still need to verify how affine based parallax works. So it's time for me to take apart my Virtual boy and fix the screen! Anyway I should have everything buttoned back together and ready for a release here soon, hopefully I will have it out before Thanksgiving. In a preliminary rundown of the games the only graphics bugs left appear to be from bad opcodes and interrupt timing issues, except I still have a question of how to clear the screen on direct screen draws.
Time to think about what to tackle next. I would really like to get the vector based games working, but at the same time I am interested in playing with sound. finally my development tools leave a lot to be desired so I would like to build the link cable loader, or at least a generic memory probe that can be driven by the link cable. Anyway Lots of choices and little time. If you have a preference send in your vote.
10/28/05 - Eureka, it works. I implemented my new screen wrapping algorithm and now I have near perfect emulation of bgmaps. I still need to implement Affine mode wrapping along with other clean ups, but for now I am excited. On a down note this does not fix Virtual Labs or Vertical Force. Its time to break down and disassemble there screen update algorithms.
10/26/05 - I uploaded my screen test demo here. Don't wast to much time trying it out in reality boy it will only result in headaches and lots of GPF's. Anyway I also drew up a diagram of how screen wrapping works for anyone who cares. I will be updating the programming document along with a fixed up version of reality boy as time permits.
10/24/05 - I worked all weekend on my Virtual boy screen test program, screen shot below. It's almost ready for public release (not that it is interesting). Anyway I figured out that not only have I completely messed up screen wrapping but I also have SCX/SCY messed up (that is the joining of multiple BGMaps to make a giant BGMap). Interestingly enough most games do the right thing and so I was getting away with some really bad code. I will do a complete write up of it once I have everything working. Oh and on a side note I figured out the GX scrolling bug that has been plaguing VFishing and VLabs. If you set the W and H parameters to 1024 than the screen will wrap around when offsetting it with GX/GY, I must be masking W and H somewhere in my code so I never saw that they were getting set to 1024.
10/20/05 - Release 0.83 is nearing completion, I have dubed it the 3D release since I fixed most of the 3D bugs. I'm still investigating the screen wrapping bug's that plague games like virtual fishing and VLabs. I wrote a simple test program to investigate screen wrapping on the real VB and so far it has not turned up anything special. I have pined down the over and over plane char stuff however so the next release will have that fully working. I would like this next release to have perfect graphics emulation, than I can concentrate on the other areas of the VB that need more help, like bit string opcodes, interrupt timing, direct screen access, and sound emulation. I'm exited about getting code running on the VB again and I might start writing a suite of test tools, if time permits.
I took a trip out to Denver Colorado a couple of weeks ago to try and make some contacts with Idol Minds. Things went well, I got to spend and evening with their lead programmer and an artist. Very informative, working in video games is going to be as tough as everyone says. They are totally putting in 80 hour weeks, I'm hoping that does not put to much of a strain on my family. At least for now they are all for it. I'm really hoping to be in a game company in Denver by christmas, but it is up to God on that one.
08/28/05 - A bunch of updates today. First their was a bad bug in the debug build of reality boy, so I added beta 0.82.1 to fix the problem. I added a bunch of new patents on the VB displays, get them in the programming section. I fixed some typos in the affine mode doc. And most of all, I uploaded the code to my affine mode demos. Hopefully someone can take this further and get a real affine mode demo going.
I spent the weekend working with my oscilloscope and the VB, it was a lot of fun. Things I learned: the clock is 20MHz on the nose, the display runs on a 8MHz clock, the display's oscillate with a 20ms period, the interrupter flag follows a 10ms period. I have not verified it yet but I assume that refresh takes 5ms, I still need to find the right pins to probe. I have a full pin out of the mirror controller and I have a good idea of the pin out for the LED driver. I verified that none of the power and ground pins are used for a /reset line. Finally, it appears that the unknown edge connector pin 5, follows pin 3 (WE\), but I need a faster scope to verify anything.
08/22/05 - I'm getting close to releasing my affine mode demos, I just need to tighten up the libraries a bit. I think the Vb has a reset line on the edge connector that is permanently tied to +5v. I will need to investigate this some more.
08/08/05 - I have placed the first installment of my Affine Mode doc on the web, It still needs work, mostly with the fixed point math stuff. I'm still working on the source code for the demo, along with my demo games. I will be releasing them as I get time. A brief introduction to Affine mode programming
I managed to compile GCC for Linux, I'm working on fixing up some of the various bugs I have run across. I also am planing on porting it to GCC 4.0 as time allows. Anyway I need to automate the build process so that anyone can build it with just a make/make install command, for now their is to much hand holding.
I'm also releasing Reality Boy 0.82 final, I have not fixed all that I had wanted to but I don't have time to polish it yet. This release builds under Linux and DOS again, and has a lot of improvements to the debugger under windows. There are some graphics bugs in the affine mode stuff that I need to work through, but I just have not had the time to sit down and build a proper test suite for affine mode graphics yet that I can run on the real hardware. Reality Boy v0.82 final
08/02/05 - I'm still here, I have about 90% of my first Affine mode coding document completed. I just need to finish up my pole position demo and it is done. As a further distraction I have begone working on a 3D asteroids clone with affine mode scaling on the asteroids, it should look great on the real virtual boy. And finally I have been slowly fixing up the debugger. I have fixed up 90% of the debugger bugs and I will release a debug enabled build with the next rev of reality_boy.
07/13/05 - Just a teaser to show you what I have been doing. You can download a simple Affine mode rotate demo based on parasites great scaling demo. I'm working on an Affine mode writeup that explains all of the math involved along with source code examples. I'm also fixing up the debugger, currently it is not to happy with windows.
06/16/05 - Many small updates: I have been slowly optimizing my keyword placement and I finally have my page back in the top 10 for 'virtual boy' on Goggle. Mostly I just refined the introduction page and expanded most of my slang like turning VB to Virtual Boy...
I have uploaded a new reality boy release 0.82 alpha 2 This fixes several minor flaws: the front end works on 9x boxes now (race condition at startup), Full screen scaling works at ALL resolutions (but it is still ugly, need to implement a smother algorithm), and I added back in the -bright option so you can change the screen brightness. This is almost essential for windows 9x as it has terrible color management. I also stubbed in a -hstretch flag that will eventually double the width of the display so shutter glasses work. For now it is just a stub. Many other small fixes I cant think of as well. This is very stable on my machines (WinXP and Win98 OSR2) but I still need to fix the linux and dos builds before I can release the source code and make it official.
I have been delinquent in posting a link to Christian Schaefers reality launcher which he kindly upgraded with support for 0.82 alpha 1. I'm sure he will have the fixes for Alpha 2 in there soon as well.
In other news I have begun applying for video game jobs in the Bolder, CO area (near Denver) So if any of you have contacts in that area I would love the help.
05/18/05 - I'm just to busy right now to polish off this release of my reality boy emulator so I decided to release an early alpha with known bugs. The big change is support for a real virtual boy controller on the parallel port. This is the only way to play virtual boy games on the computer that even comes close to matching the experience of a real VB, that is if you use some 3D glasses as well.
Basically the following things are definitely busted:
- Joystick - enabling this will almost certainly lock up the program
- Frame skip - It appears that frame skip and speed throttling are incompatible. I don't know how long this has been busted but it is.
- Screen shots - Saving a screen shot to a read only directory crashes the program.
- Screen Scaling - Scaling is busted for all resolutions but 800x600
- Parallel Port - Program will fail to load without InOut32.dll, should be optional also I think we will get a nasty error if you don't have a parallel port
- Joystick interrupt - I had to disable the joystick interrupt in the virtual boy in order to support the parallel port. This does not seem to affect any games but it might.
Please, if you find any other bugs let me know. I have had a report that the rboy_frontend crashed on Win98 boxes, let me know if it fails/works for you.
In other news The Jedi has released a nice tutorial (in French) on using reality boy on French computers (complete with keyboard mappings), It's very nice!. you can find it here
04/18/05 - Just for reference I am still here. I had to go to a conference for work so it was a chance to work on reality boy. I started abstracting the Allegro library (its more entrenched than I thought), and I added in support for a virtual boy controller hooked up to the parallel port. I stubbed in support for a joystick as well and I might finish it up before the release. I also added in a full frame scale option so you can play games using the whole screen. this does however introduce some artifacts since I don't do any smoothing of the scaled image. I need to do more testing and I have some other small fixes I want to include as well before releasing it.
Great news: Christian Schaefers has released a new reality boy front end called reality launcher. I have been testing it for a while now and I give it two thumbs up. So go test it out for him...
03/11/05 - Yippe, we have a girl! Anyway here name is Corianna Jane Tucker and if you want to know more go here.
03/03/05 - We don't have a baby yet, but soon =0) Anyway several people pointed out that my new rboy_frontend did not handle spaces in the rom path (but it can handle spaces in the exe path, I think). So I fixed it, you can download a fixed exe here. Or just grab the latest reality_boy package. I also fixed the documentation up to handle the new flags I added last time. And finally I update the source code. I had borrowed some code from another project and I forgot to comment out the old includes. Now you should be able to build the fronted on a clean system.
Oh, and in case you missed it I finished updating my picture frame site with distro images and full docs so you to can make a I-Opener picture frame. You can find more info here. My next project is to make a table top MAME cabinet out of an old KDS PIII 800MHz laptop. I'm on the hunt for some low cost parts, so if you have any of the following:
- 12 arcade buttons
- 4/8 way convertible joystick
- flush mount analog joystick (with thumb and finger trigger)
- track ball, any type
- spinner control (paddle) of some sort
I noticed at the doctors the other day that a lot of medical equipment comes with a spinner and track ball built in so you can operate it with one hand. Id love to get my hands on a control panel from a mixing deck or some medical equipment (or even an arcade cabinet). I don't need anything fancy, I can rewire almost any control. If you have any of the above and want to part with it, or have a good source of cheap parts (like $50 total) let me know.
02/24/05 - Well It's official, I'm 30 (ugh). I got a cool Creative Zen Xtra
30GB MP3 player for my birthday, very nice! Anyway I uploaded a new
version of reality boy (v0.81)
with the following features:
Improved speed throttling and an option to turn it off. FPS status indicator. Screen scaling 1x-4x. I also included my front end in the windows zip. Source code is available on the download page for anyone that wants to improve it.
02/21/05 - reality boy Front end is up and working but I have some small things to take care of before I release it. First off I need to finish the documentation for the front end. And Second I want to make some small improvements to Reality Boy to better handle the front end. For example doubling the display size, optionally turning off speed throttling (and fixing it, it's to slow) and supporting debug mode in the same executable as the release.
Oh, I also rebuilt the dos port of reality boy to bring it up to v0.81. Hopefully there are not that many dos people left, but it was easy to do. I have thought about making a statically built linux version to see if I could distribute a linux binary, let me know if you are interested and I will whip one out for you. It is trivial to build the linux version for yourself as long as you have the compiler, x libraries, and allegro installed.
02/19/05 - I gave up working on my character import utility, I figured out how to make V-IDE do what I want. I still think my own import utility would be a better idea but I don't have the time to finish it.
I have been working on a new front end to Reality Boy, so all of you whiner's can stop complaining about command line options (shez, DOS is not that bad =0) Anyway enough complaining, here is a screen shot of how it looks now. Hopefully that will let more people enjoy Reality Boy.
If you want to see why I have not had time for the Virtual Boy look over here. I finally got around to converting my I-Opener into a picture frame, what a cool little device this turned out to be.
01/12/05 - This is your chance for fame and fortune, earn the respect and admiration of your peers, women will swoon at your feet. I need artwork for an up coming virtual boy demo. Good, bad, or ugly, no artwork will be turned down. I'm looking for an example of multiple BGMaps so I want a picture of a field with hills in the distance... or a shot of a TV with cardboard actors inside, etc. Use your imagination (and artistic talent) and be prepared for the inevitable onslote of fame and fortune. All submissions must be original work (no screen captures of your favorite game), and should be rendered to 4 colors and optimized for 8x8 char maps if possible (although I'm desperate so I will take anything you can draw).
I'm working on a BGMap/Char import utility so that I can lay out my BGMaps and Char table by hand and auto generate the include and c code to load them in the VB. I'm 99% done with that It just needs some testing. From there I am working on a new demo program that shows off more of the virtual boy and a serial boot loader so that you can load small test programs into a real virtual boy without needing to reprogram your cartridge each time. I'm also working on moving the web site over to the Template Toolkit so that I don't have to do as much hand editing to update the layout.
Oh, I also removed the links to the HTML and Word versions of my programming doc. The web version is way out of date and people are still trying to use it, and there is no good reason to have the word version since the PDF copy is an exact duplicate (or it would be if I was better about regenerating it).
01/01/05 - Happy new year! I uploaded a new links page for your approval. I don't have time to do it proper, If you think I should link to your site email me a link and I will add it. Also I fixed the makefiles for Reality Boy so now the DOS and Linux versions build correctly. Let me know if you have any trouble with them, you can get the new source code here: fixed source. There is a bug in the bit string code that I have been working on all weekend. I think it is all that is holding up the last three games, Hopefully I can get it fixed before my head explodes.
12/20/04 - I reworked the site layout a little, now everything is based off of style sheets. Unfortunately I did not update any content, but it does look better. Also Amos Bieler pointed out a bug in the key mapping in Reality boy. So here is the bug fix version. -snip- Reality_Boy 0.8 fixed., source.
12/04/04 - I Discovered that the 'over' bit in the world table determines whether the screen wraps or not. Its not clear if this only works in Affine mode or not. I did a complete overhaul of the pics page, now I have screen-shots from every game. I also did a comprehensive analysis of game bugs. About half of these bugs are simple fixes, and I will make every effort to fix them before I release the next rev. Some are Harder and will have to wait for version 0.9. I also added in the new key mapping. I really like it, its much easier to remember where the keys are.
- Galactic Pinball
- In Mouse House
- Jack Brothers
- Nesters Funky Bowling
- SD Gundam
- Space Squash
- V-Base Ball
- Mario Clash
- Tower disappears when scrolling down in intro
- Mario Tennis
- Player select screen corrupted, (bad instruction?)
- Panic Bomber
- Background scrolls off screen in demo play (see VFish)
- Space Invaders
- Intro corrupts screen
- Off by 8 error with fists
- Cracked screen disappears to fast
- Distortion on Pause screen
- Distortion on Intro bowling animation (don't clear the screen fast enough)
- Lanes don't line up with walls
- Water slides off screen (does not wrap)
- Needs -vfhack switch
- 'W' power-ups disappear when going left on screen
- Stars don't wrap on background (same bug as VFish)
- Wario Land
- Intro Demo is to dark
- Pit breaks apart in falling scene
- Water World
- Screen blinks
- Sunset does not wrap (vfish)
- Red Alarm
- Direct screen draws fail to clear properly
- 3D Tetris
- Intro is corrupt, crashes if run to completion
- Direct screen draws don't clear properly
- locks up on demo screen and when game starts
12/01/04 - Ok I spent my Thanksgiving weekend working on the Affine (rotation) mode and was able to finally figure it all out. Now the hands rotate properly in Teleroboxer and the alien rotates in Insmouse House. I have a few small graphical glitches left to fix like too many airplanes showing up in the WarioLand intro. I think its all a simple screen wrapping problem but I can't fix warioland without breaking vbowling. Anyway once I nail these bug fixes and clean up some small details, like a new keyboard mapping, I will release a new version of Reality_boy. meanwhile I have a rough description of how the affine mode works here and I hope to have a affine demo wiped out soon. Affine notes
11/19/04 - Cleaned up the downloads page and updated Reality Boy to Alpha 0.8 available here, and source. This should bring Reality_Boy up to the same level as Red_Dragon. Basically all the games are playable except the ones that rely on direct screen draws (3D Tetris, Red Alarm and Virtual Golf). I did not port over any of the 'enhancements' from Red Dragon, such as the cheats, GUI and sound emulation. That was there code and I'm not going to swipe it.
11/18/04 - I did a bunch of cleanup on this page,
especially on the programming page. To-Do: fix the
downloads and links pages, and convert everything to
style-sheets. I spent some cash to get all of the
patents in PDF format, you can get them all from the
I have added in several speed-ups to the emulator, and have a big one in the works. I have VLabs playable but I managed to break several other games. Also I think I finally understand the Affine mode, I'm going to try and get rotation working before I release the full emulator w/source. I expect to be finished with V0.8 by christmas at the latest.
10/31/04 - I have uploaded an alpha release of reality_boy here. This is basically a back port of all the fixes from red_dragon (a top notch emulator if I ever saw one). I compiled it for windows, but I have not added in any features like the debugger. This is a really rough port so don't complain if it does not work for you.
10/28/04 - I have successfully built reality boy to windows but I have a lot more work to do before its fit for public consumption. I have slowly been updating my programming doc as well, in an attempt to document what is known about the VB at this time. I uploaded a preliminary version here virtual boy programming document. I'm hoping to rework this into a docbook format so that I can more readily generate the PDF and HTML versions form the same source.
10/05/04 - After a 5 year absence I'm back! In hopes of getting a video game job I decided it was time to dust off my emulator and bring it up to date. So far I have begun back porting the bug fixes from red_dragon and have done a quick port to windows. I debated whether I should dump reality boy and start with red_dragon as my base but I did not want to step on anybodies toes. The creators of red_dragon have done an impressive job and I did not fee right snaking there code out form under them.
In case you have not noticed the web site has moved to my domain (goliathindustries). sooner or later the sys admins at NAU will wise up to the fact I'm not going there anymore and will delete my dana account.
So here is my plans for the emulator, etc:
- Porting reality_boy to windows, and adding a nice GUI to the debugger.
- many enhancements to the debugger, including a smart disassembler that can tag things like loops and registers for you (think pseudo C code)
- Back porting the fixes found in red_dragon (mostly opcode bugs and scaling support
- Updating the web site to reflect changes in the VB scene (low priority)
- Updating the programming doc to cover new areas (scaling/rotation/link port) as well as finishing the known areas (interrupts, etc)
- Adding gdb support via the link cable to the great gccvb package.
- Developing a flash ram based cartridge if I can scrape up the funds
So as you can see that is a long list, I'm really just concentrating on getting a version of reality_boy up and running that I could show to a game developer. If I have the time I will definitely be working my way down the list.
In other news, I have graduated from NAU with a BS in Computer Science and Engineering. I have a 2 year old son named Aidan Ryan, and my wife is expecting our second child in February (yea). Oh and I'm currently working for the US Geological Survey, One of the lesser known branches of the government, doing embedded systems development, custom digital camera work, and some unix/linux development and maintenance. It would be a perfect job if I was doing more coding.
See the Old Newz page for more newz.