Release Fullspeed Amiga Emulation On Pandora!

Dunny

Exophase Approved® Forum Troll
Joined
Dec 24, 2006
Messages
1,112
Age
46
Location
Broughton, Brigg, UK
Website
www.zxspin.com
WizardStan said:
torpor said:
Meh, why can't the touchscreen driver just be updated to have a 'send offset' mode instead of relative movements? Seems far easier, and far more compatible ..
Offset from where? The last place you touched? What if the last place you touched wasn't where the mouse pointer actually was? You'd need some way to reset it.
And how many steps per pixel? What if one program counts 10 steps = 1 pixel, but another program moves the mouse a little slower at 15 steps = 1 pixel?
That's the only downside that I can see - you'd need to have separate solutions for each application/game. The solution would know how to find the current position of the amiga mouse sprite, so converting the coordinates into a translation would be simple enough.

D.
 
Last edited by a moderator:

WizardStan

Mega GP Mania
Joined
May 24, 2008
Messages
16,733
Dunny said:
That's the only downside that I can see - you'd need to have separate solutions for each application/game. The solution would know how to find the current position of the amiga mouse sprite, so converting the coordinates into a translation would be simple enough.
If you can find the position of the mouse, why not just poke coordinates back into it?
 
Last edited by a moderator:

Aninhumer

Guy with scary face.
Joined
Dec 13, 2005
Messages
1,156
Age
28
Website
Visit site
How about a "Calibrate" feature in the emulator?

You click where the cursor is, then it sends 10 "move right" signals to the game or whatever, and you click it again, and the same for vertical, repeating a few times to be sure.
Then the emulator can work out how to offset correctly.
You could also save each setting, so you don't need to do it every time.
 

Caine

Hardcore Member
Joined
Jun 5, 2008
Messages
4,138
Location
Netherlands
Aninhumer said:
How about a "Calibrate" feature in the emulator?

You click where the cursor is, then it sends 10 "move right" signals to the game or whatever, and you click it again, and the same for vertical, repeating a few times to be sure.
Then the emulator can work out how to offset correctly.
You could also save each setting, so you don't need to do it every time.
In the general case, you would need to do this for every motion you make on the touchscreen as the decision to actually move the cursor lies in the Amiga software being run. So if you report move 10 pixels to the right and the software decides to truncate this to 5 (e.g. for hitting a boundary) the assumed cursor position already drifts.

The two easiest solutions:
- First tap (start position); second tap (end position).
- drag on screen: relative motion from starting point (essentially dragging the pointer around).

The sensitivity of the mouse could either be set in the emulator or detected from subsequent motions.
E.g. first motion: (tap1, tap2), second motion: (tap3, tap4). Difference between tap2 (expected position) and tap3 (actual position) can be used to calibrate the sensitivity.
 
Last edited by a moderator:

hal9000

Member
Joined
Jan 6, 2007
Messages
219
Age
40
Location
France
Website
Visit site
Caine said:
In the general case, you would need to do this for every motion you make on the touchscreen as the decision to actually move the cursor lies in the Amiga software being run. So if you report move 10 pixels to the right and the software decides to truncate this to 5 (e.g. for hitting a boundary) the assumed cursor position already drifts.
I don't see this as a problem. You can simulate mouse mouvement from one point to another with a chosen speed, at an emulator level. Two tap at positions far away from each others could be simulated by a sequence of small steps.

From my understanding, the problem is that the position of the mouse can change from an application to another and be changed by the application itself, the touchpad driver would not be aware of that, and that would kill the calibration.

However, I can see two solutions to this problem:
- A "quick calibration" button, which would require just one tap on the cursor itself.
- Implementing a way for the driver to check where the cursor actually is. I know nothing about amiga emulation, but I have hard time to believe that getting the position of the cursor can be impossible. It has to be stored somewhere, so it should be possible to get it.

Or maybe I am wrong and I did not get the actual problem...
 
Last edited by a moderator:

puppydee

Linux Virgin!
Joined
Aug 16, 2008
Messages
423
Age
43
Location
United Kingdom
Website
Visit site
Is the amiga emulator finished yet? My pandora will arrive tomorrow hopefully and I'm dying to polish off my game collection and try them out so any news would be great :D
 

Pickle

Mega GP Mania
Joined
May 30, 2006
Messages
5,453
Location
Detroit, Michigan
Website
Visit site
puppydee said:
Is the amiga emulator finished yet? My pandora will arrive tomorrow hopefully and I'm dying to polish off my game collection and try them out so any news would be great :D
Sort of...

For uae4all I need to finish some control stuff that ive been putting off.
EUAE/PUAE should be good to go, not sure if was put into pnd form yet.
 
Last edited by a moderator:

TitanUranus

Member
Joined
Oct 6, 2009
Messages
756
Location
UK
I will try and think about the mouse/touchscreen problem and try to come up with some ideas.

