Jump to content

[off topic] touchscreen issue...


lmsilva

Recommended Posts

Everyone,

I'm sorry that this is a little offtopic but I thought the main forum might still be a good place to post this at.

I recently bought a touchscreen kit that I custom fitted to my arcade.

I was extremely excited about it but quickly found out that, although the touchscreen would work "perfectly" in Windows, it wouldn't work correctly in popcap games or scummvm...

I've been debugging this for about a day now and noticed the touchscreen works just fine when the game is loaded in a window, but whenever I launch it fullscreen this happens:

(by the way, here's the video showing things working when in windowed mode):

I found a "workaround" for scummvm in their official forum but it involves replacing the libsdl scummvm ships with, with one some guy custom created...

I would say this solved 85% of my problem with ScummVM but I'm still having issue with, at least, dosbox and popcap games (though, according to my tests, this problems seems to happen every time I launch a game in fullscreen.

Based on my tests, I immediately thought to change the OS's definition to a lower setting (to try and match whatever the game uses in fullscreen) AND bumping up the definition of the game / emulator to match the OS but that didn't work either.

Any idea on why this happens or how to fix it?

Thanks,

Luis

Link to comment
Share on other sites

One workaround to this is to just use The windowed mode for as many emulators as you can.

Most RocketLauncher modules support windowed mode launch. You just have to check the option on the module options.

You could also use the bezel feature. For having the emulator launched at a fake full screen in modules that support bezel you just need to add a completely transparent bezel image for the system.

If you want to use this work around and the module does not support neither bezel or windowed mode, please let us know. When and if we have a time to look at it we will add support for that.

Link to comment
Share on other sites

Thank you so much for your reply!

I'm still using HyperLaunch 1.x so I really need to update...

I have heard about bezels but know nothing about them yet so...I'll definitely look into that :o)

From what I understand, bezels are, in essence, a frame that you put around the windowed view, right? Can you center the windowed view? And do you have any control over how big the actual window is? (I'm guessing you do not and that's a problem cause for some games, like PopCap games, the window is too small!

One work around would be to temporarily lower the screen definition so that small windows take up a bigger portion of the screen! Can HyperLaunch do that? (change the screen definition on the fly)?

Also, based on my debugging, it seems what happens is that, when the app loads in full screen, the app still treats the mouse as if it were running in a window inside a BIGGER frame (and that's why the mouse pointer seems to be moving off to the sides)...

One POTENTIAL fix would be to run some sort of an app in the background (like HyperLaunch) that looked for touch events and translated them into actual mouse coordinates and clicks. I think this, in theory, would work. But I have no idea if we can get that level of control over a full screen app (translating touch events to mouse events)? Windows seems to detect EXACTLY where I point (I can see a circle showing where I tapped) so...this should work.

By the way, this is a little off topic but, as an Engineer by trade, I'm actually pretty curious about this...

I'm amazed at what you guys did with HyperLaunch (e.g. hiding windows, giving focus to certain areas, moving the mouse, removing the task bar, etc...). How do you do all those things? Is there some code available I can look at?

I've always been fascinated with streaming apps and having that level of control over the windows desktop is essential to only focus on the app content so I'm very curious about how that works.

Thank you!

Luis

Everyone,

I'm sorry that this is a little offtopic but I thought the main forum might still be a good place to post this at.

I recently bought a touchscreen kit that I custom fitted to my arcade.

I was extremely excited about it but quickly found out that, although the touchscreen would work "perfectly" in Windows, it wouldn't work correctly in popcap games or scummvm...

I've been debugging this for about a day now and noticed the touchscreen works just fine when the game is loaded in a window, but whenever I launch it fullscreen this happens:

(by the way, here's the video showing things working when in windowed mode):

I found a "workaround" for scummvm in their official forum but it involves replacing the libsdl scummvm ships with, with one some guy custom created...

I would say this solved 85% of my problem with ScummVM but I'm still having issue with, at least, dosbox and popcap games (though, according to my tests, this problems seems to happen every time I launch a game in fullscreen.

Based on my tests, I immediately thought to change the OS's definition to a lower setting (to try and match whatever the game uses in fullscreen) AND bumping up the definition of the game / emulator to match the OS but that didn't work either.

Any idea on why this happens or how to fix it?

Thanks,

Luis

Link to comment
Share on other sites

HyperLaunch is all written in autohotey code. All source code is included on every relaease. So you just need to take a look at the code and the autohotkey language (that is a very high level language), and you could do everything that we do with any windows app.

I would just recomend to begin with simpler scripts as HyperLaunch is a big program (probably the biggest program ever made in autohotkey) and has some advanced stuff on it.

About bezel, yes, they are just a overlay over the screen emulator with a defined window hole were the emulator will be shown. So if you do a image has a centered hole, the bezel code will automatically center the emulator, and resize the emulator and bezel images whenever necessary to make the screen look good. By the same principle if you set a window just as the size of your screen, the emulator should look like it is in full screen, if it is really on windowed mode (that is the trick that I posted above about using a entire transparent image as bezel).

Unfortunately, for some emulators we still had not the time to implement the bezel support. It is a work in progress, but , we are getting there.

You should definitely upgrade to use RocketLauncher. It is much better than the previous versions and have much more than just the bezel feature.

About the program to translate your screen presses to other dimension, it is definitely possible to be done in autohotkey, just search about its commands like for example mouse hotkeys http://www.autohotkey.com/docs/Hotkeys.htm and mouseclicks http://www.autohotkey.com/docs/commands/MouseClick.htm

It could be the case that the emulator does not recognize the autohotkey presses, but this only happens with a handfull of emus that only accept raw input.

Link to comment
Share on other sites

I'm going to look into it! (I'm installing a fresh hyperspin system so I can play with hyperlaunch).

I understand the concept of autohotkey but I don't understand how can I create something that is dynamic?

e.g.

- detect touch event (by the way, I didn't see any reference to touch events in the docs)

- grab the location of the touch event in real time

- generate a mouse event

As far as I can tell / know, autohotkey can only be used for automating content based on a set script, you can't really create something dynamic that grabs inputs in real time and automates based on those inputs, can you??

Link to comment
Share on other sites

just try to create a hotkey for a left click mouse press. Usually touch presses correspond to left mouse click presses, but you would have to try it out.

Them inside the hotkey acquire the current mouse position in variables and make the transformation that you want to do on the coordinates.

The simply issue a click command with the modified coordinates.

Something like this:

hotkey, LButton, MouseClick
Return

MouseClick:
   CoordMode, Mouse, Screen 
   MouseGetPos, ClickX, ClickY
   ;Do whatever translation of the mouse points ClickX and ClickY that you need to do to translate the screen position press to the correct coordinates.
   TranslatedClickX := (ClickX*2) + 1
   TranslatedClickY := (ClickY*2) + 1
   MouseClick, left, %TranslatedClickX%, %TranslatedClickY%
Return

This script will be running in the background and whenever you left click on the screen, it will try to left click on the translated coordinates.

Link to comment
Share on other sites

I had the same thing happen to me when I was making my bartop touchscreen. I found a program called Windowed Boarderless Gaming (google it) in the Steam forums. It essentially makes the game run in windowed mode but looks like it's full screen. That solved my problem. It was a little weird setting it up but well worth it. Make sure you run it at the same resolution as you desktop or the game will not fill the screen. Also, if you have any of the Bejeweled games, it helps if you turn off "Flicks" in the Pen and Touch section of your Control Panel (I'm just assuming you have Windows 7). It seems to interfere with a smooth swiping motion and makes it aggravating to play those games. Hope this helps.

Link to comment
Share on other sites

So I just tried the Windowed Borderless Gaming app you mentioned (again, thanks for that tip) but I'm still having issues...

Basically, the game now starts inside a borderless window BUT, it only occupies part of my screen (and not the full resolution).

I went into the game settings and tried setting the definition to 1920x1080 (my OS screen definition) without success.

Maybe I misunderstood what this app did and thought it scaled the windowed app (when it merely relocates its position and removes the borders)...

In which case, I'm guessing the solution would be to use HyperLaunch to change the OS's screen definition to whichever definition each game / emulator runs in and then use the Windowed Borderless Gaming app to run in windowed mode without a border...is that the solution? That sucks cause, unfortunately, I have no idea at which resolution does each game / emulator run. Emulators usually allow you to set the definition but not all games (e.g. the popcap games only allow for either windowed or full screen).

I've recorded a video so you can more easily understand what is happening (in case I wasn't clear):

Any thoughts my friend?

Thanks

I had the same thing happen to me when I was making my bartop touchscreen. I found a program called Windowed Boarderless Gaming (google it) in the Steam forums. It essentially makes the game run in windowed mode but looks like it's full screen. That solved my problem. It was a little weird setting it up but well worth it. Make sure you run it at the same resolution as you desktop or the game will not fill the screen. Also, if you have any of the Bejeweled games, it helps if you turn off "Flicks" in the Pen and Touch section of your Control Panel (I'm just assuming you have Windows 7). It seems to interfere with a smooth swiping motion and makes it aggravating to play those games. Hope this helps.
Link to comment
Share on other sites

By the way, I ended up figuring out the popcap definition was 800x600 so I tried manually changing the OS's definition and using Windowed Borderless Gaming and it worker perfectly. Its just that it is a lot of trouble (and I don't even know how well it will work when launched from HyperLaunch).

