1#ifndef _REVOLUTION_DVD_H_
2#define _REVOLUTION_DVD_H_
11#define DVD_ASSERTMSGLINE(line, cond, msg) \
13 OSPanic(__FILE__, line, msg)
15#define DVD_ASSERTMSG1LINE(line, cond, msg, arg1) \
17 OSPanic(__FILE__, line, msg, arg1)
19#define DVD_ASSERTMSG2LINE(line, cond, msg, arg1, arg2) \
21 OSPanic(__FILE__, line, msg, arg1, arg2)
23#define DVD_RESULT_GOOD 0
24#define DVD_RESULT_FATAL_ERROR -1
25#define DVD_RESULT_IGNORED -2
26#define DVD_RESULT_CANCELED -6
28#define DVD_STATE_FATAL_ERROR -1
29#define DVD_STATE_END 0
30#define DVD_STATE_BUSY 1
31#define DVD_STATE_WAITING 2
32#define DVD_STATE_COVER_CLOSED 3
33#define DVD_STATE_NO_DISK 4
34#define DVD_STATE_COVER_OPEN 5
35#define DVD_STATE_WRONG_DISK 6
36#define DVD_STATE_MOTOR_STOPPED 7
37#define DVD_STATE_PAUSING 8
38#define DVD_STATE_IGNORED 9
39#define DVD_STATE_CANCELED 10
40#define DVD_STATE_RETRY 11
42#define DVD_MIN_TRANSFER_SIZE 32
45#define DVD_INTTYPE_TC 1
46#define DVD_INTTYPE_DE 2
48#define DVD_INTTYPE_CVR 4
51#define DVD_COMMAND_NONE 0
52#define DVD_COMMAND_READ 1
53#define DVD_COMMAND_SEEK 2
54#define DVD_COMMAND_CHANGE_DISK 3
55#define DVD_COMMAND_BSREAD 4
56#define DVD_COMMAND_READID 5
57#define DVD_COMMAND_INITSTREAM 6
58#define DVD_COMMAND_CANCELSTREAM 7
59#define DVD_COMMAND_STOP_STREAM_AT_END 8
60#define DVD_COMMAND_REQUEST_AUDIO_ERROR 9
61#define DVD_COMMAND_REQUEST_PLAY_ADDR 10
62#define DVD_COMMAND_REQUEST_START_ADDR 11
63#define DVD_COMMAND_REQUEST_LENGTH 12
64#define DVD_COMMAND_AUDIO_BUFFER_CONFIG 13
65#define DVD_COMMAND_INQUIRY 14
66#define DVD_COMMAND_BS_CHANGE_DISK 15
67#define DVD_COMMAND_UNK_16 16
69#define DVD_RESETCOVER_TIMELAG_TICKS2 OSMillisecondsToTicks(100)
185#define ROUND(n, a) (((u32)(n) + (a)-1) & ~((a)-1))
274#define DVDReadAsync(fileInfo, addr, length, offset, callback) \
275 DVDReadAsyncPrio((fileInfo), (addr), (length), (offset), (callback), 2)
static u32 next
Definition CARDUnlock.c:29
s16 name
Definition d_a_e_pz.cpp:1754
static u16 const id2[7]
Definition d_a_npc_seirei.cpp:597
static u16 const id1[7]
Definition d_a_npc_seirei.cpp:587
void(* DVDCallback)(s32 result, DVDFileInfo *fileInfo)
Definition dvd.h:104
void(* DVDCommandCheckerCallback)(u32)
Definition dvd.h:85
struct DVDDriveInfo DVDDriveInfo
int DVDReadDiskID(DVDCommandBlock *block, DVDDiskID *diskID, DVDCBCallback callback)
Definition dvd.c:1054
BOOL DVDCheckDisk(void)
Definition dvd.c:1775
void DVDReset(void)
Definition dvd.c:1500
s32 DVDGetCommandBlockStatus(const DVDCommandBlock *block)
Definition dvd.c:1512
s32 DVDCancelAll(void)
Definition dvd.c:1742
s32 DVDGetDriveStatus(void)
Definition dvd.c:1529
void DVDResume(void)
Definition dvd.c:1571
int DVDCancelAsync(DVDCommandBlock *block, DVDCBCallback callback)
Definition dvd.c:1583
s32 DVDCancel(volatile DVDCommandBlock *block)
Definition dvd.c:1682
BOOL DVDSetAutoInvalidation(BOOL autoInval)
Definition dvd.c:1552
struct DVDDiskID DVDDiskID
int DVDChangeDiskAsyncForBS(DVDCommandBlock *block, DVDCBCallback callback)
Definition dvd.c:1334
void DVDPause(void)
Definition dvd.c:1560
void(* DVDCommandChecker)(DVDCommandBlock *, DVDCommandCheckerCallback)
Definition dvd.h:86
s32 DVDStopMotor(DVDCommandBlock *block)
Definition dvd.c:1414
DVDDiskID * DVDGetCurrentDiskID(void)
Definition dvd.c:1771
void(* DVDLowCallback)(u32)
Definition dvd.h:83
int DVDReadAbsAsyncForBS(DVDCommandBlock *block, void *addr, s32 length, s32 offset, DVDCBCallback callback)
Definition dvd.c:1033
s32 DVDInquiry(DVDCommandBlock *block, DVDDriveInfo *info)
Definition dvd.c:1465
int DVDInquiryAsync(DVDCommandBlock *block, DVDDriveInfo *info, DVDCBCallback callback)
Definition dvd.c:1449
int DVDReadAbsAsyncPrio(DVDCommandBlock *block, void *addr, s32 length, s32 offset, DVDCBCallback callback, s32 prio)
Definition dvd.c:996
s32 DVDConvertPathToEntrynum(const char *pathPtr)
Definition dvdfs.c:64
int DVDChangeDiskAsync(DVDCommandBlock *block, DVDDiskID *id, DVDCBCallback callback)
Definition dvd.c:1346
int DVDSeekAbsAsyncPrio(DVDCommandBlock *block, s32 offset, DVDCBCallback callback, s32 prio)
Definition dvd.c:1018
void DVDInit(void)
Definition dvd.c:105
int DVDResetRequired(void)
Definition dvd.c:1508
int DVDStopMotorAsync(DVDCommandBlock *block, DVDCBCallback callback)
Definition dvd.c:1402
s32 DVDChangeDisk(DVDCommandBlock *block, DVDDiskID *id)
Definition dvd.c:1367
int DVDCancelAllAsync(DVDCBCallback callback)
Definition dvd.c:1717
void(* DVDCBCallback)(s32 result, DVDCommandBlock *block)
Definition dvd.h:82
unsigned int size
Definition __os.h:106
int BOOL
Definition types.h:33
unsigned long u32
Definition types.h:12
unsigned short int u16
Definition types.h:10
signed long s32
Definition types.h:11
unsigned char u8
Definition types.h:8
void DVDLowReset(void)
Definition dvdlow.c:438
struct DVDGameTOC DVDGameTOC
void(* DVDCallback)(s32 result, DVDFileInfo *fileInfo)
Definition dvd.h:104
BOOL DVDReadAsyncPrio(DVDFileInfo *fileInfo, void *addr, s32 length, s32 offset, DVDCallback callback, s32 prio)
Definition dvdfs.c:299
struct DVDVideoReportKey DVDVideoReportKey
BOOL DVDFastOpenDir(s32 entrynum, DVDDir *dir)
Definition dvdfs.c:442
u32 DVDLowGetImmBufferReg(void)
Definition dvd_broadway.c:939
BOOL DVDFastOpen(s32 entrynum, DVDFileInfo *fileInfo)
Definition dvdfs.c:164
int DVDReadDir(DVDDir *dir, DVDDirEntry *dirent)
Definition dvdfs.c:482
BOOL DVDClose(DVDFileInfo *fileInfo)
Definition dvdfs.c:209
BOOL DVDLowReportKey(DVDVideoReportKey *reportKey, u32 format, u32 lsn, DVDLowCallback callback)
Definition dvd_broadway.c:738
BOOL DVDOpen(const char *fileName, DVDFileInfo *fileInfo)
Definition dvdfs.c:181
struct DVDPartitionInfo DVDPartitionInfo
struct diRegVals diRegVals_t
int DVDOpenDir(const char *dirName, DVDDir *dir)
Definition dvdfs.c:457
BOOL DVDLowUnencryptedRead(void *, u32, u32, DVDLowCallback)
Definition dvd_broadway.c:557
BOOL DVDLowGetNoDiscBufferSizes(const u32 partitionWordOffset, u32 *numTmdBytes, u32 *numCertBytes, DVDLowCallback callback)
Definition dvd_broadway.c:423
BOOL DVDLowGetNoDiscOpenPartitionParams(const u32 partitionWordOffset, ESTicket *eTicket, u32 *numTmdBytes, ESTitleMeta *tmd, u32 *numCertBytes, u8 *certificates, u32 *dataWordOffset, u8 *h3HashPtr, DVDLowCallback callback)
Definition dvd_broadway.c:470
BOOL DVDLowOpenPartition(const u32, const ESTicket *const, const u32, const u8 *const, ESTitleMeta *, DVDLowCallback)
Definition dvd_broadway.c:297
BOOL DVDLowUnmaskStatusInterrupts(void)
Definition dvd_broadway.c:943
BOOL DVDLowFinalize(void)
Definition dvd_broadway.c:212
BOOL __DVDGetAutoFatalMessaging(void)
Definition dvdFatal.c:203
BOOL DVDLowReadDiskID(DVDDiskID *diskID, DVDLowCallback callback)
Definition dvdlow.c:351
BOOL DVDLowRead(void *addr, u32 length, u32 offset, DVDLowCallback callback)
Definition dvdlow.c:286
BOOL DVDGetCurrentDir(char *path, u32 maxlen)
Definition dvdfs.c:276
BOOL DVDLowRequestError(DVDLowCallback callback)
Definition dvdlow.c:375
BOOL DVDLowSetSpinupFlag(u32 spinUp)
Definition dvd_broadway.c:647
s32 DVDReadPrio(DVDFileInfo *fileInfo, void *addr, s32 length, s32 offset, s32 prio)
Definition dvdfs.c:330
BOOL DVDLowSetMaximumRotation(u32 subcmd, DVDLowCallback callback)
Definition dvd_broadway.c:796
int DVDCloseDir(DVDDir *dir)
Definition dvdfs.c:496
u32 DVDLowGetCoverRegister(void)
Definition dvd_broadway.c:870
BOOL DVDLowBreak(void)
Definition dvdlow.c:488
BOOL DVDLowClosePartition(DVDLowCallback)
Definition dvd_broadway.c:537
BOOL DVDLowInit(void)
Definition dvd_broadway.c:224
BOOL DVDChangeDir(const char *dirName)
Definition dvdfs.c:281
BOOL DVDLowAudioBufferConfig(u8 enable, u32 size, DVDLowCallback callback)
Definition dvd_broadway.c:680
BOOL DVDLowSeek(u32 offset, DVDLowCallback callback)
Definition dvdlow.c:331
int DVDSetAutoFatalMessaging(BOOL enable)
Definition dvdFatal.c:78
void DVDRewindDir(DVDDir *dir)
Definition dvdfs.c:500
int DVDSeekAsyncPrio(DVDFileInfo *fileInfo, s32 offset, void(*callback)(s32, DVDFileInfo *), s32 prio)
Definition dvdfs.c:376
u32 DVDLowGetStatusRegister(void)
Definition dvd_broadway.c:874
s32 DVDGetTransferredSize(DVDFileInfo *fileinfo)
Definition dvdfs.c:600
void DVDDumpWaitingQueue(void)
Definition dvdqueue.c:149
DVDDiskID * DVDGenerateDiskID(DVDDiskID *id, const char *game, const char *company, u8 diskNum, u8 version)
Definition dvdidutils.c:76
s32 DVDSeekPrio(DVDFileInfo *fileInfo, s32 offset, s32 prio)
Definition dvdfs.c:397
BOOL DVDLowInquiry(DVDDriveInfo *info, DVDLowCallback callback)
Definition dvdlow.c:384
int DVDCompareDiskID(const DVDDiskID *id1, const DVDDiskID *id2)
Definition dvdidutils.c:18
u32 DVDLowGetCoverStatus(void)
Definition dvdlow.c:503
BOOL DVDLowPrepareCoverRegister(DVDLowCallback callback)
Definition dvd_broadway.c:882
DVDLowCallback DVDLowClearCallback(void)
Definition dvdlow.c:494
BOOL DVDLowMaskCoverInterrupt(void)
Definition dvd_broadway.c:947
u32 DVDLowGetControlRegister(void)
Definition dvd_broadway.c:878
BOOL DVDLowPrepareControlRegister(DVDLowCallback callback)
Definition dvd_broadway.c:920
BOOL DVDLowOpenPartitionWithTmdAndTicketView(const u32, const ESTicketView *const, const u32, const ESTitleMeta *const, const u32, const u8 *const, DVDLowCallback)
Definition dvd_broadway.c:364
s32 DVDGetFileInfoStatus(const DVDFileInfo *fileInfo)
Definition dvdfs.c:438
struct diCommand diCommand_t
BOOL DVDLowClearCoverInterrupt(DVDLowCallback callback)
Definition dvd_broadway.c:951
BOOL DVDLowPrepareStatusRegister(DVDLowCallback callback)
Definition dvd_broadway.c:901
struct DVDGamePartition DVDGamePartition
void(* DVDCBCallback)(s32 result, DVDCommandBlock *block)
Definition dvd.h:82
static void callback(u32 param_0)
Definition OSExec.c:308
u32 FSTMaxLength
Definition dvd.h:128
u32 FSTPosition
Definition dvd.h:126
u32 bootFilePosition
Definition dvd.h:125
void * FSTAddress
Definition dvd.h:129
u32 userLength
Definition dvd.h:131
u32 padding0
Definition dvd.h:132
u32 FSTLength
Definition dvd.h:127
u32 userPosition
Definition dvd.h:130
DVDDiskID * id
Definition dvd.h:98
u32 transferredSize
Definition dvd.h:97
u32 currTransferSize
Definition dvd.h:96
DVDCommandBlock * prev
Definition dvd.h:90
void * userData
Definition dvd.h:100
void * addr
Definition dvd.h:95
u32 offset
Definition dvd.h:93
u32 command
Definition dvd.h:91
DVDCBCallback callback
Definition dvd.h:99
s32 state
Definition dvd.h:92
u32 length
Definition dvd.h:94
DVDCommandBlock * next
Definition dvd.h:89
u32 length
Definition dvd.h:146
u32 command
Definition dvd.h:144
u32 tick
Definition dvd.h:148
u32 offset
Definition dvd.h:145
u32 intType
Definition dvd.h:147
u8 padding[22]
Definition dvd.h:78
u8 streaming
Definition dvd.h:76
char gameName[4]
Definition dvd.h:72
char company[2]
Definition dvd.h:73
u8 gameVersion
Definition dvd.h:75
u8 diskNumber
Definition dvd.h:74
u8 streamingBufSize
Definition dvd.h:77
u16 deviceCode
Definition dvd.h:137
u8 padding[24]
Definition dvd.h:139
u32 releaseDate
Definition dvd.h:138
u16 revisionLevel
Definition dvd.h:136
char gameName[4]
Definition dvd.h:153
DVDCommandInfo lastCommand[5]
Definition dvd.h:162
u32 dateTime
Definition dvd.h:158
u32 error
Definition dvd.h:157
u32 unk_0x14
Definition dvd.h:160
u8 gameVersion
Definition dvd.h:155
u32 status
Definition dvd.h:159
u8 reserved0[2]
Definition dvd.h:156
u8 diskNumber
Definition dvd.h:154
u32 nextOffset
Definition dvd.h:161
u32 length
Definition dvd.h:108
DVDCallback callback
Definition dvd.h:109
DVDCommandBlock cb
Definition dvd.h:106
u32 startAddr
Definition dvd.h:107
u8 * encryptedArea
Definition dvd.h:172
u32 tmdSize
Definition dvd.h:167
u8 * h3Hashes
Definition dvd.h:171
ESTicket ticket
Definition dvd.h:166
u32 certBlobSize
Definition dvd.h:169
void * certBlob
Definition dvd.h:170
ESTitleMeta * tmd
Definition dvd.h:168
u32 numGamePartitions
Definition dvd.h:181
DVDPartitionInfo * partitionInfos
Definition dvd.h:182
u32 type
Definition dvd.h:177
DVDGamePartition * gamePartition
Definition dvd.h:176
u8 padding2[28]
Definition dvd.h:195
u8 h3Hash[98304]
Definition dvd.h:203
u32 numTmdBytes
Definition dvd.h:194
u8 padding4[28]
Definition dvd.h:199
u8 padding3[ROUND(sizeof(ESTitleMeta), 32) - sizeof(ESTitleMeta)]
Definition dvd.h:197
u8 padding1[ROUND(sizeof(ESTicketView), 32) - sizeof(ESTicketView)]
Definition dvd.h:193
u32 numCertBytes
Definition dvd.h:198
u8 padding0[ROUND(sizeof(ESTicket), 32) - sizeof(ESTicket)]
Definition dvd.h:191
u32 dataWordOffset
Definition dvd.h:201
ESTicketView ticketView
Definition dvd.h:192
ESTitleMeta tmd
Definition dvd.h:196
u8 certificates[4096]
Definition dvd.h:200
ESTicket ticket
Definition dvd.h:190
u8 padding5[28]
Definition dvd.h:202
u8 data[32]
Definition dvd.h:220
u32 arg[5]
Definition dvd.h:215
u8 theCommand
Definition dvd.h:213
u32 pad2[2]
Definition dvd.h:216
u8 pad1[3]
Definition dvd.h:214
u32 CoverRegVal
Definition dvd.h:208
u32 pad[6]
Definition dvd.h:209
u32 ImmRegVal
Definition dvd.h:207
Definition d_a_npc_ks.cpp:47