What's new

Help with new computer

plagerism

New member
I just bought a new computer, and now I want to get mupen64 up and running. I am currently running Ubuntu(Debian Port) hoary. It is an 64 bit port, so I have to use a 32bit chroot until I can get the native 32 bit libs working correctly. My system is

AMD64 3000+
1gb of RAM
ATI AIW 9000 pro
Nvidia Chipset.

Now, I have been able to get Mupen64 up and running a rom, however the rom is still choppy on this system. I am assuming this is a video issue. I am currently running Xorg 6.8.2 using the stock Xorg ati drivers. I think I have tried the fglrx drivers, but had less than optimal performance from them.

I was just wondering what sucess stories people have had with a) a 64 bit operating system and b) an ati video card.

Plagerism
 
OP
P

plagerism

New member
In that regards, has anyone had any success compiling from source on a 64 bit system, if so any user comments on there experiences would be greatly appreciated.

Thank you in adance

Terry
 

Hacktarux

Emulator Developer
Moderator
The nintendo 64 CPU is really a 64 bit CPU in the sense that it has 64 bits registers...

Mupen64 can't be compiled for amd64 currently, it may change later...
 

ciruZ

New member
cooliscool said:
Uh, no. The Nintendo 64 was 64-bit in the sense that it had a 64-bit GPU, not CPU.
Well, the registers are 64 bit, as Hacktarux said. So why wouldn't you call it a 64-bit CPU?
Since the AMD64 has 64-bit registers too, it's much faster, because you don't need 2 registers for one N64 register plus the AMD64 can calculate a lot faster with 64 bit values than IA32 ;).
Have you ever seen a 64-bit calculation on an IA32 in Assembly? If you see it you'll know why it's slow ;).
 

Magnade

New member
accutally i did some quick tests here on my familys amd64 and i did get mupen64 to compile under 64bit linux (using gentoo) all i really had to do was add -fPIC to cflags
since the ebuild doesnt yet add it

the graphics plugins look like they will be the biggest problem tho as i was getting
errors that make my think its a bug with gcc 3.4.3
glN64 does look most promising tho from the tests i did
 

arnalion

Nintendo Fan
I've heard that the Nintendo 64 had two 32-bits cpu's not a singel 64. But if it had two 32-bits cpu's wouldn't the sending speed be 64-bit?
 

ciruZ

New member
Magnade said:
accutally i did some quick tests here on my familys amd64 and i did get mupen64 to compile under 64bit linux (using gentoo) all i really had to do was add -fPIC to cflags
since the ebuild doesnt yet add it

the graphics plugins look like they will be the biggest problem tho as i was getting
errors that make my think its a bug with gcc 3.4.3
glN64 does look most promising tho from the tests i did
PIC should be only needed for the Plugins, not for Mupen64 itself. I'm surprised if the plugins don't use -fPIC, since libraries always have to be position independent. Usually, you have to compile a libraries object files using -fPIC and link it with -shared, but on IA32 Linux it's sometimes working without -fPIC (note: only sometimes, so don't rely on this!), but I don't know why. IA32 Linux and libraries is sometimes really wired.

@arnalion: No, it uses 64-bit registers, therefore it can only be one 64-bit CPU. But it can be that there's another CPU/GPU in addition to the main CPU.
 
Last edited:

blight

New member
The N64's CPU is an R4300i by SGI, it's a 64 bit CPU which can also run in 32 bit mode.
The GPU of the N64 is a modified R4300i, which is 64 bits either, and has vector instructions which work with up to 128 bits at a time iirc.

Most speed could be gained on an AMD64 by using the 8 additional registers which were added. Most RISC CPUs (the R4300i is a RISC CPU) have more registers than x86, thats why it is harder/slower to emulate CISC on RISC than the other way - you need a whole lot more memory accesses because of the missing registers.

What really makes AMD64 fast are the 8 new registers, not the 64 bits.
 
Last edited:

Doomulation

?????????????????????????
arnalion said:
I've heard that the Nintendo 64 had two 32-bits cpu's not a singel 64. But if it had two 32-bits cpu's wouldn't the sending speed be 64-bit?
Heh. A common misunderstanding.
The "64-bit" refers to that the registers are 64-bit, thus being able to handle bigger numbers than 32-bits. The amd 64 also has more registers as blight mentioned. And as far as the n64 registers goes... the emulators stores them in memory. All operations done by the cpu needs to be done in the registers. The code needs the registers for other things...

The n64 registers are stored in memory =) Compiling something for 64-bit gives a speed increase if it's in pure 64-bit due to more registers. It can also run on a 64-bit processor in 32-bit mode, which might be a tad slower than usual...
 

Hacktarux

Emulator Developer
Moderator
Actually, a dynarec with register cache tries to store n64 registers to x86 registers as much as possible. Of course that's not always possible and much more complex than it first seems...
 

ciruZ

New member
blight: The new registers won't speed it up that much as the larger 64-bit registers. Calculating with 32-bit integers on IA32 is very slow. Just do a 64-bit calculation and compile it with gcc -S, you'll see why.
thats why it is harder/slower to emulate CISC on RISC
I guess you mixed up CISC and RISC. RISC has more registers than CISC, so it's harder to emulate RISC with CISC.
Anyway, it can be that the Interpreted Mode is faster on AMD64 than the Recompiler Mode since the Recompiler only produces 32 bit Assembly.
 

Top