// Project64 - A Nintendo 64 emulator // https://www.pj64-emu.com/ // Copyright(C) 2001-2021 Project64 // Copyright(C) 2014 Bobby Smiles // Copyright(C) 2009 Richard Goedeken // Copyright(C) 2002 Hacktarux // GNU/GPLv2 licensed: https://gnu.org/licenses/gpl-2.0.html #pragma once // Macro for unused variable warning suppression #ifdef __GNUC__ # define UNUSED(x) UNUSED_ ## x __attribute__((__unused__)) #else # define UNUSED(x) /* x */ #endif // Macro for inline keyword #ifdef _MSC_VER #define inline __inline #endif // DLL function linking #if defined(_WIN32) #define EXPORT extern "C" __declspec(dllexport) #define CALL __cdecl #else #define EXPORT extern "C" __attribute__((visibility("default"))) #define CALL #endif // Plugin types enum { PLUGIN_TYPE_RSP = 1, PLUGIN_TYPE_VIDEO = 2, PLUGIN_TYPE_AUDIO = 3, PLUGIN_TYPE_CONTROLLER = 4, }; // Structures typedef struct { uint16_t Version; // Should be set to 0x0101 uint16_t Type; // Set to PLUGIN_TYPE_RSP char Name[100]; // Name of the DLL // If DLL supports memory, these memory options then set them to TRUE or FALSE if it does not support it int NormalMemory; // A normal BYTE array int MemoryBswaped; // A normal BYTE array where the memory has been pre-bswap'd on a DWORD (32-bits) boundary } PLUGIN_INFO;