What's new

LLE Graphics Plugin

grand master

Emualtion Pimp
Why? To properly emulate the system for one...


Ok this is where my problem lies.
I REALLY hate where you are going with this topic. There seems to me that there is a belief among mame loyalists that mame and only mame emulates things properly. Mames philosophy is to emulate hardware AND not games. Therefore they emulate hardware and make no optimations and hence the ridiculous specs needed for some games.
I see NO difference between the emulation of ki in mame or ultra 64 emu. I see no reason why rave racer isnt emulated by viva nonno ( i basically think that it was jealously from behalf of some mame devs :getlost: ) (hle is the mame boogy man :term:
Dont get me wrong i like mame but in n64 hle graphics are serving there purpose.

I can name at least 30 games that have no probs. Ok so it isnt perfect but when you look at all the developments most problems are being fixed. (remember mame has a slew of games with probs).

Now back to the topic i think if the person wants to go for a lle then go ahead but what most ppl are saying is why???
Remember lle is not only more accurate but slower. IMO i would rather play a game with some discret probs (if there r any) than looking at a screen running at 3 fps and going "ooooo that looks accurate im glad they are emualting this accurately because it aint emulating the memories i had of this game."
The point is all the current greaphics probs ARE repairable. If this werent the case THEN we should start thinking of other means.

Now dont mean to flame or make controversy but i needed to let off some steam. Take it as my own stupid opinion for better or worst. Now im off to mexico:ermm:
 

Reznor007

New member
Hacktarux said:
True, but it wouldn't be solved by lle... Basically the only things that is done via hle is t&l and i don't think there's many games with issues in this area...

And no, gfx on the n64 is not based on ogl... Some particular things still reminds that it's done by sgi but that's all.

btw i've looked at this adsp thingy in mame source code and it seems like nothing compared to rsp processor... I can't believe it takes 1GHz... Well i may be wrong but it's not using any simd and you say it's running @ 10MHz.

It isn't based on OpenGL, but anything it can do can be done via OpenGL.

If you want to try a game with an ADSP try Mortal Kombat 2(used for sound) or Steel Talons/Race Driving(used for geometry).

Someone recently asked about N64 on the MAME board and this is what one MAME dev had to say(he also has dev'd on N64 commercial stuff)

The coprocessor (RSP: Reality Signal Processor) is a R4600 with 128-bit vector registers and instructions. No N64 emulator has ever successfully emulated it - instead they all resort to parsing the display and audio lists passed to it and HLEing, which results in glitches and compatibility headaches
 

Reznor007

New member
grand master said:
Ok this is where my problem lies.
I REALLY hate where you are going with this topic. There seems to me that there is a belief among mame loyalists that mame and only mame emulates things properly. Mames philosophy is to emulate hardware AND not games. Therefore they emulate hardware and make no optimations and hence the ridiculous specs needed for some games.
I see NO difference between the emulation of ki in mame or ultra 64 emu. I see no reason why rave racer isnt emulated by viva nonno ( i basically think that it was jealously from behalf of some mame devs :getlost: ) (hle is the mame boogy man :term:
Dont get me wrong i like mame but in n64 hle graphics are serving there purpose.

I can name at least 30 games that have no probs. Ok so it isnt perfect but when you look at all the developments most problems are being fixed. (remember mame has a slew of games with probs).

Now back to the topic i think if the person wants to go for a lle then go ahead but what most ppl are saying is why???
Remember lle is not only more accurate but slower. IMO i would rather play a game with some discret probs (if there r any) than looking at a screen running at 3 fps and going "ooooo that looks accurate im glad they are emualting this accurately because it aint emulating the memories i had of this game."
The point is all the current greaphics probs ARE repairable. If this werent the case THEN we should start thinking of other means.

Now dont mean to flame or make controversy but i needed to let off some steam. Take it as my own stupid opinion for better or worst. Now im off to mexico:ermm:

Actually there are optimizations. The 68000 and Z80 CPU cores have both C versions for portability and x86 assembly versions for speed. The assembly versions are used by default for x86 builds. Dynarec support is being added for the MIPS stuff right now. The blitter is done in ASM, there are tons of optimizations in the tilemap code, etc.

Differences between U64emu and MAME? Plenty. U64emu crashes when you do certain fatalities, MAME does not. U64emu has many sound issues, due to simulating the ADSP chip, MAME has perfect sound.

Vivanono? It's hardly an emulator...more like a "port" of the game. Sound and geometry is simulated, only the game program is emulated. The MAME System22 driver runs Rave Racer, Ace Driver, Alpine Racer, and Prop Cycle. Why haven't these games been added to Vivanono? Because they don't emulate the hardware enough for them to run.

And LLE isn't necessarily slow. Playstation emulators are LLE, all old console emus are(NES, SNES, etc.), and you can play those just fine on even a slow system.
 
OP
nephalim

nephalim

Psychic Vampire
LLE does not mean NO optimizations or hacks whatsoever. Maybe that's some people's philosophy, but not on any system that needs a decent cpu to run correctly.
 

Hacktarux

Emulator Developer
Moderator
Reznor007 said:
It isn't based on OpenGL, but anything it can do can be done via OpenGL.

If you want to try a game with an ADSP try Mortal Kombat 2(used for sound) or Steel Talons/Race Driving(used for geometry).

Someone recently asked about N64 on the MAME board and this is what one MAME dev had to say(he also has dev'd on N64 commercial stuff)

Sure you can do everything with opengl, but you'll need to emulate some part with software unless you're using very latest extensions that many people don't have...

Concerning the quote from this guy, pj64 is emulating the rsp using lle for all rsp tasks (including sound) besides t&l... r4000 with vector ops was what has been said by nintendo to the public... afaik rsp details weren't given to all companies developpers, but only to specific companies like rare... The ucodes were used like a driver... And i've already told you it's not really r4000, it doesn't have any arithmetic or any floating point, it nearly only has simd opcodes... The few standard mips opcodes that are there, are only used to manage loops, conditions...

I'll give you a little example to explain you what is done by hle currently. If you had to emulate a PC with a nvidia card, you should have to emulate the cpu... and then the video card. The video card contain a cpu that can be programmed to handle t&l only by nvidia and it's programmed when the driver is loaded. The gfx cpu is not documented but you know exactly what the code inside it is doing and everyone is using the same driver provided by nvidia coz you can't program it without info, so is it better to try emulating opcodes you aren't sure to understand or is it better to emulate the global functionnalities provided by nvidia and that you're able to fully understand ? Here i'm only talking about emulation quality not speed...
 

Reznor007

New member
I know what the microcode is for. However, what is being done now is only simulating the microcode software, not really emulating the RSP. If it were really emulated, plugins wouldn't have to support each specific ucode, it would just support the final call to the RDP, as it is not programmable, and only receives a certain set of commands. All ucodes end up outputting the same thing, but how they are done is what is changed.

The way MAME people see it, the core emulator should run the RSP microcode, and output a set of graphics drawing commands that would make up a new plugin spec. This is how PSX emulators work, and Zinc(PSX arcade emu) works this way also. That method is considered MAME acceptable as well. The only thing that isn't would be the hardware filtering, since PSX doesn't have that, but it's easily turned off in the plugin.

The that same guy I quoted has contact with Rare(I guess ex-Rare now) people.
 

Hacktarux

Emulator Developer
Moderator
Reznor007 said:
I know what the microcode is for. However, what is being done now is only simulating the microcode software, not really emulating the RSP. If it were really emulated, plugins wouldn't have to support each specific ucode, it would just support the final call to the RDP, as it is not programmable, and only receives a certain set of commands. All ucodes end up outputting the same thing, but how they are done is what is changed.

The way MAME people see it, the core emulator should run the RSP microcode, and output a set of graphics drawing commands that would make up a new plugin spec. This is how PSX emulators work, and Zinc(PSX arcade emu) works this way also. That method is considered MAME acceptable as well. The only thing that isn't would be the hardware filtering, since PSX doesn't have that, but it's easily turned off in the plugin.

The that same guy I quoted has contact with Rare(I guess ex-Rare now) people.

You seem to not read what i write...

- it is possible to write a lle plugin with current specs
- on current emus rsp is always emulated besides gfx tasks where t&l is simulated... (combiners, drawing modes rectangles and other things like that are directly processed by the rdp without any processing by the rsp on the real n64).

Of course you still have to select ucodes but it doesn't mean a huge part is actually simulated...

And rdp triangle commands are incredibly complex to decode and of course undocumented :/
 

Orkin

d1R3c764 & g1|\|64 m4|<3R
LLE RSP emulation would be the way to go in the future, games like Rouge Squadron will probably never be emulated without it, and CPUs are getting fast enough that it's feasable.

If I had enough info on the RSP I'd probably give it a try...but AFAIK that kind of documentation isn't available...
 

tooie

New member
Reznor007 said:
I know what the microcode is for. However, what is being done now is only simulating the microcode software, not really emulating the RSP. If it were really emulated, plugins wouldn't have to support each specific ucode, it would just support the final call to the RDP, as it is not programmable, and only receives a certain set of commands. All ucodes end up outputting the same thing, but how they are done is what is changed.

The way MAME people see it, the core emulator should run the RSP microcode, and output a set of graphics drawing commands that would make up a new plugin spec. This is how PSX emulators work, and Zinc(PSX arcade emu) works this way also. That method is considered MAME acceptable as well. The only thing that isn't would be the hardware filtering, since PSX doesn't have that, but it's easily turned off in the plugin.

The that same guy I quoted has contact with Rare(I guess ex-Rare now) people.

LLE is purely possible .. granted there is a couple of issues that stop a couple of games and that is that the r4k and rsp do not run at the same time, so when a game syncronises in the middle of the dlist, and data changes in that then it just does not work .. I have run pure lle on my computer, tho it was extremly slow and did not look as good as hle. If you then did syncing and running rsp/r4k at the same time it would be even slower .. how many of the mame boards had two different cpu's running at the same time ?

pj64 by default does do audio by lle because it is not doing things against how the PC basic structure is optimized.. hence pj64 never has ucode problems with audio .. which also means it has had high system requirements

(thanks Hacktarux)
 
Last edited:

grand master

Emualtion Pimp
Differences between U64emu and MAME? Plenty. U64emu crashes when you do certain fatalities, MAME does not. U64emu has many sound issues, due to simulating the ADSP chip, MAME has perfect sound.

U having Sound probs well man fix your system. Mine sounds fine here! Did you also mention that even with dyna rec ki2 runs 25% on a 1.3ghz. Which means it needs a 4.9 ghz computer?
Also mame emulates the hardware (forget the game) cause the game runs like 12 fps so i will say that it isn't emulated by my standards (ie actually emulating the arcade experience/game)

Vivanono? It's hardly an emulator...more like a "port" of the game. Sound and geometry is simulated, only the game program is emulated. The MAME System22 driver runs Rave Racer, Ace Driver, Alpine Racer, and Prop Cycle. Why haven't these games been added to Vivanono? Because they don't emulate the hardware enough for them to run.

Really? Ace Driver, Alphine Racer emualted post some pics. I would love to see them. Oh and btw can you post the actual fps as well? I mean it will probably run EXACTLY like the screenshot but hey at least in 5 years it will be playable eh?

Vivanono not an emulator? Could have fooled me! i actually see the arcade and the emulator doing the same things ( me thinks what an emualtor is meant to do ?) Oh and is that sound i can hear?? has mame emulated that? Oh and wait the game is fully playable with sound at 60fps on a computer that actually exists?? -Like i said jealousy thats all.

Now i can wish the original poster good luck! I really dont see any reason why he shouldnt go ahead and try. It would be intresting to see the results.
 
Last edited:

Reznor007

New member
grand master said:
U having Sound probs well man fix your system. Mine sounds fine here! Did you also mention that even with dyna rec ki2 runs 25% on a 1.3ghz. Which means it needs a 4.9 ghz computer?
Also mame emulates the hardware (forget the game) cause the game runs like 12 fps so i will say that it isn't emulated by my standards (ie actually emulating the arcade experience/game)



Really? Ace Driver, Alphine Racer emualted post some pics. I would love to see them. Oh and btw can you post the actual fps as well? I mean it will probably run EXACTLY like the screenshot but hey at least in 5 years it will be playable eh?

Vivanono not an emulator? Could have fooled me! i actually see the arcade and the emulator doing the same things ( me thinks what an emualtor is meant to do ?) Oh and is that sound i can hear?? has mame emulated that? Oh and wait the game is fully playable with sound at 60fps on a computer that actually exists?? -Like i said jealousy thats all.

Now i can wish the original poster good luck! I really dont see any reason why he shouldnt go ahead and try. It would be intresting to see the results.

KI in U64emu does have sound problems. For example, win a match in single player mode, and then when it returns to the fighter ladder, the previous sound effect is still playing.

And Vivanono is a port. The physics of the game is simulated as well...it's hardly emulation, just a PC version basically. MAME runs Rave Racer at about 30% speed on my computer with software rendering.

Oh yeah, you are totally wrong about KI2 speed in MAME. I just ran it on my PC(Athlon 1.33GHz+448MB PC133 RAM), here's a shot. (EDIT-This is with the interpreter, not dynarec)
 

Reznor007

New member
tooie said:
LLE is purely possible .. granted there is a couple of issues that stop a couple of games and that is that the r4k and rsp do not run at the same time, so when a game syncronises in the middle of the dlist, and data changes in that then it just does not work .. I have run pure lle on my computer, tho it was extremly slow and did not look as good as hle. If you then did syncing and running rsp/r4k at the same time it would be even slower .. how many of the mame boards had two different cpu's running at the same time ?

pj64 by default does do audio by lle because it is not doing things against how the PC basic structure is optimized.. hence pj64 never has ucode problems with audio .. which also means it has had high system requirements

(thanks Hacktarux)

Many games that MAME runs use multiple CPU's.

Quick list:

Galaga- 3x Z80's
KI/KI2- R4600+ADSP2105
Puzzle Bobble 4- 68EC020+68000+ES5505
Steel Talons- TMS34010 (x2)+ADSP2101+68010+YM2151+MSM6295 (and this is without the extra ADSP2105 used for it's network connections)

And all CPU's in MAME have to be synced.
 

Hacktarux

Emulator Developer
Moderator
Reznor007 said:
Many games that MAME runs use multiple CPU's.

Quick list:

Galaga- 3x Z80's
KI/KI2- R4600+ADSP2105
Puzzle Bobble 4- 68EC020+68000+ES5505
Steel Talons- TMS34010 (x2)+ADSP2101+68010+YM2151+MSM6295 (and this is without the extra ADSP2105 used for it's network connections)

And all CPU's in MAME have to be synced.

OMG they are able to emulate 3 z80 (running at less than 5Mhz) at fullspeed on a GHz pc !!
None of the game you quoted has a combo as complex as what we have on the n64.... the adsp thingy is maybe hard to emulate, i can't tell you without checking it further but what i know is that it's easy to emulate it fast....

Now to sum it up:
- lle emulation of n64 is possible with current plugins specs
- it wouldn't necessarily be high quality...
- it would be far slower than what we have now
- it's hard to program
- current gfx problems (in games that are working) will probably not be fixed by lle.
- put on your head that nowadays n64 emus aren't using hle for everything but only where it's necessary for various reasons... (can change in the future like it has always been in the past when solutions will be found)
 
Last edited:

Reznor007

New member
Saying N64 is more complex than getting 6 chips to run together is just wrong. The game that wrote the driver for Steel Talons did it over a period of months, while he wrote a CPU core for the R4600 and R5000 plus software emulation of Voodoo2(for 3dfx based arcade hardware..NFL Blitz, Carnevil, Wayne Gretzky arcade, and SF Rush work near perfect) in a few weeks.
 

Hacktarux

Emulator Developer
Moderator
Sorry i was talking about speed... I meant it was more complex to emulate full speed... When you have 6 processors that can be more or less complex but that are running at low frequencies, you don't have to worry too much about speed... If you have a high frequency processor but that opcodes are simple like on r4000-r5000 family it's not a problem when you use a dynarec.

With n64 we have a 100 MHz r4300 processor -> easy to emulate full speed. Then a rsp 66MHz that have complex simd vector instructions. To give you an idea, if u have to emulate a simd multiplication in c you have to make 8 multiplications + comparisons to clip the result + conversion to 16 bits + eventually addition with the previous result... And it's not only one instruction in the ucode, it's nearly all instructions used in a ucode. All these steps are done in one single instructions it means that theoretically a rsp is at least equivalent to a 66*8=528MHz mips processor, now to emulate it you need of course a much more powerfull machine. And lastly there's the rdp that eats a lot of power too.

Now it's up to you to not believe me, but really if nobody have done it yet, there's a reason...
Again i'm sure it'll progress but it doesn't mean that full lle will be better quality maybe a little more compatible but full of glitches....
 

Reznor007

New member
I think the main reason no one has done it yet it because most of the big name games run ok in current emulators. I'm sure once the N64 arcade games are dumped(aparently there were a few) someone will get that going in MAME, and then someone can port that to run the home games. The reason the arcade games aren't dumped is because the type of EEPROM they use is hard to dump(compared to thru hole ROM chips...the N64 ones are surface mounted serial roms).

As for quality...wouldn't higher compatibility=more quality? I mean, if you are emulating the RSP more accurately instead of simulating certain parts...wouldn't that fix most of the small glitches caused by HLE...
 

Hacktarux

Emulator Developer
Moderator
Reznor007 said:
I think the main reason no one has done it yet it because most of the big name games run ok in current emulators. I'm sure once the N64 arcade games are dumped(aparently there were a few) someone will get that going in MAME, and then someone can port that to run the home games. The reason the arcade games aren't dumped is because the type of EEPROM they use is hard to dump(compared to thru hole ROM chips...the N64 ones are surface mounted serial roms).

As for quality...wouldn't higher compatibility=more quality? I mean, if you are emulating the RSP more accurately instead of simulating certain parts...wouldn't that fix most of the small glitches caused by HLE...

Definitely not...
When i say more compatibility, it's no more than 5 games....
And the other games will probably have more glitches as the lle rdp commands are very weird... And current glitches aren't caused by hle most of the time.
 

Reznor007

New member
Hacktarux said:
Definitely not...
When i say more compatibility, it's no more than 5 games....
And the other games will probably have more glitches as the lle rdp commands are very weird... And current glitches aren't caused by hle most of the time.

That doesn't make sense. More accuracte emulation causing more glitches than HLE makes no sense at all.
 

euphoria

Emutalk Member
Reznor007 said:
That doesn't make sense. More accuracte emulation causing more glitches than HLE makes no sense at all.
Well i think it does. This is a bad comparison, but here it goes:
its like programming with c libraries. You get the wanted result but its not as efficient as it *could* be. instead you could use no library funtions and program all in assembler but that would mean more possibilities for bugs. once you get the assembler version to function perfectly its as good as it gets but to get there its another thing. :plain:
 

Top