ZefTheFox 5 Posted November 5, 2019 Share Posted November 5, 2019 By calling hres.set(x, y, state) you can set a pixel at that x, y position to either be the foreground, or the background color. The x and y positions are the exact pixel location you'd like. This allows for a theoretical maximum resolution of 320 by 200. This is achieved by using the Unicode braille characters. To get the current "hres" resolution you take the screens current x resolution and multiply by 2, and you take the screens current y resolution and multiply by 4. There may be bugs, and things may behave oddly if you try to "turn off" a pixel that was not "on" in the first place. local gpu = require("component").gpu local unicode = require("unicode") hres = {} function hres.set(x, y, state) local x = math.floor(x) local y = math.floor(y) local scrx = math.ceil(x/2) local scry = math.ceil(y/4) local maxx, maxy = gpu.getResolution() if scrx > maxx or scry > maxy or scrx < 1 or scry < 1 then return end local prechar = gpu.get(scrx, scry) _, prechar = utf8.codes(prechar)(prechar) local offset = 0x2800 local offsetx = (x-((math.floor(x/2))*2)) if offsetx == 0 then offsetx = 2 end local offsety = y-(math.floor(y/4)*4) if offsetx == 1 then if offsety == 0 then brs = 7 else brs = offsety end else if offsety == 0 then brs = 8 else brs = offsety+3 end end local offsetdec = 2^(brs-1) if prechar < offset or prechar > 0x28FF then prechar = offset end if state then gpu.set(scrx, scry, unicode.char(prechar+offsetdec)) else gpu.set(scrx, scry, unicode.char(prechar-offsetdec)) end end Quote Link to post Share on other sites