Saturday, September 9, 2017

VR64, Virtual Reality Goggles for the Commodore 64



The VR64 project is my attempt to make VR goggles for the commodore 64.



The project started with my 12 year old daughter's science fair.  She studied VR goggles.  We were able to make our own "Google Cardboard" style goggles, 3D images, and even a 3D movie.  Of course we used our smart phones as screens and video cameras.

I kept thinking, why can't this be done for our beloved commodore 64?  So I built the VR64 using three components, a $10 plastic VR goggle, a $32 LCD and a cheap power transformer (plus lots of glue gun fun!).
VR64 Demo Video

I split the screen into two sections, one for the left eye and one for the right.  Each section is 19 columns by 25 rows, and the center two rows are not used.  Each eye, has 152X200 pixels in high resolution and only 76X200 in multi-color mode!


After experimenting, I found that objects at the same location in both eyes looked like a "normal" distance.  If the objects both moved towards the center, through the VR64, the object would appear in the same location but closer to the user!  I found that I could move objects up to 10 pixels towards the center each (20 pixels closer to each other) and maintain the 3D effect.  At a movement of about 13 pixels, my eyes got confused.

At first I was also moving the objects away from the center, but images with objects both away and towards the center were hard to focus on.  After thinking about how the eyes look at objects close and far, it seems obvious that objects far away approach being straight in front of each eye.  When objects are close, each eye sees it as closer to the center.  In no case in reality do the objects move further out.  
Graphic from my daughter's science fair poster!

So I settled on objects at the same center being the furthest out and only moving them both towards the center, up to 10 pixels each, as the 3D effect.  It actually works quite well!

I made a few 3D images from actual camera shots.  They are OK, but not too impressive.  I honestly didn't spend too much time on this.  It may be better to use high resolution dithered images.

Of course you can't have fun on a c64 without playing video games.  So I made a VR64 game.  This is only my third computer game and my second ML/Assembler program.

My VR64 Game is "Street Defender"


I am very happy with the 3D effect of this game!






I have tried to make a video so that people can view this through something like google cardboard or compatible devices.  Hopefully I got the spacing right!

I made it by balancing my phone above the LCD used in the VR64.  Compared to real life, it is worse than what is seen when using the VR64.  It is too washed out in the beginning.  The black background is glowing and not pure black in this video.  Also the text is blurry in this video.  When the game screen comes on, the contrast looks better, but some color is lost.  For instance the moon is much more yellow in the real thing.  However, I hope this gives you a good idea of the 3D effect that is achieved!  Let me know if this doesn't work with your goggles.
Google Cardboard compatible video


Here is my build video of the VR64.  I hope you build your own!  The alignment program is on the "Street Defender" c64 disk. (see link below)
Build Video of VR64

Here is my presentation at the ECCC 2017 / VCFMW 12 show where this was debuted.
Show presentation of the VR64

* UPDATE *
The latest version of the game supports an Atari Driving controller to be used to rotate your view.  Here's a video about it!



 <-- Optional Paypal support for these projects
Free links to components, artwork and VR64 game:

22 comments:

  1. Would be pretty straightforward to make a 3D image viewer for the goggles as well. I wonder if somebody could encode a 3D muvie!?!?!?! The possibilities are endless!

    ReplyDelete
  2. Hi there! That's really great. Saw the video on Youtube and would love to interview you for our next issue of Kilobyte Magazine. Please get in touch and write to kilobytemag[at]gmail[dot]com.

    ReplyDelete
  3. this is pretty rad! watched the video & it looks like a lot of work getting the letter spacing just right & everything. Perfect blend of old and new tech. :)

    ReplyDelete
  4. I was wondering what software / books you used to develop the game?

    MattvD

    ReplyDelete
    Replies
    1. Besides the "user's guide" that comes with the c64, the three main books are "c64 programmer's reference guide", "Compute's Mapping the C64", and "Machine Language for the Commodore 64 and other Commodore Computers" by the great Jim Butterfield. Also join Lemon64. People there will help you through stumbles.

      http://www.bombjack.org/commodore/commodore/
      http://www.bombjack.org/commodore/books.htm#MACHINE_LANGUAGE_and_ASSEMBLY_LANGUAGE
      http://www.lemon64.com/forum/viewtopic.php?p=767732#767732

      Delete
  5. thanks , that's really great...
    again please

    ReplyDelete
  6. Excellent. One could probably modify the UK version of Aliens (by Electric Dreams, iirc?) to do the same thing - which may be genuinely scary at times.

    ReplyDelete
  7. I would like to try this somewhere out! JUST FOR FUN! ;-)

    ReplyDelete
  8. Hello,
    anybody tried to build VR64 for PAL Commodore 64?

    I have bought the parts, including the 7" display, hope the same type as suggested, but it does not work with PAL Commodore 64.
    I have tested it on 3 various PAL C64 machines, with 2 different A/V cables.
    The result is only flickering of the disoplay, rarely one frame of complete picture is shortly visible.

    Display runs well with NTSC Apple I replica and with PAL Sinclair ZX Spectrum.

    I would like to know, if anybody with PAL machine has experienced this, too.

    ReplyDelete
    Replies
    1. This is a known problem, the C64 has no proper FBAS signal. So it cones to sync problems. There is a solution called syncfix. This solves the problem with newer displays

      Delete
  9. Hi Dex,

    I just found your comment marked as spam and have released it. Sorry!

    I went through a few displays before I found one that worked with the commodore composite signal. I have recently updated the links on this blog to point to the ones I am currently buying. These displays support both NTSC and PAL. I suspect the one you got is having trouble detecting the commodore composite and it is not a PAL vs NTSC thing.

    By the way, not only does the VR64 hardware support both NTSC and PAL, but so does the Street Defender game.

    Hope this helps,

    Jim

    ReplyDelete
  10. Hi Jim,

    I would be interested in a joystick version of your gane, to play it on a Commodore C64 GS (game system), which has no keyboard.
    Do you have time to change your game in this way?
    Otherwise I could patch the game of course by myself but hacking games I did in the 80s :-)

    ReplyDelete
    Replies
    1. How would you map it? There are two directions (LEFT, RIGHT) and four attack keys (PUNCH, KNIFE, GUN, GRENADE).

      Delete
  11. Just wanted to say thanks for putting this together. The VR64 is an awesome addition to my C64 and my friends and I get a kick out of Street Defender. The vintage stickers look totally awesome, btw. Nice work!

    ReplyDelete
  12. VR64, Virtual Reality Goggles is really great for the Commodore. watched the video & it looks like a lot of work getting the letter spacing just right & everything.

    ReplyDelete
  13. You have written a helpful post to spent your time. So i really appreciate it. I always read your blog post cause your post are very interesting.

    ReplyDelete
  14. Hi Jim, made one of your VR headsets and I'm very impressed! Are you planning on developing any more games? There is definitely a market for them.

    ReplyDelete
    Replies
    1. Hi Unknown! :)
      That's great you made a VR64 and enjoyed it! I am working on another game, but It's been slow going! Sorry, I can't promise anything as of yet....

      Delete
    2. Excellent, I'll keep checking back on here for updates. Cheers, Paul

      Delete