43 lines
814 B
C
43 lines
814 B
C
#pragma once
|
|
#include "common.h"
|
|
|
|
void hook_drives();
|
|
|
|
// MBR
|
|
#define MBR_FLAG_NONE 0x00
|
|
#define MBR_FLAG_BOOTABLE 0x80
|
|
|
|
#define MBR_FS_NONE 0x00
|
|
#define MBR_FS_EXT_CHS 0x05
|
|
#define MBR_FS_FAT16 0x06
|
|
#define MBR_FS_NTFS 0x07
|
|
#define MBR_FS_EXT_LBA 0x0F
|
|
|
|
#pragma pack(1)
|
|
typedef struct mbr {
|
|
BYTE bootstrap_code[446];
|
|
#pragma pack(1)
|
|
struct {
|
|
BYTE status;
|
|
BYTE start_chs[3];
|
|
BYTE type;
|
|
BYTE end_chs[3];
|
|
DWORD lba;
|
|
DWORD sectors;
|
|
} partitions[4];
|
|
BYTE sig[2];
|
|
} mbr_t;
|
|
|
|
// SEGA
|
|
#define SPD_VERSION 1
|
|
#define SBR_VERSION 1
|
|
|
|
enum spd_slot {
|
|
SPD_Original0 = 0x10,
|
|
SPD_Original1 = 0x11,
|
|
SPD_Patch0 = 0x20,
|
|
SPD_Patch1 = 0x21,
|
|
SPD_OS = 0x30,
|
|
SPD_AppData = 0x40,
|
|
};
|
|
typedef uint8_t spd_slot_t; |