Amiga Emu


If I can find a serial cable for my Beagle Board inside of Chicago -- (probably not, so I'll probably need to order it) -- I may be able to compile E-UAE under Angstrom. I don't think I should have any issues, unless there are x86-specific dependencies. I've seen a Mac port that works on PowerPC, however.

We'd then have a good idea of how fast the unoptimized C-based 68020 core is on the OMAP CPU. It may be fast enough, who knows.
 
wesbrown18 said:
If I can find a serial cable for my Beagle Board inside of Chicago -- (probably not, so I'll probably need to order it) -- I may be able to compile E-UAE under Angstrom. I don't think I should have any issues, unless there are x86-specific dependencies. I've seen a Mac port that works on PowerPC, however.

We'd then have a good idea of how fast the unoptimized C-based 68020 core is on the OMAP CPU. It may be fast enough, who knows.
Great stuff, be sure to post your findings...
 
Last edited by a moderator:
I've just built E-UAE on my Beagle Board, with no optimization, no tuning, straight out of the box.

I got it booted with the AGA chipset, and a 68020 core, as well as a hardfile and filesystem access to the Unix filesystem.

SYSINFO tells me that the emulated Amiga's CPU is running at 88% of an A1200's 14mhz 680EC20.

WHDLoad runs. AGA games run. I have tested Colonization and Prince of Persia. It is a bit sluggish, but it plays.

There remains much optimization to do, but for those of you pining for an AGA emulator on your Pandora -- it's a very strong possibility.

One quick optimization I'm looking at is using fbdev/SDL rather than X11. I'll see if this makes a difference.
 
wesbrown18 said:
One quick optimization I'm looking at is using fbdev/SDL rather than X11. I'll see if this makes a difference.

I am afraid it won't since you already use MITSHM. Basically the emulator is just blitting a whole screen.
Getting an accurate 68020 in ARM assembly would probably help but will require more work :)
 
Last edited by a moderator:
Laurent said:
wesbrown18 said:
One quick optimization I'm looking at is using fbdev/SDL rather than X11. I'll see if this makes a difference.

I am afraid it won't since you already use MITSHM. Basically the emulator is just blitting a whole screen.
Getting an accurate 68020 in ARM assembly would probably help but will require more work :)
Yeah, I wasn't hoping for much from this. My thinking is to see what I can do to get to 100%, see if there's any shortcuts I can take. If I can get to 100%, then that's a usable AGA Amiga emulator for the Pandora community.

And then start investigating how much work it would be to implement a 68020 in ARM. The more efficient the CPU emulation is, the more time there is for the chipset emulation -- and if we can get this, then it would presumably drain less battery than running the CPU full throttle.
 
Last edited by a moderator:
wesbrown18 said:
I've just built E-UAE on my Beagle Board, with no optimization, no tuning, straight out of the box.

I got it booted with the AGA chipset, and a 68020 core, as well as a hardfile and filesystem access to the Unix filesystem.

SYSINFO tells me that the emulated Amiga's CPU is running at 88% of an A1200's 14mhz 680EC20.

WHDLoad runs. AGA games run. I have tested Colonization and Prince of Persia. It is a bit sluggish, but it plays.

There remains much optimization to do, but for those of you pining for an AGA emulator on your Pandora -- it's a very strong possibility.

One quick optimization I'm looking at is using fbdev/SDL rather than X11. I'll see if this makes a difference.
Does Beagle Board allow overclocking?
If so, what AGA/020 Amiga speed do you get with Beagle clocked to 900Mhz?
 
Last edited by a moderator:
Pleng said:
Does Beagle Board allow overclocking?

Some people use it at 600 MHz, while some others have stability issue at that frequency (it seems to be a voltage control issue).

QUOTE
If so, what AGA/020 Amiga speed do you get with Beagle clocked to 900Mhz?

OC'ing is not the way to go to achieve speed until you have tried better software approaches.
 
Last edited by a moderator:
wesbrown18 said:
And then start investigating how much work it would be to implement a 68020 in ARM. The more efficient the CPU emulation is, the more time there is for the chipset emulation -- and if we can get this, then it would presumably drain less battery than running the CPU full throttle.
Great stuff, thanks for testing this.

88% is substantially better than I would have expected, although it's probably worth commenting that the sysinfo command in workbench is perhaps not very reliable under emulation (some programs/tests - e.g. powerpacker etc.. have a phenominal speedboost running under emulation, but the oh-so-important custom chips/chipset timing can struggle.

More pleasing is that you can run games ok but sluggishly (fps?).

Looking at the success of uae4all when using Cyclone, an ARM Assembly 020 core would probably give the greatest boost, although it's going to have to be fairly accurate timingwise.

More specifically, it's a 68EC020 core we need, not a full 020. This may have a slight advantage of having only a 24bit address bus - like a standard 68000 - but there are still plenty of changes under the hood.

Time will tell - a 020 ASM core could also be useful for Mame games.
 
Last edited by a moderator:
Laurent said:
Pleng said:
Does Beagle Board allow
If so, what AGA/020 Amiga speed do you get with Beagle clocked to 900Mhz?

OC'ing is not the way to go to achieve speed until you have tried better software approaches.
No, but it's a decent enough stop-gap until optimized software has been developed.
 
Last edited by a moderator:
silver said:
Looking at the success of uae4all when using Cyclone, an ARM Assembly 020 core would probably give the greatest boost, although it's going to have to be fairly accurate timingwise.

