In shiny's original repo, Joystick.c:354 simply needs to invert the data processing:
if ((image_data[(xpos / 8)+(ypos*40)] & 1 << (xpos % 8)) && (xpos >= 0))
becomes
if (!(image_data[(xpos / 8)+(ypos*40)] & 1 << (xpos % 8)) && (xpos >= 0))
This can be viewed in my pull request here. However...
Yeah, I'm gonna submit a pull request into WyseNynja's fork to fix that since his fork seems to be maintained. The fix is quite simple; simply have to flip the conditional check in Joystick.c. That should preserve the image generated in image.c. Here's an example.
I'm also working on generating...