Re: Dropping non-truecolor mode?
Hey,
I'm currently upgrading FreeDink's foundations (audio/graphics libraries) and I'm facing difficulties with palette support.
So I'm wondering why we keep palette support in the first place. Given FreeDink's emphasis on backward compatibility, I don't want to drop it without really thinking about it, but right now I can only point a few very specific cases:
- Lyna's Story: palette switch in "shadow world", could be emulated with a post-processing color inversion (except for texts)
- Cycles of Evil: palette switch according to season: more tricky, I wonder if the palette was modified by hand (impossible to emulate without palette), or with a simple color modulation (easy to emulate). redink1?
- magicman points out Dink Goes Boating: palette switch between various hues + greyscale mode
- scratcher points out D-Mods with white sprite background (instead of transparent) when played in truecolor mode
Do you remember of games that don't look exactly the same in paletted and truecolor mode?
Situations in which palette bugs produced "interesting" results?
EDIT: added Dink Goes Boating and D-Mods with white sprite background
EDIT2: so we need to keep paletted mode for these reasons already, but I'd love to hear more "test" situations. I've fixed a bug in load_palette already
I'm currently upgrading FreeDink's foundations (audio/graphics libraries) and I'm facing difficulties with palette support.
So I'm wondering why we keep palette support in the first place. Given FreeDink's emphasis on backward compatibility, I don't want to drop it without really thinking about it, but right now I can only point a few very specific cases:
- Lyna's Story: palette switch in "shadow world", could be emulated with a post-processing color inversion (except for texts)
- Cycles of Evil: palette switch according to season: more tricky, I wonder if the palette was modified by hand (impossible to emulate without palette), or with a simple color modulation (easy to emulate). redink1?
- magicman points out Dink Goes Boating: palette switch between various hues + greyscale mode
- scratcher points out D-Mods with white sprite background (instead of transparent) when played in truecolor mode
Do you remember of games that don't look exactly the same in paletted and truecolor mode?
Situations in which palette bugs produced "interesting" results?
EDIT: added Dink Goes Boating and D-Mods with white sprite background
EDIT2: so we need to keep paletted mode for these reasons already, but I'd love to hear more "test" situations. I've fixed a bug in load_palette already

I remember "Dink Goes Boating" looking weird when playing in truecolor. I forgot if this was while playing freedink or 1.08.
Late edit:
Seth removed load_tile() when he made DinkHD, probably because they uses palette loading, and HD dropped non-truecolor as well. Apparently this causes "Bored of the Rings" to bug out, according to its release notes. I'm not totally convinced you can't have load_tile() with truecolor-only. Other on-the-fly graphics loading functions don't need to bother about palettes either. This may be worth looking into, though.
Later edit:
Of course I meant that Boating looks weird in truecolor. It even gives a message when you load the game.
Late edit:
Seth removed load_tile() when he made DinkHD, probably because they uses palette loading, and HD dropped non-truecolor as well. Apparently this causes "Bored of the Rings" to bug out, according to its release notes. I'm not totally convinced you can't have load_tile() with truecolor-only. Other on-the-fly graphics loading functions don't need to bother about palettes either. This may be worth looking into, though.
Later edit:
Of course I meant that Boating looks weird in truecolor. It even gives a message when you load the game.
It's a powerful feature. I've used it to create a day/night cycle, for example, with the colours gradually getting darker and brighter. I've also used it to change water into blahd, which is one of the great strengths of palettes; with careful editing, you can change only some graphics, while others remain the same... I would be sad to see it go.
With that said, it's kind of a pain to use already. You essentially have to yell at players in the dmod.diz, because disactivating true colour mode requires ticking a box. Enforcing it also bans people from playing with DinkHD, and screenshots will look totally messed up by default.
One problem that I've noticed with a few dmods is that graphics will have a white background behind them. This is because the background is not pure white, but rather a very light shade, which 256 colours forgives, but true colour doesn't.
Also took a look at COE, and indeed, the palette's edited by hand: http://s29.postimg.org/ab690o113/COEpal.png
With that said, it's kind of a pain to use already. You essentially have to yell at players in the dmod.diz, because disactivating true colour mode requires ticking a box. Enforcing it also bans people from playing with DinkHD, and screenshots will look totally messed up by default.
One problem that I've noticed with a few dmods is that graphics will have a white background behind them. This is because the background is not pure white, but rather a very light shade, which 256 colours forgives, but true colour doesn't.
Also took a look at COE, and indeed, the palette's edited by hand: http://s29.postimg.org/ab690o113/COEpal.png
OK, so another D-Mod to the list: Dink goes Boating. I hadn't played it extensively enough and didn't see it was using it
It's a simple color hue or greyscale, no problem to emulate that.
Btw I just found a bug in FreeDink - it supports palette switching using the old copy_bmp_to_screen() trick alright, but the later set_palette() didn't look in the right directory.
scratcher: are you talking about released D-Mods or local tests (wrt day/night, modified water...)?
Also, do you have an example of D-Mod exhibiting the white background issue?
I believe that would affect D-Mods released before 1.08, using 24-bit graphics, and played in truecolor - indeed.
That makes one more reason to keep paletted mode around, though it only require a work-around when loading the graphic, not when displaying it.

