From 3a7269947e5dfa3780c51d6ffcb0fc49617fe2af Mon Sep 17 00:00:00 2001 From: Steve Markgraf Date: Sun, 29 Dec 2024 01:20:42 +0100 Subject: [PATCH] Initial commit --- 4k2.bin | Bin 0 -> 53806 bytes LICENSE | 21 ++++++ Makefile | 7 ++ ms2130_patch.c | 165 ++++++++++++++++++++++++++++++++++++++++++ ms2130_patched_v1.bin | Bin 0 -> 53806 bytes 5 files changed, 193 insertions(+) create mode 100644 4k2.bin create mode 100644 LICENSE create mode 100644 Makefile create mode 100644 ms2130_patch.c create mode 100644 ms2130_patched_v1.bin diff --git a/4k2.bin b/4k2.bin new file mode 100644 index 0000000000000000000000000000000000000000..f36de67016023aed88e49999d7593ebd95819b88 GIT binary patch literal 53806 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 literal 0 HcmV?d00001 diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..6bec6bb --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Steve Markgraf + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..2ae2748 --- /dev/null +++ b/Makefile @@ -0,0 +1,7 @@ +CC = gcc +CFLAGS = -g -Wall + +program : ms2130_patch.c + $(CC) $(CFLAGS) -o ms2130_patch ms2130_patch.c +clean: + rm -f ms2130_patch diff --git a/ms2130_patch.c b/ms2130_patch.c new file mode 100644 index 0000000..62d5092 --- /dev/null +++ b/ms2130_patch.c @@ -0,0 +1,165 @@ +/* + * MS2130 firmware patcher for optimized video quality + * Disables sharpening, scaling, etc. + * + * Copyright (C) 2024 by Steve Markgraf + * + * SPDX-License-Identifier: MIT + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include +#include +#include +#include + +#define CODE_OFFSET 0x30 +#define CODE_CHECKSUM 0x09db + +/* Patch the firmware to disable scaler, sharpening etc., also see + * https://github.com/steve-m/hsdaoh/blob/21a4b470b4c079792034258304f6044bddc8abad/src/libhsdaoh.c#L205 */ +void patch_firmware(uint8_t *code) +{ + /* patch function call from clear_extmem_mask() to set_extmem_mask() + * so that the result is: + * set_extmem_mask(0xf6be, 0x11) */ + code[0x9604] = 0xbf; + code[0x9605] = 0x44; + + /* patch function call from clear_extmem_mask() to set_extmem_mask() + * so that the result is: + * set_extmem_mask(0xf6bf, 0x11) */ + code[0x960d] = 0xbf; + code[0x960e] = 0x44; + + /* patch function call from FUN_CODE_b8ad() to clear_extmem_mask() + * so that the result is: + * clear_extmem_mask(0xf6b0, 0x01) (clear bit 0) */ + code[0xbe90] = 0x00; + code[0xbe91] = 0x06; + + /* patch value of call to set_extmem_mask() + * so that the result is: + * set_extmem_mask(0xf600, 0x80) (set bit 7) */ + code[0xbee8] = 0x80; + + /* horizontal scaler config, patch out function call to calculation subroutine + * and force disable of scaling */ + code[0x937e] = 0x00; // NOP + code[0x937f] = 0x7e; // MOV R6 + code[0x9380] = 0x10; // #0x10 + + /* vertical scaler config, patch out function call to calculation subroutine + * and force disable of scaling */ + code[0x9399] = 0x00; // NOP + code[0x939a] = 0x7e; // MOV R6 + code[0x939b] = 0x10; // #0x10 +} + +uint16_t calculate_header_checksum(uint8_t *data, uint16_t len) +{ + uint32_t csum = 0; + + for (int i = 0x02; i < len; i++) { + if ((i < 0x0c) || (i > 0x0f)) + csum += data[i]; + } + + return csum & 0xffff; +} + +uint16_t calculate_code_checksum(uint8_t *data, uint16_t len) +{ + uint32_t csum = 0; + + for (int i = 0; i < len; i++) + csum += data[i]; + + return csum & 0xffff; +} + +int main(int argc, char *argv[]) +{ + FILE *fp = fopen("./4k2.bin", "rb"); + if (!fp) { + printf("Error opening file\n"); + goto err; + } + + struct stat finfo; + fstat(fileno(fp), &finfo); + size_t file_len = finfo.st_size; + + printf("Length of file: %ld\n", file_len); + + uint8_t *fw = malloc(file_len); + if (fw) { + if (fread(fw, 1, file_len, fp) != file_len) { + printf("Error reading firmware file!\n"); + goto err; + } + fclose(fp); + } + + uint16_t code_len = (fw[0x02] << 8) | fw[0x03]; + printf("Code length: %d\n", code_len); + + uint16_t calc_header_csum = calculate_header_checksum(fw, CODE_OFFSET); + uint16_t orig_header_csum = (fw[CODE_OFFSET + code_len + 0] << 8) | fw[CODE_OFFSET + code_len + 1]; + + if (calc_header_csum != orig_header_csum) + printf("Original header checksum mismatch: %04x != %04x\n", orig_header_csum, calc_header_csum); + else + printf("Original header checksum matches: %04x\n", orig_header_csum); + + uint16_t calc_code_csum = calculate_code_checksum(fw + CODE_OFFSET, code_len); + uint16_t orig_code_csum = (fw[CODE_OFFSET + code_len + 2] << 8) | fw[CODE_OFFSET + code_len + 3]; + + if (calc_code_csum != orig_code_csum) + printf("Original code checksum mismatch: %04x != %04x\n", orig_code_csum, calc_code_csum); + else + printf("Original code checksum matches: %04x\n", orig_code_csum); + + if (CODE_CHECKSUM != calc_code_csum) { + printf("The code checksum does not match the firmware file this tool was written for, patch not applied!\n"); + goto err; + } + + patch_firmware(fw + CODE_OFFSET); + + /* replace the code checksum */ + calc_code_csum = calculate_code_checksum(fw + CODE_OFFSET, code_len); + fw[CODE_OFFSET + code_len + 2] = calc_code_csum >> 8; + fw[CODE_OFFSET + code_len + 3] = calc_code_csum & 0xff; + + /* write the resulting file */ + fp = fopen("./patched.bin", "wb"); + fwrite(fw, 1, file_len, fp); + +err: + if (fp) + fclose(fp); + + if (fw) + free(fw); + + return 0; +} diff --git a/ms2130_patched_v1.bin b/ms2130_patched_v1.bin new file mode 100644 index 0000000000000000000000000000000000000000..7e87c6295671155996ae24ab6413868eca5116cb GIT binary patch literal 53806 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 literal 0 HcmV?d00001