MCPcopy Create free account
hub / github.com/PCSX2/pcsx2 / ISOreadSector

Function ISOreadSector

pcsx2/CDVD/CDVDisoReader.cpp:315–364  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

313}
314
315static s32 ISOreadSector(u8* tempbuffer, u32 lsn, int mode)
316{
317 static u8 cdbuffer[CD_FRAMESIZE_RAW] = {0};
318
319 int _lsn = lsn;
320
321 if (_lsn < 0)
322 lsn = iso.GetBlockCount() + _lsn;
323 if (lsn >= iso.GetBlockCount())
324 return -1;
325
326 if (mode == CDVD_MODE_2352)
327 {
328 iso.ReadSync(tempbuffer, lsn);
329 return 0;
330 }
331
332 iso.ReadSync(cdbuffer, lsn);
333
334
335 u8* pbuffer = cdbuffer;
336 int psize = 0;
337
338 switch (mode)
339 {
340 //case CDVD_MODE_2352:
341 // Unreachable due to shortcut above.
342 // pxAssume(false);
343 // break;
344
345 case CDVD_MODE_2340:
346 pbuffer += 12;
347 psize = 2340;
348 break;
349 case CDVD_MODE_2328:
350 pbuffer += 24;
351 psize = 2328;
352 break;
353 case CDVD_MODE_2048:
354 pbuffer += 24;
355 psize = 2048;
356 break;
357
358 jNO_DEFAULT
359 }
360
361 memcpy(tempbuffer, pbuffer, psize);
362
363 return 0;
364}
365
366static s32 ISOreadTrack(u32 lsn, int mode)
367{

Callers

nothing calls this directly

Calls 2

GetBlockCountMethod · 0.45
ReadSyncMethod · 0.45

Tested by

no test coverage detected