Thanks to Julio Marchi for this space in MSX All
This project began during my final project as Computer and System Engineering student, where remote screens should be captured and sent to other PCs. By taking contact for the first time with PC tools for manipulating images, I realized that there was some similarity between PC colors and MSX screen 8 colors, in which I had already some knowledge, mainly due to the good articles found on the brazilian CPU-MSX magazine. My personal curiosity was to see if it was possible to port an image from PC to MSX Screen 8. I could made it easily, because I already knew that the PC represents RGB values using 8 bits for each color channel, and MSX Screen 8 represented the RGB colors using 8bits for all channels, where there are 3 bits for red and green and 2 bits for blue.
The task there was just make a normalization of each color channel, from 8 bits to 3 or 2 bits, place the bits in the correct position (gggrrrbb) and add the MSX file header (7 bytes). This was the beginning of the challenge to do the same thing for the other MSX screens.
MSX Viewer 1
The first step in MSX Viewer project was to read and exhibit MSX screens in PC. This was the easiest step in the whole project, once we just have to interpret MSX format and find the corresponding colors in PC (MSX colors set is a subset of PC's colors). The hardiest task is to do the way back, once you must convert a 24-bit color system to a 256 or 16 colors system.
MSX Viewer 1 was the really kick-off of the project. This version was able only to read some MSX screens. The second version was the first one able to convert and save PC screens to MSX format. MSX Viewer 3 brought the fist image processing tools where had an important rule on PC to MSX image conversion.
MSX Viewer 4
Using some techniques like error diffusion, it was possible to convert photos to screen 5 y 7, displaying 16 colors at time! At last, MSX Viewer 4 introduced the palette, some bugs were fixed and, finally, all MSX Screens were available.
MSX Viewer 5, the project changed to "open-source" and all the code were re-build, using C++ and Qt 3. The souce-code now will be available to the public when the project achieves the same level of MSX Viewer 4.
MSX Viewer 5
In 2020 I decided to create a "Light" port of MSX Viewer to Java, intended to be run in any operating system with Java Virtual Machine.