Closed GoogleCodeExporter closed 8 years ago
[deleted comment]
Pentium II 400? No offense, but that setup won't run mupen at anything
playable. I
could barely play the least intensive games (Mario 64) on a PIII 750 with
Radeon
9500. If you want to work on optimizing our dynarec, it can be made faster. I'm
very surprised if mupen 0.5 is playable on your machine.
Your issue is SSE, as Pentium IIs lack this. The binaries we distribute compile
for
P3 or higher, additionally the makefiles will give SSE issues unless you
modified
them: -march=i686 -mtune=pentium-m -mmmx -msse
We do have an experimental Gentoo ebuild, which should replace this with your
flags, you might want to try this.
Also, Rice is the only plugin which actually needs SSE. I believe glN64 and
glide64
should work if compiled with the right settings.
Original comment by sknau...@wesleyan.edu
on 29 Nov 2008 at 1:04
Well, Corn (the old n64 emu) runs too fast on my pII 400mhz setup (under
win9x).
So it should be possible to provide smooth emulation on my setup (under
GNU/Linux).
Some other emulators come close, and it just seems as though a little more
optimization and it would be there.
Anyway, I appreciate your advice. I disabled "sse" in "pre.mk" and glide64's
Makefile. Those seem to be the only two places it is enabled; Rice didn't
compile
at all with these settings. And I still get a crash with any video plugins
set.
However, it seems to do something with just video disabled (or at least hang
nicely).
I had to disable asm to get "all" to make. I'm going to try some other
C(XX)FLAGS
combinations and see if I have any better luck.
I am interested in helping optimize in any way I can. I have a little C
programming experience and understand only the very basics of asm/c++. But I
could
at least give profile/debug output or whatever would help. I don't know what
the "dynarec" is but I would like to work on that too.
Off to dig in the sources to see if I can learn something...
Original comment by topherwh...@gmail.com
on 29 Nov 2008 at 3:59
Hmm... I assume you also changed mtune=pentium2 when you disabled -msse?
(Note: for your chip -march=pentium2 should be enough)
Double check your plugins are compiled without SSE. If you change the flags but
no
files, its possible make will overlook some things. If you're sure everything
is
compiled with SSE and it works with the dummy video plugin, but no others (do
you
hear sound?), this points to your OpenGL install being an issue. Do other 3D
apps
work? glxgears?
Note: since you are x86, you don't want to disable all asm (except maybe for
testing). Rice doesn't work in NO_ASM mode currently (this is a known issue),
so
just pull rice from the all target in the makefile.
As far as Corn / UHLE, the only emulators playable on your setup, know that
they
were very high level emulators with narrow compatibility. The best project to
compare us to is Project64, which is almost twice as fast, primarily due to
optimizations in the dynarec (dynamic recompiler) which turns native N64 MIPS
asm
instructions into x86 asm instructions.
The method of optimization that Zilmar used in Project64 was to turn an atomic
dynarec system where each MIPS op becomes one x86 op to a more EPIC (explicitly
parallel instruction compiler) system so common combinations of operations
become
one x86 op. This works well since MIPS is RISC and x86 is CISC. Once you get
things
working, if you want to comb the code and research this kind of optimization,
it
would be appreciated.
Original comment by sknau...@wesleyan.edu
on 29 Nov 2008 at 10:29
Yes, I did "-march=pentium2" which brings in mmx and ppro opts. I deleted the
"mtune" and "sse" args.
The asm compile crashes. I can report the error if wanted.
No sound is heard.
Yes - OpenGL/mesa works - glx gears does anyway and direct rendering: yes
Rice actually did compile, even with no asm, although it gives a brief SSE
error on
startup of mupen64plus of course.
Thanks for the dynarec info, I will see what i can do. I am wondering if real
inline
asm would work better than the C wrappers that are currently in use. It seems
like
that could cause some obfuscation of code.
I attached a text file of my "glxinfo" output in case of interest.
Original comment by topherwh...@gmail.com
on 30 Nov 2008 at 5:07
Attachments:
While porting to Windows, I compiled Rice Video with no SSE code (NO_ASM=1) and
verified that this does work. Please re-test with the latest code in Mercurial
and
re-open this issue report if you encounter problems.
Original comment by richard...@gmail.com
on 12 Jan 2010 at 5:28
Original issue reported on code.google.com by
topherwh...@gmail.com
on 28 Nov 2008 at 3:56