Release Fullspeed Amiga Emulation On Pandora!


Awakening said:
Just wanted to add that I remember when I connected an amplifier and 2 medium sized speakers to my Amiga. We put them high up on a wide shelf (had some these covering one wall of my room) and I remember that amazing Pinball Dreams song being played for the first time and just drowned the room in music. I also had a proper monitor connected, not just a regular TV, and the image was really nice and sharp with vibrant colors. Back then monitors and regular speakers wasn't very common to play games with.

Maybe Pinball Dreams will be my first game on Pandora. I loved the 2nd table with the train theme. I also loved the clown/circus themed table in Pinball Fantasies.

I am hoping once Pandora is out someone will port the Amiga emulator over to the N900 so I can play Pinball Dreams/Fantasies on that. I already got it on PSP minis but I hate the PSP, its so uncomfortable, so I end up playing it on the PS3 instead.

Of course I also have it on iPod, but having to use the touch screen for control causes you to miss shots that were easy on the original or active the flippers by accident.

Am I the only person who used to love Mr Nutz on the Amiga? It was a much better game than the SNES version which was ported to GBA, etc. And of course Wiz n Liz, the music was far superior on the Amiga to any other version. An amazingly simple but addictive game.
 
Last edited by a moderator:
Hi, some time ago i ask ED because of this theme.

ED says that the touchscreen works very well but you can only control the cursor. But you cant clicking on the screen, that the cursor chance his position.
So you must drag the courser. And I think ED says that doubleclicking is also not possible.

But whit some optimization of the uae it will be possible.
 
Gurumeditation said:
Hi, some time ago i ask ED because of this theme.

ED says that the touchscreen works very well but you can only control the cursor. But you cant clicking on the screen, that the cursor chance his position.
So you must drag the courser.

Yep, that's something that needs to be coded, as the Amiga doesn't know what a touchscreen is, it only has a mouse and a mouse can't jump around.

And I think ED says that doubleclicking is also not possible.

Now I do wonder... why shouldn't it?
 
Last edited:
Gurumeditation said:
Hi, some time ago i ask ED because of this theme.

ED says that the touchscreen works very well but you can only control the cursor. But you cant clicking on the screen, that the cursor chance his position.
So you must drag the courser. And I think ED says that doubleclicking is also not possible.

But whit some optimization of the uae it will be possible.

Double clicking is possible, but touch screen for the mouse will never be possible. You will either have to drag the Amiga mouse around or use the nubs.
 
Last edited by a moderator:
craigix said:
Gurumeditation said:
Hi, some time ago i ask ED because of this theme.

ED says that the touchscreen works very well but you can only control the cursor. But you cant clicking on the screen, that the cursor chance his position.
So you must drag the courser. And I think ED says that doubleclicking is also not possible.

But whit some optimization of the uae it will be possible.

Double clicking is possible, but touch screen for the mouse will never be possible. You will either have to drag the Amiga mouse around or use the nubs.

Your a funny guy. ED says touch screen as mouse possible, you say its not. Its possible
 
Last edited by a moderator:
Mithrildor said:
Your a funny guy. ED says touch screen as mouse possible, you say its not. Its possible

We shouldn't take Craigix's hyperbole at face value. He doesn't necessarily have the time to fully qualify his statements, but is usually fairly easy to infer. You have to consider what he said in combination with what ED said. While I'll concede Craigix did say:
craigix said:
touch screen for the mouse will never be possible
while Evil Dragon said it would, he did also say:
craigix said:
You will either have to drag the Amiga mouse around
So you have to infer (I know, not something everyone is capable of) that Craigix meant that touching the screen at a direct location on the Amiga emulator is not possible for the reasons EvilDragon explained (the Amiga mouse never expected to jump directly from one location to the other). But dragging the mouse from its current position (which raises the question of pixel tolerance - how close will you have to be to "catch" the mouse to drag it) will work. He also said the nubs would work, but we've all known that for a while.
 