Could you please confirm this IS the workaround? (the app doesn't actually stretch the windowed app by itself OR change the screen definition?)

Hmm, you know what? I just thought of something I need to try heheh...I'm starting to suspect the windowed borderless gaming definition is the ACTUAL definition the app needs and not my native one! (DOH! :oP)

I'm going to try that!

So I just tried the Windowed Borderless Gaming app you mentioned (again, thanks for that tip) but I'm still having issues...

Basically, the game now starts inside a borderless window BUT, it only occupies part of my screen (and not the full resolution).

I went into the game settings and tried setting the definition to 1920x1080 (my OS screen definition) without success.

Maybe I misunderstood what this app did and thought it scaled the windowed app (when it merely relocates its position and removes the borders)...

In which case, I'm guessing the solution would be to use HyperLaunch to change the OS's screen definition to whichever definition each game / emulator runs in and then use the Windowed Borderless Gaming app to run in windowed mode without a border...is that the solution? That sucks cause, unfortunately, I have no idea at which resolution does each game / emulator run. Emulators usually allow you to set the definition but not all games (e.g. the popcap games only allow for either windowed or full screen).

I've recorded a video so you can more easily understand what is happening (in case I wasn't clear):

Any thoughts my friend?

Thanks

Link to comment
Share on other sites

Yeah I kinda had to play around with it to get it to work properly. As I understand it the program makes the game run in a window, without the boarders you would normally see, at whatever resolution you ask it to. Whether it changes the game's resolution or the desktop's resolution I don't know. It probably depends on the game. It should fill up the entire screen and appear that it is running fullscreen. It does for me and I have my games set to run at 1920x1080. Make sure whatever game you are trying to play is set for windowed mode and not fullscreen. Also make sure Windowed Boarderless Gaming starts up when Windows starts. I think there is an option for that in the settings. Otherwise you will have to start it manually every time Windows starts to get it to work which is a pain. I have no idea how well this solution will play with Hyperspin/Hyperlaunch. I use a different frontend for my touch screen bartop but I really see no reason why it wouldn't work for you. Just keep playing with it and you will get it. Hope this helps. If you have any more questions don't hesitate to ask. Good luck.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...