We're using cookies to ensure you get the best experience on our website. More info
Understood
@dogpRegistered July 25, 2003Active 7 years, 2 months ago
1,461 Replies made

That looks like (an old version of) Hedgetrimmer’s link plug model (that he and I collaborated on). Is he okay with you selling them? It’d be nice to at least give him credit for the design.

We switched to a 3 piece design (with a solid nose and two rear shells) since the 2 piece version had a tendency to pop apart from the outward pressure at the nose, so gluing the halves together would probably be a good idea.

DogP

I’m really bad at making music, but I was at a VG convention a few years ago and met up with Brendan Becker (chiptune musician known as Inverse Phase) who was giving a talk on composing VG music, trackers, etc. Anyway, we had met previously when I loaned some arcade games to MAGFest (which he was running at the time), so as we were talking, I brought up composing VB music, making a tracker for VB, etc.

His suggestion was to use MilkyTracker. I’m going from several year old memory here, but he mentioned that you could create a customized set of VB instruments, so at a high level, you could create music that would be 1:1 with the VB’s capabilities. He offered to help me set it up, and even sounded excited about composing music for the VB (asked if I wanted some new music for my Mario Kart game <- I said it needed it very badly 😉 ). Anyway, somewhere it fell apart... I think I was supposed to send him details and audio samples of the VB's audio capabilities, and maybe I did, or maybe I dropped the ball. But after the conversation and a couple emails back and forth, it never went anywhere. But, if anyone's serious about a VB music tracker, you may want to look into MilkyTracker, and if you'd like assistance from someone with a lot of experience in the field, I'd be glad to try reaching out to Brendan again and see if there's anything he can help us out with. DogP

Yeah, the VB will easily run off two 18650s. It has a buck regulator with the input specified from 6V-13V. A long time ago I gutted a battery pack and put in a 2S LiPo battery, and it worked fine.

The biggest problem IMO (as RP brought up) is related to the protection circuitry. The VB will run down to about 5V on the input, but if you run the batteries down to 2.5V per cell, they’ll be ruined.

You can do a hard cutoff at 3.0V per cell to protect them, but the low battery warning on the VB doesn’t show up until just below 6V. So, with the protection circuit, you’ll get no warning that your batteries are low and that the VB is about to turn off. You can power the +5V rail directly with your own regulator, but again, that doesn’t provide a low battery warning.

IMO, the best solution would be to redesign the controller circuitry to roll in the battery, charger, protection, status, etc. But it’s probably not worth it, since the VB isn’t exactly “portable”… I personally almost always run it plugged into the wall.

DogP

I made a USB VB controller using one of the retroUSB kits: http://www.retrousb.com/product_info.php?cPath=21&products_id=44 . This was a long time ago when VB controllers were cheap though, so I simply ripped the cable out, put that board inside the case, and hard-wired a USB cable.

If mellott124 (or anyone) was to make a mating connector, that’d obviously be ideal, so you wouldn’t need to kill a functioning VB controller to make a USB one.

DogP

Looks really great… I hope you’re able to get these things into people’s hands. As it sounds like you’ve found out in the other thread, creating a “run” of them to sell gets very tedious and time consuming vs. just putting a few together for yourself.

I see you’re using an Atmel… not that there’s anything wrong with them, but if you’re not tied to that MCU, a PIC MCU may simplify the hardware a bit. For example, here’s the USB MCU board I made: http://www.planetvb.com/modules/newbb/viewtopic.php?post_id=34533#forumpost34533 , using a PIC16F1455. It runs directly from 5V, has hardware USB, has an internal oscillator that’s good enough for USB, etc. Basically your BOM consists of the MCU and a few caps/resistors. It all easily fit on a single side of the board.

DogP

Great job on the connectors! I’m really glad someone was able to step up and make this happen. Unfortunately I’ve been out of the “scene” for a while… I’ve got lots of projects I would love to finish, but free time is one of those things that just doesn’t seem to come as easily anymore. :/

DogP

