From 5efa958bc945a280c1d80a50e408d7dbf8ff1039 Mon Sep 17 00:00:00 2001 From: David Schmenk Date: Mon, 10 Feb 2025 11:50:53 -0800 Subject: [PATCH] Add way to disable GREY hack dor better composite output --- images/apple/PLASMA-2.20.po | Bin 33553920 -> 33553920 bytes src/dhgr.tk/utils/dhgrrgb.pla | 31 +++++++++++++++++++------------ 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/images/apple/PLASMA-2.20.po b/images/apple/PLASMA-2.20.po index a6bbe123fe99713ae6467c192f343d585ac68709..62b525a16e3f4c11f210ce87dbbe02e25cb5b86d 100644 GIT binary patch delta 4099 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 H&#wL#9Wjyg diff --git a/src/dhgr.tk/utils/dhgrrgb.pla b/src/dhgr.tk/utils/dhgrrgb.pla index 25eb7ff..4698456 100644 --- a/src/dhgr.tk/utils/dhgrrgb.pla +++ b/src/dhgr.tk/utils/dhgrrgb.pla @@ -47,12 +47,13 @@ const GREEN_PHASE_SIMPLE = 225 const BLUE_PHASE_SIMPLE = 360 const GREY_CHROMA = 32 * 4 / 3 // Flags -const MEM_MODE = $01 // Render to memory surface -const DUMP_STATE = $02 // Dump internal state -const RAW_INFILE = $04 // Raw 560x192 24BPP RGB values +const GREY_HACK = $01 // Remap GREY1->GREY2 hack +const MEM_MODE = $02 // Render to memory surface +const DUMP_STATE = $04 // Dump internal state +const RAW_INFILE = $08 // Raw 560x192 24BPP RGB values const MATCH_PREV = $00 // Match previous RGB -const MATCH_NEXT = $08 // Match next pixel -const MATCH_CYCLE = $10 // Match current cycle +const MATCH_NEXT = $10 // Match next pixel +const MATCH_CYCLE = $20 // Match current cycle const MATCH_ONE = 8 const MATCH_ZERO = 0 byte clrRot = $00,$02,$04,$06,$08,$0A,$0C,$0E @@ -111,7 +112,7 @@ var brightness = 0 var saturation = 255 // 1.0 var tint = 22 // = 45/2 deg byte errDiv = 4 -byte flags = 0 +byte flags = GREY_HACK var rgbErr // Running color error array var arg @@ -640,12 +641,14 @@ def rgbImportExport(rgbfile, dhgrfile)#0 rgbptr = rgbptr + 3 errptr = errptr + 3 * 2 next - // Map GREY1 -> GREY2 - if chromaBits == $0A // Bits are in reverse order from DCGR color value - chromaBits = $05 - memset(@ntscCycle, GREY_CHROMA, 24) // Grey chroma cycle - elsif chromaBits == $05 - memset(@ntscCycle, GREY_CHROMA, 24) // Grey chroma cycle + if flags & GREY_HACK + // Map GREY1 -> GREY2 + if chromaBits == $0A // Bits are in reverse order from DCGR color value + chromaBits = $05 + memset(@ntscCycle, GREY_CHROMA, 24) // Grey chroma cycle + elsif chromaBits == $05 + memset(@ntscCycle, GREY_CHROMA, 24) // Grey chroma cycle + fin fin dcgrColor(clrRot[chromaBits]) dcgrPixel(i, j) @@ -731,6 +734,9 @@ if ^arg gamma = atoi(arg + 2) fin break + is 'H' // Hack for GREY remapping + flags = flags & ~GREY_HACK + break is 'M' // Match RGB strategy when toupper(^(arg + 3)) is 'N' // Match to next pixel @@ -822,6 +828,7 @@ puts(" [-D] = Dump state\n") puts(" [-E#] = Error strength: 1..255\n") puts(" 0 = no err\n") puts(" [-G#] = Gamma: 2, 1, 0, -1, -2\n") +puts(" [-H] = Disable GREY remap hack\n") puts(" [-M] = Match: Next, Current\n") puts(" Previous\n") puts(" [-P] = Phase: Ideal, Equal\n")