Last edited by a moderator:
sverm said:
So you have to infer (I know, not something everyone is capable of) that Craigix meant that touching the screen at a direct location on the Amiga emulator is not possible for the reasons EvilDragon explained (the Amiga mouse never expected to jump directly from one location to the other). But dragging the mouse from its current position (which raises the question of pixel tolerance - how close will you have to be to "catch" the mouse to drag it) will work. He also said the nubs would work, but we've all known that for a while.
EvilDragon said "It needs to be coded", what I infer from that is that the Amiga emulator is currently not touchscreen aware.

Touchscreens and mice behave slightly differently (absolute motion vs relative motion). What needs to be done is to make the Amiga emulator touchscreen aware such that it translates absolute motion into relative motion of the Amiga mouse. This is neither impossible nor extremely hard, but someone has to write code to support it.
 
Last edited by a moderator:
The Amiga mouse doesn't do any X/Y translation. It just passes "mouse moved left X points", "mouse moved up Y points", etc...
By contrast, a touchscreen is a direct X/Y system.
What needs to happen in order to work with the Amiga emulator is to somehow take the exact positions that the touchscreen provides and translate them to relative positions for the amiga programs. If different programs have different mouse "resolutions", then this will be even more difficult.
In short, possible, but only after a lot of work and experimentation.
 
Looks like this is going to be slightly trickier than I expected. People have been struggling with similar issues with the Wiimote.

Apparently, UAE doesn't know the absolute position of the Amiga mouse itself, but only generates relative movement which is interpreted by the Amiga software. Naturally, this is easy when your input device itself generates relative events (such as a mouse or joystick). However, an absolute input device such as the WiiMote and a touchscreen would need to know the absolute position.
 
WizardStan said:
The Amiga mouse doesn't do any X/Y translation. It just passes "mouse moved left X points", "mouse moved up Y points", etc...
By contrast, a touchscreen is a direct X/Y system.
What needs to happen in order to work with the Amiga emulator is to somehow take the exact positions that the touchscreen provides and translate them to relative positions for the amiga programs. If different programs have different mouse "resolutions", then this will be even more difficult.
In short, possible, but only after a lot of work and experimentation.

Yes, it's perfectly possible - if I've done it for a speccy mouse (which uses the same mechanism as an amiga mouse, but with interrupts for directional movements) then it can be done for the Amiga. Each app which uses the mouse will need to be patched. As everyone will be using a Workbench, it will be a good place to start adding a patch to the ROM libs to utilise a touchscreen. From there, you'll have to patch individual games but it shouldn't be too hard, and there's not many games that will need it - mouse controlled games were far outnumbered by those controlled by joystick or keys.

D.
 
Last edited by a moderator:
Mithrildor said:
Needs to be patched? What about an inbuild function in the emulator doing this?

Sorry, I don't know anything about the Amiga platform, but I imagine the solution to this problem would be akin to the SNES hack in this video:

Gradius III with mouse

The ship in Gradius III is only ever intended to move when it gets some combination of "go right/up/left/down" instructions (from the Dpad) a bit like the Amiga mouse. The (X,Y) coordinates of the ship are stored in a couple of spots somewhere in the SNES RAM. Someone identified those addresses, got an emulator with scripting capabilities (that also knows where the mouse cursor is hovering over it) and wrote a nifty little script that pokes the mouse coordinates into the spot where the ship coordinates are stored. To do this with any other game would require identifying the RAM addresses where the player's X and Y coordinates are stored in that game. If the Amiga mouse position and movement are handled by an OS layer, perhaps the mouse coordinates reside in a couple of consistent spots in RAM. If so, it's a quick fix for the emulator to poke touchscreen coordinates into those values. Dunny's last post seems to indicate that this is not the case, so I assume the following situation is what you'll be dealing with.

If mouse input is handled not by an OS but by individual programs, then translating touchscreen coordinates to Amiga cursor position will have to be done on a per-program basis. As long as the program stores the cursor coordinates in the same addresses for the entire time it's executing, that will be a fairly easy fix. I have encountered Megadrive games, however, that do not use the same addresses for values like ammo or HP from level to level. There is the unfortunate possibility that a given Amiga program will not consistently use the same addresses to store the cursor position. In that case, a more complex fix would be needed that identifies say, what level you're on and then pokes touchscreen positions into the addresses you've found to be used for cursor position on that particular level.


