What's new

general state of N64 emulation?

MarathonMan

Emulator Developer
And as MarathonMan proved: completely unfeasible.

Don't speak so soon... I've almost got a tight loop containing LW instructions in kernel mode (i.e., worst case scenario given how I wrote the simulator) running at almost full speed on an highly-clocked i7, and within 50% of full speed on older architectures. Code containing user virtual address space accesses with the occasional cache miss will have vastly higher performance (i.e., ROMs).

I still have a few tricks up my sleeve that I can pull off too (in the last week alone, I was able to half the runtime of the aforementioned tight loop).

Now, if you said that multi-threaded cycle-accurate simulators were infeasible, I'd be in total agreement.
 

yukon

New member
And that's a big deal right there. I posted, and there's immediate replies. One of the replies is a programmer, talking about last week's work -- holy crap, active development. In fact, I recognize several developers. I over-generalize ("impossible on a keyboard...emulators aren't entirely good at controllers" etc), and there's no flames. Friendly active community, although I have waded through some recent flame threads.

Especially though, I'm running an emulator and frontend that are both less than a year old.

cycle accuracy is thoroughly overrated, overstated, and almost entirely misunderstood by the majority of people who actually emulate games.
Well, I can't program, so I go by descriptions & articles, and often misunderstand. I like having both options, reasonable speed or accurate emulation. I don't know how cycle accurate simulation was described, but time precision fixes games nobody knows are broken. It raises hard emulation problems to solve, but avoids endless small per-game fixes for~392 games total. Maybe a frontend-integrated compatibility database would help, but maybe it's not needed. It's an interesting development.

And as MarathonMan proved: completely unfeasible.
I don't know. bsnes uses cooperative multithreading somehow, along with a couple tradeoffs. I believe GPGPU work will impact emulation performance (scribd.com/doc/57575157/GPU-based-emulation-of-a-processor), although difficult with timing accuracy. JIT is popular. Extremely accurate N64 emulation may be impossible until quantum computing, but I'm sure there are not-quite-accurate tradeoffs available to cycle-accurate emulation. That's argument for the other thread, and my not knowing makes me more optimistic ;-). The duplication of effort is disappointing, but more telling is seeing the optimism of several developers. I think this informs the State of N64 Emulation Today.
 

Zuzma

New member
I thought the problem was the hardware wasn't well understood, mainly the RCP. I imagine it'd be pretty hard to write a fast emulator when you don't understand certain things.
 

naddel81

New member
Thanks for the interesting discussion and the general state of n64 emulation by the thread starter.

