-extern int PicoAHW; // Pico active hw\r
-extern int PicoSkipFrame; // skip rendering frame, but still do sound (if enabled) and emulation stuff\r
-extern int PicoRegionOverride; // override the region detection 0: auto, 1: Japan NTSC, 2: Japan PAL, 4: US, 8: Europe\r
-extern int PicoAutoRgnOrder; // packed priority list of regions, for example 0x148 means this detection order: EUR, USA, JAP\r
-extern int PicoSVPCycles;\r
+\r
+#define PQUIRK_FORCE_6BTN (1<<0)\r
+\r
+// the emulator is configured and some status is reported\r
+// through this global state (not saved in savestates)\r
+typedef struct\r
+{\r
+ unsigned int opt; // POPT_* bitfield\r
+\r
+ unsigned short pad[2]; // Joypads, format is MXYZ SACB RLDU\r
+ unsigned short padInt[2]; // internal copy\r
+ unsigned short AHW; // active addon hardware: PAHW_* bitfield\r
+\r
+ unsigned short skipFrame; // skip rendering frame, but still do sound (if enabled) and emulation stuff\r
+ unsigned short regionOverride; // override the region detection 0: auto, 1: Japan NTSC, 2: Japan PAL, 4: US, 8: Europe\r
+ unsigned short autoRgnOrder; // packed priority list of regions, for example 0x148 means this detection order: EUR, USA, JAP\r
+\r
+ unsigned short quirks; // game-specific quirks: PQUIRK_*\r
+ unsigned short overclockM68k; // overclock the emulated 68k, in %\r
+\r
+ int sndRate; // rate in Hz\r
+ short *sndOut; // PCM output buffer\r
+ void (*writeSound)(int len); // write .sndOut callback, called once per frame\r
+\r
+ void (*osdMessage)(const char *msg); // output OSD message from emu, optional\r
+\r
+ void (*mcdTrayOpen)(void);\r
+ void (*mcdTrayClose)(void);\r
+} PicoInterface;\r
+\r
+extern PicoInterface PicoIn;\r
+\r