- if (disc_is_xbox_challenge_drive (dmp -> dsk)) {
- /* Match the original GDR-8050L dumper's option-1 redump path: the
- * 32-sector XISO/game lead-in area is synthetic zero-fill, and the real
- * XDVDFS data begins at unlocked source LBA 32. */
- xbox_ref_log_fprintf (stderr, "[XBOX] Writing 32-sector game lead-in as zero-fill for GDR-8050L redump flow.\n");
- meta.game_leadin_zero_sectors += XBOX_XISO_LEADIN_SECTORS;
- if (current_sector) *current_sector = XBOX_XGD1_GAME_OUTPUT_START_LBA;
- if (!xbox_write_zero_iso_range (dmp, XBOX_XISO_LEADIN_SECTORS, XBOX_XGD1_GAME_OUTPUT_START_LBA, meta.output_sectors, "GAME-XISO-LEADIN"))
- goto cleanup;
- } else {
- if (!xbox_write_leadin_iso_range (dmp,
- (game_source_lba >= XBOX_XISO_LEADIN_SECTORS) ? game_source_lba - XBOX_XISO_LEADIN_SECTORS : 0,
- XBOX_XGD1_GAME_OUTPUT_START_LBA, meta.output_sectors, &meta, "redump game", true, current_sector))
- goto cleanup;
- }
+ /* FriiDump 0.5.3.13 cache-aligned raw-ID validation proved that the
+ * unlocked GDR-8050L view exposes source LBA 0..31 as the physical
+ * game-region lead-in immediately preceding the XDVDFS header at LBA 32.
+ * Read those sectors from the drive; retain the existing per-sector
+ * zero-fill fallback only for genuinely unreadable sectors. */
+ xbox_ref_log_fprintf (stderr,
+ "[XBOX] Capturing 32-sector game lead-in from unlocked source LBA %u..%u.\n",
+ (game_source_lba >= XBOX_XISO_LEADIN_SECTORS) ? game_source_lba - XBOX_XISO_LEADIN_SECTORS : 0,
+ (game_source_lba >= XBOX_XISO_LEADIN_SECTORS) ? game_source_lba - 1 : XBOX_XISO_LEADIN_SECTORS - 1);
+ if (!xbox_write_leadin_iso_range (dmp,
+ (game_source_lba >= XBOX_XISO_LEADIN_SECTORS) ? game_source_lba - XBOX_XISO_LEADIN_SECTORS : 0,
+ XBOX_XGD1_GAME_OUTPUT_START_LBA, meta.output_sectors, &meta, "redump game", true, current_sector))
+ goto cleanup;