team-phoenix / Phoenix

A multi-system emulator and library manager designed to be both powerful and easy to use.
http://phoenix.vg
GNU General Public License v2.0
377 stars 39 forks source link

DS touch support #212

Closed athairus closed 8 years ago

athairus commented 8 years ago
athairus commented 8 years ago

Currently detecting whether to enable "touch mode" by checking for desmume in two places: The core's path at load time (for QML's use) and in the variable list within LibretroCore. Maybe a more general approach might be needed?

EDIT: This has changed: Touch mode (which is a QML property of the root window) is now only being set at load time by checking for "desmume" in the core name (string matching). In addition, a simple variable check is done in LibretroCore: if desmume_pointer_type exists, set it to touch.

athairus commented 8 years ago

There's a considerable amount of input lag making high-intensity games difficult to play. It might be intrinsic to MouseArea and there's nothing we can change about that's so.

We might have to roll our own input code? Maybe SDL can help!

athairus commented 8 years ago

It's very easy to see the input lag with this piece of homebrew (from the libnds examples): http://phoenix.vg/dl/Homebrew/touch_test.nds

Compare Phoenix's performance to RetroArch's. We have some work to do.

athairus commented 8 years ago

Turns out the input lag is almost entirely due to vsync. Since it has nothing to do with how we handle touch input, this bug's done!