From 10d7958f2e0c50966636578cbcf1c4895fa449d3 Mon Sep 17 00:00:00 2001 From: Patrick Urban Date: Tue, 8 Jul 2025 16:29:32 +0200 Subject: [PATCH] Disable crc bytes if set to "unused" --- libgm/src/Bitstream.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libgm/src/Bitstream.cpp b/libgm/src/Bitstream.cpp index aebf2b9..6065313 100644 --- a/libgm/src/Bitstream.cpp +++ b/libgm/src/Bitstream.cpp @@ -114,8 +114,10 @@ class BitstreamReadWriter std::vector data; std::vector::iterator iter; + bool crc_unused = false; Crc16 crc16; + // Return a single byte and update CRC inline uint8_t get_byte() { @@ -240,6 +242,8 @@ class BitstreamReadWriter // Insert the calculated CRC16 into the bitstream void insert_crc16() { + if (crc_unused) + return; uint16_t actual_crc = crc16.get_crc16(); write_byte(uint8_t((actual_crc) & 0xFF)); write_byte(uint8_t((actual_crc >> 8) & 0xFF)); @@ -290,6 +294,9 @@ class BitstreamReadWriter } insert_crc16(); write_nops(4); + if (crcmode == 0x02) { + crc_unused = true; + } } void write_cmd_spll(uint8_t data)