VOGONS


First post, by Kerr Avon

User metadata
Rank Oldbie
Rank
Oldbie

My favourite console is the N64, rven after all these years, mainly because of Goldeneye and Perfect Dark, which to me are still the two best first person shooters ever made (I'm loving Halo 4 at the moment, and I thought that Dishonoured was mostly very good, except too easy, too short, and the ending seems to be very abrupt, but even after twelve years nothing even comes close to Perfect Dark, if you ask me).

Anyway, periodically I try N64 emulation so that I can use the game hacks such as Goldeneye X (http://www.moddb.com/mods/goldeneye-x), other Goldeneye and Perfect Dark hacks (http://www.shootersforever.com/forums_message … oards/index.php) and the Super Mario 64 hacks (http://www.romhacking.net/?page=hacks&genre=& … =&hacksearch=Go), and I'm always frustrated by how flaky N64 emulation is, so I finally gave in and bought an Everdrive 64 (http://www.assemblergames.com/forums/showthre … rive-64-English) and it's utterly fantastic; it not only allows me to play all PAL N64 games on my PAL N64 by loading the game ROM files from an SD Card (I've got an 8GB card, which fits all of the games on), but it also allows me to play NTSC and JAP games on the N64, plus ROM hacks (it doesn't know, or care, if a file is a commercial game, a modifed commercial game, or an amateur-written homebrew progam). The problem is, I still can't play the Super Mario 64 hacks, annoying.

The (few) other game hacks I've tried all work great (Goldeneye X is brilliant!), but it turns out that the Super Mario 64 hacks won't work on any real N64 at all, as their code crashes real N64s, but doesn't crash N64 emulators, and the hacks were made using a program that was only tested on emulators. Meaning that unless someone updates the SM64 editor program and recompiles all of the SM64 hacks, then the only way to play them is on an emulator.

But no matter what I try, I can't get an N64 emulator to run to my satisfaction. Even when I get seemingly perfect emulation of an N64 game (or at least the best emulation I can get by juggling the plugins), I still see glitches or (worse) the odd slowdown or speed-glitching. But why is N64 emulation still so far from perfect? I mean, fourteen years ago UltraHLE amazed us all by emulating Super Mario 64, Goldeneye, and Legend of Zelda: Ocarina of Time. On the PCs of the day (i.e. around a Pentium 1 233MHz for most people). But now, nearly a decade and a half later, with PCs much more powerful, we still haven't got near-perfect, or at leats very good, N64 emulation.

I emulate a variety of 8 and 16 bit machines, and they are all more or less perfect. Granted an N64 is more complicated than a SNES or Atari ST, you'd think (well, I did) that by now N64 emulators would be as good and as automatic (as in not needing configuring of the sound and graphics for each seperate game by the user) as SNES or ST emulators were five years ten years ago.

So how do other people here feel about N64 emulation? Do you think it's OK, good enough, disappointing, or whatever? And do you, like me, still use a real N64 (and so forgo the advantages of emulation, such as snapshot save and loading at any time, higher resolutions, on-line play, etc) because you feel emulation is still too inferior to the real thing to be enjoyed.

Reply 1 of 89, by leileilol

User metadata
Rank l33t++
Rank
l33t++

Brain of a N64 emu author:
1. Get Goldeneye 007 and Legend of Zelda Ocarina of Time working
2. End development

I'd like to see a proper, NO PLUGINS N64 emulator someday, like pSX was for the Playstation.
MESS is on the right track toward this, but of course, since it's slow and underdeveloped, no one really cares.

apsosig.png
long live PCem

Reply 2 of 89, by swaaye

User metadata
Rank l33t++
Rank
l33t++

Yeah it started a hack job and instead of starting over and doing complete emulation that works better it just got more hacky and convoluted. The motives were to make the hit games run on 2000 PCs, not build a robust emulator. And that is the framework we still have because I think the real talent lost interest long ago.

MESS has potential but the progress is almost non existent and they might be so obsessed with perfection that it will be incredibly demanding to run.

Reply 3 of 89, by Jorpho

User metadata
Rank l33t++
Rank
l33t++
Kerr Avon wrote:

But why is N64 emulation still so far from perfect? I mean, fourteen years ago UltraHLE amazed us all by emulating Super Mario 64, Goldeneye, and Legend of Zelda: Ocarina of Time. On the PCs of the day (i.e. around a Pentium 1 233MHz for most people). But now, nearly a decade and a half later, with PCs much more powerful, we still haven't got near-perfect, or at leats very good, N64 emulation.

As the name implies, UltraHLE is ultra high level emulation, meaning it doesn't really emulate the hardware at all. Basically, since the N64 hardware is so complex, N64 game programmers used code libraries to access the hardware; as I understand it, many programmers even at different companies used the same libraries. Rather than actually emulate the hardware, UltraHLE just recognized when ROMs were calling the functions in these libraries, and returned the expected result. (Anything that didn't use those libraries, of course, wouldn't work.)

Anyway, I thought the last "beta" version of Project 64 was supposed to be pretty good?

I played through Kirby 64 and Diddy Kong Racing quite a few years ago (on correspondingly old hardware). Kirby 64 definitely didn't work very well (as I recall, the life meter completely refused to display properly), but it was still playable. DKR was practically flawless.

Reply 4 of 89, by Dominus

User metadata
Rank DOSBox Moderator
Rank
DOSBox Moderator

I was one of the 99% that only wanted to play Zelda. I have fond memories of getting the rom off usenet through Outlook Express (anyone who attempted to download large binaries off usenet with OE knows what a pain that was) and playing it with UltraHLE. Majoras Mask I played with Project64 ages ago and that was quite fun. I have no more moral problems with having pirated those games as I payed for them years later on the Virtual Store on the Wii 😉

Windows 3.1x guide for DOSBox
60 seconds guide to DOSBox
DOSBox SVN snapshot for macOS (10.4-11.x ppc/intel 32/64bit) notarized for gatekeeper

Reply 5 of 89, by swaaye

User metadata
Rank l33t++
Rank
l33t++
Jorpho wrote:

Basically, since the N64 hardware is so complex, N64 game programmers used code libraries to access the hardware

N64 "emulators" do emulate the well-documented MIPS CPU, but not the RSP/RDP in the RCP chip. The RSP is a custom MIPS-like vector processor and typically handles audio and some graphics functions, and microcode defines a lot of how it works. RDP generates final images. The RSP microcode is the same for most games and so most games function similarly. The "emulators" translate what the games tell the RSP into something that works for D3D/OpenGL and some wave output. However, some games do use custom microcode and some of those are not playable. Factor 5 and Boss Game Studios games for example.

Anyway the reason I think it's not fully emulated is because the computational demands to do so are enormous even for today's hardware. It is full-featured 3D hardware, but it is not like any PC GPU/API, so it has to be done entirely on the CPU. MESS is going for this AFAIK.

Reply 6 of 89, by mr_bigmouth_502

User metadata
Rank Oldbie
Rank
Oldbie

I'm disappointed with the current state of N64 emulation as well. I used to be really into it about 5-6 years ago and I found that even though many games were playable, most had annoying bugs and glitches and some didn't even work at all. 😜 I've looked back into it ever since Dolphin reignited my interest in emulation, but it seems that things haven't changed on the N64 emulation front since like 2006. 😜 It's kinda sad to think that Gamecube/Wii games can actually be emulated more accurately than N64 games.

Reply 10 of 89, by [Zeus]

User metadata
Rank Newbie
Rank
Newbie

Never say never. Not every emu project is public from the very beginning.

Do you remember a guy nicknamed SF and his Xeon? He jumped out of nowhere with playable Halo while Cxbx ran only a simple homebrew demos.
I wonder what happened to him.

Reply 12 of 89, by Kerr Avon

User metadata
Rank Oldbie
Rank
Oldbie

>Never say never. Not every emu project is public from the very beginning.

That's a very good point. I remember Steem (a very good Atari ST/STe emulator) came out of nowhere, as the authors (two brothers) kept quiet until it was ready for release.

I do hope there's a (good) N64 emulator currently under secret development, soon to be released to the world - the N64 does have few games, relative to most consoles, but a few of the N64 games are some of the best ever made.

Reply 14 of 89, by Jorpho

User metadata
Rank l33t++
Rank
l33t++
Joey_sw wrote:

but why,there more C&D on N64 emulation

What makes you think that there is? Sometimes there may be C&Ds, other times people just get sick of working on something. (The conspiracy-minded will suggest that there are cases in which people say they got a C&D just because they got sick of working on something and want a convenient excuse to save face, but I think that might be stretching it.)

Reply 15 of 89, by mr_bigmouth_502

User metadata
Rank Oldbie
Rank
Oldbie

One thing I've often wondered is, why haven't any emulators/graphics plugins been able to do the lighting effects in Perfect Dark? Surely, it can't be THAT hard. 😜 I mean, the rest of the game seems to work fine on most emus (if you have the computer for it), but for whatever reason they just haven't been able to nail that or the tranquilizer blur effect.

Reply 17 of 89, by F2bnp

User metadata
Rank l33t
Rank
l33t

N64 is indeed pretty weak. I'd love to get an Everdrive 64 sometime, Krikzz (the guy behind the Everdrive flashcards) is awesome and fully supports his products, I've had the Everdrive MD since brand new and it is awesome!
It gets really really bad when trying Kaillera enabled emulators, such as Project 64k which do not run on the latest code. I was trying to play Super Smash Bros. with a friend from Latvia and it was running at something like 20fps, unacceptable!

SSF is fantastic though, I've watched it since 2006 or so and it has truly evolved over the years to one of the greatest emulators around. Fantastic stuff!

Reply 18 of 89, by Jorpho

User metadata
Rank l33t++
Rank
l33t++
mr_bigmouth_502 wrote:

One thing I've often wondered is, why haven't any emulators/graphics plugins been able to do the lighting effects in Perfect Dark? Surely, it can't be THAT hard. 😜 I mean, the rest of the game seems to work fine on most emus (if you have the computer for it), but for whatever reason they just haven't been able to nail that or the tranquilizer blur effect.

I remember back when Dr. Mario 64 wouldn't work correctly, simply because it was using a slightly unusual drawing technique that the video plugin standard at the time just wasn't able to accommodate.

Reply 19 of 89, by Stiletto

User metadata
Rank l33t++
Rank
l33t++

I decided to poke MESS's primary N64 emulation developer with a stick (if Sune is lurking: you _know_ that's always a good move! 😁) and point him towards this thread, here's what he had to say:

Just_Desserts wrote:
Regarding a few of the things people brought up: […]
Show full quote

Regarding a few of the things people brought up:

Kerr Avon wrote:

The (few) other game hacks I've tried all work great (Goldeneye X is brilliant!), but it turns out that the Super Mario 64 hacks won't work on any real N64 at all, as their code crashes real N64s, but doesn't crash N64 emulators, and the hacks were made using a program that was only tested on emulators.

Yes, that's correct, but ROM hacks that aren't tested on real hardware are a fairly common thing. Before bsnes came around, there were a ton of Super Mario World hacks floating around that didn't work on real hardware because zsnes and snes9x had (have?) faulty audio emulation. For what it's worth, these same Super Mario 64 hacks fail in the same way in MESS, as it has proper low-level emulation of the N64.

leileilol wrote:

MESS is on the right track toward this, but of course, since it's slow and underdeveloped, no one really cares.

Funny, considering as you people are complaining endlessly about high-level N64 emulators, one would think you'd be a bit more encouraging about what is ostensibly the only low-level emulator that actually runs games. It would be much faster if I could get a proper recompiler hooked up for the RSP, but my efforts in that regard are stymied by the fact that different N64 games have different requirements for how tightly the RSP and main CPU are synchronized. The RSP has the ability to request service from the CPU, and the CPU has the ability to request service from the RSP, and this symmetry is at odds with the whole principle behind dynamic recompilation, which is that you can recompile a large swath of a given CPU's code and run it in one go. This falls apart when you have two CPUs that can signal each other, as it's hard to tell when to end a given recompiled block in order to service the other CPU. Many games are just fine syncing 1-10 times per frame, others like World Driver Championship require extremely tight synchronization or the game will crash because the RSP or MIPS has not responded to the other in a sufficient amount of time.

swaaye wrote:

The RSP is a custom MIPS-like vector processor and typically handles audio and some graphics functions

No, that's not quite correct - the RSP is a MIPS processor. It has nearly all MIPS II opcodes, but instead of having an FPU available as COP1, the vector unit is available via COP1 instead. The other notable aspect is that it has a Harvard memory architecture rather than Von Neumann, as for simplicity's sake, SGI simply turned the cache RAM into actual program RAM, 4k for data and 4k for instructions.

swaaye wrote:

Anyway the reason I think it's not fully emulated is because the computational demands to do so are enormous even for today's hardware. It is full-featured 3D hardware, but it is not like any PC GPU/API, so it has to be done entirely on the CPU. MESS is going for this AFAIK.

That's correct. For a quick example of how the RDP differs from existing 3D hardware, consider the fact that triangles are not specified using 3D coordinates. Most if not all GPUs nowadays simply have a triangle defined by three triplets of floats - X0/Y0/Z0, X1/Y1/Z1, X2/Y2/Z2. By contrast, the RDP specifies the starting Y coordinate of each edge, and how much the edge moves for each Y coordinate. I can explain a bit more in-depth, but suffice it to say that you can draw a quad (with a flat bottom edge) by supplying degenerate values that would not actually result in an enclosed, 3-sided triangle. Goldeneye uses this to draw its sky with one triangle command instead of two.

Long story short, the only way to get accurate N64 emulation is by emulating both the RSP and main CPU, but this is at odds with the way dynamic recompilation works, so it will be rather difficult to work around this and still get acceptable performance.

Last edited by Stiletto on 2012-11-27, 16:00. Edited 1 time in total.

"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen

Stiletto