diff --git a/tool/CMakeLists.txt b/tool/CMakeLists.txt
index 2001d64..861ff3e 100644
--- a/tool/CMakeLists.txt
+++ b/tool/CMakeLists.txt
@@ -6,6 +6,6 @@ find_package(Argtable3 CONFIG REQUIRED)
include_directories(${ICU_INCLUDE_DIRS})
add_executable(aaruformattool main.c version.h aaruformattool.h identify.c info.c helpers.c read.c printhex.c verify.c ecc_cd.c
- commands.h commands.c usage.h usage.c compare.c termbox2.h)
+ commands.h commands.c usage.h usage.c compare.c convert.c termbox2.h)
target_link_libraries(aaruformattool "aaruformat" argtable3::argtable3)
target_link_libraries(aaruformattool "aaruformat" ICU::uc)
diff --git a/tool/aaruformattool.h b/tool/aaruformattool.h
index 6e89e78..35bde81 100644
--- a/tool/aaruformattool.h
+++ b/tool/aaruformattool.h
@@ -34,5 +34,6 @@ int verify_sectors(const char *path);
bool check_cd_sector_channel(CdEccContext *context, uint8_t *sector, bool *unknown, bool *has_edc, bool *edc_correct,
bool *has_ecc_p, bool *ecc_p_correct, bool *has_ecc_q, bool *ecc_q_correct);
int compare(char *path1, char *path2);
+int convert(char *input_path, char *output_path);
#endif // LIBAARUFORMAT_TOOL_AARUFORMATTOOL_H_
diff --git a/tool/commands.c b/tool/commands.c
index a9b71ef..5ec50d3 100644
--- a/tool/commands.c
+++ b/tool/commands.c
@@ -132,6 +132,26 @@ int cmd_verify(int argc, char *argv[]) { return cmd_verify_common(argc, argv, fa
int cmd_verify_sectors(int argc, char *argv[]) { return cmd_verify_common(argc, argv, true); }
+int cmd_convert(int argc, char *argv[])
+{
+ struct arg_str *input_filename = arg_str1(NULL, NULL, "", "Input image file");
+ struct arg_str *output_filename = arg_str1(NULL, NULL, "