2016-08-10 03:28:40 +00:00
|
|
|
#ifndef INCLUDED_GAME_H
|
|
|
|
#define INCLUDED_GAME_H
|
|
|
|
|
2017-03-26 16:38:55 +00:00
|
|
|
#include <string>
|
|
|
|
#include <memory>
|
2016-08-10 03:28:40 +00:00
|
|
|
|
|
|
|
struct Game
|
|
|
|
{
|
2016-08-11 03:53:19 +00:00
|
|
|
std::string name;
|
2017-03-27 02:02:22 +00:00
|
|
|
std::string parent;
|
2016-08-10 03:28:40 +00:00
|
|
|
std::string title;
|
|
|
|
std::string version;
|
|
|
|
std::string manufacturer;
|
2016-08-24 04:13:23 +00:00
|
|
|
unsigned year = 0;
|
2016-08-10 03:28:40 +00:00
|
|
|
std::string stepping;
|
2016-08-18 04:19:36 +00:00
|
|
|
std::string mpeg_board;
|
2022-06-09 21:10:39 +00:00
|
|
|
enum AudioTypes
|
|
|
|
{
|
|
|
|
MONO = 0, // Merge DSB+SCSP1+SCSP2 to 1 channel mono
|
|
|
|
STEREO_LR, // Merge DSP+SCSP1+SCSP2 to 2 channels stereo Left/Right (most common)
|
|
|
|
STEREO_RL, // Merge DSP+SCSP1+SCSP2 to 2 channels stereo reversed Right/Left
|
|
|
|
QUAD_1_FLR_2_RLR, // Split DSB+SCSP1 to FrontLeft/FrontRight and SCSP2 to RearLeft/RearRight (Daytona2)
|
|
|
|
QUAD_1_FRL_2_RRL, // Split DSB+SCSP1 to FrontRight/FrontLeft and SCSP2 to RearRight/RearLeft
|
|
|
|
QUAD_1_RLR_2_FLR, // Split DSB+SCSP1 to RearLeft/RearRight and SCSP2 to FrontLeft/FrontRight
|
|
|
|
QUAD_1_RRL_2_FRL, // Split DSB+SCSP1 to RearRight/RearLeft and SCSP2 to FrontRight/FrontLeft
|
|
|
|
QUAD_1_LR_2_FR_MIX, // Specific srally2: Split SCSP2 and mix first channel to DSB+SCP11 Front Left/Right and second to Read Left/Right
|
|
|
|
};
|
|
|
|
AudioTypes audio = STEREO_LR;
|
2019-01-13 16:00:37 +00:00
|
|
|
std::string pci_bridge; // overrides default PCI bridge type for stepping (empty string for default)
|
|
|
|
uint32_t real3d_pci_id = 0; // overrides default Real3D PCI ID for stepping (0 for default)
|
|
|
|
float real3d_status_bit_set_percent_of_frame = 0; // overrides default status bit timing (0 for default)
|
2016-08-18 04:19:36 +00:00
|
|
|
uint32_t encryption_key = 0;
|
2021-04-14 01:20:45 +00:00
|
|
|
bool netboard_present;
|
2020-07-01 15:56:21 +00:00
|
|
|
|
2016-08-18 04:19:36 +00:00
|
|
|
enum Inputs
|
|
|
|
{
|
|
|
|
INPUT_UI = 0, // special code reserved for Supermodel UI inputs
|
|
|
|
INPUT_COMMON = 0x00000001, // common controls (coins, service, test)
|
|
|
|
INPUT_VEHICLE = 0x00000002, // vehicle controls
|
2021-02-18 10:29:15 +00:00
|
|
|
INPUT_JOYSTICK1 = 0x00000004, // joystick 1
|
2016-08-18 04:19:36 +00:00
|
|
|
INPUT_JOYSTICK2 = 0x00000008, // joystick 2
|
|
|
|
INPUT_FIGHTING = 0x00000010, // fighting game controls
|
|
|
|
INPUT_VR4 = 0x00000020, // four VR view buttons
|
|
|
|
INPUT_VIEWCHANGE = 0x00000040, // single view change button
|
|
|
|
INPUT_SHIFT4 = 0x00000080, // 4-speed shifter
|
|
|
|
INPUT_SHIFTUPDOWN = 0x00000100, // up/down shifter
|
|
|
|
INPUT_HANDBRAKE = 0x00000200, // handbrake
|
|
|
|
INPUT_HARLEY = 0x00000400, // Harley Davidson controls
|
|
|
|
INPUT_GUN1 = 0x00000800, // light gun 1
|
|
|
|
INPUT_GUN2 = 0x00001000, // light gun 2
|
|
|
|
INPUT_ANALOG_JOYSTICK = 0x00002000, // analog joystick
|
|
|
|
INPUT_TWIN_JOYSTICKS = 0x00004000, // twin joysticks
|
|
|
|
INPUT_SOCCER = 0x00008000, // soccer controls
|
|
|
|
INPUT_SPIKEOUT = 0x00010000, // Spikeout buttons
|
|
|
|
INPUT_ANALOG_GUN1 = 0x00020000, // analog gun 1
|
|
|
|
INPUT_ANALOG_GUN2 = 0x00040000, // analog gun 2
|
|
|
|
INPUT_SKI = 0x00080000, // ski controls
|
|
|
|
INPUT_MAGTRUCK = 0x00100000, // magical truck controls
|
|
|
|
INPUT_FISHING = 0x00200000, // fishing controls
|
|
|
|
INPUT_ALL = 0x003FFFFF
|
|
|
|
};
|
|
|
|
uint32_t inputs = 0;
|
2021-02-18 10:29:15 +00:00
|
|
|
|
|
|
|
enum DriveBoardType
|
|
|
|
{
|
|
|
|
DRIVE_BOARD_NONE = 0,
|
|
|
|
DRIVE_BOARD_WHEEL,
|
|
|
|
DRIVE_BOARD_JOYSTICK,
|
|
|
|
DRIVE_BOARD_SKI,
|
|
|
|
DRIVE_BOARD_BILLBOARD
|
|
|
|
};
|
|
|
|
DriveBoardType driveboard_type = DriveBoardType::DRIVE_BOARD_NONE;
|
2016-08-10 03:28:40 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // INCLUDED_GAME_H
|