It's a simple color hue or greyscale, no problem to emulate that.
Btw I just found a bug in FreeDink - it supports palette switching using the old copy_bmp_to_screen() trick alright, but the later set_palette() didn't look in the right directory.
scratcher: are you talking about released D-Mods or local tests (wrt day/night, modified water...)?
Also, do you have an example of D-Mod exhibiting the white background issue?
I believe that would affect D-Mods released before 1.08, using 24-bit graphics, and played in truecolor - indeed.
That makes one more reason to keep paletted mode around, though it only require a work-around when loading the graphic, not when displaying it.
Hmm, after doing some mass-search in the D-Mods I find 5 more of them using full palette changes, most often by copying either of Lyna, COE or BoatDink:
- Eternal Suicide (lyna): inversion in a few cut-scenes
- City of the Dead (lyna): flash inversion during a cut-scene
- Adventures with Jani (coe): same seasons
- Prelude (boatdink): greyscale when you die
- Dink's world (boatdink): not sure about this one, only a "colorchange.c" file that could be a test
None of them mention it in the dmod.diz :/
- Eternal Suicide (lyna): inversion in a few cut-scenes
- City of the Dead (lyna): flash inversion during a cut-scene
- Adventures with Jani (coe): same seasons
- Prelude (boatdink): greyscale when you die
- Dink's world (boatdink): not sure about this one, only a "colorchange.c" file that could be a test
None of them mention it in the dmod.diz :/
That is actually interesting.
Truecolor is the future, so I can see why you'd want to ditch it. But obviously everyone still wants to play Lyna's story...
Modern operating systems start looking at you with a funny face for using 256 colors. Nostalgia...
Truecolor is the future, so I can see why you'd want to ditch it. But obviously everyone still wants to play Lyna's story...

Modern operating systems start looking at you with a funny face for using 256 colors. Nostalgia...
I'd love to see FreeDink ditch non-truecolor if it didn't break compatibility. Rendering any DMODs unplayable, though, especially mods like Lyna's Story and Cycles of Evil, would be a big drawback to using FreeDink over regular Dink (currently, I don't think there are any).
In fact FreeDink is already providing an emulated 256-colors mode today
(which is why you can use it in windowed-mode and take screenshots)
But evolution of the gaming platforms makes it more difficult to do today (e.g. if you want to use GPU acceleration on mobile devices).
Cocomonkey: agreed

(which is why you can use it in windowed-mode and take screenshots)
But evolution of the gaming platforms makes it more difficult to do today (e.g. if you want to use GPU acceleration on mobile devices).
Cocomonkey: agreed
scratcher: are you talking about released D-Mods or local tests (wrt day/night, modified water...)?
Nah, just stuff that was never released.
Also, do you have an example of D-Mod exhibiting the white background issue?
Not really... Looking at a few dmods real quick, Apex has it with the wizard guy in the very beginning.
Nah, just stuff that was never released.

Also, do you have an example of D-Mod exhibiting the white background issue?
Not really... Looking at a few dmods real quick, Apex has it with the wizard guy in the very beginning.
I can remember that I had this problem with the red jacket murders at the time 1.08 came out. Not sure if it has been patched since then.
June 11th 2014, 05:29 PM

Beuc


[I'm in a business trip right now and a flacky connection :/ I'll have more time on Friday]
scratcher, metatarasal: thanks, I'll have a look and document them as "test cases" for palette support.
yeoldetoast: I've got a first working SDL2 version of FreeDink indeed
You can check in my Git repo.
I'm currently wondering about getting closer with ScummVM though, nothing's definite yet.
scratcher, metatarasal: thanks, I'll have a look and document them as "test cases" for palette support.
yeoldetoast: I've got a first working SDL2 version of FreeDink indeed

I'm currently wondering about getting closer with ScummVM though, nothing's definite yet.