diff --git a/src/cdrom/cdrom.c b/src/cdrom/cdrom.c index 4c106b6ec..c59ba033d 100644 --- a/src/cdrom/cdrom.c +++ b/src/cdrom/cdrom.c @@ -2742,6 +2742,45 @@ cdrom_read_disc_information(const cdrom_t *dev, uint8_t *buffer) int ls_last = 0; int t_b0 = -1; + if (dev->cd_status == CD_STATUS_BLANK_CDR) { + memset(buffer, 0x00, 34); + + buffer[ 0] = 0x00; /* Disc Information Length (MSB) */ + buffer[ 1] = 0x20; /* Disc Information Lenght (LSB) */ + buffer[ 2] = 0x00; /* Reserved, Erasable, State of Last Session, Disc Status */ + buffer[ 3] = 0x01; /* Number of First Track on Disc */ + buffer[ 4] = 0x01; /* Number of Sessions (LSB) */ + buffer[ 5] = 0x01; /* First track number in last session (LSB) */ + buffer[ 6] = 0x01; /* Last track number in last session (LSB) */ + buffer[ 7] = 0x00; /* DID_V, DBC_V, URU, DAC_V, Reserved, Dbit, BG format Status */ + buffer[ 8] = 0xff; /* Disc type */ + buffer[ 9] = 0x00; /* Number Of Sessions (MSB) */ + buffer[10] = 0x00; /* First Track Number in Last Session (MSB) */ + buffer[11] = 0x00; /* Last Track Number in Last Session (MSB) */ + buffer[12] = 0x00; /* Disc identification (MSB...) */ + buffer[13] = 0x00; /* ... */ + buffer[14] = 0x00; /* ... */ + buffer[15] = 0x00; /* Disc identification (...LSB) */ + buffer[16] = 0x00; /* Last session Lead-In Start Address (MSB...) */ + buffer[17] = 0x61; /* ... */ + buffer[18] = 0x1a; /* ... */ + buffer[19] = 0x42; /* Last session Lead-In Start Address (...LSB) */ + buffer[20] = 0x00; /* Last Possible Start Time for Start of Lead-out (MSB) */ + buffer[21] = 0x4f; /* ... */ + buffer[22] = 0x3b; /* ... */ + buffer[23] = 0x47; /* Last Possible Start Time for Start of Lead-out (...LSB) */ + buffer[24] = 0x00; /* Disc barcode (MSB...) */ + buffer[25] = 0x00; /* ... */ + buffer[26] = 0x00; /* ... */ + buffer[27] = 0x00; /* ... */ + buffer[28] = 0x00; /* ... */ + buffer[29] = 0x00; /* ... */ + buffer[30] = 0x00; /* ... */ + buffer[31] = 0x00; /* Disc barcode (...LSB) */ + + return; + } + dev->ops->get_raw_track_info(dev->local, &num, rti); for (int i = 0; i < num; i++)