// protocol used to talk between exe and it's launcher #ifndef __CLIENTSERVER_H #define __CLIENTSERVER_H #include // names _LIT(KServerName, "PicodriveNServ"); _LIT(KServerWGName, "Picosmall"); // window group name _LIT(KClientName, "PicodriveN"); _LIT(KClientFind, "PicodriveN*"); // client search mask (for TFindLibrary) // opcodes used in message passing between client and server enum TPicoServRqst { PicoMsgLoadState, PicoMsgSaveState, PicoMsgLoadROM, PicoMsgResume, PicoMsgReset, PicoMsgKeys, PicoMsgPause, PicoMsgQuit, PicoMsgConfigChange, // launcher -> emu PicoMsgRetrieveConfig, // emu -> launcher PicoMsgRetrieveDebugStr,// fixed to 512 bytes 4 now kDefaultMessageSlots // this is how many messages we need :) }; // event messages to launcher enum TPicoLauncherEvents { EEventKeyCfgDone = EEventUser + 1, EEventGamePaused, }; // configuration data to be sent between server and client struct TPicoConfig { enum TPicoScreenRotation { PRot0, PRot90, PRot180, PRot270 }; enum TPicoScreenMode { PMCenter, PMFit, PMFit2 }; enum TPicoFrameSkip { PFSkipAuto = -1, PFSkip0 }; TInt32 iScreenRotation; TInt32 iScreenMode; TUint32 iFlags; // LSb->MSb: use_sram, show_fps, enable_sound, sound_rate(3bits), gzip_saves{=0x40}, dont_use_mot_vol // enable_ym2612&dac, enable_sn76496, enable_z80, stereo_sound; // alt_renderer, 6button_gamepad, accurate_timing TInt32 iPicoOpt; TInt32 iFrameskip; TUint32 iKeyBinds[32]; TUint32 iAreaBinds[19]; TInt32 PicoRegion; }; #endif // __CLIENTSERVER_H