melonDS-emu / melonDS

DS emulator, sorta
https://melonds.kuribo64.net
GNU General Public License v3.0
3.13k stars 513 forks source link

DS Lite colorspace filter #1179

Open Brankale opened 3 years ago

Brankale commented 3 years ago

It's an odd request but it would be awesome to have a filter to mimic the DS Lite screen.

I ask for this because DS Lite lcd screen (and maybe the original DS and DSi) seems to have more vivid colors. It's not a big problem but in some games there's a really big difference.

This is a comparison between a DS Lite lcd screen (the first) and 2DS lcd screen (the second):

ds_lite 2ds

They are not great photos but at least they can give you an idea.

The 2DS screen has colors which are definitly washed out compared to the DS Lite. I also calibrated my monitor in the best way I could but is much closer to the 2DS screen.

I don't know if it's just an effect due to the low resolution and the black gap between pixels but in the end colors looks different.

Arisotura commented 3 years ago

well, melonDS renders the colors are they are provided by the game. it would be possible to apply color effects, but I'm not sure how to make it look more like a DSLite screen -- imo DSLite screens already have pretty good colors. I could look more in depth into this, this isn't a high priority atm tho.

ghost commented 3 years ago

No$gba got something like that I think. You can put the screen settings to be similar to the DS Lite and it will also change the colors as well.

Brankale commented 3 years ago

No$gba got something like that I think.

Yes, you are right, I've never noticed it. On No$gba is more similar to the DS Lite lcd screen.

I took some screenshots just for comparison:

No$gba (DS Lite): DS Lite

MelonDS melonDS

Color temperature is different

Brankale commented 3 years ago

I'm playing with colour spaces conversions and I'm getting somewhere near to the correct result but I need the correct values for the gamma of every channel (i.e. red, green, blue) in order to do a good job and also not to go crazy. Currently I have only the gamma for the greyscale but it's not enough or so I think. So if anyone knows these values, please write them here.

Brankale commented 2 years ago

I wrote a converter which, in theory, should be able to modify image colors to reproduce DS Lite screen colors. It's not perfect for a varierity of reasons:

I uploaded a Java program (both JAR and source code if you don't trust the JAR): converter.zip

To convert an image you should do: java -jar JAR_PATH IMAGE_PATH from the command line

I would appreciate if you can try it and tell me if it's similar to a DS Lite screen.

NB: Your screen MUST be well calibrated according to the sRGB standard otherwise colours will look totally different!

NB: If I remember correctly, I have seen from a friend of mine who has a DSi that colors are similar to DS Lite, so if you have a DSi you can use this program.

NB: At first when looking at the converted image, you can think it's too blue-ish but if you compare it with a DS Lite screen it should be similar.

Just for reference I took info from this website: https://www.displaymate.com/psp_ds_shootout.htm

Brankale commented 2 years ago

I'll post some images here to show the output of the converter:

MelonDS output on the left / Converted image on the right:

green_path green_path

team team

red_floor red_floor