From: Piotr Fusik (P.Fusik_at_elka.pw.edu.pl)
Date: 2003-09-29 22:26:49
On Mon, 29 Sep 2003, Ullrich von Bassewitz wrote:
> > Well, I see some mistakes in this topic. As I implemented all mouse-like
> > devices in the Atari800 emulator, here's some explaination of what can
> > be directly plugged to Atari joystick ports besides joysticks:
> [...]
>
> Any chance to map all this stuff into a generic controller API?
>
I think yes.
In Atari800 the interface between port-specific code (for Windows, DOS,
etc.) and emulation core is simple:
int mouse_mode; // MOUSE_PAD, MOUSE_KOALA, etc.
int mouse_port; // 0-3 for 400/800 that have 4 joystick ports, 0-1 for
// XL/XE
int mouse_delta_x; // position change since last frame
int mouse_delta_y;
int mouse_buttons; // bit 0 for left button, bit 1 for right button
// (plus some calibration settings, which are of little importance,
// see input.[ch] at http://atari800.sf.net)
So, port-specific code simply sets all these variables (mouse_mode and
mouse_port are user's selection, the other are updated every 1/50s or
1/60s).
The controller API for Atari code must be somewhat more complicated:
- Light Pen and Light Gun are screen-related (on Atari the resolution
for reading them is 160x120)
- mice and track ball have unlimited range, while other devices have their
"position" (for paddles and tablets the range is 1-228)
Piotr
----------------------------------------------------------------------
To unsubscribe from the list send mail to majordomo_at_musoftware.de with
the string "unsubscribe cc65" in the body(!) of the mail.
This archive was generated by hypermail 2.1.3 : 2003-09-29 22:29:11 CEST