PS emulator


Ich ging immer davon aus, low level stünde für niedrig und nicht für tiefergehend. Wie auch immer, es scheint so als wäre PJ64 der einzige LLE Emulator(zumindest teilweise dazu fähig) für das N64. Speziell da ich mich noch daran erinnere, daß NEMU sich ja durch sein spezielles HLE von Konkurrenten wie Corn abheben wollte, höhere Kompatibilität hatte er tatsächlich und war auch lange zeit die erste wahl für highend PC besitzer...

*klick*

Aber den Begriff beiseite, Corn ging mit sicherheit anders an die Spiele ran als Nemu, was auch die performance/qualitätsunterschiede mit sich bringt... -Wenn also ein N64 Emulator am GP2x, dann einer der in Corns Fußstapfen tritt.
 
Check this:

The author of Corn has written an excellent explanation of why Corn is so fast. He has also sent me some trouble shooting tips.

Various reasons for Corn's speed:

1. Static Recompilation Static rec is the main technique that Corn experiment wants to test. In theory, static rec should be faster than dynamic rec since the branch/call overhead is much lower. And, with static rec, we can afford to do sophisticated optimizations like a real compiler does. Although the actual implementations can greatly affect the real performance.

On the other hand, static rec becomes the major deficiency of Corn. It makes corn need individual configuration to run each rom. So, in terms of compatibility, it is not a good approach. Probably this is the main reason why other emulator authors did not try it before(in my knowledge). Between compatibility and speed, most authors will choose the former. If Corn was not started as an experiment, I would have chosen dynamic rec also.

Right now, the optimization done in Corn is still simple. So, probably not much speed (10%-25%?) really come from this part at this time. Later, I will try to apply more advanced optimization techniques to study the power of static rec, which is the main goal of this experiment.

2. 32bit vs 64bit As first mentioned by UltraHLE, practically N64 games are 32bits programs. However, there do exist 64bit instructions in some (though very rare) OS functions. Since UltraHLE emulates OS functions, this is not a problem. Corn uses low-level emulation (for CPU part), so it must single them out and patch them. This is another place where compatibility is greatly lowered. I guess 20%-40% speed come from this part.

3. Incomplete emulation The RDP emulation in Corn is still very incomplete. Many effects, features have not been implemented. Some very time-consuming things are ignored. There is almost no support for combine modes, just some sort of hack. Honestly, Corn still needs lots of work to reach the stage that Nemu and TRWin achieved. I expect at least 30% speed drop of RDP emulation in the furture. Also, Audio task is short-circuited. As Corn implements more and more features, speed come from this part will disappear. I guess currently 30%-60% speed come from this part.

4. Implementation issues I has a relatively low-end pc. So, I have to push the speed in every corner. Once I suspect that a C compiler cannot optimize some part very well, and that part is important, I use inline assembly codes. For example, C cannot handle bit operations very efficiently, so in Corn, most of this job is done by inline assembly codes. There are many such things. Each of them is not significant, but when they add up, I guess the contribution is about 20%-50%.

5. Some bad things A good program should have codes to handle errors, extreme cases etc. They are not existent in current version of Corn. Corn always assumes a good run-time environment. It may be practically acceptable, but definitely not a good programming style. I guess 5%-10% speed come from this part.

The above percentages are just my feelings. They may be wrong.
 
Hmm ja genau der statische recompiler war der hauptunterschied, aber dass da noch soviel mehr war :)

Es ist aber wirklich beeindruckend:

Requirements: P1/K6>200Mhz, DirectX7+

ab 200Mhz gings los, DirectX7 musste man noch installiert haben :) Ich bin mir nicht ganz sicher aber ich glaube Corn ist kein Open Source, dürfte also wenig hoffnung auf einen gp2x port geben und ob sich irgendwer nochmal die mühe macht so einen emulator zu schreiben wage ich zu bezweifeln :(
 
würde jemand einen emu wie corn schreiben, den so mit arm asm optimiert wie corn und dann auch noch beides cpus nutz könnte man spielbares n64 erreichen. aber ob es die arbeit wert ist ist die frage ;)
 
Auf den Spuren von ContraSF...

Hier ein Interview, er sagt viel darüber, wie er an Corn gearbeitet hat uuund wo er abgeschaut hat. Könnte für uns interessant sein.

