We're using cookies to ensure you get the best experience on our website. More info
Understood
@mednafenRegistered July 19, 2008Active 5 years, 1 month ago
33 Replies made

Use Wii-Mednafen instead of Wiirtual Boy, it’s faster.

I find it absurd that you’re not giving me free waffles.

Mednafen’s VB emulation is not CPU-timing-accurate, and it was not designed to be CPU-timing-accurate, for performance and other reasons(it runs code faster than the CPU on an actual VB, mostly due to lack of wait state emulation and lack of register hazard pipeline stall emulation or whatever it’s called).

It’s not VIP draw timing accurate either, but that was a bit more due to lack of test data.

  • This reply was modified 10 years, 2 months ago by Mednafen.

IIRC(and I might not be :p), there is a small penalty for branching to an address not aligned to a 32-bit boundary.

There is no way Mednafen’s VB emulation is going to run anywhere near full-speed on something like a PSP.

In case anyone wants to try it out on an emulator.

Would anyone be able to record Music 01 in its entirety from their VB and upload/link to it here?

You can bypass the simple anti-emulator check in Mednafen’s debugger if you know what you’re doing, but you probably don’t want to do that because it sounding like crap due to noise emulation deficiencies kind of ruins the experience. 😉

Partially-unrolled loops operating on multiple 32-bit units per iteration will most likely be faster than movbsu for your use cases here.

As in something like:

uint32 *ptr = BLAHBLAHBLAH;
uint32 *ptr_bound = ptr + length_in_32bitunits;

while(ptr < ptr_bound)
{
 ptr[0] = 0;
 ptr[1] = 0;
 ptr[2] = 0;
 ptr[3] = 0;
 ptr += 4;
}

Are drawPoint() and abs(), and all functions they invoke, inline?

What sort of line drawing algorithm are you using?

Which timing values?

VirtualBoyX wrote:
Thanks the way I had to make my profile picture(sonic in red and black) was only to use microsoft paint and then make custom colors to the certain shades of sonics color

In GIMP, Colors->Map->Rotate Colors can change the hue of colors like so:


In GIMP, Image->Mode Grayscale, back to RGB, then Colors->Levels and set the G and B channels to 0.


You could do a hybrid static-recompiler(using hints of what data is code from running the game in a specialized emulator)/interpreter(for paths the static-recompiler didn’t handle) emulation along with extra code to translate in real-time the video, audio, etc. port reads and writes.

Which version of gcc?

0.9.15-WIP @ http://forum.fobby.net/index.php?t=msg&th=589&start=0&#038;

There aren’t too many VB-relevant changes with this WIP release; there’s the new “vb.sidebyside.separation” setting, and VB emulation will work on big-endian(PowerPC, SPARC, etc.) platforms now.

When copying where length is sufficiently large(for cache miss/loading and register spilling reasons), and (src_addr & 0x3) == (dest_addr & 0x3), movbsu should always be slower than a well-optimized loop running from cache due to movbsu having a dummy read slot(IIRC, at least on a stock V810) for every 32-bit quantity transferred.

Code as in: 8 ld.w followed by 8 st.w.

If you want to be (too) clever, you could perform calculations that don’t, or have minimal, memory accesses, and interleave the instructions in-between the store instructions to take advantage of the write buffer and “absorb” some of the wait states(in addition to somewhat avoid use-immediately-after-set penalties in your calculations).

Hopefully this one won’t have any horrendous regressions!

0.9.14-WIP @ http://forum.fobby.net/index.php?t=msg&th=583&start=0&#038;

Err, there was a rather significant problem, I’ll upload a fixed version later.