Original Post

As part of my masters in CS I have been approved to write a virtual boy emulator. It will end up as part of one of my larger projects (www.openemu.org) In the meantime I figured I’d introduce myself here and announce the project.

Current status is ~70% of the CPU instructions partially emulated. The one thing I’m looking for is more detailed documentation than the Unofficial Dev Guide that is up on this site. There was some mention somewhere about the official development manual, but I can’t seem to find a link. Any help?

– Josh

39 Replies

More progress!

Solved the OAM issue that was evident in the previous video, I had a variable marked as signed that was supposed to be unsigned, causes fun subtle issues.

Some commercial games are now starting to be fully playable!

http://cl.ly/413R2Q042Z3M422k1b17

Implemented the hardware timer, brightness registers and redid a large chunk of the VIP to be less hacky, still have a lot of work there though.

More games are now playable, http://cl.ly/3O2d0A2B0G2I2z0c0R3R

Finally got around to looking at Affine mode, needs to be optimized, and parallax is off on it. But it works!

http://cl.ly/1E303P0p2H0E203p230m

I love Virtual boy and I really wish to see an actual good working emulator. So far. Thanks for all your hard work 😀 Iv seen the demo’s. Awesome job ^^

blackeyedgamer wrote:
I love Virtual boy and I really wish to see an actual good working emulator. So far. Thanks for all your hard work 😀 Iv seen the demo’s. Awesome job ^^

What’s “bad” or “broken” about Mednafen WIP or VBjin? I don’t know of a Mac binary for either one, but I’m sure they’re not too hard to compile (well, VBjin might have Windows-specific stuff…).

I’m not trying to take away from jweinberg’s excellent work, by any means. Keep it up, J! :thumpup:

I actually have trouble compiling Mendafen on OSX right now. SDL fails to build against llvm-gcc, and I’m not about to install a full GCC suite on here. 🙂

Was able to resolve SOME of the outstanding issues with affine layers. Still is FAR too slow. Playing Bound High sits around 80% CPU on my 1.8 Ghz i7

http://cl.ly/B4Ey

Made more visible progress, other than a lot of optimization and code cleanup, I finally tracked down a bug that was stopping SOME games from working.

http://cl.ly/3P0T1f2M470E0l0z3O3L

There are still a number of games that refuse to start at all, need to sit down and figure out why.

So, I found one of the major issues that was still left, and that fixed a number of games.

http://cl.ly/1m190i0y1G090E1S4326
http://cl.ly/2e0P2I111Q1n1r221i2r
http://cl.ly/2X0E1j3T2o0H1p0Y2X04
http://cl.ly/1R151h162b37182r2t0h

There are some ‘small’ issues that now cropped in games that were once working though. I need to hunt down why they suddenly started showing problems.

Great job so far ;P lol Maybe I should learn a thing or two about C++ and such so I can help xD but you’d probably be done by the time i’d learn one language…

Y’all thought I was dead, didn’t you!

So, I’ve started putting some more work into this in between preparing to move across the country and start a new job. I’ve stubbed out the framework needed for the sound emulation but have a bit of reading I need to do to understand how it all links together. The documentation I’m seeing is a little confusing to me.

Spent some time working out some of the rough edges this evening. Compatability is getting very high, only games I know of that show issues are..

3D Tetris – Isn’t properly displaying some graphics
Red Alarm – Fails to draw some pieces of game
Space Invaders – Doesn’t draw/move player missile?

Once I fix those I will start looking into sound.

Thanks!

Made even more progress this morning and squashed the issues in Space Invaders. It was setting out of bounds values for World.GP and I was treating them as is.

This just leaves 3D Tetris and Red Alarm, both of which are likely issues with the bit string ops.

Sounds Exciting 😀

If I had money I’d donate lol. Doesn’t mean I wont 🙂

I don’t accept donations anyway, just hugs.

Nice work.

> This just leaves 3D Tetris and Red Alarm, both of which are likely issues with the bit string ops.

Which bitstring instructions do they use?

Don’t have my notes in front of me, but I know Red Alarm makes heavy use of ORBSU and 3D Tetris of MOVBSU.

It’s also possible I have a subtle bug elsewhere, most of the issues I’ve run into now are mishandling of flags in my CPU core.

Welp, its been a long way to get here. But every commercial game is now playable in Virtual Utopia!

http://cl.ly/0q3V2a3c013s2J2Y2F2B

The bug killing Red Alarm and 3D Tetris was me not treating the offsets appropriately as 5bits, instead I was treating them as 32 bits…making for some very incorrect bit string ops.

Looks GREAT 😀
I’d love to try it out XD if possible.

 

Write a reply

You must be logged in to reply to this topic.