I was talking to a friend of mine and he mentioned this hack came out… just wanted to drop in and say GREAT JOB!

DogP

The left and right displays are identical and interchangeable… as are US and JP displays.

DogP

Ah… yeah. It’s plenty small and simple already.

Here’s a pic of it as it sits on my bench (I was working on it last week… got sidetracked this week). I still need to get the bootloader going too, so anyone can upgrade to newer and better firmware in the future… but that should be very straightforward.

DogP

I don’t think that chip will work… it does I2C and UART, but not SPI (AFAICT).

I’ve already got the basic mode of transfer working… I’m working out the specific details for data direction, flow control, etc. I really want to do everything out of band, but sharing a single open collector pin makes things a bit more difficult, so I’m trying a few different ways to see what’s the least complex, most robust, etc.

DogP

I agree… it’s unlikely to be caused by the cartridge. I usually use the Mario Clash intro to test displays… since you have that game as well, I’d recommend watching the entire intro and see if the problems pop up as well.

DogP

Similar story here, though it was 8 years ago. I had gotten a pretty good job straight out of college (same place I was working part-time during college), but we weren’t getting much interesting work, so it got a bit boring.

After a year or so, I decided to apply for jobs at three different companies, and got full day interviews at all three (basically a series of back to back 30 minute interviews with a different engineer… plus a “lunch” where they send you with a couple engineers that basically keep the interview going while you’re eating 😛 ). Some people like to grill you on stuff, but most are like regular engineers, which just want to talk engineering and get an idea of what you’ve done, what you know, etc.

So, anyway… whenever they’d ask what I’m working on, I’d always ask “At work, or at home?”, and go into what I did at work, but explain that the work isn’t very exciting… then start talking about all the reverse engineering, programming of games, reprogrammable cartridges, etc… and that was shortly after I had made my VB FPGA video adapter, so I walked quite a few of them through the development of that. One guy asked if I had any code samples, so I pulled up some of my homebrew VB code.

Oh, and when I wrote my resume, I originally wasn’t planning to put anything related to my hobbies on there, but a friend of mine convinced me to, and after having been through the process, I’d highly recommend it. The resume gets you in the door, and that gives the interviewer something else to ask about (rather than coming up with generic questions to ask).

Anyway, I ended up getting offers from all 3 companies, and when I was on the fence about two of them, the one place (who I work for) upped their offer to make my decision easier. 🙂

Since I’ve been there, I’ve interviewed some people as well… I always ask about hobbies, hoping to hear stories like mine… but unfortunately, I haven’t come across anyone like that yet (most “cool” projects have been robotics that they did in college). Though if they’re into video games, my favorite interview question is “how do you beat Ganon in Legend of Zelda?” 😉

So, anyway… I definitely think the VB helped me get the job by giving me more experience in engineering related stuff, setting me apart from others (as someone who’s really “into it”), and helping me stay relaxed and interview well, since it’s something I’m so comfortable talking in depth about.

DogP

3DBoyColor wrote:
Would the VB’s power be cut in half if it had to draw two completely different screens at the same time?

If you want to basically cut the VB’s processing power in half, have it play two completely different games… one using the left screen, speaker, buttons, etc… and the other using the right ones. 😉

DogP

No… not really. Most games simply use the parallax value to give sprites a different offset on the left and right screen, which is no more work than making that the same on both screens (parallax of 0), or even simply turning off one screen.

Even if it does individually draw the left and right eyes, most games don’t have their CPU completely consumed by drawing graphics (ideally, the game logic would be somewhat complex and not just a graphics demo). Even something like a raycaster engine should only use marginally more processing by drawing two eyes, since it’s still tracing the same rays… just manually computing the parallax and writing to two different frame buffer locations.

Where it would consume nearly double the computing power is a graphics demo with a complex graphics engine, accurately computed for the view of each eye (similar to how current VR systems compute the scene from each eye). It doesn’t make much sense to do for the VB, but it could be done.

DogP