http://www.emuviews.com/cgi-local/show.cgi?SERIAL=1212

EDIT:

god_at_hell: The high level approach doesn't extend that well to CPU emulation, but luckily the CPU is a standard MIPS R4300 with excellent documentation available. So it's just a matter of following instructions, and then making it fast (which is the hard part). What helps us, is that the games don't use the CPU to its full extent. Practically no 64-bit code is used, and virtual memory usage is limited. ---- Wir brauchen keine 64 bit Emulation. 1964 lässt auch alles auf 32 bit rennen.

Zitat von: http://www.emuunlim.com/UltraHLE/old/techinfo.htm
 
sorry, aber irgendwie vergessen dann doch alle wieder, wie wichtig Hardware-3D ist. (Wer mal das alte Counter-Strike 3 ohne HW-Beschleuniger gespielt hat, weiß wovon ich rede...) Oder was meint ihr, warum die Playstation damals so eingeschlagen hat? Nicht, weil sie soooo viel Mhz hatte, wie ein PC damals oder der MegaDriveCD oder weil sie 'n CD-Laufwerk hatte. Nein: Wegen 3D! Denn technisch gesehen war & ist an der PSX (ebenso wie der PS2) nicht wirklich viel tolles dran, nur halt die Graphik rockt (deswegen sind die Spiele ja meist so schlecht vom Spielprinzip, wenn man ehrlich ist...) Und der Hardware-Chip vom N64 hat noch einiges mehr drauf (u.a. Hardware-Antialiasing, was Jahre später erst für den Home-PC kam).
Also schlagt Euch endlich N64 Emulation aus dem Kopf, wäre meiner Meinung nach ohne Analogstick ohnehin bescheuert & genießt das Original oder wartet bis Nintendo in 5 Jahren 'ne eigene tragbare Version als Gameboy/DS-Ersatz rausbringt... :wink:
 
aber an ique spiele rankommen ist doch recht schwer, hatten schon öfter die idee mir daraus nen n64 handheld zu bauen, aber dann hab ichs gelassen weil es erstens nur chinesische spiele gibt soweit ich weis und dann kann man die auch nur da bekommen.
hat sich das mitlerweile geändert?
 
hatte der wirklich hardware antialiasing? Ich dachte, der dicke Vorteil gegenüber PSX war der Bilineare Texturfilter ..... kann mich aber auch irren ... da bin ich mir nicht sehr sicher.
 
Aiso, der N64 hatte Antialiasing über den ganzen Bildschirm (nicht so sophisticated wie es heute in PC-GPUs drin ist, aber immerhin), deswegen sieht er meistens auch so verschwommen aus.
Wer sich seinen N64 in die Tasche stecken will, findet hier einige Ideen: http://www.benheck.com/Games/Nintendo_projects/N64p/N64p_page1.htm
 
god_at_hell said:
hatte der wirklich hardware antialiasing? Ich dachte, der dicke Vorteil gegenüber PSX war der Bilineare Texturfilter ..... kann mich aber auch irren ... da bin ich mir nicht sehr sicher.

Der Texturfilter war der Vorteil... das AA fast ein Nachteil. Das N64 war immerhin das erste Gerät(afaik) das AA verwendete, später am PC wurde dann gleich das ausgereifte, nicht den ganzen schirm zublurrende AA entwickelt.
sorry, aber irgendwie vergessen dann doch alle wieder, wie wichtig Hardware-3D ist.

Und das ist Unsinn. Der PS1 Emu läuft am Zodiac schon mit halben Speed der ps1 ab. Durch cleveres Programmieren und nutzung von 2x 266Mhz ist da einiges möglich. Die PS1 war nicht sonderlich komplex aufgebaut, glücklicherweise. Genausowenig ist N64 unmöglich allerdings wohl unwahrscheinlich, ich weiß nicht ob sich ein qualifizierter Entwickler finden lässt der soviel Zeit in einen n64 Emulator für einen Handheld investieren wird..
 
zumal der entwickler dann auch noch ein software plugin entwickeln muss, das ist sicher sau viel arbeit. Es gibt zwar eins was opensource ist, das macht aber im grossen und ganzen nur mario. Dazu kommt das es selbst auf nem 2,6ghz rechner nur miut 3 fps läuft ;)
 
Back
Top