Original Post

I found out a bit late that the Virtual Boy’s 30th anniversary is coming up,
so I rushed to get something out there in time.

It’s not perfect yet — it’s still EPROM-based and the board size is a bit non-standard,
but I’ll keep updating it.

All design files (PCB, 3D case, laser-cut shell) are fully open source,
and I’m planning to make a USB-flashable, single-board version in the future.


Check it out!

Image 1
Image 2
Image 3

Happy Virtual Boy 30th Anniversary!

  • This topic was modified 6 months, 1 week ago by 8678D.
32 Replies

Excellent work 👏 do I see 128mbit options there?

The 64/128Mbit labels refer to extra pin connectors that I reserved for possible future ROM board expansion.

Currently, the design supports up to 32Mbit EPROM, but once I finish more testing,
I plan to either release a daughter board (…), or a dedicated 128Mbit cartridge design!

Awesome 8678D, Thank you for sharing! It’s great to have an open source alternative to the existing flash carts, the more options there are, the better. 🙂

Nice job!

Awesome, thank you 🙂

Thanks!
So one need to procure the board based on “VBRC_C.zip”, then need a shell (3d printed or laser cut), then those components
2mm 2x30p connector
M27C160 16Mbit EPROM
0.1uF 0805 capacitor
and M3 5mm flat-head screws.
Is the “cartridge connector size 4.0 × 64.0 × 5.3 mm” the same like “2mm 2x30p connector”?

EEPROM based is good, because we should have an eeprom writer here in the company which I work for 😉

  • This reply was modified 6 months, 1 week ago by abarth.
  • This reply was modified 6 months, 1 week ago by abarth.

That’s right!
You need to use Pitch 2mm 2x30p connector, and may need to sand it a bit.

And those connectors are directly solderable onto the PCB?
And then they fit into the VB without additional modification (besides the mentioned sanding down)?

Another question: how does the ROM needs to be prepared seeing the “known issues”?

EDIT: I have ordered 10 PCBs, let´s see what happens 😉

  • This reply was modified 6 months, 1 week ago by abarth.
  • This reply was modified 6 months, 1 week ago by abarth.
  • This reply was modified 6 months, 1 week ago by abarth.
Attachments:

Great Job! Thank you!

Yes, those connectors are directly solderable,
and they work without any modifications (except for sanding them slightly to fit the Virtual Boy slot)

I also recommend using the shell I uploaded on GitHub,
as it makes insertion much easier. (See the photo for reference.)

About Known issues, I suspect the issue might be with my EPROMs were Bad.
Some games didn’t work, and although I’m not entirely sure why,
it might be related to how I resized them to fit into a 16Mbit EPROM.
(For example, Bound High was originally 16Mbit, while Jack Bros was only 8Mbit. So I just padded the remaining 8Mbit with 0xFF when flashing Jack Bros.)

Attachments:

Thanks for the reply 🙂
I have ordered 10 PCBs, 10 connectors and will now order 10 EPROMs. For the capacitors I check the stock in our company 😉

Thanks for the picture of the shell! Is the back just plain?
I have checked the stl-file for the shell on Github but didn´t realise that they fit because the dimensions were different (with regards to the PCB size). But if you confirm (what you already did) that those fit I will organise printing them.

Regarding the ROM preparing: yes, I also assume that padding is the key.

Do you have an idea how to split 32 Mbit ROMs into 2×16 Mbit ROMs? And can I then just program the EPROMs with those files?

Another question: is the SRAM necessary? Or can the EPROM already save game states?

  • This reply was modified 6 months, 1 week ago by abarth.
  • This reply was modified 6 months, 1 week ago by abarth.

Oh, yes. the PCB and printed shell sizes are slightly different.
That’s because the PCB follows the original Virtual Boy cartridge board size.

But don’t worry
The screw holes line up properly with the 3D-printed case,
so it still fits and works fine.
(Just in case, I forgot to leave clearance around the nut and screw hole area on the PCB, so it’s best to tighten the screws gently to avoid damaging the surrounding traces.)

