From 7d0fdb5530f78447106601d7fdc0c763e2d0ec31 Mon Sep 17 00:00:00 2001 From: Deterous <138427222+Deterous@users.noreply.github.com> Date: Fri, 4 Sep 2026 09:23:17 +0900 Subject: [PATCH 1/2] Force OmniDrive flag --- options.ixx | 5 +++++ redumper.ixx | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/options.ixx b/options.ixx index b404e1c6..adc06033 100644 --- a/options.ixx +++ b/options.ixx @@ -67,6 +67,7 @@ export struct Options bool kreon_partial_ss; bool dvd_raw; bool bd_raw; + bool force_omnidrive; bool disable_cdtext; bool correct_offset_shift; bool offset_shift_relocate; @@ -126,6 +127,7 @@ export struct Options , kreon_partial_ss(false) , dvd_raw(false) , bd_raw(false) + , force_omnidrive(false) , disable_cdtext(false) , correct_offset_shift(false) , offset_shift_relocate(false) @@ -292,6 +294,8 @@ export struct Options dvd_raw = true; else if(key == "--bd-raw") bd_raw = true; + else if(key == "--force-omnidrive") + force_omnidrive = true; else if(key == "--disable-cdtext") disable_cdtext = true; else if(key == "--correct-offset-shift") @@ -445,6 +449,7 @@ export struct Options LOG("\t--kreon-partial-ss \tget minimal security sector (fixes bad firmware)"); LOG("\t--dvd-raw \tdump raw DVD sectors (OmniDrive)"); LOG("\t--bd-raw \tdump raw BD sectors (OmniDrive)"); + LOG("\t--force-omnidrive \tforce OmniDrive mode (if drive enclosure overwrites drive inquiry)"); LOG("\t--disable-cdtext \tdisable CD-TEXT reading"); LOG(""); LOG("\t(offset)"); diff --git a/redumper.ixx b/redumper.ixx index a5068119..cd71a3a2 100644 --- a/redumper.ixx +++ b/redumper.ixx @@ -433,6 +433,14 @@ export int redumper(Options &options) drive_override_config(ctx.drive_config, options.drive_type.get(), options.drive_read_offset.get(), options.drive_c2_shift.get(), options.drive_pregap_start.get(), options.drive_read_method.get(), options.drive_sector_order.get()); + if(options.force_omnidrive && !is_omnidrive_firmware(ctx.drive_config)) + { + char vvv[3]; + endian_swap_to_array(vvv, omnidrive_minimum_version()); + ctx.drive_config.reserved5 = std::string("OmniDrive") + std::string(vvv, sizeof(vvv)); + } + + std::optional current_profile; if(aggregate.drive_ready) { From 67eab573a17e0b2c282f5e96074f5193594c0b5c Mon Sep 17 00:00:00 2001 From: Deterous <138427222+Deterous@users.noreply.github.com> Date: Fri, 4 Sep 2026 09:30:36 +0900 Subject: [PATCH 2/2] Import utils.endian --- redumper.ixx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/redumper.ixx b/redumper.ixx index cd71a3a2..0f43108b 100644 --- a/redumper.ixx +++ b/redumper.ixx @@ -43,6 +43,7 @@ import scsi.cmd; import scsi.mmc; import scsi.sptd; import skeleton; +import utils.endian; import utils.file_io; import utils.logger; import utils.misc; @@ -440,7 +441,6 @@ export int redumper(Options &options) ctx.drive_config.reserved5 = std::string("OmniDrive") + std::string(vvv, sizeof(vvv)); } - std::optional current_profile; if(aggregate.drive_ready) {