My first thought (which is awfully naughty) is where does the basic mouse control system come from? Is it actually part of the kickstart rom?

EDIT: has anyone considered actually getting one of those small mouses that are thin like a credit card - if you are a serious amiga mouse user it may be worthwhile, and of course wouldn't add much bulk to what you are carrying anyway. OF course it depends how much room you have in the environment you will be using it in.
 

puppydee

Linux Virgin!
Joined
Aug 16, 2008
Messages
423
Age
43
Location
United Kingdom
Website
Visit site
Pickle said:
puppydee said:
Is the amiga emulator finished yet? My pandora will arrive tomorrow hopefully and I'm dying to polish off my game collection and try them out so any news would be great :D
Sort of...

For uae4all I need to finish some control stuff that ive been putting off.
EUAE/PUAE should be good to go, not sure if was put into pnd form yet.
Will send beer money to twist your arm into not putting it off, lol. Where do i send it? :)

btw @ above, having a mini mouse wouldn't be a problem if it couldn't be worked out. Most of the games I'll be playing don't really include the mouse anyway.
 
Last edited by a moderator:

silver

Member
Joined
Oct 12, 2008
Messages
174
Pickle said:
EUAE/PUAE should be good to go, not sure if was put into pnd form yet.

Looks like PUAE still under fairly active development (and bugfixing, reading the UAE mailing list) by GnoStic.

Latest version here: http://github.com/GnoStiC/PUAE


Note despite the name (Pandora-UAE, originally), I don't think Gnostic is that bothered by the Pandora any more (wish he was) - he is basically porting all the current WinUAE stuff to PUAE.

This is great, as WinUAE is currently the 'best' Amiga emu out there, though may mean someone else will have to compile for the Pandora and then roll into a PND...

Once this is compiled, would be very interesting to see performance on a Pandora - uae4all will be faster, but PUAE will give A1200 / AGA / 020 / 030 / hardfile emulation etc...
 
Last edited by a moderator:

TitanUranus

Member
Joined
Oct 6, 2009
Messages
756
Location
UK
Basic a1200 emulation with HDD would be excellent if it could run at a good speed (using JIT it might be possible, but is JIT supported with ARM?). If it could, and you can assign 8mb fastram then installing games using WHDload would be by far the best option for most stuff. That would pretty much be what I'd aim for if I was porting it, no need to bother with picasso and zfast or anything above 68020 as it'd just be too piss poor performance wise.

I'm just having a flashback to the first time I watched and listened to Jesus on E's... Ahh, the A500 was a sweet machine.
 

silver

Member
Joined
Oct 12, 2008
Messages
174
TitanUranus said:
Basic a1200 emulation with HDD would be excellent if it could run at a good speed (using JIT it might be possible, but is JIT supported with ARM?). If it could, and you can assign 8mb fastram then installing games using WHDload would be by far the best option for most stuff. That would pretty much be what I'd aim for if I was porting it, no need to bother with picasso and zfast or anything above 68020 as it'd just be too piss poor performance wise.

JIT is currently x86 only, which is going to be one of the most significant performance hits. I'm guessing 020/030 emulation without a JIT compiler for ARM is going to be really pushing it on the Pandora. Here's hoping a strong overclock, or a competent soul to port the JIT compiler to ARM.
 
Last edited by a moderator:

hal9000

Member
Joined
Jan 6, 2007
Messages
219
Age
40
Location
France
Website
Visit site
silver said:
JIT is currently x86 only, which is going to be one of the most significant performance hits. I'm guessing 020/030 emulation without a JIT compiler for ARM is going to be really pushing it on the Pandora. Here's hoping a strong overclock, or a competent soul to port the JIT compiler to ARM.
I am always a bit confused by comparison between A1200 and A500. I would expect emulating an A1200 to be not that much harder than emulating an A500, and considering that GP2X is able to correctly emulate A500, emulating A1200 on pandora should not be a problem. But I guess I am wrong somewhere.

Wikipedia says that the 68EC020 of the A1200 is roughly 5 times faster than the 68000 of the A500, and I have to say I am a bit surprised by this figure. I clearly remember that running A500 games on A1200 did not really lead to impressive speed-ups. 3D games, in particular, were less than twice faster on A1200 than on A500. The main obvious superiority of the A1200 over the A500 was its graphic chip, able to display 256 colors (in standard mode) instead of 32.
 
Last edited by a moderator:

darkwave

Still Fresh
Joined
Aug 4, 2006
Messages
7
In the bog standard A1200, the 68020 was hindered by only having access to the slow chip ram. With a bit of fast ram added the speed of the A1200 roughly doubled. The difference between playing something like Frontier on the A500 compared to the A1200 with fast ram is substantial. Even without fast ram it transforms it from unplayable to moderately playable. ;)
 

