Project update

Hello, last week I have been making some finishing touches to the TTS project. I improved voice mapping in the Mortvile Manor game, because I used to use pitch values from the original game to map the characters to different voices. That would mean for example that if a user has only 3 female voices available, both female characters would map to the same voice. So I added an array of voice indices, so the voices map as evenly as possible. I improved TTS in GUI, but that still needs some more work. But the biggest addition to the TTS actually isn’t from me, because Criezy implemented TTS for Mac OS, which I couldn’t do (I don’t own a Mac).

Because TTS is almost finished, I started to work on my next project, which is adding a way to convert between different character encoding. Right now, if you need to convert between encodings, you can:

  • use the U32String class to convert between a few encodings.
  • use TransMan (if TransMan is enabled) to convert between unicode and current GUI charset
  • use platform specific code (SDL, Win32 and Mac have their own ways of converting encodings).
  • implement your own conversion (The most reliable, probably even after I finish this project).
This seems quite messy and confusing to me, we probably don’t want each engine to implement it’s own encoding conversions. So I am adding an option to compile ScummVM with iconv, which is a library, that specializes in encoding conversion. The plan is to first try to use iconv, then the platform specific conversion code and as a last resort use the TransMan to try to convert the string either to the GUI encoding or UTF-32 and try to convert that to the final encoding.