As for ROM issues:
Honestly, I probably messed up the ROM splitting and padding, so I’m not 100% sure what’s wrong : (
In my case, I just split and padded the ROM using HxD Editor, which is pretty easy to use.

Also, keep in mind that SRAM (or something similar) is required for saving.
EPROM alone can’t save data.

I used FRAM (not SRAM! — because I hate using batteries to save data), but you can also use NvSRAM or similar chips. they should work fine.

I’m planning to retest those 32Mbit ROMs this week,
so hopefully I can figure out what’s causing the remaining issues!
Thanks!

Okay, I have ordered 5 pcs. of the shells now. I have no 3d printer, so I let them made.

Please keep me updated regarding ROM padding and splitting, thank you.

Oh, that´s new to me. I thought EPROM can store save games. Well, I have ordered 5 FRAMS.

Btw, there is spelling error in your BOM. “FW16W08” should be “FM16W08”:
Comp Desc
2mm 2x30p connector For cart-to-console connection
M27C160 16Mbit EPROM
FW16W08 Alt for SRAM

  • This reply was modified 6 months ago by abarth.
  • This reply was modified 6 months ago by abarth.

Thank you! I need to correct FRAM typo.
I’ve just tested Wario land, and the FRAM was working his job.
And if you want to write an 8Mbit ROM, simply copy and paste it once to double its size.
(Do not pad the remaining 8Mbit with 0xFF)

Thanks for taking an interest.

Thank you too for posting your files in the first place 🙂
And thanks for looking at the padding topic.
It really helps me a lot. Because programming an EPROM (at work), soldering it, trying it, and then getting a fail is quite annyoing, because this means: desoldering, erasing it (at work), reprogramming it (at work) and so on.

  • This reply was modified 6 months ago by abarth.

Careful with the FM16W08 FRAM. Its not compatible with VB. I could never get it working and we just designed it out of MrCART because of save problems. CE isn’t treated the same as SRAM and its in the FRAM datasheet as a major delta.

Everyone wants to stay away from battery backed, myself included in the past, but it’s not that big of deal and bom cost can be about the same or cheaper now due to limited nvSRAM availability and increased cost. MRAM also isn’t cheaper. FRAM isn’t compatible.

That is unfortunate. My PCBs arrive tomorrow. The connectors are already here.

So I can only build games without save function with the current design?


@8678D
: you have tested Wario Land it seemed to work, can you confirm this?
And can you confirm the orientation of the FRAM? I have no pin-1-marking on mine.

EDIT:
got the PCBs, the FRAMs, the EPROMs and the connectors.

EDIT2:
got the FRAMs soldered, but have it done by one person in our company. Hopefully I can solder the other stuff by myself.

EDIT3: got three connectors soldered, and sanded down. Carts fit into the VB, although it is a bit of fiddling around.

  • This reply was modified 5 months, 3 weeks ago by abarth.
  • This reply was modified 5 months, 3 weeks ago by abarth.
  • This reply was modified 5 months, 3 weeks ago by abarth.

@abarth Sorry for the late reply! I’ve been super busy lately and just haven’t had the time. From the looks of the photo, it seems like the save data is being preserved, but after actually checking it, I noticed the crash issue. It seems like, as mellott124 mentioned, the FRAM might not be fully compatible. I think I’ll need to look for another chip. I’m really sorry about that. 🙁

That said, the FRAM is in the correct spot. From my experience, it works best when it’s tightly connected to the Virtual Boy.

Sorry again for the late reply, and I think I need to test the save function again.

Attachments:

Thank you for your reply and the confirmation.
That is really sad. Without save feature the cards are only half the fun…

I got the shells in the meantime, they also seem not to fit very well.
How did you tighten the screws? I have M3 and they are too small to be screwed in.

Another question: can you tell my in more detail how to prepare the ROMs?
For example how to split 32Mbit ROMs?
And how to pad 512kByte ROMs? Do I need to copy and paste the code 4 times to get 16 Mbits?

Thanks for helping out!

I placed nuts on the opposite side when tightening!
Since there’s no space for screw heads on the front, the design is based on countersunk screws — so regular screw heads might not fit well. I used M3 5mm screws.

For smaller ROMs, you can just copy them 4 times to fill the size, and for larger ROMs, it seems you can just cut them in half (though I haven’t fully tested that yet).

Sorry if I released this build too early in such an incomplete state.
I really hope it works well for you!

 

Write a reply

You must be logged in to reply to this topic.