HorvatM wrote:
Would it be easier/cheaper to make a RS-232 version (if the VB can even do one of the standard speeds) and have everyone buy their own adapter if needed? They’re quite cheap.

The VB isn’t compatible with asynchronous serial like RS232… it requires a clocked serial port, similar to SPI. What I’m using now isn’t expensive… just requires some code that I just haven’t had time to tweak to get it just right.

DogP

The opto is on a small board attached to the display housing (by the mirror)… it’s completely unrelated to the LED displays, so you can send them out to get the ribbons soldered if you want them as spares. Of course soldering them won’t fix this problem.

Mimiphi wrote:
It would play a few notes of the warning screen then black out playing a single note non stop as if it froze.

I didn’t catch this part earlier… I’d agree that it’s more likely a motherboard problem than an opto problem, since the music shouldn’t stop like that if the displays lose lock.

DogP

This is still on… I was really hoping to have something together by the end of last year (VB’s 20th), but it just didn’t happen. :/

Yes, regarding the pins… I purchased a large lot of complete USB connectors and just pull the pins from that. It comes out no more expensive than any standard pin (Molex, etc.) from Digikey.

Regarding the USB link… an FTDI circuit (FT2232C) is what I originally created many years ago, and then created a really crammed version (with the updated FT2232D) to actually fit in the VB link shell (I think I posted a pic of it earlier in the thread). I wasn’t particularly happy with how it turned out (difficult to manufacture, expensive, not enough room for an EEPROM, etc.), so I completely redesigned the USB link circuit to be simpler (and IMO, better). But getting the USB link just right is really the main reason for the whole delay. 🙁

I’d say the link connector shell itself is nearly perfect… I think one final revision will get it.

DogP

It definitely sounds like a mirror problem. You could shine a flashlight inside the eyes to make sure nothing is loose/obstructing the movement of the mirrors… but I’d guess it’s an opto problem (sensors to detect the speed of the mirrors). It definitely sounds like it’s trying (and failing miserably) to control the mirror speed.

When the VB can’t lock the mirrors to 50 Hz, the games won’t boot (they’ll stay at a black screen), and if they go out of lock during gameplay, the displays will turn off.

DogP

When you say it hums and vibrates… is it a consistent hum/vibration like a normal VB running, or a sorta warbling faster/slower hum/vibration (sorta like this user’s, though maybe not as extreme: http://www.planetvb.com/modules/newbb/viewtopic.php?topic_id=6374&forum=1 )?

The VB has optos on the mirrors and attempts to vibrate them at 50 Hz. If the optos are failing, it’ll cause the mirrors to partially or even completely fail to lock. When it partially fails, you’ll see an unstable screen that keeps growing and shrinking in width… and if it completely fails, it’ll hunt badly, even buzzing (like that video above), and stay blank.

Anyway, what I’m getting at, is that the VB games won’t boot until the displays are locked, and if they become unlocked during gameplay, they’ll turn off. Some games will begin playing music before the displays are locked, but otherwise seem locked up. And if you occasionally see the screen for a few seconds, it could be that it’s close to being locked so it begins to boot, and then fails.

Of course it could also be a motherboard problem, causing the game to crash.

DogP

DrWho198 wrote:
if you have 11 adress lines (0-10) then you can access 1024 possitions. Multiply this by the 8bit (a0-a7) this chip is and you get 8Mbit or 1Mbyte. The parallel mode is used to program the chip in a programmer. In operation these chips were meant to be used sector based.

You might want to check your math again. 😉 You’re off by an order of magnitude (and 1). 11 address lines gives you 2^11, or 2048… multiply by 8 and you’re at 16Kbit (2KByte). You’ll need two of them in parallel for the 16-bit bus, but that’s still only 4KB. 😛

DrWho198 wrote:
Stepping to 16bit flash would mean I need even more pins.

Technically, fewer total pins, since it’d be one 16-bit chip, rather than two 8-bit chips (which requires routing duplicate address/control lines to each chip).

DogP