Skip to content

Commit

Permalink
- Fix comparison with falsely flagged audio streaming.
Browse files Browse the repository at this point in the history
  • Loading branch information
Extrems committed Feb 15, 2020
1 parent b11a30e commit b091e0b
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 10 deletions.
19 changes: 11 additions & 8 deletions cube/swiss/source/devices/dvd/deviceHandler-DVD.c
Original file line number Diff line number Diff line change
Expand Up @@ -381,12 +381,17 @@ s32 deviceHandler_DVD_readFile(file_handle* file, void* buffer, u32 length){

s32 deviceHandler_DVD_setupFile(file_handle* file, file_handle* file2, int numToPatch) {

if(file2) {
devices[DEVICE_CUR]->seekFile(file2, 0, DEVICE_HANDLER_SEEK_SET);
devices[DEVICE_CUR]->readFile(file2, VAR_DISC_2_ID, sizeof(VAR_DISC_2_ID));
}
devices[DEVICE_CUR]->seekFile(file, 0, DEVICE_HANDLER_SEEK_SET);
devices[DEVICE_CUR]->readFile(file, VAR_DISC_1_ID, sizeof(VAR_DISC_1_ID));

// Multi-Game disc audio streaming setup
if((dvdDiscTypeInt == COBRA_MULTIGAME_DISC)||(dvdDiscTypeInt == GCOSD5_MULTIGAME_DISC)||(dvdDiscTypeInt == GCOSD9_MULTIGAME_DISC)) {
devices[DEVICE_CUR]->seekFile(file, 0, DEVICE_HANDLER_SEEK_SET);
devices[DEVICE_CUR]->readFile(file,(unsigned char*)0x80000000,32);
char streaming = *(char*)0x80000008;
if(streaming && !isXenoGC) {
dvddiskid *diskId = (dvddiskid*)VAR_DISC_1_ID;
if(diskId->streaming && !isXenoGC) {
uiDrawObj_t *msgBox = DrawPublish(DrawProgressBar(true, 0, "One moment, setting up audio streaming."));
dvd_motor_off();
print_gecko("Set extension %08X\r\n",dvd_get_error());
Expand All @@ -400,12 +405,12 @@ s32 deviceHandler_DVD_setupFile(file_handle* file, file_handle* file2, int numTo
print_gecko("Set Status - done %08X\r\n",dvd_get_error());
dvd_read_id();
print_gecko("Read ID %08X\r\n",dvd_get_error());
dvd_set_streaming(streaming);
dvd_set_streaming(diskId->streaming);
DrawDispose(msgBox);
}
dvd_set_offset(file->fileBase);
file->status = OFFSET_SET;
print_gecko("Streaming %s %08X\r\n",streaming?"Enabled":"Disabled",dvd_get_error());
print_gecko("Streaming %s %08X\r\n",diskId->streaming?"Enabled":"Disabled",dvd_get_error());
}

// Set up Swiss game patches using a patch supporting device
Expand Down Expand Up @@ -471,8 +476,6 @@ s32 deviceHandler_DVD_setupFile(file_handle* file, file_handle* file2, int numTo
*(vu8*)VAR_EXI_SLOT = (u8)(devices[DEVICE_PATCHES] == &__device_sd_a ? EXI_CHANNEL_0:(devices[DEVICE_PATCHES] == &__device_sd_b ? EXI_CHANNEL_1:EXI_CHANNEL_2));
}

memcpy(VAR_DISC_1_ID, &GCMDisk, sizeof(VAR_DISC_1_ID));
memcpy(VAR_DISC_2_ID, &GCMDisk, sizeof(VAR_DISC_2_ID));
return 1;
}

Expand Down
8 changes: 6 additions & 2 deletions cube/swiss/source/devices/gcloader/deviceHandler-gcloader.c
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,9 @@ s32 deviceHandler_GCLOADER_setupFile(file_handle* file, file_handle* file2, int

// If there is a disc 2 and it's fragmented, make a note of the fragments and their sizes
if(file2) {
devices[DEVICE_CUR]->seekFile(file2, 0, DEVICE_HANDLER_SEEK_SET);
devices[DEVICE_CUR]->readFile(file2, VAR_DISC_2_ID, sizeof(VAR_DISC_2_ID));

if(!(disc2Frags = getFragments(file2, &discFragList[0], maxDiscFrags, 0, DISC_SIZE, DEVICE_CUR))) {
return 0;
}
Expand All @@ -82,6 +85,9 @@ s32 deviceHandler_GCLOADER_setupFile(file_handle* file, file_handle* file2, int
// write disc 2 frags
gcloaderWriteFrags(1, &discFragList[0], disc2Frags);

devices[DEVICE_CUR]->seekFile(file, 0, DEVICE_HANDLER_SEEK_SET);
devices[DEVICE_CUR]->readFile(file, VAR_DISC_1_ID, sizeof(VAR_DISC_1_ID));

// If disc 1 is fragmented, make a note of the fragments and their sizes
if(!(disc1Frags = getFragments(file, &discFragList[0], maxDiscFrags, 0, DISC_SIZE, DEVICE_CUR))) {
return 0;
Expand Down Expand Up @@ -156,8 +162,6 @@ s32 deviceHandler_GCLOADER_setupFile(file_handle* file, file_handle* file2, int
*(vu8*)VAR_EXI_SLOT = (u8)(devices[DEVICE_PATCHES] == &__device_sd_a ? EXI_CHANNEL_0:(devices[DEVICE_PATCHES] == &__device_sd_b ? EXI_CHANNEL_1:EXI_CHANNEL_2));
}

memcpy(VAR_DISC_1_ID, &GCMDisk, sizeof(VAR_DISC_1_ID));
memcpy(VAR_DISC_2_ID, &GCMDisk, sizeof(VAR_DISC_2_ID));
return 1;
}

Expand Down

0 comments on commit b091e0b

Please sign in to comment.