I was years out of the n64 emu stuff until I recently was caught by the urge of playing goldeneye on hdmi with my sisters and brothers again. So I had to try several different emus and plugins and settings to find the best option (1964 0.85 by stolen to prevent the n64 frame drops. Jabo's video plugin because glide produces flickering in multiplayer and n-rage plus rumble drivers for xinput to make my 360 pad rumble).
To figure that out it took me hours of testing. Why? Why can't the scene just work together? I am sure that we could have much better compatibility this way!
And by the way: why is it that I could play n64 games a decade ago on my old p3 500mhz using uhle and today I need a dual core to emulate everything maxed out. What is the big advantage of lle accuracy compared to uhle?

Would be great if someone could lighten things up for me a little.
Best wishes!
 
Last edited by a moderator:

Halcyon

New member
I agree that N64 Emulation has pretty much splintered into one huge pile of buggy, inconsistent stuff, and I think that it also has to do with the fact that Android has pretty much taken over the emulation scene in general. If you google "n64 emulator" you mostly get Android app and discussions about Android apps (most of which are produced solely to throw ads at the user).

We need to consolidate everything into a single emulator solution for Linux, Windows and Mac and treat Android as a secondary port, not a primary development platform.
 

Surkow

Member
I agree that N64 Emulation has pretty much splintered into one huge pile of buggy, inconsistent stuff, and I think that it also has to do with the fact that Android has pretty much taken over the emulation scene in general. If you google "n64 emulator" you mostly get Android app and discussions about Android apps (most of which are produced solely to throw ads at the user).

We need to consolidate everything into a single emulator solution for Linux, Windows and Mac and treat Android as a secondary port, not a primary development platform.
Android N64 emulators are based on Mupen64Plus using Rice, gln64 or Glide64 as video plugin. Most emulators for Android are simply ports and do not fix issues related to accuracy. So I disagree with the general notion that development only happens in the mobile world. Without the original emulators there wouldn't be any emulators in the Google Play store to begin with.
 

DETOMINE

New member
I agree that N64 Emulation has pretty much splintered into one huge pile of buggy, inconsistent stuff, and I think that it also has to do with the fact that Android has pretty much taken over the emulation scene in general. If you google "n64 emulator" you mostly get Android app and discussions about Android apps (most of which are produced solely to throw ads at the user).
We need to consolidate everything into a single emulator solution for Linux, Windows and Mac and treat Android as a secondary port, not a primary development platform.
As far as I can tell, that's not true.
Mupen64plus is the leading free project for linux/windows/(mac?).
Project64 (beta) is actively developed and looks better every day (not really free and for windows only).
MarathonMan is also developing a cycle accurate emulator, and it may help to understand (and correct) some of the issues remaining in N64's emulation.
 

Rodimus Primal

New member
Isn't most of the emulators on Android ports of Windows/Linux emulators?

Project 64 beta is looking very promising but needs a bit of work. I really hope that there will be a public version soon!

I can NEVER get Mupen64plus to work on Windows. I've tried multiple frontend GUIs and its a no go.

I hope Marathon Man's emulator will be the leading N64 emulator. It's not often someone is as upfront as he is when it comes to the development of an emulator and that is truly refreshing IMO.
 

ShadowFX

Guardian
that is truly refreshing IMO.
Right with you on that one. Though for most end users it will become truly interesting when the RDP and Input becomes emulated well enough. Don't forget that Hacktarux also began development a while ago, even though it's silent on his front.
 

yukon

New member
Normally I love public betas and early code. Many eyes bring much information and even bug patches, adding to public knowledge. Mr.S_L is completely right; outside open-source, it only whips up a furor about how nothing works and good people suck. I believe Project64 2.0 released today, by odd coincidence in my ~6 month absence.

I'm impressed MarathonMan is still making progress on the cycle-accuracy problem, which technically is witchcraft. I'm improving nothing, but MM is, so he is awesome. I haven't checked in yet on 1964 or Mupen.

I was thinking about emulation metaphors, since I still have trouble understanding. Instead of the N64 as a math-processing computer, imagine an N64 food-processor. By watching some ingredients go into that official N64 and the food coming out, you can design a food-processor that makes the same food product. By matching the most common ingredient results, and tweaking whenever recipes come out terribly wrong, you rapidly get the same food in a general way (a high level). Still, the non-official food is sometimes too mushy or crunchy or tastes like crap, needing tweaks for every available recipe. A cycle-accurate food processor methodically replicates every part of the official N64 food processor, matching every spin of every type of blade for exactly as long. That should end up with exactly the same food product as the official one, but is incredibly difficult to coordinate quickly with the different blades in the non-official processor, and even to know those details about the original. Rarely, ingredients (say, lettuice) may chemically react with the cold steel of the old blade (and wilt), where the non-official new blade won't, so you'd need to duplicate things on a molecular level, like an integrated circuit emulator (eg. DICE) emulatting every part of the circuit, maybe even tracking electricity -- practically impossible with today's artificial food processors, but few people are passionate about wilted lettuice accuracy. If someone can't program but can't cook either, I'm sorry, but I tried ;-)


Anyway, everyone is talking N64 Android. I tried MAME on Android. Portable MAME is a dream of mine come true: Waiting in line, so lets have a little NeoGeo....Beautiful, but I'd want the N64 running mostly-accurately full-speed on a general-purpose personal computer first, yet android interest might spur that on.
 

Azimer

Emulator Developer
Moderator
LOL. Your food processor analogy makes sense and is hilarious. Thanks for the laugh. :) I personally don't give a damn about wilted lettuce accuracy.
 

mrmudlord

New member
Then in the eyes of byuu you are a fucking moron for NOT caring about how wilted your lettuce is.

Some people prefer that thier lettuce is handed to them on a fucking platter and all PERFECT. Those IDIOTS can go fuck themselves.
 

Azimer

Emulator Developer
Moderator
We each appreciate different aspects and levels of emulation. I am more interested in the personal "oh so this is how it works" aspect from a hardware point of view. It's why I got into emulation. However, my interest doesn't go beyond to every intricate detail. I also appreciate your point of view since it's inline with my own, but isn't there a better way to express it? I do like perfect lettuce just not perfect wilted lettuce. :) Once again, I love that analogy. It is fitting.
 

Top