We're using cookies to ensure you get the best experience on our website. More info
Understood
@jweinbergRegistered September 7, 2011Active 2 years, 10 months ago
26 Replies made

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.

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.

I don’t accept donations anyway, just hugs.

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.

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!

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.

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.

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.

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

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. 🙂

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

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

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

Ironed out more issues with the BGs, including the CPU usage problems. I’m not sure where the graphics glitch seen after the game starts is coming from. I’m likely clobbering the OAM somewhere along the line.

http://cl.ly/180k2l2k0Q1f3V2R0w3W

Decided to use all that extra room in my CPU time now to fix some drawing issues. Now support pretty much 100% of the features for normal BGs and OBJs.

http://cl.ly/0T0t1n3V2c440w1D0M0A

Need to reoptimize those routines now to bring the CPU back down to a sane level.

I spent my time today optimizing, managed to cut CPU usage in half, need to get that in half again to be happy.

http://cl.ly/2i0v3F2g1e362s2O1J2Y

Spent some time with getting timing working properly. I was able to optimize to the point where it’ll run at full speed on my machine. I have a lot more to optimize out though, need to get it to at least 25% of where its at before I’ll be happy though.

http://cl.ly/0v3m041h3F1g163h3e2i

In THAT case, let there be 3d!

Now with support for Obj worlds and Normal mode BGs (including CHR flipping)

I’ve started using this thread as a bit of development log, if that is against forum rules, or is bothering anyone please let me know.

Attachments:

I take that back, looks like you do it in a quite different way that attempts to properly emulate the VIP timing. I have a hard time following the flow of your code there though.