tl;dr If there are Amiga emulators that have some scripting facilities with access to the emulated RAM, then you're set.
 
Last edited by a moderator:
Dunny said:
WizardStan said:
The Amiga mouse doesn't do any X/Y translation. It just passes "mouse moved left X points", "mouse moved up Y points", etc...
By contrast, a touchscreen is a direct X/Y system.
What needs to happen in order to work with the Amiga emulator is to somehow take the exact positions that the touchscreen provides and translate them to relative positions for the amiga programs. If different programs have different mouse "resolutions", then this will be even more difficult.
In short, possible, but only after a lot of work and experimentation.

Yes, it's perfectly possible - if I've done it for a speccy mouse (which uses the same mechanism as an amiga mouse, but with interrupts for directional movements) then it can be done for the Amiga. Each app which uses the mouse will need to be patched. As everyone will be using a Workbench, it will be a good place to start adding a patch to the ROM libs to utilise a touchscreen. From there, you'll have to patch individual games but it shouldn't be too hard, and there's not many games that will need it - mouse controlled games were far outnumbered by those controlled by joystick or keys.

D.

I find this solution to be unlikely at best.

Thousands of games, hundreds of which used the mouse somewhere in them, then you have to work out how each program stored the mouse coords (that won't be a fun job), then see if the program will actually allow you to poke in a new value/patch without some kind of ancient copy protection kicking in, then work out a way of having the emulator identify which game needs which patch and when it needs the patch (those memory locations may well be used for something else when the mouse isn't on the screen) ... urgh... it's getting messy...
 
Last edited by a moderator:
craigix said:
Dunny said:
WizardStan said:
The Amiga mouse doesn't do any X/Y translation. It just passes "mouse moved left X points", "mouse moved up Y points", etc...
By contrast, a touchscreen is a direct X/Y system.
What needs to happen in order to work with the Amiga emulator is to somehow take the exact positions that the touchscreen provides and translate them to relative positions for the amiga programs. If different programs have different mouse "resolutions", then this will be even more difficult.
In short, possible, but only after a lot of work and experimentation.

Yes, it's perfectly possible - if I've done it for a speccy mouse (which uses the same mechanism as an amiga mouse, but with interrupts for directional movements) then it can be done for the Amiga. Each app which uses the mouse will need to be patched. As everyone will be using a Workbench, it will be a good place to start adding a patch to the ROM libs to utilise a touchscreen. From there, you'll have to patch individual games but it shouldn't be too hard, and there's not many games that will need it - mouse controlled games were far outnumbered by those controlled by joystick or keys.

D.

I find this solution to be unlikely at best.

Thousands of games, hundreds of which used the mouse somewhere in them, then you have to work out how each program stored the mouse coords (that won't be a fun job), then see if the program will actually allow you to poke in a new value/patch without some kind of ancient copy protection kicking in, then work out a way of having the emulator identify which game needs which patch and when it needs the patch (those memory locations may well be used for something else when the mouse isn't on the screen) ... urgh... it's getting messy...

Oh yes, it will be quite a job - but to be honest, at a basic level you only have to patch the workbench.

Myself, I'll be happy with Lemmings and Carrier Command :) Besides, why would you need to worry about copy protection? There's no need to actually modify *amiga* code - just do it a layer above the emulation, allowing the amiga to just continue as normal. My Speccy IDE does a similar job to inject an advanced code editor into the emulation (a Windows application that runs inside the z80 emulation), and that's far more complex than just messing with mouse coordinates. I'm pretty certain it can be done, but I'll have a word with Toni Wilen and see what he thinks.

D.
 
Last edited by a moderator:
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 ..
 
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 ..

That's what I was thinking. Just let the touchscreen behave like it's a mouse and make it switchable (so it won't e.g. mouse over-highloight everything in a menu or something). This will certainly give unwanted effects in 3D-Environments, but it should be fine for 2D.
 
Last edited by a moderator:
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?
 
Last edited by a moderator:
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:
Back
Top