More specifically, it's a 68EC020 core we need, not a full 020. This may have a slight advantage of having only a 24bit address bus - like a standard 68000 - but there are still plenty of changes under the hood.

Time will tell - a 020 ASM core could also be useful for Mame games.

I have quickly profiled E-UAE running Battle Squadron on my x86 PC. The 68k emulation is far from being the most time consuming task; the *scheduling* of the various custom chips seems to be the bottleneck.

Also my experience is that asm cores tend to sacrifice so much for speed that accuracy becomes a real issue. Isn't it also the case for Cyclone?

PS - Of course this applies to my PC, I need to check on my Beagle :)
 
Last edited by a moderator:
Laurent said:
I have quickly profiled E-UAE running Battle Squadron on my x86 PC. The 68k emulation is far from being the most time consuming task; the *scheduling* of the various custom chips seems to be the bottleneck.

Also my experience is that asm cores tend to sacrifice so much for speed that accuracy becomes a real issue. Isn't it also the case for Cyclone?
Interesting testing....

I had assumed that Cyclone was accurate enough as it was added to uae4all (and Cyclones webpage refers it's timing accuracy as a match for the Mame 68k core). However, it turns out it stilll has accuracy problems for Amiga emulation (notaz originally posted he would not use the Cyclone core in uae4all for accuracy reasons, so when it was added I assumed they were solved).

It also looks like even if we had a ASM 020 core, interfacing it to a UAE port is far from trivial - specifically because of what you have mentioned; the processer is completely tied up to the custom chips.

Your test suggests something along these lines, and also suggests that rather than a faster core we need general improvments to the E-UAE code....?

Anyway:

1) Some CVS version of E-UAE have been released in the past couple of months (13-8-08,15-8-08 and 20-8-08) which include bugfixes and integration of a more recent WinUAE core. The author says he is planning a stable release.

"Performance improvements:
* Some small custom chip and blitter tweaks merged from WinUAE 1.4.3.
* Some minor performance optimizations to blitter emulation, floppy
controller emulation and rendering code. (Thanks to Mustafa Tufan,
developer of PSP and GP2x ports of E-UAE, for a couple of these)."

2) Gnostic (GP2X developer mentioned above) posted a while back on these forums indicating 020/AGA emulation for pandora.

So it's possible that somone already familiar with the GP2x E-UAE is looking to bring it to the Pandora anyway.... I suspect all the devs are rather overloaded at the moment.


EDIT:

Incidentally another option for huge performance boost would be for someone to write a JIT compiler for ARM-cores. JIT is currently x86 only (and 030 and up only) but the 030 is a standard upgrade on a A1200..
 
Last edited by a moderator:
There is a generic JIT compiler developed by Apple, Adobe, Google, and others called Low-Level Virtual Machine that is open-source and has an expermental ARM backend. Maybe writing a 68020 frontend for it might be useful for emulation purposes.

(Plus it would save me some work if somebody ported it to the Pandora since I'm planning on using its internal bitcode format in a compiler. ;) )
 
Samurai_Crow said:
There is a generic JIT compiler developed by Apple, Adobe, Google, and others called Low-Level Virtual Machine that is open-source and has an expermental ARM backend. Maybe writing a 68020 frontend for it might be useful for emulation purposes.



That's a really interesting idea. And Apple is pushing this technology rather heavily, using it in the iPhone. I'll have to investigate this, and see how hard it would be to write a 68000/68020 front end. But it's been observed that E-UAE spends most of its cycles on timing and scheduling, as well as running the custom chipsets.
 
Last edited by a moderator:
GnoStiC said:
i can confirm that i'm working on amiga (p-uae (e-uae fork for pandora) includes all features/fixes of winuae 1.5.3) and c64 (vice) emulations for pandora.

for e-uae users;
my latest (public) e-uae included all features/fixes of winuae 1.5.1
http://rapidshare.com/files/137135205/uaecvs2.tgz



Outstanding! Thanks for confirming that Gnostic....
 
Last edited by a moderator:
silver said:
Laurent said:
I have quickly profiled E-UAE running Battle Squadron on my x86 PC. The 68k emulation is far from being the most time consuming task; the *scheduling* of the various custom chips seems to be the bottleneck.

Also my experience is that asm cores tend to sacrifice so much for speed that accuracy becomes a real issue. Isn't it also the case for Cyclone?
Interesting testing....

I had assumed that Cyclone was accurate enough as it was added to uae4all (and Cyclones webpage refers it's timing accuracy as a match for the Mame 68k core). However, it turns out it stilll has accuracy problems for Amiga emulation (notaz originally posted he would not use the Cyclone core in uae4all for accuracy reasons, so when it was added I assumed they were solved).


I'm quite sure all the incompatibility was solved long ago, does anyone know of anything in mame which does not run on the ASM core now? Same for the Amiga emulation, I'm pretty sure cyclone is now near bullet proof, or at least as good as the C core.
 
Last edited by a moderator:
craigix said:
I'm quite sure all the incompatibility was solved long ago, does anyone know of anything in mame which does not run on the ASM core now? Same for the Amiga emulation, I'm pretty sure cyclone is now near bullet proof, or at least as good as the C core.

It seems you're right if what Franxis wrote in the readme of MAME4ALL is true (and it probably is :)) :
QUOTE
Cyclone: It is the M68000 ASM CPU core, faster than the C one. Enable it because it seems to have perfect compatibility.
Anyway that doesn't provide us with '020 emulation, and that's not the main bottleneck...
 
Last edited by a moderator:
Back
Top