silver

Member
Joined
Oct 12, 2008
Messages
174
hal9000 said:
I am always a bit confused by comparison between A1200 and A500. I would expect emulating an A1200 to be not that much harder than emulating an A500, and considering that GP2X is able to correctly emulate A500, emulating A1200 on pandora should not be a problem. But I guess I am wrong somewhere.
Although the A1200 is not vastly superior to a A500 (4x as much ram as standard, newer custom chipset, faster & upgraded cpu - although a big attraction here would be able to emulate an expanded A1200 - with an even faster 68030 cpu and mem) there is currently quite a jump in emulation terms.

uae4all and similar use heavily optimised ASM 68000 emulation cores. Last time I check, there are not much in the way of optmised 68020 or 68030 emulation cores around (for ARM or anything). So currently there is a large performance drop when comparing a A500 emu (uae4all) with a A1200 emu (EUAE etc).

On the plus side, 68020 and 68000 have very similar instruction sets (020 has some extra instructions, and 24bit addressing I think), so hopefully someone with 68000 core experience can expand it to create a 68020 core.

I know Picodrive by Notaz uses a bug-fixed Cyclone core (68000 core written in Arm Asm) - it would be awesome to expand this to cover 68020/30. This might be significantly harder than I have suggested though.
 
Last edited by a moderator:

samuraicrow

Member
Joined
May 7, 2008
Messages
120
Age
45
Website
tech.groups.yahoo.com
silver said:
On the plus side, 68020 and 68000 have very similar instruction sets (020 has some extra instructions, and 24bit addressing I think), so hopefully someone with 68000 core experience can expand it to create a 68020 core.
The 68000 and 68EC020 have 24-bit addressing but the full 68020 and 68030 have full 32-bit addressing. It was a mistake for Commodore to put a 68EC020 in the A1200. For a scant $10USD more they could have had an '030 with a data cache. The instruction set for an '020/030 is nearly identical in user mode but the 68000 is a far cry from the '020/030. I've got a 50 MHz '030 in my A1200 and a 64 Meg SIMM waiting to go into it. The perfect Amiga model.
 
Last edited by a moderator:

TitanUranus

Member
Joined
Oct 6, 2009
Messages
756
Location
UK
Samurai_Crow said:
The 68000 and 68EC020 have 24-bit addressing but the full 68020 and 68030 have full 32-bit addressing. It was a mistake for Commodore to put a 68EC020 in the A1200. For a scant $10USD more they could have had an '030 with a data cache. The instruction set for an '020/030 is nearly identical in user mode but the 68000 is a far cry from the '020/030. I've got a 50 MHz '030 in my A1200 and a 64 Meg SIMM waiting to go into it. The perfect Amiga model.
You might want to try 'Payback' on that thing, it'll probably work quite well. I tried it on my old P4 emulating an Amiga with all the bells and whistles but it was quite slow. Maybe I'll try it again on this I7 now you've made me think of it. So far I've been too busy playing old PSX games with excessive gfx enhancements, could be time to have a proper go at amiga emulation again.

Anyway, what's your bet on there being playable A1200 emulation on Pandora? I remember trying Super Stardust AGA on one of my old PC's and it needed a frameskip, which ruined the flashing ship effect when invincible, I'd take a frameskip of 1 though if it'd play nice on the pandora - go on Notaz, get writing some arm assembly 68020 emulator!

EDIT: I suppose a version of PUAE could incorporate the faster 68000 core. At least that would open up the possibility of emulating a fairly speedy amiga, and using the a1200's kickstart rom, 8mb fast ram and a HDD image all the WHDLOAD versions of A500/600 softwate should run nicely and load fast. I'm sure I've used workbench 3 installed on VHDD in WinUAE while keeping the CPU set as 68000 but with kickstart 3.1. Correct me if I'm wrong, or I'll try it sometime in the next couple of days and report back.
 
Last edited by a moderator:

Iorgy77

emu parasite kid
Joined
Oct 17, 2003
Messages
2,068
Age
42
Location
Melbourne, Australia
Website
Visit site
TitanUranus said:
EDIT: I suppose a version of PUAE could incorporate the faster 68000 core. At least that would open up the possibility of emulating a fairly speedy amiga, and using the a1200's kickstart rom, 8mb fast ram and a HDD image all the WHDLOAD versions of A500/600 softwate should run nicely and load fast. I'm sure I've used workbench 3 installed on VHDD in WinUAE while keeping the CPU set as 68000 but with kickstart 3.1. Correct me if I'm wrong, or I'll try it sometime in the next couple of days and report back.

I am really hoping at the very minimum for something like this. UAE4ALL on a machine like the pandora is really subpar, may as well stick with PSPUAE or UAE4ALL on the wiz.
 
Last edited by a moderator:
Top