| 313 | } |
| 314 | |
| 315 | static 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 | |
| 366 | static s32 ISOreadTrack(u32 lsn, int mode) |
| 367 | { |
nothing calls this directly
no test coverage detected