PCEngineFans.com - The PC Engine and TurboGrafx-16 Community Forum

Tech and Homebrew => Turbo/PCE Game/Tool Development => Topic started by: elmer on August 31, 2015, 04:50:09 AM

Title: Xanadu II Translation Development Blog
Post by: elmer on August 31, 2015, 04:50:09 AM
(http://farm1.staticflickr.com/684/20831220678_bf571b84c4_o.png)

(http://farm1.staticflickr.com/623/20681884853_50354f9b22_o.png)

This game is a beast!   ](*,)

Just in case I get hit by a bus, I'll try to document some of my hacking progress here.

Who knows, someone might even find this stuff interesting!  :roll:

-----------------------------

The data on the CD is split into a lot of separate "files" at fixed locations.

It looks like there's a simple structure to each "file" block.

-----------------------------


// Xanadu II META_BLOCK data file structure.
//
// The number of DATA_CHUNKS in a META_BLOCK is simply the 1st-offset / 4.
//
// DATA_B = 1 byte of data
// ZERO_B = 1 byte of zero
//

META_BLOCK = HEAD_CHUNK { DATA_CHUNK } ;

HEAD_CHUNK =
{
  DATA_B (* Byte offset to DATA_CHUNK from start of file : lo-byte   *)
  DATA_B (* Byte offset to DATA_CHUNK from start of file : hi-byte   *)
  DATA_B (* Bank offset to DATA_CHUNK from start of file : 8KB banks *)
  ZERO_B
} ;

DATA_CHUNK =
  DATA_B       (* PAYLOAD length in bytes + 1 : lo-byte *)
  DATA_B       (* PAYLOAD length in bytes + 1 : hi-byte *)
  PAYLOAD
  ;

// If 1st byte of PAYLOAD is $00 then data is compressed in NEW_FORMAT, else in OLD-FORMAT.

PAYLOAD = { DATA_B } ; (* Repeated for length of PAYLOAD *)

// Xanadu II Data Search v0.0.1 Sep  1 2015
//
// Processing File "../cd/02 Kaze no Densetsu Xanadu II (J).iso".
//
//   META_BLOCK at 0x0000d800, end 0x000155e8,  16 DATA_CHUNKs,   2 new format.
// * META_BLOCK at 0x00019800, end 0x0001d19c,  11 DATA_CHUNKs,   1 new format.
// * META_BLOCK at 0x0003b800, end 0x00045d4f,  26 DATA_CHUNKs,  13 new format.
//   META_BLOCK at 0x0004b800, end 0x00053fa4,  12 DATA_CHUNKs,   0 new format.
// * META_BLOCK at 0x00057800, end 0x0005fde6,  12 DATA_CHUNKs,   0 new format.
//   META_BLOCK at 0x0006b800, end 0x00088699,  68 DATA_CHUNKs,  39 new format.
//   META_BLOCK at 0x0009b800, end 0x000b2f4d,  89 DATA_CHUNKs,  45 new format.
//   META_BLOCK at 0x000bb800, end 0x000d76c9,  61 DATA_CHUNKs,  34 new format.
//   META_BLOCK at 0x000db800, end 0x000f0299,  55 DATA_CHUNKs,  30 new format.
//   META_BLOCK at 0x000fb800, end 0x0011b721,  81 DATA_CHUNKs,  56 new format.
//   META_BLOCK at 0x0011b800, end 0x0013078f,  51 DATA_CHUNKs,  26 new format.
//   META_BLOCK at 0x0013b800, end 0x00154d51,  63 DATA_CHUNKs,  42 new format.
//   META_BLOCK at 0x0015b800, end 0x001796d5,  70 DATA_CHUNKs,  51 new format.
//   META_BLOCK at 0x0017b800, end 0x00199535,  70 DATA_CHUNKs,  51 new format.
//   META_BLOCK at 0x0019b800, end 0x001b3118,  66 DATA_CHUNKs,  47 new format.
//   META_BLOCK at 0x001bb800, end 0x001c95a4,  34 DATA_CHUNKs,  21 new format.
//   META_BLOCK at 0x001db800, end 0x001ec8a5,  40 DATA_CHUNKs,  23 new format.
//   META_BLOCK at 0x001fb800, end 0x002125cd,  69 DATA_CHUNKs,  44 new format.
//   META_BLOCK at 0x0021b800, end 0x0022a504,  32 DATA_CHUNKs,  18 new format.
//   META_BLOCK at 0x0023b800, end 0x0025b3f4,  80 DATA_CHUNKs,  57 new format.
//   META_BLOCK at 0x0025b800, end 0x0026f2fd,  55 DATA_CHUNKs,  38 new format.
//   META_BLOCK at 0x0027b800, end 0x00289115,  30 DATA_CHUNKs,  17 new format.
//   META_BLOCK at 0x0029b800, end 0x002bb629, 140 DATA_CHUNKs, 120 new format.
//   META_BLOCK at 0x002bb800, end 0x002d8457, 109 DATA_CHUNKs,  62 new format.
//   META_BLOCK at 0x002db800, end 0x002ec373,  55 DATA_CHUNKs,  37 new format.
//   META_BLOCK at 0x002fb800, end 0x0030b140,  37 DATA_CHUNKs,  21 new format.
//   META_BLOCK at 0x0031b800, end 0x00334b7f,  57 DATA_CHUNKs,  36 new format.
//   META_BLOCK at 0x0033b800, end 0x0034f39b,  42 DATA_CHUNKs,  29 new format.
//   META_BLOCK at 0x0035b800, end 0x0036f703,  45 DATA_CHUNKs,  29 new format.
//   META_BLOCK at 0x0037b800, end 0x00396346,  75 DATA_CHUNKs,  58 new format.
//   META_BLOCK at 0x0039b800, end 0x003b8d6f,  72 DATA_CHUNKs,  54 new format.
//   META_BLOCK at 0x003bb800, end 0x003cf3ab,  43 DATA_CHUNKs,  27 new format.
//   META_BLOCK at 0x003db800, end 0x003e6baa,  27 DATA_CHUNKs,  14 new format.
// * META_BLOCK at 0x003e7800, end 0x003f298e,  27 DATA_CHUNKs,  14 new format.
//   META_BLOCK at 0x003fb800, end 0x0041b5a3,  81 DATA_CHUNKs,  56 new format.
//   META_BLOCK at 0x0041b800, end 0x0043b465,  86 DATA_CHUNKs,  58 new format.
//   META_BLOCK at 0x0043b800, end 0x0045adbe,  78 DATA_CHUNKs,  55 new format.
//   META_BLOCK at 0x0045b800, end 0x004705ef,  57 DATA_CHUNKs,  40 new format.
//   META_BLOCK at 0x0047b800, end 0x00488d75,  30 DATA_CHUNKs,  17 new format.
//   META_BLOCK at 0x0049b800, end 0x004b4fad,  84 DATA_CHUNKs,  67 new format.
//   META_BLOCK at 0x004bb800, end 0x004c8c82,  38 DATA_CHUNKs,  25 new format.
//   META_BLOCK at 0x004db800, end 0x004f40f3,  68 DATA_CHUNKs,  55 new format.
//   META_BLOCK at 0x004fb800, end 0x00514032,  60 DATA_CHUNKs,  43 new format.
//   META_BLOCK at 0x0051b800, end 0x0053296f,  52 DATA_CHUNKs,  30 new format.
//   META_BLOCK at 0x0053b800, end 0x00555c48,  69 DATA_CHUNKs,  45 new format.
//   META_BLOCK at 0x0055b800, end 0x0057a4b5,  88 DATA_CHUNKs,  65 new format.
//   META_BLOCK at 0x0057b800, end 0x0059743e, 128 DATA_CHUNKs, 109 new format.
//   META_BLOCK at 0x0059b800, end 0x005b375a,  66 DATA_CHUNKs,  46 new format.
//   META_BLOCK at 0x005bb800, end 0x005daa5b, 118 DATA_CHUNKs, 100 new format.
//   META_BLOCK at 0x005db800, end 0x005edc13,  38 DATA_CHUNKs,  21 new format.
//   META_BLOCK at 0x005fb800, end 0x0060e0c0,  40 DATA_CHUNKs,  23 new format.
//   META_BLOCK at 0x0061b800, end 0x0062df12,  40 DATA_CHUNKs,  21 new format.
//   META_BLOCK at 0x0063b800, end 0x006574ae,  78 DATA_CHUNKs,  55 new format.
//   META_BLOCK at 0x0065b800, end 0x00670a45,  48 DATA_CHUNKs,  32 new format.
//   META_BLOCK at 0x0067b800, end 0x00691c97,  44 DATA_CHUNKs,  27 new format.
//   META_BLOCK at 0x0069b800, end 0x006bb03d, 109 DATA_CHUNKs,  94 new format.
//   META_BLOCK at 0x006bb800, end 0x006d1e0c,  46 DATA_CHUNKs,  27 new format.
//   META_BLOCK at 0x006db800, end 0x006eda86,  39 DATA_CHUNKs,  22 new format.
//   META_BLOCK at 0x006fb800, end 0x00708c05,  29 DATA_CHUNKs,  15 new format.
//   META_BLOCK at 0x0071b800, end 0x00736a93,  76 DATA_CHUNKs,  53 new format.
//   META_BLOCK at 0x0073b800, end 0x0074e9b4,  45 DATA_CHUNKs,  29 new format.
//   META_BLOCK at 0x0075b800, end 0x00771d9b,  44 DATA_CHUNKs,  27 new format.
//   META_BLOCK at 0x0077b800, end 0x0079943b,  97 DATA_CHUNKs,  77 new format.
//   META_BLOCK at 0x0079b800, end 0x007b9d69,  86 DATA_CHUNKs,  66 new format.
//   META_BLOCK at 0x007bb800, end 0x007c6d66,  27 DATA_CHUNKs,  13 new format.
// * META_BLOCK at 0x007c7800, end 0x007d2ab5,  27 DATA_CHUNKs,  13 new format.
//   META_BLOCK at 0x007db800, end 0x007e6735,  27 DATA_CHUNKs,  13 new format.
// * META_BLOCK at 0x007e7800, end 0x007f2735,  27 DATA_CHUNKs,  13 new format.
//   META_BLOCK at 0x007fb800, end 0x00816028,  78 DATA_CHUNKs,  54 new format.
//   META_BLOCK at 0x0081b800, end 0x0082dc75,  45 DATA_CHUNKs,  26 new format.
//   META_BLOCK at 0x0083b800, end 0x0085839a,  65 DATA_CHUNKs,  40 new format.
//   META_BLOCK at 0x0085b800, end 0x0086bcf6,  38 DATA_CHUNKs,  22 new format.
//   META_BLOCK at 0x0087b800, end 0x0089a955, 124 DATA_CHUNKs, 106 new format.
//   META_BLOCK at 0x0089b800, end 0x008ad7f8,  52 DATA_CHUNKs,  31 new format.
//   META_BLOCK at 0x00921800, end 0x009294e1,  11 DATA_CHUNKs,   5 new format.
//   META_BLOCK at 0x00981800, end 0x00988e8c,  11 DATA_CHUNKs,   5 new format.
//   META_BLOCK at 0x009a1800, end 0x009a9032,  11 DATA_CHUNKs,   5 new format.
//   META_BLOCK at 0x009b9800, end 0x009c0c7c,  11 DATA_CHUNKs,   5 new format.
//   META_BLOCK at 0x009d1800, end 0x009d74bd,  11 DATA_CHUNKs,   5 new format.
//   META_BLOCK at 0x009e9800, end 0x009f1a39,  11 DATA_CHUNKs,   5 new format.
//   META_BLOCK at 0x00a01800, end 0x00a09687,  11 DATA_CHUNKs,   5 new format.
//   META_BLOCK at 0x00a19800, end 0x00a20a4d,  11 DATA_CHUNKs,   5 new format.
//   META_BLOCK at 0x00a31800, end 0x00a38b30,  11 DATA_CHUNKs,   5 new format.
//   META_BLOCK at 0x00a49800, end 0x00a51de7,  11 DATA_CHUNKs,   5 new format.
//   META_BLOCK at 0x00a61800, end 0x00a70dff,  29 DATA_CHUNKs,  14 new format.
//   META_BLOCK at 0x00a7d800, end 0x00a8a394,  28 DATA_CHUNKs,  13 new format.
//   META_BLOCK at 0x00a99800, end 0x00aa9fd9,  29 DATA_CHUNKs,  14 new format.
//   META_BLOCK at 0x00ab5800, end 0x00ac3197,  28 DATA_CHUNKs,  15 new format.
//   META_BLOCK at 0x00ad1800, end 0x00ae2ae6,  41 DATA_CHUNKs,  16 new format.
//   META_BLOCK at 0x00aed800, end 0x00aff421,  32 DATA_CHUNKs,  15 new format.
//   META_BLOCK at 0x00b09800, end 0x00b19ef9,  30 DATA_CHUNKs,  14 new format.
//   META_BLOCK at 0x00b25800, end 0x00b36efa,  32 DATA_CHUNKs,  15 new format.
//   META_BLOCK at 0x00b41800, end 0x00b4f5a9,  29 DATA_CHUNKs,  15 new format.
//   META_BLOCK at 0x00b5d800, end 0x00b6a379,  27 DATA_CHUNKs,  14 new format.
//   META_BLOCK at 0x00b79800, end 0x00b8cf39,  47 DATA_CHUNKs,  14 new format.
//   META_BLOCK at 0x00b95800, end 0x00ba7dec,  31 DATA_CHUNKs,  13 new format.
//   META_BLOCK at 0x00bb1800, end 0x00bc35c4,  45 DATA_CHUNKs,  18 new format.
//   META_BLOCK at 0x00bcd800, end 0x00be06eb,  50 DATA_CHUNKs,  48 new format.
//   META_BLOCK at 0x00c0b800, end 0x00c413e8, 181 DATA_CHUNKs, 180 new format.
//   META_BLOCK at 0x00c41800, end 0x00c50e3a,  18 DATA_CHUNKs,  17 new format.
//   META_BLOCK at 0x00c53800, end 0x00c6081a,  19 DATA_CHUNKs,   0 new format.
//   META_BLOCK at 0x00c6b800, end 0x00c735e8,  16 DATA_CHUNKs,   2 new format.
//   META_BLOCK at 0x00c8b800, end 0x00c98042,  21 DATA_CHUNKs,   0 new format.
// * META_BLOCK at 0x00ca3800, end 0x00cab5e8,  16 DATA_CHUNKs,   2 new format.
//   META_BLOCK at 0x00cc3800, end 0x00cf4460,  57 DATA_CHUNKs,   0 new format.
//   META_BLOCK at 0x00cfb800, end 0x00d0e34e,  33 DATA_CHUNKs,   0 new format.
// * META_BLOCK at 0x00d13800, end 0x00d1b5e8,  16 DATA_CHUNKs,   2 new format.
//   META_BLOCK at 0x00d33800, end 0x00d4d13c,  50 DATA_CHUNKs,   0 new format.
//   META_BLOCK at 0x00d6b800, end 0x00d8598b,  35 DATA_CHUNKs,   0 new format.
//   META_BLOCK at 0x00da3800, end 0x00db84c2,  36 DATA_CHUNKs,   0 new format.
// * META_BLOCK at 0x00dbb800, end 0x00dc35e8,  16 DATA_CHUNKs,   2 new format.
//   META_BLOCK at 0x00ddb800, end 0x00df4bcd,  30 DATA_CHUNKs,   0 new format.
//   META_BLOCK at 0x00e13800, end 0x00e47dfe,  70 DATA_CHUNKs,   0 new format.
//   META_BLOCK at 0x00e4b800, end 0x00e6e49f,  64 DATA_CHUNKs,   0 new format.
//   META_BLOCK at 0x00e83800, end 0x00ea1a16,  34 DATA_CHUNKs,   0 new format.
// * META_BLOCK at 0x00ea7000, end 0x00eaede8,  16 DATA_CHUNKs,   2 new format.
// * META_BLOCK at 0x00eb3000, end 0x00eb699c,  11 DATA_CHUNKs,   1 new format.

Title: Re: Xanadu II Translation Development Blog
Post by: elmer on August 31, 2015, 09:42:02 AM

//
// Xanadu II OLD_FORMAT for PAYLOAD.
//
// Simple compressed data, just a stream of "command" and "parameter"
// bytes.
//
// I suspect that this is used for graphics data.
//

Command $00     (+0) : STOP ... All Done, end of PAYLOAD!
     params          : -

Command $01-$1f (+0) : Copy ($01..$1f) bytes from file to output
     params          : -

Command $20-$3f (+1) : Copy ($0000..$1fff) bytes from file to output
     params          : count-lo

Command $40-$4f (+1) : Fill ($00..$0f + 4) bytes with value
     params          : value

Command $50-$5f (+2) : Fill ($0000..$0fff + 4) bytes with value
     params          : count-lo, value

Command $60-$7f (+0) : Copy ($01..$1f, or 256) more bytes from earlier
     params          : -

Command $80-$9f (+1) : Copy 4 bytes from earlier in output (offset $0000-$1fff)
     params          : offset-lo

Command $a0-$bf (+1) : Copy 5 bytes from earlier in output (offset $0000-$1fff)
     params          : offset-lo

Command $c0-$df (+1) : Copy 6 bytes from earlier in output (offset $0000-$1fff)
     params          : offset-lo

Command $e0-$ff (+1) : Copy 7 bytes from earlier in output (offset $0000-$1fff)
     params          : offset-lo


-----------------------------

Now this was an interesting find if you were wanting to hack newer Falcom titles, but it doesn't work with Xanadu 2 data.

http://www.pokanchan.jp/dokuwiki/software/falcnvrt/start
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 01, 2015, 12:03:19 PM
Here's the "C" decompression code for the NEW_FORMAT.

It is easier to show the code than to figure out how to explain it!  :wink:

I've been using another variation on this same basic concept for about 25 years, now. It is simple to code, fast, and gives pretty decent compression (usually beating LZ4).

///
// DecompressNewFalcom() - Decompress a block in Falcom's Xanadu II NEW_FORMAT.
//
// This is basically the next step beyond a traditional 4/12 LZSS format.
//
// If you analyze the length/offset pairs and run them through Huffman
// compression you figure out that you can improve the compression by
// using variable bit-oriented encodings for the "length" and "offset".
//
// Falcom are using one of the many variants on that scheme with interleaved
// bit-oriented and byte-oriented "command" and "data" values.
//

uint8_t * pByteStream;
unsigned   uBitBuffer;
unsigned   uBufferLen;

//

unsigned ReadByte ( void )
{
   return *pByteStream++;
}

//

unsigned ReadBit ( void )
{
   if (uBufferLen == 0)
   {
      uBitBuffer  = ReadByte();
      uBitBuffer += ReadByte() << 8;
      uBufferLen  = 16;
   }

   unsigned uBit = uBitBuffer & 1;

   uBitBuffer >>= 1;
   uBufferLen  -= 1;

   return uBit;
}

//

unsigned ReadBits ( unsigned uCount )
{
   unsigned uValue = 0;

   while (uCount--)
   {
      uValue = (uValue << 1) + ReadBit();
   }

   return uValue;
}

//

unsigned ReadLength ( void )
{
   if (ReadBit() != 0) return 2;
   if (ReadBit() != 0) return 3;
   if (ReadBit() != 0) return 4;
   if (ReadBit() != 0) return 5;
   if (ReadBit() != 0)
   {
      return ReadBits(3) + 6;
   }
   else
   {
      return ReadByte() + 14;
   }
}

//

uint8_t * DecompressNewFalcom ( uint8_t * pInput, uint8_t * pOutput, uint8_t * pInputEnd )
{
   uint8_t * pWindow;
   unsigned   uOffset;
   unsigned   uLength;
   unsigned  uFlag;
   uint8_t   uByte;

   pByteStream = ++pInput; // Skip leading zero.

   uBitBuffer = ReadByte();
   uBufferLen = 8;

   for (;;)
   {
      // Sanity Check!

      if (pByteStream > pInputEnd)
      {
         printf( "The compressed data is corrupt!\n" );
         break;
      }

      // Is this a BYTE?

      if (ReadBit() == 0)
      {
         // Immediate byte
   
         *pOutput++ = ReadByte();

         continue;
      }

      // Get LZSS window offset.

      if (ReadBit() == 0)
      {
         // Get 8-bit offset (always COPY).

         uOffset = ReadByte();
      }
      else
      {
         // Get 13-bit offset.

         uOffset = ReadBits( 5 );
         uOffset = (uOffset * 256) + ReadByte();

         // uOffset = 0 : END
         // uOffset = 1 : FILL (i.e. RLE)
         // uOffset > 1 : COPY (i.e. LZSS)

         if (uOffset == 0) break;

         if (uOffset == 1)
         {
            // FILL (RLE)

            uFlag   = ReadBit();
            uLength = ReadBits( 4 );

            if (uFlag != 0)
            {
               uLength = (uLength * 256) + ReadByte();
            }

            uLength = uLength + 14;

            uByte = ReadByte();

            while (uLength--)
            {
               *pOutput++ = uByte;
            }

            continue;
         }
      }

      // COPY (LZSS)

      pWindow = pOutput - uOffset;
      uLength = ReadLength();

      while (uLength--)
      {
         *pOutput++ = *pWindow++;
      }

      continue;
   }

   return pOutput;
}
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 04, 2015, 06:34:04 AM
The game seems to use a fairly static memory mapping ...

$2000-$3fff Zero-Page, Stack, Fixed code segment (file handling, decompression, font drawing, etc)
$4000-$9fff Overlay code (Main Menu, Game, etc)
$a000-$bfff Streamed chunks (HuC6280 code with-or-without script language data)
$c000-$dfff General switched-bank for decompressing/uploading graphics to VRAM
$e000-$ffff CD BIOS


All game text (that I've seen, so far) is within script-language "strings".

The scripting language is pretty sophisticated, and they seem to have been nice enough to try to keep it located at the end of overlays/streamed-chunks ... but all the addresses are hard-coded, so scripts could actually be anywhere.

The PC for the scripting language is in zero-page at $37,$38 (or $3a,$3b in Xanadu I).

Unfortunately, they were a bit "undisciplined" in how/where they set the script-pc so it's an unholy mess to be sure where scripts are referenced.

Each code overlay contains it's own version of the script interpreter, with functions to modify the script-pc in different places (and potentially with different byte-codes for the actual scripting language).

The streamed-chunks either modify the script-pc directly, or call functions in the overlay to do it for them (the locations of which depend upon which overlay the script-chunk is used by).

There appear to be 570 different streamed-chunks in the game, of which only 236 actually contain script-language (as so may contain text).

That probably just means that I've not identified all of the many functions that set the script-pc, yet!

[EDIT]

That's definitely the case ... I'm currently able to detect "script" in 534 out of the 570 streamed-chunks. Getting better!
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on September 08, 2015, 02:30:56 PM
This is all music to my ears. :)
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on September 11, 2015, 07:05:17 AM
Impressive work :D

 So the game keeps the blocks/files for that area/level compressed, and then on call decompresses them into memory and provides a pointer for the routine for access it? When I was looking over Xanadu I, it had this style of setup.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 11, 2015, 08:06:01 AM
So the game keeps the blocks/files for that area/level compressed, and then on call decompresses them into memory and provides a pointer for the routine for access it? When I was looking over Xanadu I, it had this style of setup.

Yep, major code overlays get loaded at $4000-$9fff, but it looks like complete META_BLOCKs often get loaded into the rest of SCD RAM and then decompressed as needed.

The decompression code lives in permanent memory $2000-$3fff, and maps the 2 8KB banks from the META_BLOCK  into $8000-$9fff & $a000-$bfff, and then decompresses the 8KB DATA_CHUNK into a buffer at $c000-$dfff. It then restores $8000-$bffff back to their original banks (i.e. the game overlay code).

That decompressed data is then either uploaded from $c000 to VRAM, or mapped back into $a000 and used as "script".

From what I can see, Xanadu 1 uses the same META_BLOCK format, the same DATA_CHUNK format (with everything in old-style compression), the same memory layout, and the same scripting language (with a few less commands).

It looks like the big change between the two was that Xanadu 2 also allows META_BLOCKs to be "streamed" from CD into SCD RAM as needed allowing for much more expansive and detailed graphics in the levels.

So ... once Xanadu 2 is hacked, Xanadu 1 should be pretty easy. It would be really stupid not to do it after all the work that's going to go into Xanadu 2.  :wink:
Title: Re: Xanadu II Translation Development Blog
Post by: Necromancer on September 11, 2015, 08:18:19 AM
So ... once Xanadu 2 is hacked, Xanadu 1 should be pretty easy. It would be really stupid not to do it after all the work that's going to go into Xanadu 2.  :wink:

My pants are tight!
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on September 11, 2015, 09:25:48 AM
Xanadu.

XanaDeux.

Awesome.
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on September 11, 2015, 11:04:36 AM
My pants are tight!
.. but that's ok. (Beastie Boys reference?)
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on September 11, 2015, 11:11:36 AM

My pants are tight!
.. but that's ok. (Beastie Boys reference?)

Close... One Direction
Title: Re: Xanadu II Translation Development Blog
Post by: Necromancer on September 11, 2015, 11:18:10 AM
.. but that's ok. (Beastie Boys reference?)

David Cross reference - https://www.youtube.com/watch?v=BzJw0_UzM-s  (at 1:33)
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on September 11, 2015, 12:33:05 PM
Xanandu 1 might be easier for testing, because the levels/areas are isolated (IIRC you can't go back). So you could do a linear progression of the game (translation/testing/etc).
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 11, 2015, 01:53:39 PM
Xanandu 1 might be easier for testing, because the levels/areas are isolated (IIRC you can't go back). So you could do a linear progression of the game (translation/testing/etc).

Honestly ... this one is going to be an unpleasant slog. There are too many hard-coded script addresses in the code, the script and in various unidentified tables to make it anything else.

I'd rather get the "nastier" game out of the way first. It's easier to approach the steep hill at the start of a project than at the end.

That's unless I can just keep everything in it's current location and just add new "overflow" strings at the end of the existing "script" data. That would make the whole thing much easier.

I won't know that for a while, yet.

Definitely Xanadu 2 first ... but we can always hold back the release until Xanadu 1 is done, if that'll make people happier!  :wink:

It's not a matter of "figuring" things out anymore ... that's already been done. It's a really well written little scripting language. But it was obviously built around having a linker fix up the addresses. Coming at things "post-mortem", 20+ years later, we've lost a lot of original information.

It can still be done ... but it's going to be a little bit "fragile" and probably involve a lot of debugging.

That's not much fun.  :(
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on September 11, 2015, 05:27:22 PM
Quote
Xanandu 1 might be easier for testing, because the levels/areas are isolated (IIRC you can't go back). So you could do a linear progression of the game (translation/testing/etc).

You can't go back in Xanadu II, either, if you mean what I think you mean. It's just that there are two chapters that take place in the same town. I think all the NPCs say different things, too.

Xanadu I should be a little easier because each chapter loads once, and that's it. Xanadu II loads different things as you move around each chapter.

But the script is already done for Xanadu II (at least, it's ready to go in for play-testing) so it's definitely the easier one to start with for me.  :P

If elmer gets the Xanadu I script extracted...that will be spectacular, because I've always wanted to translate that particular script, and I know it will be super-helpful to people who want to play the game.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 13, 2015, 05:39:12 PM
I'm happy to report that the compression code for both the FALCOM1 and FALCOM2 algorithms is now working!  :D

They code still needs some refinement in order to handle RLE data, but what's there now will work quite happily in the game.

I've run some tests against 6 of the large code/data overlays that I think are used for the cutscenes.

I've included tests with my own SWD3 compression scheme, as that's what the all the code is based on.

2 things to note ...
[uldecimal][li]Those "test" overlays must already contain a lot of compressed data.[/li][li]There's still some room for me to improve my old SWD3 code!  :wink:[/li][/ul]
Test FALCOM1 ... original 294912 bytes, compressed 284241 bytes.
Test FALCOM2 ... original 294912 bytes, compressed 299736 bytes.
Test SWD3    ... original 294912 bytes, compressed 306785 bytes.

Test FALCOM1 ... original 229376 bytes, compressed 190377 bytes.
Test FALCOM2 ... original 229376 bytes, compressed 188628 bytes.
Test SWD3    ... original 229376 bytes, compressed 185190 bytes.

Test FALCOM1 ... original 229376 bytes, compressed 212515 bytes.
Test FALCOM2 ... original 229376 bytes, compressed 208487 bytes.
Test SWD3    ... original 229376 bytes, compressed 210073 bytes.

Test FALCOM1 ... original 229376 bytes, compressed 191549 bytes.
Test FALCOM2 ... original 229376 bytes, compressed 187772 bytes.
Test SWD3    ... original 229376 bytes, compressed 206422 bytes.

Test FALCOM1 ... original 229376 bytes, compressed 207758 bytes.
Test FALCOM2 ... original 229376 bytes, compressed 203940 bytes.
Test SWD3    ... original 229376 bytes, compressed 208467 bytes.

Test FALCOM1 ... original 229376 bytes, compressed 210301 bytes.
Test FALCOM2 ... original 229376 bytes, compressed 205523 bytes.
Test SWD3    ... original 229376 bytes, compressed 202607 bytes.
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on September 14, 2015, 04:52:02 AM
SWD3? So you're replacing the original compression scheme or that's your compressor to repack the files for the original decompressor?
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 14, 2015, 09:35:19 AM
--------------

If you look at Xanadu 1 (released 1994), the whole game is compressed with what I'm calling the "FALCOM1" compression.

FALCOM1 is basically a nice-and-simple mix of bytecodes for COPY/FILL/LZSS (so, at its heart, another LZSS varient).

In Xanadu 2 (released 1995), they're compressing some things with FALCOM1, and some things with a new "FALCOM2" compression.

FALCOM2 is still a mix of codes for COPY/FILL/LSZZ, but the actual encoding is an interleaved bitstream/bytestream with variable-length codes. It's much more sophisticated, and does a better job than FALCOM1 (except in a few rare edge cases).

From the dates, you can guess that they wrote FALCOM2 sometime in 1994/1995, and probably hadn't transitioned their entire toolchain over to using it, which would be why Xanadu 2 uses both.

The alternative is that they're choosing the best compressor on a chunk-by-chunk basis, but I find that explanation rather unlikely.

--------------

SWD was the not-quite-LZSS-style compressor that I wrote in the early 1990s when Unisys started litigating against people for using LZW.

I guess that I went through the usual series of compressors for those days, first Huffman, then LZW, then not-quite-LZSS (SWD1).

The earliest version of SWD1 that I still have archived goes back to 1992 when it was used on some Genesis and SNES games.

IIRC, SWD2 added interleaved bytes for the uncompressed COPY bytes, and then SWD3 in 1997 added the interleave-as-much-as-possible scheme that FALCOM2 is using.

SWD3 was used on a couple of N64 and GB/GBC games, but was made obsolete in the early 2000's by ZLIB.

--------------

So, now that the background is out of the way, the new FALCOM1 and FALCOM2 compressors that I've written are based on me updating my old SWD3 code.

Once I refactored the code so that the basic LZSS tree searching was generic enough, it's now really easy to code up any LZSS varient scheme pretty quickly.

I wanted to get to the point where it's going to be easy to try out LZ4's concept of LZSS-always-follows-COPY to see if I can get another couple of % of compression.

--------------

Where this is all leading, is I'd like to be able to rewrite Xanadu 2's entire data in just one compression format.

The could be FALCOM2, or it could be SWD3, or even a new SWD4.

The idea is that I want to free up some space in the "permanent" code at $2000-$3fff by removing one or both original decompressors, so that I have enough room to add some new font code, and perhaps even the font data itself.

The primary advantage of SWD3 over FALCOM2 is that the decompressor is smaller.

Now ... I don't know, yet, if I'll be able to do it ... but it seems like a good plan at the moment.

So ... TMI, or just plain TLDR?  :wink:
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 14, 2015, 10:22:47 AM
Anyway, the SWD source should be on github today and I'll send you both links.

So, Bonknuts ... I'm not actually sure if you ever looked at the old SWD3 compression code that I made available, but if you did, you'll be able to appreciate that the newly-refactored code is one heck of a lot easier to follow ...


// **************************************************************************
// * CompressFALCOM2 ()
// **************************************************************************
// * Compress data in Falcom's Xanadu 2 NEW format.
// **************************************************************************

uint8_t * CompressFALCOM2 (
  uint8_t * pSrcBuffer, unsigned uSrcLength,
  uint8_t * pDstBuffer, unsigned uDstLength )

{
  // Local Variables.

  int       iMatchLength;
  int       iMatchOffset;

  int       iSkipCount;
  int       iCopyCount = 0;
  uint8_t * pCopyArray = NULL;

  // Initialize the LZSS parameters for this compression scheme.

  InitLzss(2, 269, 0x1fff, 0);

  InitTree(pSrcBuffer);

  // Write the FALCOM2 header (there isn't one!).

  g_pDstBuffer = pDstBuffer;
  g_uDstLength = uDstLength;

  BitIO_Init();

  // Write 8-bits of zero to distinguish FALCOM2 from FALCOM1.

  BitIO_WordSend(8, 0);

  // Loop around encoding strings until the buffer is empty.

  uint8_t * pSrcFinish = pSrcBuffer + uSrcLength;

  for (;;)
  {
    // Update the window and calc how much data is left to compress.

    RmvString(pSrcBuffer - g_iLzssWindowLen);

    g_iThisMaxRepeat =
    g_iThisMatchSize = min(g_iLzssMaxRepeat, (pSrcFinish - pSrcBuffer));

    if (g_iThisMaxRepeat < g_iLzssBreakEven) break;

    // Add the current "string" to the LZSS tree, and find longest match.

    AddString(pSrcBuffer);

    // Convert g_iThisMatchSize into the real match length.

    iMatchLength = (g_iThisMaxRepeat - 1) - g_iThisMatchSize;

    // Output result of last string match.

    if (iMatchLength < g_iLzssBreakEven)
    {
      iSkipCount  = 0;
      iCopyCount += 1;
    }
    else
    {
      // First, write any COPY bytes.

      if (iCopyCount)
      {
        pCopyArray = pSrcBuffer - iCopyCount;

        while (iCopyCount--) TokenToBits_FAL2( 1, *pCopyArray++ );
      }

      iCopyCount = 0;

      // Then write the LZSS "match".

      iSkipCount   = iMatchLength - 1;
      iMatchOffset = (pSrcBuffer - g_pThisMatchTree->window);

      TokenToBits_FAL2( iMatchLength, iMatchOffset );
    }

    pSrcBuffer += 1;

    // Skip passed "matched" LZSS or RLE bytes, adding the strings to the tree.

    while (iSkipCount--)
    {
      RmvString(pSrcBuffer - g_iLzssWindowLen);

      g_iThisMaxRepeat =
      g_iThisMatchSize = min(g_iLzssMaxRepeat, (pSrcFinish - pSrcBuffer));

      AddString(pSrcBuffer);

      pSrcBuffer += 1;
    }

  } // End of "while (g_iThisMaxRepeat > 0)"

  // Encode the last COPY byte(s) (if there are any).

  pSrcBuffer += g_iThisMaxRepeat;
  iCopyCount += g_iThisMaxRepeat;

  if (iCopyCount)
  {
    pCopyArray = pSrcBuffer - iCopyCount;
    while (iCopyCount--) TokenToBits_FAL2( 1, *pCopyArray++ );
  }

  // Send EOF token.

  TokenToBits_FAL2(0, 0);

  // Flush out the last few bits.

  BitIO_WordFlush();

  // All done.

  return (g_pDstBuffer);
}

Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 14, 2015, 12:45:11 PM
I know that this will bore anyone that doesn't care about data compression, but it's interesting (to me) that a small change in the LZSS window size and Match Offset encoding can totally shuffle the results around.

// SWD3 LZSS Match Offset encoding ...
//
//   $0000-$0020 : 00        x xxxx
//
//   $0021-$00A0 : 01      xxx xxxx
//
//   $00A1-$02A0 : 10   x xxxx xxxx
//
//   $02A1-$06A0 : 11  xx xxxx xxxx


// SWD4 LZSS Match Offset encoding ...
//
//   $0001-$0020 : 00        x xxxx
//
//   $0021-$0120 : 01     xxxx xxxx
//
//   $0121-$1120 : 1 xxxx xxxx xxxx



Making that change and testing the same 12 Xanadu 2 overlays as before gives ...

Test FALCOM1 ... 284241 bytes.
Test SWD4    ... 298888 bytes.
Test FALCOM2 ... 299736 bytes.
Test SWD3    ... 306785 bytes.

Test SWD4    ... 183938 bytes.
Test SWD3    ... 185190 bytes.
Test FALCOM2 ... 188628 bytes.
Test FALCOM1 ... 190377 bytes.

Test SWD4    ... 203654 bytes.
Test FALCOM2 ... 208487 bytes.
Test SWD3    ... 210073 bytes.
Test FALCOM1 ... 212515 bytes.

Test FALCOM2 ... 187772 bytes.
Test FALCOM1 ... 191549 bytes.
Test SWD4    ... 205852 bytes.
Test SWD3    ... 206422 bytes.

Test SWD4    ... 200557 bytes.
Test FALCOM2 ... 203940 bytes.
Test FALCOM1 ... 207758 bytes.
Test SWD3    ... 208467 bytes.

Test SWD4    ... 201652 bytes.
Test SWD3    ... 202607 bytes.
Test FALCOM2 ... 205523 bytes.
Test FALCOM1 ... 210301 bytes.

Test SWD4    ... 204856 bytes.
Test SWD3    ... 208391 bytes.
Test FALCOM2 ... 209128 bytes.
Test FALCOM1 ... 212447 bytes.

Test SWD4    ... 204738 bytes.
Test SWD3    ... 206652 bytes.
Test FALCOM2 ... 208568 bytes.
Test FALCOM1 ... 212772 bytes.

Test SWD4    ... 206013 bytes.
Test SWD3    ... 208234 bytes.
Test FALCOM2 ... 210217 bytes.
Test FALCOM1 ... 214201 bytes.

Test SWD3    ... 203045 bytes.
Test SWD4    ... 203110 bytes.
Test FALCOM2 ... 205951 bytes.
Test FALCOM1 ... 209932 bytes.

Test SWD4    ... 192798 bytes.
Test FALCOM2 ... 195037 bytes.
Test FALCOM1 ... 200050 bytes.
Test SWD3    ... 205955 bytes.

Test SWD3    ... 190289 bytes.
Test SWD4    ... 190366 bytes.
Test FALCOM2 ... 190741 bytes.
Test FALCOM1 ... 195937 bytes.

Title: Re: Xanadu II Translation Development Blog
Post by: ccovell on September 14, 2015, 01:08:52 PM
So ... TMI, or just plain TLDR?  :wink:

No way, this is interesting stuff.
Title: Re: Xanadu II Translation Development Blog
Post by: dshadoff on September 14, 2015, 02:33:02 PM
Quote
SWD was the not-quite-LZSS-style compressor that I wrote in the early 1990s when Unisys started litigating against people for using LZW.

Heh, seems like you and I are probably about matched at being the old men of the board.

Quote
I know that this will bore anyone that doesn't care about data compression, but it's interesting (to me) that a small change in the LZSS window size and Match Offset encoding can totally shuffle the results around.

Not at all - I'm interested.

Quote
Making that change and testing the same 12 Xanadu 2 overlays as before gives ...

Test FALCOM1 ... 284241 bytes.
Test SWD4    ... 298888 bytes.
Test FALCOM2 ... 299736 bytes.
Test SWD3    ... 306785 bytes.
.
.
.

...But you're overlooking one very important thing:

The data that you will be recompressing later will NOT be the same as the data in those blocks today, so a test on SWD3/SWD4 compressibility of existing data is not very relevant.

For one thing, text is usually encoded in these things as 2-byte SJIS for kanji, and 1-byte JIS for kana.  It doesn't compress anywhere near as well as English (though it is generally slightly more dense to begin with).

I'm not sure whether graphics and other data is mixed in with those blocks you're analyzing, but that may also be a factor in compressibility.

I would recommend getting one "average" block extracted, a "sample" preliminary English translation written up, and validate compression on that.  I put everything in quotation marks, since these are not going to be average or even close translations - but rather a representative test.

-Dave
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 14, 2015, 03:07:39 PM
Heh, seems like you and I are probably about matched at being the old men of the board.

Haha ... someone needs to remind these young'uns that us old folks aren't totally useless, yet!  :wink:


Quote
...But you're overlooking one very important thing:

The data that you will be recompressing later will NOT be the same as the data in those blocks today, so a test on SWD3/SWD4 compressibility of existing data is not very relevant.

I'm definitely not overlooking that, I'm just enjoying tweaking the SWD parameters since it's so easy now.

At the end-of-the-day, the SWD3 encoding scheme is remarkable similar to the FALCOM2 encoding scheme, and I'm just having some fun.

The current test is totally bogus. From what I can tell, these test overlays probably already contain compressed data, so this is a massively unrealistic test, and only really shows degenerate worst-case performance.

The next thing to write will be a better test that actually decompresses the existing META_BLOCKs and re-compresses them.

I also still need to add RLE support to the FALCOM1 and FALCOM2 compressors, and at the same time, add "long" matches to SWD4 (which will do basically the same thing).

Xanadu 1 and 2 use a mix of 2-byte SJIS + 1-byte "common-glyphs".

I don't think that the "common-glyphs" are JIS, it looks like too-specialized a list, but I haven't confirmed that, yet. My memory of the kanji and JIS codes could be wrong.


Quote
I'm not sure whether graphics and other data is mixed in with those blocks you're analyzing, but that may also be a factor in compressibility.

Yep, META_BLOCKs contain graphics, script-data (incl text) and code.


Quote
I would recommend getting one "average" block extracted, a "sample" preliminary English translation written up, and validate compression on that.

Absolutely!

One step at a time. I'm just "blogging" about what I'm finding.  :)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 15, 2015, 06:55:28 AM
Since we're talking about compressing the script code DATA_CHUNKs, here's the basic format of the scripting language.

Script code DATA_CHUNKs contain HuC6280 code, this script code, and data. The script code can actually be inlined inside regular HuC6820 code.

That annoying capability, together with the multitude of hard-coded address and uncertain indirect table accesses, all mix together to make this rather a PITA to hack.

There is no clear separation between code and script, and this may turn out to be unhackable in a practical sense (particularly with 570 of these script chunks to go through).  :(


==============================================================================
XANADU II - SCRIPT BYTECODE
==============================================================================
Script code $00 (+0)  _end_of_string
Script code $01 (+0)  _wait_for_keypress_then_end
Script code $02 (+0)  _wait_for_keypress
Script code $03 (+0)  _end_of_line
Script code $04 (+0)  _clear_dialog_box
Script code $05 (+7)  _conditional_jump_script_address
Script code $06 (+2)  _jump_script_address
Script code $07 (+2)  _call_script_address
Script code $08 (+1)  _wipe_out_text
Script code $09 (+0)  _set_9ca9
Script code $0a (+0)  _clr_9ca9
Script code $0b (+4)  _call_script_lookup_table
Script code $0c (+0)  _wait_for_keypress_then_clear
Script code $0d (+4)  _tst_2b03_x_beq_script_address
Script code $0e (+4)  _tst_2b03_x_bnz_script_address
Script code $0f (+2)  _set_bits_2b03_x
Script code $10 (+2)  _clr_bits_2b03_x
Script code $11 (+3)  _set_pen_call_script_address
Script code $12 (+3)  _set_pen_call_script_address_then_eol
Script code $13 (+2)  _move_cursor_yx
Script code $14 (+2)  _call_game_func_from_script
Script code $15 (+2)  _modify_script_variable
Script code $16 (+0)  _wait_for_keypress_then_eol
Script code $17 (+n)  _extended_codes ($00-$14)
Script code $18 (+0)  _set_pen_color_0
Script code $19 (+0)  _set_pen_color_1
Script code $1a (+0)  _set_pen_color_2
Script code $1b (+0)  _set_pen_color_3
Script code $1c (+0)  _set_pen_color_4
Script code $1d (+0)  _set_pen_color_5
Script code $1e (+0)  _set_pen_color_6
Script code $1f (+0)  _set_pen_color_7

Script code $20-$ff   printable glyph
==============================================================================


==============================================================================
XANADU II - MAP GLYPH CODE TO SJIS GLYPH (only for 12x12, 8x12 is different)
==============================================================================
N.B. Xanadu 2 and Xanadu 1 use identical lookup tables!
==============================================================================
Maps input byte $80-$98 -> 2-byte SJIS

$20 -> ($2862 + $00 = $2862)
$7f -> ($2862 + $be = $2920)
$99 -> ($2862 + $f2 = $2954)
$9f -> ($2862 + $fe = $2960)
$a0 -> ($2962 + $00 = $2962)
$ff -> ($2962 + $be = $2a20)

Xanadu 1 Table @ $28b8 :
Xanadu 2 Table @ $2862 :

0x8140, 0x8149, 0x8177, 0x8178, 0x81a8, 0x81a9, 0x81aa, 0x81ab,
0x819b, 0x819d, 0x81a0, 0x81a2, 0x81a4, 0x815c, 0x819e, 0x8199,
0x824f, 0x8250, 0x8251, 0x8252, 0x8253, 0x8254, 0x8255, 0x8256,
0x8257, 0x8258, 0x8163, 0x8164, 0x81a6, 0x8160, 0x8158, 0x8148,
0x82a0, 0x82a2, 0x82a4, 0x82a6, 0x82a8, 0x82a9, 0x82ab, 0x82ad,
0x82af, 0x82b1, 0x82b3, 0x82b5, 0x82b7, 0x82b9, 0x82bb, 0x82bd,
0x82bf, 0x82c2, 0x82c4, 0x82c6, 0x82c8, 0x82c9, 0x82ca, 0x82cb,
0x82cc, 0x82cd, 0x82d0, 0x82d3, 0x82d6, 0x82d9, 0x82dc, 0x82dd,
0x82de, 0x82df, 0x82e0, 0x82e2, 0x82e4, 0x82e6, 0x82e7, 0x82e8,
0x82e9, 0x82ea, 0x82eb, 0x82ed, 0x82f0, 0x82f1, 0x829f, 0x82a1,
0x82a3, 0x82a5, 0x82a7, 0x82e1, 0x82e3, 0x82e5, 0x82c1, 0x82aa,
0x82ac, 0x82ae, 0x82b0, 0x82b2, 0x82b4, 0x82b6, 0x82b8, 0xeefc,
0xeefc, 0xeefc, 0xeefc, 0xeefc, 0xeefc, 0xeefc, 0xeefc, 0xeefc,
0xeefc, 0xeefc, 0xeefc, 0xeefc, 0xeefc, 0xeefc, 0xeefc, 0xeefc,
0xeefc, 0xeefc, 0xeefc, 0xeefc, 0xeefc, 0xeefc, 0xeefc, 0xeefc,
0xeefc, 0x82ba, 0x82bc, 0x82be, 0x82c0, 0x82c3, 0x82c5, 0x82c7,
0x82cf, 0x8142, 0x8175, 0x8176, 0x8141, 0x8145, 0x8392, 0x8340,
0x8342, 0x8344, 0x8346, 0x8348, 0x8383, 0x8385, 0x8387, 0x8362,
0x815b, 0x8341, 0x8343, 0x8345, 0x8347, 0x8349, 0x834a, 0x834c,
0x834e, 0x8350, 0x8352, 0x8354, 0x8356, 0x8358, 0x835a, 0x835c,
0x835e, 0x8360, 0x8363, 0x8365, 0x8367, 0x8369, 0x836a, 0x836b,
0x836c, 0x836d, 0x836e, 0x8371, 0x8374, 0x8377, 0x837a, 0x837d,
0x837e, 0x8380, 0x8381, 0x8382, 0x8384, 0x8386, 0x8388, 0x8389,
0x838a, 0x838b, 0x838c, 0x838d, 0x838f, 0x8393, 0x834b, 0x834d,
0x834f, 0x8351, 0x8353, 0x8355, 0x8357, 0x8359, 0x835b, 0x835d,
0x835f, 0x8361, 0x8364, 0x8366, 0x8368, 0x8370, 0x8373, 0x8376,
0x8379, 0x837c, 0x836f, 0x8372, 0x8375, 0x8378, 0x837b, 0x82d2,
0x82d5, 0x82d8, 0x82db, 0x82ce, 0x82d1, 0x82d4, 0x82d7, 0x82da,
==============================================================================

Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on September 15, 2015, 03:45:32 PM
Since we're talking about compressing the script code DATA_CHUNKs, here's the basic format of the scripting language.

Script code DATA_CHUNKs contain HuC6280 code, this script code, and data. The script code can actually be inlined inside regular HuC6820 code.

That annoying capability, together with the multitude of hard-coded address and uncertain indirect table accesses, all mix together to make this rather a PITA to hack.

There is no clear separation between code and script, and this may turn out to be unhackable in a practical sense (particularly with 570 of these script chunks to go through).  :(

Uh oh. Are you feeling pessimistic about it at this point? How much longer until you know if it's unhackable? :(
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 15, 2015, 04:30:33 PM
Uh oh. Are you feeling pessimistic about it at this point? How much longer until you know if it's unhackable? :(

Haha ... I'm not pessimistic, yet. I just don't want to make people think that "it's-just-a-matter-of-time".

With all the inline-script and the table accesses, it's probably going to be safest to try to keep every piece of script starting exactly where it starts now, and then have them "jump" to "overflow" space if the new translations are longer than the old ones (which is very, very likely).

That's going to depend upon whether there is enough space in each script chunk (looks likely, so far), and how well everything compresses again in order to fit on the CD (thus my current obsession with the compression code).

A saner option might be to only do that for script chunks that cause trouble.

Either way, you're talking about some fairly complex custom-tool work.

Basically ... there are still a lot of "unknowns". We're not going to find out a lot of them until we're much further along.

There are good reasons why things started "breaking" when EsperKnight got stuff re-inserting into the game back in 2012/2013.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on September 15, 2015, 04:34:41 PM
All right, that's good. I ask not only because I would be heart-broken if this turned out to be impossible (and I would), but because I would feel terrible if all this effort you've been putting in were in vain.

Keep fighting the good fight!
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 15, 2015, 06:54:59 PM
Following on from yesterday, here's a much better test of the compression.  :)

First of all, RLE/FILL "compression" has now been implemented on the FALCOM1 and FALCOM2 compressors, so that they're pretty much doing as well as they can.

SWD4 has been modified to handle "long" LZSS matches, which gives it similar capabilities to the other two.

Actually, that's a bit of a "win" for SWD4, since it can now handles long LZSS matches better than FALCOM1 and FALCOM2.

Here is a test with the 117 META_BLOCKs (containing a total of 5619 DATA_CHUNKs) that I've identified on the Xanadu 2 CD.

Each DATA_CHUNK is decompressed, and then re-compressed with the different compresssors.

The data is then decompressed again and checked to make sure that it matches, and that I haven't messed anything up.  :wink:


BLK $00d800  16 CHKs ( 32136 / 104960), Fal1  29851, Fal2  28259, Swd4  27511
BLK $019800  11 CHKs ( 14682 /  74752), Fal1  13839, Fal2  12582, Swd4  12328
BLK $03b800  26 CHKs ( 42163 / 123742), Fal1  39486, Fal2  36824, Swd4  36082
BLK $04b800  12 CHKs ( 34652 /  80890), Fal1  32424, Fal2  31004, Swd4  30008
BLK $057800  12 CHKs ( 34206 /  80410), Fal1  32007, Fal2  30614, Swd4  29632
BLK $06b800  68 CHKs (118017 / 328663), Fal1 116595, Fal2 110270, Swd4 107674
BLK $09b800  89 CHKs ( 95543 / 379309), Fal1  91707, Fal2  85034, Swd4  83184
BLK $0bb800  61 CHKs (114011 / 286011), Fal1 110462, Fal2 104885, Swd4 102774
BLK $0db800  55 CHKs ( 84303 / 254333), Fal1  82260, Fal2  78447, Swd4  77424
BLK $0fb800  81 CHKs (130363 / 330030), Fal1 127165, Fal2 121401, Swd4 119357
BLK $11b800  51 CHKs ( 85597 / 245597), Fal1  83983, Fal2  80039, Swd4  78129
BLK $13b800  63 CHKs (103383 / 277783), Fal1 104068, Fal2  99123, Swd4  97654
BLK $15b800  70 CHKs (122161 / 271474), Fal1 122143, Fal2 119055, Swd4 116976
BLK $17b800  70 CHKs (121745 / 271275), Fal1 121974, Fal2 118957, Swd4 116853
BLK $19b800  66 CHKs ( 96140 / 277360), Fal1  95517, Fal2  90947, Swd4  89213
BLK $1bb800  34 CHKs ( 56536 / 155385), Fal1  56478, Fal2  54107, Swd4  53104
BLK $1db800  40 CHKs ( 69557 / 180831), Fal1  68331, Fal2  65379, Swd4  64030
BLK $1fb800  69 CHKs ( 93231 / 272209), Fal1  91319, Fal2  86370, Swd4  84909
BLK $21b800  32 CHKs ( 60484 / 141896), Fal1  59357, Fal2  56619, Swd4  55538
BLK $23b800  80 CHKs (129556 / 335726), Fal1 131210, Fal2 123992, Swd4 122083
BLK $25b800  55 CHKs ( 80307 / 233746), Fal1  82202, Fal2  78762, Swd4  77099
BLK $27b800  30 CHKs ( 55393 / 147838), Fal1  55616, Fal2  53342, Swd4  52221
BLK $29b800 140 CHKs (129761 / 423581), Fal1 134560, Fal2 128675, Swd4 127112
BLK $2bb800 109 CHKs (117193 / 308241), Fal1 118403, Fal2 114808, Swd4 113539
BLK $2db800  55 CHKs ( 68137 / 188797), Fal1  67646, Fal2  64933, Swd4  63961
BLK $2fb800  37 CHKs ( 63586 / 173649), Fal1  63782, Fal2  61346, Swd4  60654
BLK $31b800  57 CHKs (102953 / 262028), Fal1 104137, Fal2  99915, Swd4  98074
BLK $33b800  42 CHKs ( 80543 / 190547), Fal1  83853, Fal2  80057, Swd4  78708
BLK $35b800  45 CHKs ( 81397 / 205559), Fal1  83247, Fal2  79854, Swd4  78715
BLK $37b800  75 CHKs (108932 / 303722), Fal1 112090, Fal2 106919, Swd4 104913
BLK $39b800  72 CHKs (119743 / 285443), Fal1 121991, Fal2 117705, Swd4 115610
BLK $3bb800  43 CHKs ( 80553 / 199276), Fal1  80202, Fal2  77686, Swd4  76112
BLK $3db800  27 CHKs ( 45832 / 126274), Fal1  45226, Fal2  43768, Swd4  43143
BLK $3e7800  27 CHKs ( 45292 / 126273), Fal1  44736, Fal2  43250, Swd4  42634
BLK $3fb800  81 CHKs (129981 / 328700), Fal1 126683, Fal2 121036, Swd4 118959
BLK $41b800  86 CHKs (129633 / 345309), Fal1 128780, Fal2 122215, Swd4 119987
BLK $43b800  78 CHKs (127978 / 333822), Fal1 129608, Fal2 122260, Swd4 120286
BLK $45b800  57 CHKs ( 85145 / 243184), Fal1  87370, Fal2  83771, Swd4  81973
BLK $47b800  30 CHKs ( 54465 / 145565), Fal1  54622, Fal2  52439, Swd4  51315
BLK $49b800  84 CHKs (103861 / 316767), Fal1 107355, Fal2 103001, Swd4 101418
BLK $4bb800  38 CHKs ( 54174 / 170327), Fal1  55353, Fal2  52368, Swd4  51026
BLK $4db800  68 CHKs (100187 / 273218), Fal1 104027, Fal2  98509, Swd4  95581
BLK $4fb800  60 CHKs (100042 / 258064), Fal1 101616, Fal2  97623, Swd4  95691
BLK $51b800  52 CHKs ( 94263 / 228393), Fal1  92668, Fal2  88265, Swd4  87048
BLK $53b800  69 CHKs (107178 / 277385), Fal1 105825, Fal2 100535, Swd4  98659
BLK $55b800  88 CHKs (125605 / 343422), Fal1 127549, Fal2 120043, Swd4 117933
BLK $57b800 128 CHKs (112958 / 395702), Fal1 115980, Fal2 107681, Swd4 106458
BLK $59b800  66 CHKs ( 97742 / 282299), Fal1 101377, Fal2  96609, Swd4  94937
BLK $5bb800 118 CHKs (126871 / 404564), Fal1 129726, Fal2 124624, Swd4 121988
BLK $5db800  38 CHKs ( 74543 / 197711), Fal1  74957, Fal2  71748, Swd4  70257
BLK $5fb800  40 CHKs ( 75728 / 180817), Fal1  74091, Fal2  71435, Swd4  70171
BLK $61b800  40 CHKs ( 75298 / 189088), Fal1  74536, Fal2  70936, Swd4  69542
BLK $63b800  78 CHKs (113370 / 318880), Fal1 115843, Fal2 109262, Swd4 107101
BLK $65b800  48 CHKs ( 86309 / 211542), Fal1  87805, Fal2  84286, Swd4  82623
BLK $67b800  44 CHKs ( 91023 / 200434), Fal1  91073, Fal2  88399, Swd4  86894
BLK $69b800 109 CHKs (128431 / 388810), Fal1 134333, Fal2 128397, Swd4 125629
BLK $6bb800  46 CHKs ( 91384 / 215513), Fal1  90738, Fal2  86942, Swd4  85311
BLK $6db800  39 CHKs ( 74140 / 176094), Fal1  72773, Fal2  69912, Swd4  68582
BLK $6fb800  29 CHKs ( 54103 / 136192), Fal1  53980, Fal2  52070, Swd4  51150
BLK $71b800  76 CHKs (110795 / 305754), Fal1 112685, Fal2 106517, Swd4 104385
BLK $73b800  45 CHKs ( 77990 / 201057), Fal1  79188, Fal2  76068, Swd4  74602
BLK $75b800  44 CHKs ( 91283 / 200485), Fal1  91371, Fal2  88729, Swd4  87198
BLK $77b800  97 CHKs (121333 / 340831), Fal1 124561, Fal2 119741, Swd4 117219
BLK $79b800  86 CHKs (123749 / 357193), Fal1 128921, Fal2 122206, Swd4 120659
BLK $7bb800  27 CHKs ( 46276 / 128389), Fal1  45615, Fal2  43296, Swd4  42963
BLK $7c7800  27 CHKs ( 45587 / 128376), Fal1  44970, Fal2  42617, Swd4  42296
BLK $7db800  27 CHKs ( 44691 / 128330), Fal1  44343, Fal2  41919, Swd4  41637
BLK $7e7800  27 CHKs ( 44691 / 128330), Fal1  44343, Fal2  41919, Swd4  41637
BLK $7fb800  78 CHKs (108116 / 339025), Fal1 110204, Fal2 104610, Swd4 102672
BLK $81b800  45 CHKs ( 74599 / 202875), Fal1  73912, Fal2  70720, Swd4  68997
BLK $83b800  65 CHKs (117268 / 270719), Fal1 112604, Fal2 107952, Swd4 106079
BLK $85b800  38 CHKs ( 66578 / 173030), Fal1  65038, Fal2  62433, Swd4  61302
BLK $87b800 124 CHKs (126573 / 423598), Fal1 131986, Fal2 123929, Swd4 122159
BLK $89b800  52 CHKs ( 73408 / 214494), Fal1  71951, Fal2  68429, Swd4  67084
BLK $921800  11 CHKs ( 31903 /  50190), Fal1  30335, Fal2  29016, Swd4  28317
BLK $981800  11 CHKs ( 30282 /  50250), Fal1  28443, Fal2  27026, Swd4  26299
BLK $9a1800  11 CHKs ( 30704 /  50714), Fal1  28845, Fal2  27404, Swd4  26659
BLK $9b9800  11 CHKs ( 29754 /  50675), Fal1  27832, Fal2  26344, Swd4  25665
BLK $9d1800  11 CHKs ( 23675 /  50668), Fal1  22001, Fal2  20721, Swd4  20169
BLK $9e9800  11 CHKs ( 33271 /  50600), Fal1  31069, Fal2  29868, Swd4  29150
BLK $a01800  11 CHKs ( 32325 /  50654), Fal1  30736, Fal2  29392, Swd4  28675
BLK $a19800  11 CHKs ( 29195 /  50675), Fal1  27606, Fal2  26376, Swd4  25680
BLK $a31800  11 CHKs ( 29422 /  50670), Fal1  26738, Fal2  25389, Swd4  24793
BLK $a49800  11 CHKs ( 34213 /  50638), Fal1  31693, Fal2  30353, Swd4  29520
BLK $a61800  29 CHKs ( 62801 / 135656), Fal1  60947, Fal2  58124, Swd4  57057
BLK $a7d800  28 CHKs ( 51948 / 135231), Fal1  50843, Fal2  48506, Swd4  48028
BLK $a99800  29 CHKs ( 67371 / 133491), Fal1  65509, Fal2  63748, Swd4  62418
BLK $ab5800  28 CHKs ( 55535 / 119050), Fal1  54953, Fal2  52932, Swd4  52193
BLK $ad1800  41 CHKs ( 70128 / 152329), Fal1  68245, Fal2  66051, Swd4  64870
BLK $aed800  32 CHKs ( 72545 / 152782), Fal1  70123, Fal2  67215, Swd4  65903
BLK $b09800  30 CHKs ( 67141 / 142584), Fal1  65537, Fal2  63174, Swd4  62208
BLK $b25800  32 CHKs ( 71226 / 153727), Fal1  69607, Fal2  67199, Swd4  66427
BLK $b41800  29 CHKs ( 56571 / 126640), Fal1  54882, Fal2  52881, Swd4  51801
BLK $b5d800  27 CHKs ( 51927 / 113543), Fal1  50107, Fal2  48409, Swd4  47577
BLK $b79800  47 CHKs ( 79391 / 181462), Fal1  76536, Fal2  73437, Swd4  72405
BLK $b95800  31 CHKs ( 75058 / 155482), Fal1  72784, Fal2  70114, Swd4  69454
BLK $bb1800  45 CHKs ( 72886 / 171103), Fal1  71697, Fal2  68215, Swd4  66870
BLK $bcd800  50 CHKs ( 77247 / 334769), Fal1  86828, Fal2  80564, Swd4  79402
BLK $c0b800 181 CHKs (219050 / 874272), Fal1 239061, Fal2 226151, Swd4 221642
BLK $c41800  18 CHKs ( 62926 / 120832), Fal1  65629, Fal2  64597, Swd4  63185
BLK $c53800  19 CHKs ( 53160 / 103360), Fal1  49296, Fal2  47661, Swd4  46336
BLK $c6b800  16 CHKs ( 32136 / 104960), Fal1  29852, Fal2  28262, Swd4  27513
BLK $c8b800  21 CHKs ( 51140 / 112128), Fal1  48184, Fal2  46493, Swd4  45498
BLK $ca3800  16 CHKs ( 32136 / 104960), Fal1  29852, Fal2  28262, Swd4  27513
BLK $cc3800  57 CHKs (199434 / 397056), Fal1 188925, Fal2 184372, Swd4 180648
BLK $cfb800  33 CHKs ( 76424 / 172544), Fal1  71708, Fal2  68987, Swd4  67235
BLK $d13800  16 CHKs ( 32136 / 104960), Fal1  29852, Fal2  28262, Swd4  27513
BLK $d33800  50 CHKs (104464 / 243040), Fal1  98147, Fal2  94999, Swd4  92681
BLK $d6b800  35 CHKs (106681 / 181696), Fal1 100150, Fal2  98901, Swd4  96782
BLK $da3800  36 CHKs ( 84970 / 174880), Fal1  79267, Fal2  77221, Swd4  75319
BLK $dbb800  16 CHKs ( 32136 / 104960), Fal1  29852, Fal2  28262, Swd4  27513
BLK $ddb800  30 CHKs (103193 / 184320), Fal1  96153, Fal2  94429, Swd4  92195
BLK $e13800  70 CHKs (214106 / 403328), Fal1 200108, Fal2 195444, Swd4 190255
BLK $e4b800  64 CHKs (142111 / 407712), Fal1 132204, Fal2 125784, Swd4 122085
BLK $e83800  34 CHKs (123210 / 199680), Fal1 115101, Fal2 113519, Swd4 110386
BLK $ea7000  16 CHKs ( 32136 / 104960), Fal1  29851, Fal2  28259, Swd4  27511
BLK $eb3000  11 CHKs ( 14682 /  74752), Fal1  13839, Fal2  12582, Swd4  12328

Found  117 total META_BLOCKs.
Found 5619 total DATA_CHUNKs.



The results ...

It looks like my compression code is often getting better results, even with FALCOM1 encoding scheme, than Falcom's original compression code. While that seems kinda nice ... it needs to be investigated.  :-k

FALCOM2 is always beating FALCOM1, and SWD4 is always beating FALCOM2.

Whatever else may be going on, the relative performance between the 3 compression schemes should be valid.  :D


The conclusion ...

The re-compressed data badly needs to be tested in the game.

These 3 META_BLOCKs need to be seriously examined to see why they're smaller on CD than I seem to be able to re-compress them ...  :-k

BLK $bcd800  50 CHKs ( 77247 / 334769), Fal1  86828, Fal2  80564, Swd4  79402
BLK $c0b800 181 CHKs (219050 / 874272), Fal1 239061, Fal2 226151, Swd4 221642
BLK $c41800  18 CHKs ( 62926 / 120832), Fal1  65629, Fal2  64597, Swd4  63185

Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on September 15, 2015, 07:43:49 PM
Very interesting. I'll be curious to learn what it is that's causing the difference in compression that you mentioned at the end.

As I look through the script now, I see a great many lines that would not suffer greatly for having their character count reduced. We'll still probably want to have as much space as possible for the English text, but compromises can be made. It's just nice to know that there's a good programmer on the job.

Ted Woolsey, the guy who translated so many famous SNES RPGs from Squaresoft, lamented in an interview that his original draft of Chrono Trigger was cut down by as much as 60% in order to fit in the game...and yet fan hackers later discovered that with better compression and use of space, they could fit a lot more text in without expanding the ROM size. There were unusued assets in the game, too, which I'm not even sure if they stripped out.

That Woolsey was able to do a good job with that kind of limitation is really incredible.

Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on September 15, 2015, 09:54:56 PM
So ... TMI, or just plain TLDR?  :wink:

It is designated a "blog" - the choice to be here and read any of it is the reader's, and no, I did read it despite the length so not TLDR for me... ;)

Gotta say, you're a rare breed - this work log is impressive and shows someone that can organize their code analysis very well!

That fix in the Zeroigar batch file regarding the FOR loop command and knowing the updated features to it for the NT version of the Command Console indicates you had access to Professional versions of Windows because the documentation for the batch file language is not included in Home versions of the Operating Systems. That's one thing I noticed, of course you may have just had an interest in it and picked up on things like that with Google and what not. ;)

Only reason I had some knowledge of that is from my old jobs, the access to the MSDN library I was given allowing me to take home many Windows Operating Systems like the Server and Professional versions, up to 2000/XP Professional, etc. Part of my work at times back then was testing executables on ALL available Windows versions and catching bugs which required having PCs with multiple partitions, Windows installs, and a boot manager allowing boot up to whichever version, etc. I remember once I even had to install a German version of Windows 98SE because our international clients were having trouble with an app the IT consultants had developed.

Gotta say, that big yearly MSDN Developers library case with ALL the CDs/DVDs of most all of Microsoft's products sure was a lot of fun! Of course if your company paid the $X,XXX subscription to be in it, you're given an account to log in the website to download almost anything you could think of also! This was a time of slow ISPs for residential connections and too high-priced business lines if you wanted something better, so the CD/DVDs were more valuable of course!

Anyway, did I read correctly back there somewhere, you say you wrote a compression algorithm that was used in professional games long ago ?? I do think a codec is something that separates the men from the boys in a certain way when it comes to software developers. It's a certain level of brain teaser and most coders will never get there... I think the best I ever got in that brain teaser dept was coding the binary tree sorting algorithm and a basic Pascal compiler back in the day when I was working on my Bachelors. ;) But no, a codec, still am not good enough for that...

P.S.

Did Falcom actually code for the PC Engine here ? All of the Ys games were actually developed by Hudson Soft under a Falcom partnership/license. Falcom provided the story and the music of course, but the rest was all Hudson Soft. It was even a great Hudson programmer's insistent on the idea to combine both Ys I&II as one game which worked out brilliantly!

Anyway, it appears the first Xanadu game was a partnership with Falcom and NEC (maybe just a developer/publisher team-up), but part II may actually all be Falcom by the looks of it. I thought they never actually coded for console systems and only really ever coded for the PC platform, starting with the Japanese PC-88 or whatever and then on to the Windows PC with their DirectX-based games (of which I hacked many :))...
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 16, 2015, 09:58:24 AM
That fix in the Zeroigar batch file regarding the FOR loop command and knowing the updated features to it for the NT version of the Command Console indicates you had access to Professional versions of Windows because the documentation for the batch file language is not included in Home versions of the Operating Systems.

Haha ... I have a hard time even finding the batch file documentation in Windows anymore. Microsoft have buried it deeper and deeper with every new release.

Just like the VBScript documentation ... where it's actually easier to find the documentation in old copies of Microsoft Office than it is to find it in new copies of Windows itself.

These days ... it's just quickest to go to http://ss64.com/

Anyway, "yes", I've been writing batch files for a long time, back to the DOS days when "those-in-the-know" replaced COMMAND.COM with JPSoft's wonderful 4DOS.COM.

4DOS still exists today in the form of TCC, which is my everyday-use replacement for the current Windows "Command Prompt".


Quote
Gotta say, that big yearly MSDN Developers library case with ALL the CDs/DVDs of most all of Microsoft's products sure was a lot of fun! Of course if your company paid the $X,XXX subscription to be in it, you're given an account to log in the website to download almost anything you could think of!

If you ever want access again for cheap, just come up with a "business" name and apply for Microsoft's BizSpark program.  :wink:


Quote
Anyway, did I read correctly back there somewhere, you say you wrote a compression algorithm that was used in professional games long ago ?? I do think a codec is something that separates the men from the boys in a certain way when it comes to software developers.

I'm afraid that I'm not actually Lempel&Ziv smart!   :(

I just wrote various compressors based on other people's ideas and then used them in games because we needed to pack more data onto the disk/cart/CD.

If you look at the core concept of LZ77/LZSS compression, it is really easy to understand.

https://en.wikipedia.org/wiki/LZ77_and_LZ78

You can code up the algorithm with a brute-force search in only a few lines of C code.

It's only the optimizations that you can add to short-cut the search that make the code look complex and ugly.

That was why I posted the FALCOM2 compressor earlier ... so that people can see that the basic loop isn't that difficult to understand. The nasty search optimization is hidden in the 2 AddString() and RmvString() routines.

If you ever want to learn some more, I'd recommend Mark Nelson's "The Data Compression Book".

http://www.amazon.com/Data-Compression-Book-Mark-Nelson/dp/1558514341

My SWD compressor is really just LZSS, with the tree-search-optimization, and a custom static-encoding of output.

Wikipedia says "As of 2008, the most popular LZ77 based compression method is DEFLATE; it combines LZ77 with Huffman coding."

That's all that SWD is (and FALCOM2, as well) ... but ZLIB's dynamic Huffman coding of the match lengths and match offsets has been replaced with a static Huffman-like coding that was produced  by running lots of test data through a dynamic Huffman setup, and then by the hand optimizing the result to make decompression easy on 8-bit processors.

SWD is even named after Chapter 8 of Mark's book ... "Sliding Window Dictionary".


Quote
But no, a codec, still am not good enough for that...

Don't be frightened by how ugly some of the stuff can look at first ... the core ideas to most of these things are pretty easy. It's just the nasty implementation details that can sometimes get in the way.

That's also why I posted the Zeroigar VWF code. So that you and others could take a look at it.

A lot of people seem to have some undue anxiety about writing a VWF routine that I just don't understand.

If you look at the inner-loop, it really isn't that difficult to trace through the data flow in your mind and see what it is doing. IMHO, it is actually easier to see that flow in the V810 code than it would be in 6280 code because all of the critical stuff can be kept in registers.

At the end-of-the-day, a VWF is really just another software sprite-drawing routine, and they're really not that tough.

Like most code ... it's the edge-cases that make things complex.

If you take a little time to trace through it, you'll have a lightbulb moment, and then be off writing your own. I'll give you the address in Zeroigar to put a breakpoint if you want to see it all "live".


Quote
Did Falcom actually code for the PC Engine here?

I believe so. To quote SamIAm, our local expert ...

Xanadu I, however, was created entirely by Falcom as an original PCE exclusive game. IIRC, it was the first game that they themselves made on any CD format. There was a huge buzz about it from the very first announcement, and happily, most would say that they lived up to expectations.


Quote
I thought they never actually coded for console systems and only really ever coded for the PC platform, starting with the Japanese PC-88 or whatever and then on to the Windows PC with their DirectX-based games (of which I hacked many :))...

Do you recognize the Xanadu 2 compression schemes?

I looked on RomHacking, and someone there was asking about hacking one of Falcom's PSP games, and it still seemed to be using the FALCOM2 compression scheme.
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on September 16, 2015, 01:34:23 PM
Do you recognize the Xanadu 2 compression schemes?

I looked on RomHacking, and someone there was asking about hacking one of Falcom's PSP games, and it still seemed to be using the FALCOM2 compression scheme.

Well, here's a high-level C version of Hudson's codec I am using for Emerald Dragon thanks to David (dshadoff, one in the same in the thread). It's the same codec Hudson used in Ys IV, but with one line of code change and no processing of a 3-byte header in a text block, as ED text blocks are headerless. Coincidentally enough, he did similar compression tests back in 2004 when we were working on Ys IV to show improvements he made.

A bit of neat history here: So with the Ys IV project, I was left with just the decompression code from Neill Corlett and together we dumped the script. But, he quit the project and I took it over. I did at some point offer him $250 to help me complete it, along with a font hack, but while he said he respected the offer, he was just too interested in working on his current projects like the Playstation Sound Format stuff he was doing.

David however was good enough and studied the decompression code to reverse it. His first version boasted slightly better compression results. So he gave it to me, I got to work on converting it to a DLL so I could call it from VBA code in my Microsoft Access XP database "Translation Station" software... I screwed up though, and thought his code was bad... He designed it under the assumption of a command line tool and so all variable resets would occur upon start and exit. Since I made it into a DLL, all global variables remained static until application exit/unload so the 2nd and further calls to compress text blocks of the rest of the script resulted in garbage...

So yeah, just a dumb matter of zero'ing out variables per DLL call, but I missed it...  #-o That's what happens when you take code from multiple people without truly understanding it. Anyway, before realizing that, I asked him just for sanity's sake, to code it so that it produces exactly the same compressed output as the version Hudson used... I zero'ed in on his claims that he coded it slightly better and thought the problem might have something to do with that... He did so a few days or a week or so later and that's ultimately what I used with Ys IV. I realized what my mistake was, but since all the text blocks fit with the pure Hudson version, I went with that! However, 11 years later with Emerald Dragon, I used his better version because we're definitely gonna need it, at least for one of the biggest text blocks and it seems to work fine, so!!!

So yeah, here's what that code looks like for comparison:

Code: [Select]
/*
Credit & Thanks goes to Neill Corlett for providing notes and for
reverse-engineering the Hudson Ys IV text decompression algorithm!!!!
And David Shadoff who reversed it for recompression, completing the codec!
DLL interface mod by: Nicolas Livaditis (NightWolve)

Version: Emerald Dragon 1/26/2015
Code is updated from Ys IV to specifically work for Emerald Dragon
1-2 lines of code changes, minor! Also, text blocks don't have
3 bytes of header info - code removed to handle that!

For decompress, append "+= 0x11" after below line:
    winmptr[state] = src[si++];
winmptr[state] += 0x11;

For compress, find first line 2 times, append "-= 0x11":
    dest[di] = (uint8)pos;
dest[di++] -= 0x11;
*/
uint8 window[256]; /* holds sliding window data */
uint8 winptr;      /* input pointer into window buffer */
int   winptr_max;  /* max value of winptr (up to 256) */
int   winmptr;     /* output pointer from window buffer */

/* src     = pointer within source buffer
 * pos     = return value for index within window with best fit
 * maxmtch = max # of bytes to allow for checking
 * ret val = # of bytes matched at pos (0 = no matches; >=2 is match)
 
 Version 2.0 = David's better version!
*/

__forceinline int check_match(uint8 *src, uint32 *pos, int maxmtch) {
int len = 0;
int best = 0;
int temp = 0;
int i;

for ( i = winptr; i >= 0; i-- ) {
temp = is_match(src, (uint8)i, maxmtch);
if ( temp > 1 && temp > len ) {
best = i;
len = temp;
}
}
if ( winptr_max == 256 ) {
for ( i = 255; i > winptr+1; i-- ) {
temp = is_match(src, (uint8)i, maxmtch);
if ( temp > 1 && temp > len ) {
best = i;
len = temp;
}
}
}
*pos = best;
return len;
}

/***************************************************************************/
/* Version 2.0: David's better version! */

__forceinline int is_match(uint8 *src, uint8 win_index, int maxmtch) {
int i = 0, meet_head = 0;
uint8 test_byte;

while (1) {
if ( i >= maxmtch )
break;
if ( (i+win_index) == winptr )
meet_head = 1;
if ( meet_head == 1 )
test_byte = window[winptr];
else
test_byte = window[(uint8)(i+win_index)];
if ( *(src+i) != test_byte ) {
if (meet_head == 1)
i--;
break;
}
if ( meet_head )
break;
i++;
}
return i;
}

/***************************************************************************/

/*
 * ED format:
 * cc    = control byte
 *         each bit describes a byte in the upcoming stream
 *         1 = take byte as literal
 *         0 = use byte to describe a copy from previous sliding window;
 * xx    = byte
 *
 *
 */

DllExport long EncodeLZSS(LPBYTE src, LPBYTE dest, uint32 *srcl_out, uint32 *dstl_out) {
int control, control_loc, dup, i, j;
int len_loc, dest_window, iter;
uint32 pos, srcl, si, di;
uint8 len, len_half, db;

fmemzero(window, 256);
__asm {
XOR EAX, EAX
MOV len_loc, EAX
MOV dest_window, EAX
MOV iter, EAX
MOV len, AL
MOV len_half, AL
MOV db, AL
MOV srcl, EAX
MOV winptr, AL
MOV winmptr, EAX
MOV winptr_max, EAX
}
si = di = 0;
srcl = *srcl_out;
for ( ;; ) {
control = 0x00;
dup = 0;
control_loc = di++;
for ( i = 0; i < 8; i++ ) {
#if _TRACE
fprintf(stdout, "si = %X, di = %X, ", si, di);
#endif
if ( si >= srcl )
break;
//* Search for duplication */
dup = check_match(&src[si], &pos, 16);
if ( dup >= (srcl - si) )
dup = (srcl - si);
if ( dup < 2 ) {
#if _TRACE
fprintf(stdout, "literal  = %02X", src[si]);
#endif
control |= (0x80 >> i);
window[winptr++] = src[si];
winptr_max++;
if ( winptr_max > 256 )
winptr_max = 256;
dest[di++] = src[si++];
} else {
for ( j = 0; j < dup; j++ ) {
db = window[winptr++] = src[si++];
winptr_max++;
if ( winptr_max > 256 )
winptr_max = 256;
#if _TRACE
fprintf(stdout, "%02X continuing match\n", db);
fprintf(stdout, "si = %X, di = %X, ", si, di);
#endif
}
dup -= 2;
if ( !len_half ) {
len = ((dup << 4) & 0xF0);
len_half = 1;
// Emerald Dragon upgrade from Ys IV
dest[di] = (uint8)pos;
dest[di++] -= 0x11; //ED diff
len_loc = di++;
#if _TRACE
fprintf(stdout, "duplicate, loc = %02X, len = %02X ", pos, len);
fprintf(stdout, "(first half)");
#endif
} else {
len |= (dup & 0x0F);
len_half = 0;
// Emerald Dragon upgrade from Ys IV
dest[di] = (uint8)pos;
dest[di++] -= 0x11; //ED diff
dest[len_loc] = len;
#if _TRACE
fprintf(stdout, "duplicate, loc = %02X, len = %02X ", pos, len);
fprintf(stdout, "(second half) - loc = %X, byte = %02X", len_loc, len);
#endif
}
}
}
#if _TRACE
fprintf(stdout, "fixing control loc %X = %02X\n", control_loc, control);
#endif
dest[control_loc] = control;
if ( si >= srcl )
break;
}
dest[len_loc] = len;
if ( dstl_out )
*dstl_out = di;
return 0;
}

My __asm block is just quick zero'ing and could be replaced with variable = 0; of course to regain ANSI compiling compatibility, along with the fmemzero macro I wrote.

fmemzero translates to this:

Code: [Select]
// One of the fastest ASM functions to zero out memory
// For arrays/structs (value-defined, not via pointer) - Careful, use of wrong one will crash!
#define fmemzero(aBuffer, dwBytes)\
__asm CLD \
__asm XOR   EAX, EAX \
__asm LEA   EDI, aBuffer \
__asm MOV   ECX, dwBytes \
__asm MOV   BL, CL \
__asm AND   BL, 3 \
__asm SHR   ECX, 2 \
__asm REP   STOSD \
__asm MOV   CL, BL \
__asm REP   STOSB

Instead of 1,000 x86 Assembly instructions that the MS VC++ compiler will link your code to if you use functions like memset() or the WinAPI of ZeroMemory(), I do it the 80386 way cause by gosh, I remember my 8086 Assembly classes from the 90's (I first learned in 16-bit) and every 32-bit (or better) Intel processor or compatible since the 70's will support those particular x86 instructions!! :)

Another good one I'm proud of is memcpy which easily converts to strcpy as well. The x86 that the VC++ Compiler links into your executable is humongous, but yet it can be done with a handful of built-in Intel x86 instructions from day one!

Code: [Select]
// One of the fastest ASM functions to copy one buffer to another
// Use SIZE asm operand if need be for count: e.g. SIZE char_array
#define fmemcpy(dest, src, count)\
__asm CLD \
__asm MOV   ESI, src \
__asm MOV   EDI, dest \
__asm MOV   ECX, count \
__asm MOV   AL, CL \
__asm AND   AL, 3 \
__asm SHR   ECX, 2 \
__asm REP   MOVSD \
__asm MOV   CL, AL \
__asm REP   MOVSB

That's the right way to do it, using the Source and Destination index registers for operations they were meant to perform... If you disassemble what the compiler produces, you'd see it does basic register-indirect mode moves with registers holding the memory address. Something like this, just as a quick example I did on the fly here:

Code: [Select]
  MOV EDX, src
  MOV EBX, dest
  MOV ECX, count
LOOP_IT:
  MOV AL, BYTE PTR [EDX]
  MOV BYTE PTR [EBX], AL
  INC EDX
  INC EBX
  DEC ECX
  CMP ECX, 0
  JNZ LOOP_IT

Basic as can be. Neither do I recall seeing any cleverness to use say DWORD PTR and move 4 bytes at a time 32-bit style, and then catch the remaining 3 or less bytes if Count is not an even multiple, but yeah! And by the time you actually get to that code, you will have passed hundreds of instructions doing checks of sorts whose value is questionable, but I get that many coders aren't careful and so they need library functions with some universal aspect to them with OS safeguards, etc.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 16, 2015, 03:41:33 PM
Thanks for sharing that. Nice!  :)

A classic brute-force search. Easy to write, and easy to understand!  :wink:

So, if I'm getting this right ...

YsIV was using an LZSS-varient with a 4-bit length (2..17), and an 8-bit offset (1..256).

Emerald Dragon is basically the same, but changes the 8-bit offset to (17..272).

Errr ... that's a bit silly of Hudson IMHO since, if nothing else, it kills the LZSS look-forward into the uncompressed data that allows it to compress RLE and other simple pattern-based data.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 16, 2015, 04:55:35 PM
Very interesting. I'll be curious to learn what it is that's causing the difference in compression that you mentioned at the end.

Me, too!


Quote
As I look through the script now, I see a great many lines that would not suffer greatly for having their character count reduced. We'll still probably want to have as much space as possible for the English text, but compromises can be made.

That's really good to know.

I think that most of the  script chunks have plenty of spare space, but there are some that look pretty full. There's also the worry of expanding the size of the META_BLOCK on CD and overwriting something else, but we'll only deal with that when we have to!

-----------------

Back to the investigations ...

One of the "big ideas" in the currently-popular LZ4 compression scheme is that you can COPY multiple bytes at a time, rather than using a bit for each one to say that it's a COPY and not an LZSS match.

This also allows LZ4 to guarantee that a COPY is followed by an LZSS match, which saves another bit.

Unfortunately, if an LZSS match directly follows another LZSS match, then 4 bits are wasted to indicate a COPY length of zero.


So I decided to look at the Xanadu 2 data and get some stats on how often an LZSS match is followed by another LZSS or a COPY.


After one LZSS, number of times COPY is next ...   867,693
After one LZSS, number of times LZSS is next ... 1,290,909



I also decided to take a look at how often each COPY length crops up, and to see if Huffman encoding them would help.


COPY   1 occurs 291,422 times.
COPY   2 occurs 152,959 times.
COPY   3 occurs 101,741 times.
COPY   4 occurs  70,629 times.
COPY   5 occurs  48,244 times.
COPY   6 occurs  37,597 times.
COPY   7 occurs  27,232 times.
COPY   8 occurs  23,353 times.
COPY   9 occurs  16,682 times.
COPY  10 occurs  16,159 times.
COPY  11 occurs  12,960 times.
COPY  12 occurs  11,062 times.
COPY  13 occurs   8,580 times.
COPY  14 occurs   8,237 times.
COPY  15 occurs   5,806 times.
COPY >15 occurs  40,045 times.

Number Of Copies 872,708, Total Bytes Copied 3,882,406.


COPY Length   Huffman Encoding

   1 00
   2 01
   3 100
   4 1010
   5 1011
 >15 1100
   6 11010
   7 11011
   8 11100
   9 111010
  10 111011
  11 111100
  12 111101
  13 111110
  14 1111110
  15 1111111

Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 16, 2015, 09:02:18 PM
Well, here's a high-level C version of Hudson's codec I am using for Emerald Dragon thanks to David (dshadoff, one in the same in the thread). It's the same codec Hudson used in Ys IV, but with one line of code change and no processing of a 3-byte header in a text block, as ED text blocks are headerless.

OK, for anyone that finds that all the window code in NightWolve's example just a little confusing ...

I thought that I'd just knock-up the brute-force version of the search code in a form that's easier to understand.

No "window" to update, and nothing that needs to be reset in a DLL. LZSS is very simple!  :wink:

#if defined( forEmeraldDragon )
 const unsigned g_uMinimumOffset  = 17;
 const unsigned g_uMaximumOffset  = 272;
#else
 const unsigned g_uMinimumOffset  = 1;
 const unsigned g_uMaximumOffset  = 256;
#endif

const unsigned g_uMaximumLength   = (15 + 2);

unsigned g_uBestMatchLength = 0;
unsigned g_uBestMatchOffset = 0;

// Parameters ...
//
// uint8_t * pSourceStarts /* Ptr to 1st byte of data in the array */
// uint8_t * pSourceFinish /* Ptr to 1st byte beyond last of array */
// uint8_t * pSourceBuffer /* Ptr to current byte of data in array to compress */

void FindBestMatch( uint8_t * pSourceStarts,  uint8_t * pSourceFinish, uint8_t * pSourceBuffer )
{
  g_uBestMatchLength = 0;
  g_uBestMatchOffset = 0;

  for (unsigned uTestOffset = g_uMinimumOffset; uTestOffset <= g_uMaximumOffset; uTestOffset += 1)
  {
    uint8_t * pTestString = pSourceBuffer;
    uint8_t * pStringStop = min( pSourceBuffer + g_uMaximumLength, pSourceFinish );
    uint8_t * pLzssWindow = pSourceBuffer - uTestOffset;

    if (pLzssWindow < pSourceStarts) break;

    while (pTestString < pStringStop)
    {
      if (*pTestString != *pLzssWindow) break;
      pTestString++;
      pLzssWindow++;
    }

    unsigned uMatchLength = pTestString - pSourceBuffer;

    if (uMatchLength > g_uBestMatchLength)
    {
      g_uBestMatchLength = uMatchLength;
      g_uBestMatchOffset = uTestOffset;
    }
  }
}


[EDIT]

Made even simpler at the potential cost of a compiler-optimization opportunity.
Title: Re: Xanadu II Translation Development Blog
Post by: dshadoff on September 17, 2015, 02:31:49 AM
The difference between the original Hudson compression and the way I wrote it was:
- Hudson used the "first match" of greater than x characters (probably 2)
- I kept brute-forcing for all matches in the buffer, and used the "best match"

- So, if the search string was "grandmother"
- and if the buffer contained:
gracious grandiose grandmother

Hudson's search would reference "gracious" for 3 characters, whereas my search would get the complete match.

...Hard to believe that such a rookie mistake would be in there, but you'd be surprised at what people use as their "trusted" code.

-Dave
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 17, 2015, 04:55:42 AM
The difference between the original Hudson compression and the way I wrote it was:
- Hudson used the "first match" of greater than x characters (probably 2)

...Hard to believe that such a rookie mistake would be in there, but you'd be surprised at what people use as their "trusted" code.

Wow, that's a pretty silly mistake for them to make!  #-o

It looks like your code also stops the matching when you reach the current string position.

Is that another decision that they made that you've had to "simulate" in order to get exactly the same output stream and keep NightWolve happy?

It would certainly explain why they changed the minimum offset to 17 in the Emerald Dragon version of the codec.
Title: Re: Xanadu II Translation Development Blog
Post by: dshadoff on September 17, 2015, 10:12:42 AM
Wow, that's a pretty silly mistake for them to make!  #-o

It looks like your code also stops the matching when you reach the current string position.

Is that another decision that they made that you've had to "simulate" in order to get exactly the same output stream and keep NightWolve happy?

It would certainly explain why they changed the minimum offset to 17 in the Emerald Dragon version of the codec.

I didn't have access to the Hudson encoder - I just had their decoder, which I wrote backwards in order to make the encoder.  Any remaining mistakes are my own =)

I found it odd that my encoder compressed the same expanded data better than the data in the game itself, which confused me at first - but then I "suboptimized" the code in the way I described, and the data block lengths matched so I concluded that was the problem.

Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on September 17, 2015, 12:46:46 PM
Nicely written, reminds me of Adaptec programmers (and some Microsoft ones) and their code samples in the ASPISDK: perfect indentation, elegant use of "C", disciplined use of variable naming, etc.

I've come to hate C++ and I think they should've probably just went right to Java for object-oriented enhancement rather than having given birth to that abomination... ;)

"C" is what you want when you want to keep the language close to the target machine language you're compiling to I think. Fast and compact with a good enough high-level aspect to making building/maintaining/organizing easier as opposed to going full-on ASM and not caring about some level of possible portability to other OS platforms if interested.

I just can't in good conscience use C++ after disassembling executables with IDA Pro or DASM and seeing what the compilers produced to implement it eons ago... 10,000 instructions for this, that or the other ?? Screw that! And all the crazy syntax and notation schemes they kept coming up with in the language... Whatever... I'm happy to have avoided it in the business world for the most part. I'd rather use Visual Basic's object-oriented style if I'm looking for faster development time for an app at the cost of performance.

Anyway, as to your code sample, I can replace the call to "dup = check_match(&src[si], &pos, 16);" with your best match version and you say I can then eliminate the 256-byte sliding window buffer ? I'd say finish your version of what EncodeLZSS() should look like also. I'll have to go through breaking working code to try to upgrade to your FindBestMatch(), work I don't need. But yeah, definitely interested in a more optimized and/or simplified expression of the algorithm.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 18, 2015, 05:35:34 AM
For historical amusement only, here's the 8086 assembly language version of the brute-force search from the 1993 version of the SWD compressor. Yay, rah-rah for that old 16-bit MS-DOS!  :wink:

                ASSUME  CS:_TEXT,DS:DGROUP

_TEXT           SEGMENT BYTE PUBLIC 'CODE'

_DoSearch       PROC    NEAR

                PUSH    BP
                MOV     BP,SP
                PUSH    SI
                PUSH    DI

                MOV     AX,DS
                MOV     ES,AX

                CLD

#Search1st:     MOV     DI,WORD PTR DGROUP:_SearchPtr
                MOV     AL,BYTE PTR DGROUP:_StringChr

                MOV     CX,WORD PTR DGROUP:_SearchLen
                OR      CX,CX
                JZ      #End

                REPNE   SCASB

                JNE     #End

#Found1st:      MOV     WORD PTR DGROUP:_SearchLen,CX
                MOV     WORD PTR DGROUP:_SearchPtr,DI

                MOV     DX,DI

                MOV     SI,WORD PTR DGROUP:_StringPtr

                MOV     CX,WORD PTR DGROUP:_StringLen
                OR      CX,CX
                JZ      #FoundAll

                XOR     AL,AL

                REPE    CMPSB

                JNE     #Search1st

#FoundAll:      MOV     AX,WORD PTR DGROUP:_StringLen
                MOV     BX,WORD PTR DGROUP:_StringMax

                CMP     AX,BX
                JE      #NewString

#EnlargeString: CMPSB
                JNE     #NewString

                INC     AX

                CMP     AX,BX
                JNE     #EnlargeString

#NewString:     MOV     WORD PTR DGROUP:_StringLen,AX
                MOV     WORD PTR DGROUP:_BestYetLen,AX
                MOV     WORD PTR DGROUP:_BestYetPtr,DX

                CMP     AX,BX
                JNE     #Search1st

#End:           DEC     WORD PTR DGROUP:_BestYetPtr

                POP     DI
                POP     SI
                POP     BP
                RET

_DoSearch       ENDP


It was much faster than the C version back then, but was later blown-away by the more sophisticated tree search technique that Haruhiko Okumura used in the famous LZSS.exe DOS compressor (from 1989 ... I was way late to the table in adding a "tree" search!).

It's Okumura's old public-domain source code that people still go to today, and walk away totally confused, and thinking that LZSS must be complex and scary.  #-o

It isn't.

It is the optimizations, like the tree that makes the search blindingly fast, that are scary, but they're not a part of the core LZSS algorithm, and aren't really needed on today's fast processors for small datasets like PCE games.

You can remove those old optimizations and just end up left with a clear-and-simple brute-force search, and still produce exactly the same compressed output.

But yet, you still see hangovers from Okumura's old source, like the ring-buffer that's in Dave's YsIV compressor, that really aren't needed anymore in a modern 32-bit LZSS compressor, and that only serve to complicate the code and obfuscate problems.

I literally only removed the ring-buffer from my SWD compressor a few days ago, so I totally understand why it's still there in a lot of code, and I'm not in any position to point fingers.

I'm just still trying to get the algorithm clarified to the point that NightWolve will have that "lightbulb" moment and realize just how simple it all is, and that he really doesn't need my help to modify the ED compression code.

I'm just not very good as a "teacher".  :(
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on September 18, 2015, 06:50:20 PM
Got me to read about Harukiho Okumura. :)

Keep posting!
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 23, 2015, 11:01:11 AM
Now that I'm pretty-much-done with the compression side of things, I thought that I'd report the results.

First of all, the reorganization of my compression code has allowed me to write an "SWD5" codec that incorporates the same flow as LZ4 (or FALCOM1 actually, just to show that there really is nothing new about LZ4).

If you're not familiar with the difference, let me try to explain.

-----------------------

Traditional LZSS compressors use a one-bit flag to say if the next thing in the compressed data is either a single byte to copy to the output, or a "match" with some data that's appeared earlier in the decompressed output.

The "matches" are where all the compression comes in. That extra 1-bit flag actually increases the size of the data by 1/8, which is why "uncompressible" files can be up to 1/8 larger when compressed with a traditional LZSS compressor.

LZ4 and FALCOM1 do things a little differently, in that instead of using a 1-bit flag to indicate that 1 byte should be copied from the compressed data to the output data, they instead store the number of bytes to copy from the compressed data to the output data.

That's it ... that's the big difference. It's not difficult to understand, even though it has a subtle-but-significant effect on the way that the code works.

So the next question is, "Does this improve the compression?".

Well, from my tests, the answer is "yes, but not by much".

The big advantage is that if you've got a lot of "uncompressible" bytes to copy, then storing the number can be a win.

It certainly reduces the "worst case" situation from adding 1/8 of the original file size, to just adding 2 or 4 bytes.

But in practical conditions in a game, you're not dealing with lots of "uncompressible" data, because if you find a "difficult" file, then you can just store it uncompressed.

-----------------------

So now there's SWD4 (using the traditional 1-bit flag) and SWD5 (using a count of "uncompressible" bytes to copy).

Here's how they stack up against FALCOM2 on some of the Xanadu 2 data ...

BLK $00d800  16 CHKs ( 32136 / 104960)  Fal2  28259  Swd4  27347  Swd5  27124
BLK $019800  11 CHKs ( 14682 /  74752)  Fal2  12582  Swd4  12215  Swd5  12140
BLK $03b800  26 CHKs ( 42163 / 123742)  Fal2  36836  Swd4  35828  Swd5  35580
BLK $04b800  12 CHKs ( 34652 /  80890)  Fal2  31004  Swd4  29886  Swd5  29665
BLK $057800  12 CHKs ( 34206 /  80410)  Fal2  30614  Swd4  29511  Swd5  29290
BLK $06b800  68 CHKs (118017 / 328663)  Fal2 110270  Swd4 106985  Swd5 106152
BLK $09b800  89 CHKs ( 95543 / 379309)  Fal2  85034  Swd4  82264  Swd5  81596


From those results it looks like SWD5 is "better" than SWD4, but the difference is tiny, an approximately 0.25% improvement.

It also looks like SWD5 is "better" than FALCOM2, but once again, the difference is hardly significant with an approximately 1% improvement.

So, my conclusion from all this is that while I just about win against Falcom's data-compression programmer in the bragging-rights contest ... it's not by enough of a margin to really matter.

IMHO, Falcom did a really good job with the FALCOM2 compression code back in 1994/1995!  :wink:

There's no reason to switch Xanadu 2 from FALCOM2 to SWD4/SWD5 from a "compression" point-of-view. It will only make sense if the decompression code is a significantly smaller, and I actually need to free up that memory.

-----------------------

For anyone that's curious in seeing how SWD4/5 stacks up against LZ4, here are the results from running the graphics test files from this site ...

http://www.brutaldeluxe.fr/products/crossdevtools/lz4/

Fal1  6,490  Fal2  5,844  Swd4  5,546  Swd5  5,556  LZ4  6,508  ANGELFISH.BIN
Fal1 23,379  Fal2 20,771  Swd4 20,617  Swd5 20,665  LZ4 23,520  ASTRONUT.BIN
Fal1 15,087  Fal2 14,027  Swd4 13,844  Swd5 13,863  LZ4 14,802  BEHEMOTH.BIN
Fal1  3,406  Fal2  2,519  Swd4  2,446  Swd5  2,449  LZ4  2,803  BIG.BIN
Fal1  9,329  Fal2  8,003  Swd4  7,933  Swd5  7,962  LZ4  8,865  BUTTERFLY.BIN
Fal1  7,039  Fal2  6,206  Swd4  6,102  Swd5  6,113  LZ4  6,654  CD.BIN
Fal1 18,368  Fal2 16,874  Swd4 16,335  Swd5 16,369  LZ4 18,876  CLOWN.BIN
Fal1  7,982  Fal2  7,215  Swd4  7,235  Swd5  7,260  LZ4  7,662  COGITO.BIN
Fal1 14,871  Fal2 12,748  Swd4 12,560  Swd5 12,581  LZ4 15,300  COTTAGE.BIN
Fal1 13,389  Fal2 11,873  Swd4 11,711  Swd5 11,733  LZ4 13,102  FIGHTERS.BIN
Fal1 13,431  Fal2 12,260  Swd4 11,936  Swd5 11,954  LZ4 13,220  FLOWER.BIN
Fal1 10,198  Fal2  9,029  Swd4  8,804  Swd5  8,813  LZ4  9,972  JAZZ.BIN
Fal1 14,834  Fal2 13,403  Swd4 13,182  Swd5 13,206  LZ4 14,810  KNIFE.BIN
Fal1 19,485  Fal2 17,932  Swd4 17,727  Swd5 17,730  LZ4 20,261  LORI.BIN
Fal1  8,724  Fal2  8,143  Swd4  7,893  Swd5  7,905  LZ4  8,643  MAX.BIN
Fal1 17,921  Fal2 15,114  Swd4 14,798  Swd5 14,803  LZ4 18,474  OWL.BIN
Fal1 20,625  Fal2 18,564  Swd4 18,285  Swd5 18,307  LZ4 20,595  RED.DRAGON.BIN
Fal1 15,496  Fal2 13,993  Swd4 13,483  Swd5 13,500  LZ4 16,306  TAJ.BIN
Fal1 12,907  Fal2 11,205  Swd4 11,128  Swd5 11,164  LZ4 12,551  TUT.BIN

Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 23, 2015, 03:13:03 PM
I've come to hate C++ and I think they should've probably just went right to Java for object-oriented enhancement rather than having given birth to that abomination... ;)

C++ definitely sucks in practice ... but then, there's a lot of people that think the same about Java.

[RANT] I do NOT want a "virtual environment" chewing up my processor power just because some idiots don't know how to call free()! [END RANT]

C was designed by engineers to solve a problem.

C++ was designed by an academic, and later passed off to a committee of "architecture astronauts".

I've met a few programmers over the years that will proudly over-complicate the simplest task to the point of writing a fragile, un-maintainable mess.

I suspect that there's a lot of people like that on the C++ Standards Committee.

I really enjoyed watching Scott Meyer's talk at the D conference last year, it's a fascinating talk about some of the strange language design edge-cases in C++ ...

https://www.youtube.com/watch?v=48kP_Ssg2eY


Quote
Anyway, as to your code sample, I can replace the call to "dup = check_match(&src[si], &pos, 16);" with your best match version and you say I can then eliminate the 256-byte sliding window buffer?

It's certainly possible to rewrite the code that you've got there so use a simpler version of the "brute-force" search.


Quote
I'll have to go through breaking working code to try to upgrade to your FindBestMatch(), work I don't need.

No problem, the point wasn't to get you to use my code ... it was to get you to want to understand the code that you're using.

We've both got plenty of work to keep us busy!  :wink:

Speaking of which ... it was really nice to find out today that the Xanadu 2 "Prologue" cinema is just written in the regular game engine, and uses script blocks that I've already identified.

I think that that's going to be the best point-of-attack in trying to get the first script chunks translated and re-inserted into the game!
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on September 24, 2015, 05:38:55 AM
Offtopic:

 I learned C++ first, or C with OOP (back in '96), and then switched over to straight C. To this day, I still don't know what all the fuss is about with classes and objects. I should know this, being a computer science major, but I won't be taking any CS courses into after my gen ed are out of the way.

 The only thing that annoyed me with C (C99), was that I couldn't created a struct, which contained an array and a set of pointers with offsets into that array. The runtime thingy in C, or whatever it's called, won't initialize the pointers. I don't see why not; those pointers should be relative to the array in which they all belong to (the struct).

 
 
Title: Re: Xanadu II Translation Development Blog
Post by: Dicer on September 24, 2015, 06:18:33 AM
I have no idea what most of this means, but it's interesting reading...

My programming skills stopped at Basic and Cobol :/

Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 24, 2015, 02:25:52 PM
Offtopic:

Not really, I'd say ... it's a "blog" about the programmer's side of trying to get a translation done.  :)

I'm trying to give people an insight into what-it-is that the programmer has to do to get the "translator's" work into a game.

That might give people a better idea of why most translations need a programmer's help, and why these things often get stalled or abandoned.

IMHO anything programming-related is fair-game. Even if it doesn't directly apply to a game, it'll probably apply to the tools that may need to be written.


Quote
I learned C++ first, or C with OOP (back in '96), and then switched over to straight C. To this day, I still don't know what all the fuss is about with classes and objects. I should know this, being a computer science major, but I won't be taking any CS courses into after my gen ed are out of the way.

I'm sure that the you'll be taught all sorts of wonderful stories about how OOP is wonderful, and how to program "properly" ... usually by someone that's never worked on a large software project, or had to maintain someone else's code.

Be skeptical!  :wink:

IMHO, there are some really good things that you can do with OOP techniques, but if you get "religious" about it, you can easily over complicate things.

This site is a fun read after you've had someone evangelizing the benefits of C++ to you ... http://yosefk.com/c++fqa/

Personally, I mostly write C code with the C++ compiler, but there are just some things that are much easier to express with classes.

But, like most old game devs, I avoid std:: and templates like the plague!


Quote
The only thing that annoyed me with C (C99), was that I couldn't created a struct, which contained an array and a set of pointers with offsets into that array. The runtime thingy in C, or whatever it's called, won't initialize the pointers. I don't see why not; those pointers should be relative to the array in which they all belong to (the struct).

I'd be curious to see what you were trying to accomplish with that struct?
Title: Re: Xanadu II Translation Development Blog
Post by: TailChao on September 25, 2015, 07:00:19 AM
Not really, I'd say ... it's a "blog" about the programmer's side of trying to get a translation done.  :)
Just wanted to chime in and say I'm really enjoying this.

It's extremely helpful to "compare notes" with how others structure their games, especially in regards to scripting and compression.
Title: Re: Xanadu II Translation Development Blog
Post by: dshadoff on September 25, 2015, 01:39:54 PM
Personally, I mostly write C code with the C++ compiler, but there are just some things that are much easier to express with classes.

Same here.
A good enough programmer is going to write code that has a beginning, a middle and an end, and is divided into all the necessary pieces neatly - no matter what language.  Kind of like the dream that C++ tries to sell.

On the other hand, a careless C++ programmer will write mangled crap anyway, no matter how much of the Kool-Aid they drank.

Quote
But, like most old game devs, I avoid std:: and templates like the plague!

Or the clap.  "STD" only meant "sexually transmitted disease" when I was younger.  Then C++ came along and made it mean something equally unpalatable.

-Dave
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on September 26, 2015, 03:25:23 PM
Or the clap.  "STD" only meant "sexually transmitted disease" when I was younger.  Then C++ came along and made it mean something equally unpalatable.

-Dave

HAHAHAHAHAHA!
Title: Re: Xanadu II Translation Development Blog
Post by: flame on September 29, 2015, 02:28:49 PM
I looked on RomHacking, and someone there was asking about hacking one of Falcom's PSP games, and it still seemed to be using the FALCOM2 compression scheme.
I guess I did that. It's like halfway between a straight copy of the MIPS code and a functional copy of the algorithm. I'm not smart enough to do anything more. I worked on Nayuta which used a little more complicated version of what you're calling FALCOM2. Trails in the Sky 3 PC was using straight FALCOM2.

I don't claim to be a good programmer. I can only do simple stuff. I like Python and can't understand C code. It has all those brackets {} and things. Also you have to understand C builtin functions and I'm not sure I do. I get that Python is slow. Unless you're doing a decryption algorithm though, it doesn't have to be fast, at least for Romhacking work.

Beginning, middle and end: My programs tend to follow: input, data processing, output. Is that what's meant?
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 30, 2015, 06:08:43 AM
I have no idea what most of this means, but it's interesting reading...

I'm just glad if it's not sending everyone to sleep!  :wink:

***********************

It's extremely helpful to "compare notes" with how others structure their games, especially in regards to scripting and compression.

I totally agree ... it's one of the big reasons that I'm doing this.

I've often learned a lot from looking at how other people put their games together.

Everyone used to do that back-in-the-day when someone came up with a particularly "clever" effect.

***********************

Or the clap.  "STD" only meant "sexually transmitted disease" when I was younger.  Then C++ came along and made it mean something equally unpalatable.

It's amazing, to me, at just how all that templated junk and the overuse of class inheritance totally kills compiler performance.

I took a look at the Unreal Engine when they made it cheaply available a year or so back.

There's definitely some powerful stuff in there ... but OMG, it was so slow to compile!  :shock:

It took my old quad-core PC nearly 60 minutes to do a clean compile of their codebase.

It takes the same machine approx 3 minutes to do a clean compile of my last X360 game.

***********************

I worked on Nayuta which used a little more complicated version of what you're calling FALCOM2. Trails in the Sky 3 PC was using straight FALCOM2.

Welcome!

Congratulations on getting those games decompressing, it's interesting to hear about the progression of Falcom's compression over the years.

Are those translations released, yet?


Quote
Beginning, middle and end: My programs tend to follow: input, data processing, output. Is that what's meant?

I'm going to guess that Dave is talking about classic "procedural" or "functional" programming.

That's where you can generally look at the source code and see the flow of the program execution.

Once you get into too deep into some of the tricks that "object-oriented" programming makes look simple, like event handlers, and lists/trees/etc of objects running update/collision/etc methods, then things quickly become hard to follow, and harder to debug.

When you add in multiple threads on modern systems, then the complexity ramps up by orders-of-magnitude.

Things very quickly get to the point that only the person/people that originally wrote it have any chance to debugging it. And as modern games show, even they can't catch a lot of the problems.
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on September 30, 2015, 06:59:28 AM
I worked on Nayuta which used a little more complicated version of what you're calling FALCOM2. Trails in the Sky 3 PC was using straight FALCOM2.

That's interesting, so they went back to their LZSS stuff and didn't use the general zlib like they did for Ys VI/Felghana/Origin ? Huh. The nice thing with zlib as a standard was you grab the public DLL and you've got both encode/decode functions, you wouldn't just be looking at their decode function in x86 ASM and then have to study it enough to reverse it...

Another thing that Falcom are bastards for was their decision after Ys II Compete to begin splitting the base script file into over a thousand! It varied between 1300 to 1600 text files when it came to Ys VI/Felghana/Origin/etc. ED6 FC used about 600 as I recall. But yeah, it seemed a nightmare at first given you'd have to rebuild all of them and it took me a while to come up with a clever solution to handle it. Which then was not so much clever seemingly as it was obvious, just that I'm a slow learner. Heh. I paid a great many penalties in lost time just starring at the screen. ;)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 30, 2015, 08:05:03 AM
But yeah, it seemed a nightmare at first given you'd have to rebuild all of them and it took me a while to come up with a clever solution to handle it.

I'd be curious to see a snippet from one of those script files, if you'd like to post one.

***********************

I'm beginning the process of dumping the Xanadu 2 scripts now, and it's already showing that the script really is a fully-fledged programming language.

Much to my disappointment, they're also interleaving "script" code with "assembler" code.

That means that I may have to add a complete HuC6280 assembler/disassembler into the translation tool!  ](*,)

At this point I'm very curious as to how Falcom originally wrote this whole thing.  :-k

I'd guess that it was all done with a good macro-assembler ... but if so, it was either a custom-developed one in order to deal with their text-encoding system, or they did a lot of cut-n-paste with both SJIS and "encoded" text string in the same file.

Anyway, here's just a small section of the very first script chunk in the game ...

$a6a3 .scriptA6A3:
$a6a3   _enable_8x12_font()
$a6a5   _set_pen_then_call_then_eol( orange, .scriptAE05 )
$a6a9   _disable_8x12_font()
$a6ab   _tst_2b03_x_bnz( $01, $02, .scriptA877 )
$a6b0   _tst_2b03_x_bnz( $01, $10, .scriptA748 )
$a6b5   _tst_2b03_x_bnz( $01, $20, .scriptA71B )
$a6ba   _tst_2b03_x_beq( $20, $01, .scriptA8AB )
$a6bf   _tst_2b03_x_beq( $20, $02, .scriptA8AB )
$a6c4   _tst_2b03_x_beq( $20, $04, .scriptA8AB )
$a6c9   _tst_2b03_x_beq( $20, $08, .scriptA8AB )
$a6ce   {アリオスさま、準備が整ったようですな。そういえば、航海長が}
$a6f1   _eol()
$a6f2   {お話があるとのことです。}
$a6ff   _wait_for_keypress_then_clear()
$a700   {後部甲板に行ってみてはいかがですか?}
$a717   _set_bits_2b03_x( $01, $20 )
$a71a   _wait_for_keypress_then_end()

Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on September 30, 2015, 08:54:38 AM
But yeah, it seemed a nightmare at first given you'd have to rebuild all of them and it took me a while to come up with a clever solution to handle it.
I'd be curious to see a snippet from one of those script files, if you'd like to post one.

Sure, let's pick one from Felghana. So the script was expanded out to 1,766 .XSO files when they used to use 1 or 2 files for Ys I & II Complete... Not every XSO has S-JIS text in it though, so you can eliminate a hundred or so that don't have it. But yeah, I always wondered why they did that, if it was intentional to possibly make the job of fan translation tougher...

(https://postimg.cc/image/h7rryre03/)

So that's after it was ZLIB decoded/decompressed - the files had a .Z extension if compressed.

Here's the whole file:

http://www.mediafire.com/download/hqzh8xd9hedzmdu/TALKRANDOLF.XSO

I dunno if you have a hex editor with S-JIS-to-Unicode mapping to allowing easy viewing so I took that little snapshot.

So, I took the easy route here in the aftermath, just scanned for S-JIS lead byte and 2nd byte pairs and loaded that as a string till null, repeat, etc. I escaped having to rebuild any of these files since I came up with the idea of intercepting the print function to crunch the current Japanese string to a CRC32, take that as a 4 byte index and match it to these but return the English replacement I would have next to it in a database record, etc.

So in the database, you'd store the FileID, Offset, CRC32, Japanese string, and English string (after your translator did his/her job), etc. and then output that data as arrays in a "C" header file for compilation/usage. One array for the CRC32 and another for the English string, both sorted by CRC32. So when you search for a CRC32 based on what the print function was about to do, the index you find it at is the same index that'll fetch the English string in the other array. Blah blah, you get the idea.

It was pretty cool how it all worked out like a charm. I wondered if there'd be a detectable slowdown in implementing this though, but you couldn't tell the difference in the slightest bit! I did sort the CRC32, English String pairs by the CRC32 so I could use binary search instead of linear 1-to-n max iteration searches as a novice would do, but I'd bet even if I cheaped out and did a basic for loop for a linear search, I still wouldn't have noticed any difference because something like that with only 4,000 to 6,000 4-byte elements shouldn't have been much of a big deal.

I DID cause a detectable slowdown in another area though for image replacement, which I never got to correct in a released patch! But that's another paragraph or so in your thread. ;)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 01, 2015, 05:29:05 AM
But yeah, I always wondered why they did that, if it was intentional to possibly make the job of fan translation tougher...

Hahaha ... they could care less!  :lol:

They'll have done it for their own reasons, because it made sense at the time.

Probably so that they could have multiple designers working on different parts of the game at the same time.


Quote
I dunno if you have a hex editor with S-JIS-to-Unicode mapping to allowing easy viewing so I took that little snapshot.

Thanks, I took a quick look at that .xso file.

So there's a bunch of data (and script code?) at the start, and the whole thing ends with the string data.

The string data consists of a table of offsets to each string, and then the strings themselves in regular C format.

That seems like a very standard sort-of-thing for the 32-bit era when writing the game in "C".

It's nice that all of the string data is right at the end of the file ... that would have made it about as trivial to hack/replace as you can possibly get!

But your DLL hack is a really nice solution that avoids changing too many of the original files and bloating up the size of the patch.

Unfortunately, the Xanadu 2 patch is likely to be another "windows-executable" style patch, since almost all of the game data is going to get re-compressed.

I'm still curious what the PCE YsIV data looked like ... the 16-bit era was when developers were still coming up with "creative" solutions in order to fit things into the limited RAM/ROM.
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on October 02, 2015, 06:04:19 AM
Do any of the Xanadu games prime the LZ window/buffer before decompression? I can't remember if it was Dracula X or Gate of thunder, or some other PCECD game, but the game would prime the buffer with a series of values before running the decompression routine. Beginning/leading referencing strings would rely on the presence of these values (not just cleared or zero'd data in the buffer).
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 02, 2015, 09:06:35 AM
Do any of the Xanadu games prime the LZ window/buffer before decompression?

Not unless I'm totally missing something!  :wink:

From what I'm seeing, the game loads up a complete 128KB META_BLOCK into RAM, and then when it wants to decompress an 8KB DATA_CHUNK, it maps the appropriate section of the META_BLOCK into $8000-$BFFF, and then decompresses it into $C000-$DFFF.

That memory layout pretty much stops then from using the preload trick.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 08, 2015, 10:01:10 AM
It's been a while, so time for an update.

The "script" code seems to be all extracted ... but that's not much use if it can't be modified and replaced.

The problem is that there's a lot of interleaved script code and assembly code ... there's even some bits of "dead" code and script in there!

That makes me absolutely certain that this was all created with a macro-assembler and not a "level editor".

I've written an HuC6280 disassembler and am now running that as part of the script-extraction.

It was actually quite fun to go "old-skool" with that and try to get it as small as possible so that I can have a version of it that runs in-game on the PCE, just like Chris Covell's excellent PCEmon. I think that it should fit into approx 1024 bytes (hopefully less) on a PCE, including instruction cycle counts.

***********************

AFAIK (and I'd love to know if I'm missing some other alternative), there are only 3 basic strategies for changing the text in a translation ...

[uldecimal][li]Just overwrite the existing text and only allow strings the same size or shorter than the original.[/li][li]Change the "pointer" to the string to point to your translated string that's somewhere else.[/li][li]Reassemble the original code/script from "source" with the new translated strings, just like the original developers would have done.[/li][/ul]
Given the lack of free memory in the PCE, I've been thinking that option 3 is probably the best thing to do, especially since it imposes the least limits on the translator.

But the way that Falcom are mixing code and script makes this problematic ... for a start, I've actually got to reverse-engineer the script chunks back into a "source" format that I can either feed to PCEAS, or assemble/compile myself.

That's complicated by not knowing exactly where the code/script/data is in a chunk, and having to try to figure it out from various clues.

***********************

Which leads us on to this example from the very first script chunk.

We've got script that calls an assembly language function, that's next to other code that references a data table, and is followed by yet more script.

That's ugly ... but it's just about OK.

It does mean that I need to output this all in a format that some macro-assembler can handle.


$ad89   _set_pen_then_call_then_eol( orange, .scriptAE17 )
$ad8d   {アイアイサー!}
$ad94   _call_asm_from_script( .codeADFF )
$ad97   _wait_for_keypress_then_end()

.....

$ade6 .codeADE6:
$ade6   lda  .dataADFA,y
$ade9   sta  $2700,x
$adec   lda  #$20
$adee   jsr  $8a63
$adf1   iny 
$adf2   cpy  #$05
$adf4   bcc  .codeADE6
$adf6   jsr  $7feb
$adf9   rts 

$adfa .dataADFA:
$adfa   _byte( $08 )
$adfb   _byte( $00 )
$adfc   _byte( $0a )
$adfd   _byte( $00 )
$adfe   _byte( $0d )

$adff .codeADFF:
$adff   lda  #$01
$ae01   trb  $2c00
$ae04   rts 

$ae05 .scriptAE05: ; 8x12 font
$ae05   {ダイモス}
$ae09   _end()


***********************

Next up, here's some old-fashioned self-modifying code with a jump table.

This disassembly has been hand-tweaked, because it's something that I still need to write a specific disassembler-helper function to actually get it into a usable format.


$a442 .codeA442:
$a442   lda  $26c0,x
$a445   asl  a
$a446   tay 
$a447   lda  .tableA487+0,y
$a44a   sta  .dataA454
$a44d   lda  .tableA488+1,y
$a450   sta  .dataA455
$a453   jmp  $0000

$a487 .tableA487:
$a487   _eptr( .codeA456 )
$a489   _eptr( .codeA460 )
$a48b   _eptr( .codeA469 )
$a48d   _eptr( .codeA473 )


***********************

So ... there's definitely progress, but it's slow going.
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on October 08, 2015, 12:48:14 PM
Yeah, games like Xak III had 16-bit pointers, sometimes a bit before the text block, sometimes after, so I would load the array after spotting it, and could then recompute each pointer to pack as much English text back into the text block, so you weren't limited by the original string size, you just had to mind the whole text block size and not go over it. In this way, you pretty much were able to fit accurate translations for every string in the block and not have to trim them to the point where loss of quality had to occur. (At least, that was the experience with Xak III.)

With a compressed text block, it's a whole other beast in how it operates. As far as I know, the way it works is the game code specifies an index based on the string that it wants at the time. So, if it wants the 5th string in the block, it specifies say 4 (if we're starting at 0) and so it keeps decompressing while counting the 0/null terminators, so when you've counted the 4th null terminator, that's the end of string 4, the start of string 5, and then it knows to finish off with that string and stop further decompression into the block. Something like that.

EDIT:
I'm still curious what the PCE YsIV data looked like ... the 16-bit era was when developers were still coming up with "creative" solutions in order to fit things into the limited RAM/ROM.

Oh right, about your Ys IV question, you basically saw it in that image of S-JIS. A decompressed text block was just null-terminated S-JIS text, that's it! No switching tricks with half-width characters, hiragana, etc. and what not. Just all S-JIS all the time... The game that uses switching tricks is Emerald Dragon and David did extensive work to decode it all to where what I and what SamIAm sees is S-JIS which was converted to Unicode for easier viewing on a Windows desktop.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 09, 2015, 06:33:37 AM
Yeah, games like Xak III had 16-bit pointers, sometimes a bit before the text block, sometimes after, so I would load the array after spotting it, and could then recompute each pointer to pack as much English text back into the text block, so you weren't limited by the original string size, you just had to mind the whole text block size and not go over it.

It's so nice when a developer uses a nice-and-simple scheme like that, it really makes a programmer's life so much easier.

The Zeroigar scripts were basically like that.


Quote
With a compressed text block, it's a whole other beast in how it operates. As far as I know, the way it works is the game code specifies an index based on the string that it wants at the time.

Now that's just plain slow and fugly!  :shock:

I've not seen that trick done before.

I can just-about imagine that being used for a HuCard game on the PCE (becuase of it's limited memory), but it's horrible!

At least it should be fairly easy to translate since you've only got to worry about overall size of the complete block of compressed data.


Quote
Oh right, about your Ys IV question, you basically saw it in that image of S-JIS. A decompressed text block was just null-terminated S-JIS text, that's it! No switching tricks with half-width characters, hiragana, etc. and what not. Just all S-JIS all the time...

That was nice of them.


Quote
The game that uses switching tricks is Emerald Dragon and David did extensive work to decode it all to where what I and what SamIAm sees is S-JIS which was converted to Unicode for easier viewing on a Windows desktop.

Haha ... yes, you definitely want to hide the behind-the-scenes lunacy away from the poor translator.

Xanadu 2 uses a byte-to-sjis conversion table ... actually 2 of them, 1 for 12x12 glyphs and 1 for 8x12 glyphs.


***********************

Anyway ... back to Xanadu 2.

There are 8 really large script-chunks that I've been concerned about, because they're nearly 8KB big, but only seemed to contain about 1KB of "script".

That immediately made me concerned that I was missing something important.

Now that I've finally been able to disassemble the whole chunk, it turns out that I wasn't missing much, and that there really is a lot of (ugly) code in those particular chunks.

They're the ones that handle the 8 different Weapon Shops in the game.

The good news is that this all means that it's time to write the insertion tools and start testing a chunk with some real translated text.   :D
Title: Re: Xanadu II Translation Development Blog
Post by: shawnji on October 09, 2015, 11:52:50 AM

The good news is that this all means that it's time to write the insertion tools and start testing a chunk with some real translated text.   :D


Wow.  You guys are really making headway on this.  It'll be great to see it all finished; and it's fun to read through some of this and try to pretend like I know what you're talking about. XD  I wish I had a mind for this kind of thing, but I'm terrible at it.  The furthest I ever got was building a table for a Famicom game, and after that it all just got too confusing for me.
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on October 09, 2015, 05:11:24 PM
Elmer. So when are you going to do Cosmic Fantasy 4: Chapter 2 ??? The text is all uncompressed SJIS... just sayin ;)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 09, 2015, 06:29:56 PM
Elmer. So when are you going to do Cosmic Fantasy 4: Chapter 2 ??? The text is all uncompressed SJIS... just sayin ;)

I absolutely love the PCE ... but unless you can point me towards something of the quality of Ken Levine's System Shock 2, or System Shock, or Bio Shock ... or just get me into a party where I can finally meet him and maybe talk to Eric and Terri Brosius ...

Then I suspect that after Xanadu 2 and Xanadu 1, it'll be back to PC-FX development software and a "new" game (or 2) for me.

Despite the apparent lack of interest, I've already put my "mark" on trying to get Operation Thunderbolt, and maybe Osman ported over to the PCE. Surely that's enough!  :wink:
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on October 10, 2015, 03:29:11 AM
Elmer is working on a SCD upgrade of Blodia after The Xanadu.

Priorities are priorities. :)
Title: Re: Xanadu II Translation Development Blog
Post by: shawnji on October 10, 2015, 05:01:39 AM
Elmer. So when are you going to do Cosmic Fantasy 4: Chapter 2 ??? The text is all uncompressed SJIS... just sayin ;)

Oh really?  Hmm... that might be something fun for me to poke at if I wanted to try and teach myself a little bit.  A friend was trying to help walk me through some processes with Blood Gear, but the text being compressed was making it more difficult for me to understand at the time.
Title: Re: Xanadu II Translation Development Blog
Post by: VenomMacbeth on October 10, 2015, 08:06:25 AM
XanaDUUUUDE!  EXCELLENT!

The only think keeping me from playing this game is the language barrier, so I can't wait for this to be complete ^-^
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on October 10, 2015, 08:27:57 AM
Elmer. So when are you going to do Cosmic Fantasy 4: Chapter 2 ??? The text is all uncompressed SJIS... just sayin ;)

Oh really?  Hmm... that might be something fun for me to poke at if I wanted to try and teach myself a little bit.  A friend was trying to help walk me through some processes with Blood Gear, but the text being compressed was making it more difficult for me to understand at the time.

 I made an English print routine for it, as well as an ascii single byte read support, back in 2007/2008 for Animefx. He never finished translating it. If I still have it, it's yours if you want.
Title: Re: Xanadu II Translation Development Blog
Post by: spenoza on October 10, 2015, 08:37:49 AM
Wait, what about Chapter 1? You can't do Chapter 2 without Chapter 1!
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on October 10, 2015, 09:49:41 AM
Elmer. So when are you going to do Cosmic Fantasy 4: Chapter 2 ??? The text is all uncompressed SJIS... just sayin ;)

Oh really?  Hmm... that might be something fun for me to poke at if I wanted to try and teach myself a little bit.  A friend was trying to help walk me through some processes with Blood Gear, but the text being compressed was making it more difficult for me to understand at the time.
I made an English print routine for it, as well as an ascii single byte read support, back in 2007/2008 for Animefx. He never finished translating it. If I still have it, it's yours if you want.

Well, I'll take it, that's good to have handy just in case the desire arises years from now. ;) Just PM it whenever you get the chance.
Title: Re: Xanadu II Translation Development Blog
Post by: Black Tiger on October 10, 2015, 09:58:35 AM
Wait, what about Chapter 1? You can't do Chapter 2 without Chapter 1!

You can do both, as long as you do Chapter 2 first.
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on October 10, 2015, 10:18:02 AM
Wait, what about Chapter 1? You can't do Chapter 2 without Chapter 1!

 I was told that Chapter 1 wasn't that good.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 10, 2015, 10:35:57 AM
Elmer. So when are you going to do Cosmic Fantasy 4: Chapter 2 ??? The text is all uncompressed SJIS... just sayin ;)

Oh really?  Hmm... that might be something fun for me to poke at if I wanted to try and teach myself a little bit.  A friend was trying to help walk me through some processes with Blood Gear, but the text being compressed was making it more difficult for me to understand at the time.

I took a quick look on PC Engine Bible, and it seems like it could be a fun game ... it would be great if you decided to have a go at translating it!  :D

As for me ... I'm definitely not saying that I'll never do a translation again ... I'm just going to want to take a break and do something different for a while after Xanadu 1 & 2.  :wink:
Title: Re: Xanadu II Translation Development Blog
Post by: shawnji on October 10, 2015, 02:13:34 PM
Elmer. So when are you going to do Cosmic Fantasy 4: Chapter 2 ??? The text is all uncompressed SJIS... just sayin ;)

Oh really?  Hmm... that might be something fun for me to poke at if I wanted to try and teach myself a little bit.  A friend was trying to help walk me through some processes with Blood Gear, but the text being compressed was making it more difficult for me to understand at the time.

 I made an English print routine for it, as well as an ascii single byte read support, back in 2007/2008 for Animefx. He never finished translating it. If I still have it, it's yours if you want.

Sure, I'd like to take a look at that if you don't mind.  I can't promise I'll jump right on it, though; as I translate Japanese for a living already and I get burnt out occasionally.  I'm actually kind of surprised that I've been getting the itch to poke at a game translation again.

I can also understand why most people would want part two.  If you've never played the first Cosmic Fantasy, you wouldn't be terribly interested in Yuu as a main character instead of Van.  There's also the issue that the game is supposedly unbeatable due to some bug or something.  At least, I think that's what I heard.

As a side note, if it is the case that it's actually unbeatable, I bet it would make for a fun programming challenge to see if it could be fixed.
Title: Re: Xanadu II Translation Development Blog
Post by: Necromancer on October 11, 2015, 07:51:24 AM
All five CF games are beatable.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 11, 2015, 08:14:25 AM
Anyway ... back to Xanadu 2.

There are 8 really large script-chunks that I've been concerned about, because they're nearly 8KB big, but only seemed to contain about 1KB of "script".

That immediately made me concerned that I was missing something important.

Now that I've finally been able to disassemble the whole chunk, it turns out that I wasn't missing much, and that there really is a lot of (ugly) code in those particular chunks.

They're the ones that handle the 8 different Weapon Shops in the game.

Good news ... some of that "ugly" code in the Weapon Shop chunks put me on the trail to find another 12 DATA_CHUNKS that contain a lot of text strings in "script" format.

These aren't part of the regular in-game streaming system, but instead look to be chunks that get loaded "permanently" for each of the different game-overlays (which I think are for the Main-Menu, In-Game, and major boss fights, etc).

These newly discovered chunks finally show where all the missing "menu" text has been hiding!  :D

Finding this "missing" text was what SamIAm originally asked me to do, back before I looked at the state of the translation and decided that it needed some serious TLC in order to get it finished.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 12, 2015, 12:40:46 PM
Just in case anyone is interested ... I took a break and had a look at the original Legend of Xanadu 1 again.

The scripting language is almost identical.

The code "markers" that identify where the scripts are located are all different, but it doesn't take too long to find them and to fix up the search algorithm.

I've found and extracted 143 script chunks from it so far. :D
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on October 12, 2015, 03:36:51 PM
I didn't want to say anything prematurely, but it looks like a translation of Xanadu I is really going to happen. :D

I've already got a script for the cutscenes far along, and if all goes well, I'll be working on the in game stuff within the next week or two!

We're going to need a LOT of people for a dub, though.
Title: Re: Xanadu II Translation Development Blog
Post by: jtucci31 on October 12, 2015, 04:36:12 PM
Oh man this is amazing news! The cutscenes in Xanadu I are so damn cool, especially after playing some long winded area where the fetch quests drag because you have no idea what's going on (*cough*area 8*cough*).

Currently on area 10, another one that feels long. I can't wait to replay this game in all its English glory! :D
Title: Re: Xanadu II Translation Development Blog
Post by: Necromancer on October 13, 2015, 02:22:22 AM
Awesome news!    Both LoXes for your bagels!
Title: Re: Xanadu II Translation Development Blog
Post by: shawnji on October 13, 2015, 06:24:17 AM
I'll be involved in the dub if you want.  I used to work on stage professionally, but the only problem is the lack of a good mic setup.  I have wanted to get a boom mic for a long time, though...
Title: Re: Xanadu II Translation Development Blog
Post by: LentFilms on October 13, 2015, 09:59:38 AM
We're going to need a LOT of people for a dub, though.

If you need me to reprise my role for "Sailor/Thug" I'd be happy to do so.
Title: Re: Xanadu II Translation Development Blog
Post by: johnnykonami on October 13, 2015, 10:02:00 AM
I would love to try, but I might be a horrible actor.  If you need a small part or something, it would be cool to do though.
Title: Re: Xanadu II Translation Development Blog
Post by: Gredler on October 13, 2015, 10:14:45 AM
Hahaha man I'd send a few voice samples if needed, that'd be fun :D
Title: Re: Xanadu II Translation Development Blog
Post by: spenoza on October 13, 2015, 01:50:57 PM
I would also be willing to audition, and I have access to a couple nice microphones of different types at work. I may need help from someone with a clue to know which one is most appropriate, however...
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on October 13, 2015, 04:04:56 PM
I appreciate everyone's interest, as I will surely need a lot of help. However, for the time being, you'll just have to sit tight. I'm a ways away from having a recording-ready script, and I'd rather deal with one thing at a time.

I'll be sure to post on this forum before recruiting anywhere else! :D
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 19, 2015, 07:36:00 AM
Just in case anyone is interested ... I took a break and had a look at the original Legend of Xanadu 1 again.

The scripting language is almost identical.

The code "markers" that identify where the scripts are located are all different, but it doesn't take too long to find them and to fix up the search algorithm.

I've found and extracted 143 script chunks from it so far. :D

Hmmm ... well Xanadu 1 is simultaneously both an "easier" and a "harder" game to hack than Xanadu 2.

The nice thing is that the architecture is basically the same as Xanadu 2, with a "permanent" set of boot/utility code from $2000-$3fff in memory, and then "overlay" code from $4000-$9fff, and "script" chunks that get decompressed as needed into $a000-$bfff.

The game "overlay" code is the same for every top-down level, and the game just loads in a different 176KB META-BLOCK compressed data file that contains the level's graphics and scripts.

So far, so good.

Common scripts, such as item-names are located in the game overlay to save memory.

But then they were still running out of memory ... a couple of the levels have only a few bytes free in the 176KB allowed for each level.

So they also mapped another block semi-permanently into $c000-$dfff and started putting some scripts into that area.

And they were still running out, so that last level splits the script area into 2 4KB chunks and hacks the loading system to decompress 2 different scripts into $a000-$afff and $b000-$bfff. This let them get some more reuse out of the code in that level.

Yuk!

So finding all the scripts has been a bit nasty ... particularly the side-view Weapon Shop scripts which are done in a very different method to everything else. (BTW ... up to 181 scripts with text, now.)

Anyway ... the conclusion from all of this is that Xanadu 1 is pretty short on free memory for the translation.

***********************

Falcom already compresses the original SJIS text by encoding the 192 most-common katankana/kanji into a single byte, and this really works out well for them.

Xanadu 1 has 235,523 SJIS glyphs stored using 271,679 bytes.
Xanadu 2 has  96,139 SJIS glyphs stored using 116,346 bytes.


That's an approx 1.2 multiplier, much better than the 2.0 multiplier of pure SJIS.

Apart from showing that Xanadu 2 really is a much shorter story than Xanadu 1, it shows that we've got a problem.

In order to get a good English translation, SamIAm estimates that we're going to need approx 1.5 to 2.0 times the amount of English characters as Kanji glyphs.

This gives me 2 problems ... how to fit all this English text into a level's compressed 176KB META-BLOCK that gets loaded into memory ... and then how to actually free up enough memory so that a large English script-chunk can be decompressed and accessed in the game.

***********************

Luckily, the first part is easy(ish) ... Xanadu 1 stores all it's data compressed in what I've called the FALCOM1 data format.

If I recompress ALL the data in the game in with SWD, it'll shrink each level's compressed META-BLOCK so that there will be enough memory to store all the extra English text.

The expectation that we were going to hit this sort of problem is one of the reasons for spending so much time messing around with compression earlier.

So here are the results of recompressing each of the 12 levels in different formats (the numbers in braces are the Falcom1 compressed and decompressed sizes).

Blk $00d9800  71 Chk (161,912 / 313,390), Fal2 135,530, Swd4 131,437, Swd5 130,601
Blk $0105800  69 Chk (150,455 / 304,021), Fal2 126,807, Swd4 123,600, Swd5 122,706
Blk $0131800  85 Chk (179,364 / 346,665), Fal2 150,903, Swd4 146,514, Swd5 145,484
Blk $015d800  83 Chk (177,218 / 344,515), Fal2 148,163, Swd4 143,686, Swd5 142,635
Blk $0189800  76 Chk (168,666 / 334,124), Fal2 141,733, Swd4 137,780, Swd5 136,851
Blk $01b5800  78 Chk (175,358 / 333,670), Fal2 146,457, Swd4 142,661, Swd5 141,742
Blk $01e1800  80 Chk (169,941 / 329,813), Fal2 142,395, Swd4 138,714, Swd5 137,754
Blk $020d800  79 Chk (179,178 / 334,334), Fal2 147,208, Swd4 143,309, Swd5 142,467
Blk $0239800  67 Chk (160,874 / 302,719), Fal2 136,316, Swd4 132,410, Swd5 131,443
Blk $0265800  84 Chk (178,110 / 338,782), Fal2 146,571, Swd4 142,236, Swd5 141,287
Blk $0291800  60 Chk (133,598 / 266,361), Fal2 113,042, Swd4 109,641, Swd5 108,871
Blk $02bd800 102 Chk (177,269 / 361,138), Fal2 144,124, Swd4 137,984, Swd5 137,007


The game allows for 180,224 bytes (176KB) for the compressed block.

Taking a look at the largest level ...

FAL1 compressed  179,364
SWD5 compressed  145,484


Which means we should be able to afford not only to have SamIAm do the best translation, but I should also be able to afford to leave 8KB of that space free to use for decompressing the text.

It's definitely going to be a pain to completely replace Xanadu 1's original compression code/data, but I really don't think that there's much of an alternative.

***********************

The second part, allowing decompressed scripts to be larger, is going to be tricky.

If the Xanadu games had just used a nice-and-simple text-printing routine, then it would have been easy to hack the code to switch in a new bank of text at the start of the routine, and then switch it back again at the end.

Unfortunately, since the text is contained within the game's scripting language, and those scripts are located in nearly every possible banked-region in memory, and the script itself is read from multiple different pieces of code ... I don't think that I can get away with anything that simple.

The only solution that I can come up with at the moment is going to mean switching out the CD BIOS code that's mapped into $e000-$ffff.

If I map the 8KB bank of RAM that I've freed up from the 176KB of compressed level data into that area, then I'm going to have a lot of extra space for the translation and for the English font code.

It'll mean hacking the loading code to decompresses scripts into both $a000-$bfff and $f000-$ffef, but that's not too horrible.

The idea would be to map the CD BIOS vectors and interrupt vectors to new code that switches to the original BIOS and executes the original BIOS functions, and then switches back to my RAM bank afterwards.

IIRC, Bonknuts suggested doing something like this on his blog, but I'm not sure if anyone has done this yet in practice.

If they have, then I'd love to hear about it, and about what the potential problems are!
Title: Re: Xanadu II Translation Development Blog
Post by: gekioh on October 19, 2015, 07:45:50 AM
Dude hell yes, this is awesome. I've always wanted to play this game and actually KNOW what was going on. woo hoo!!!
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on October 19, 2015, 08:37:19 AM
So if I'm reading this right, the problem (mentioned at the end) is not enough logical address space? Do you have a free 8k bank of ram to swap into page #7? If you do map another bank there, I would definitely disable interrupts the alt bank is mapped there. Another approach, to logical address issues hacking, is to swap out page #0. Though that means re-routing interrupts from the CD bios routine to your hook code, so it can map it back in for that interrupt call, and then pull the TAM value off the stack and put the page #0 correct on exit (your bank).

 But, if you need to swap out banks to have access to more free space for decompression - aren't there other pages you could swap out first? If original library mapping is a concern, maybe disable interrupts for that extended decompression part (writing into an extended buffer)? Same for when the game routine need to read a character from the extended buffer?
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 19, 2015, 10:21:57 AM
So if I'm reading this right, the problem (mentioned at the end) is not enough logical address space? Do you have a free 8k bank of ram to swap into page #7? If you do map another bank there, I would definitely disable interrupts the alt bank is mapped there. Another approach, to logical address issues hacking, is to swap out page #0. Though that means re-routing interrupts from the CD bios routine to your hook code, so it can map it back in for that interrupt call, and then pull the TAM value off the stack and put the page #0 correct on exit (your bank).

It's a logical-address-space issue after decompression, and during game execution.

I can deal with the amount of space that each level's data takes up before-decompression by using a better compressor.

That will also free up an 8KB physical RAM bank that I can then use however I wish.

The problem is that the new English script-language data that's been decompressed is going to bigger than original Japanese script-language data.

It's got to be stored somewhere that's accessible to the script-interpreter.

AFAIK there's 2 possible solutions to that ...

1) Put the overflow somewhere in physical memory and only map it into logical memory just for the instant that the interpreter reads a byte from the script.

2) Put the overflow somewhere in physical memory and have it permanently mapped into logical memory.

***********************

If I choose option 1, then I've got to be 100% certain that I know every location in code where the interpreter reads a byte from the current script-pc. I've also got to either find somewhere "safe" in logical address space to temporarily map the bank, or else I've got to disable interrupts while I map in the bank and read the byte.

If I disable interrupts, then anything that relies on the interrupt timing will glitch.

I don't know that anything does ... but it's not the kind of thing that I like to do, especially when it's not my code in the first place, so I don't know exactly how it was designed.

If I were the original developer ... this is probably the method that I'd choose to implement. It's the cleanest, and the most standards-compliant.

***********************

If I choose option 2, then I've got to decide whether to use bank 0 or bank 7, and bank 7 is the obvious choice.

If I do that, then I can write new interrupt vectors and new BIOS function vectors, and just map the CD BIOS bank into $e000-$ffff when it actually needs to be there to handle an interrupt or a function call.

The new vectors will waste a bit of space, but the flexibility gained is pretty tremendous.

Now, if I were the original developer, I could do all of this without any knowledge of the BIOS internals, but since I don't have the luxury of having the source, I can make things easier for myself by taking advantage of some inner knowledge of how the CD BIOS is written.

This would totally break any console manufacturer's standards ... but that's not a problem these days.

At this point, we know that the game requires SuperCD, and there are only the Japanese and English CD BIOS 3.0 cards to worry about.

That'll let me take advantage of knowing how the BIOS code operates in order to create the RAM stubs that I have to write.

Naughty ... but this is a hack, after all.
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on October 19, 2015, 11:11:06 AM
Oh wow, looks like the game was lucky enough to finally come into the hands of someone knowledgeable enough to do this! Ys IV was tight only as far as wanting to implement subtitles instead of dubbing according to Neill Corlett, I remember that. But uh, I hope it doesn't come down to using the idea that's now available with the Turbo Everdrive's writable RAM and limiting the fan translation to that...
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on October 19, 2015, 02:34:39 PM
*awesome stuff*

You should make this into your avatar:

(http://pic.photobucket.com/bwe.png)

:D
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on October 19, 2015, 02:35:25 PM
Hah!
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 20, 2015, 03:16:34 PM
Oh wow, looks like the game was lucky enough to finally come into the hands of someone knowledgeable enough to do this!

Thanks, but I like to think that anyone could do this with enough time and a sufficiently bloody-minded refusal to let the problem beat them!  :wink:


Quote
I hope it doesn't come down to using the idea that's now available with the Turbo Everdrive's writable RAM and limiting the fan translation to that...

I think that there are definitely going to be translations out there that are only going to be possible or practical with extra memory, but I think that we got lucky on these 2 and that I can free up the necessary space.

I'd certainly like to keep them running within the original hardware.


You should make this into your avatar:

Haha ... thanks, but usually I feel more like the one of the Infinite Number of Monkeys!

https://en.wikipedia.org/wiki/Infinite_monkey_theorem


Sometimes a good plan just doesn't work out as neatly as a programmer believes that it's going to when he/she has that oh-so-brilliant idea!  :roll:

Case-in-point ...


If I choose option 2, then I've got to decide whether to use bank 0 or bank 7, and bank 7 is the obvious choice.

If I do that, then I can write new interrupt vectors and new BIOS function vectors, and just map the CD BIOS bank into $e000-$ffff when it actually needs to be there to handle an interrupt or a function call.

Well, this sounded like a good idea, and the thought of replacing every old ROM CD BIOS vector ...

e000: JMP $e0f3     ; CD_BOOT
e003: JMP $e8e3     ; CD_RESET
e006: JMP $eb8f     ; CD_BASE
....
e0f0: JMP $fddb     ; MA_CBASIS


with new vectors in the RAM bank ...

e000: JSR my_hack   ; CD_BOOT
e003: JSR my_hack   ; CD_RESET
e006: JSR my_hack   ; CD_BASE
....
e0f0: JSR my_hack   ; MA_CBASIS


... seemed really quite elegant.

The new "my_hack" routine would page in the original ROM bank, execute the original CD function, and then page the RAM bank back in.

The code isn't even very long ...

my_hack:   sta   .lda1+1
           pla
           sec
           sbc   #2
           sta   .callrom+1
           pla
           sbc   #0
           sta   .callrom+2
           tma   #$80
           pha
           lda   #$00
           tam   #$80
.lda1:     lda   #$00
.callrom:  jsr   $0000
           sta   .lda2+1
           pla
           tam   #$80
.lda2:     lda   #$00
           rts


Unfortunately, once I took a good look at it, I realized that it's not re-entrant, and that if an interrupt occurs part way through that routine that also calls a CD function, then you're going to get a random bug/crash.   :shock:

Now this can worked around by making sure that the interrupt handler also switches banks ...

my_irq1:   pha
           tma   #$80
           pha
           lda   #$00
           tam   #$80
           lda   #>my_rti
           pha
           lda   #<my_rti
           pha
           php
           jmp   ($FFF8)

my_rti:    pla
           tam   #$80
           pla
           rti


But now I've added a huge delay into the interrupt processing, which is exactly what I was trying to avoid by choosing "option 2"!  #-o

So it's back to "option 1", which turns out to both require less code and to also delay interrupts less.

// script_pc is stored in $37,$38.

read_pc:   lda   #RAMBANK
           php
           sei
           tam   #$80
           lda   ($37)
           sta   .lda1+1
           lda   #$00
           tam   #$80
           plp
           inc   $37
           bne   .lda1
           inc   $38
.lda1:     lda   #$nn
           rts


Whoops!  :oops:
Title: Re: Xanadu II Translation Development Blog
Post by: dshadoff on October 20, 2015, 03:22:22 PM

Falcom already compresses the original SJIS text by encoding the 192 most-common katankana/kanji into a single byte, and this really works out well for them.

Xanadu 1 has 235,523 SJIS glyphs stored using 271,679 bytes.
Xanadu 2 has  96,139 SJIS glyphs stored using 116,346 bytes.


That's an approx 1.2 multiplier, much better than the 2.0 multiplier of pure SJIS.

Apart from showing that Xanadu 2 really is a much shorter story than Xanadu 1, it shows that we've got a problem.

In order to get a good English translation, SamIAm estimates that we're going to need approx 1.5 to 2.0 times the amount of English characters as Kanji glyphs.

This gives me 2 problems ... how to fit all this English text into a level's compressed 176KB META-BLOCK that gets loaded into memory ... and then how to actually free up enough memory so that a large English script-chunk can be decompressed and accessed in the game.


That's really interesting - that they can already use 192 bytes of the character set to expand into 2-byte SJIS (I guess using a lookup table).  I take it that this is separate from the compression scheme ?

The reason I ask is that I wonder what the most common words/phrases in English would be, and whether they could be single-byte-substituted separately from the window-based compression (for example, names, "the ", "and " - including spaces - etc).  The longer the word, the less likely that it would show up in the past window.

But even if that kind of substitution were easy to capitalize on, it could still be a combinatoric problem of processing the script and deciding which substitutions would yield the best net compression.

...Just a thought.

-Dave
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 21, 2015, 05:14:05 AM
That's really interesting - that they can already use 192 bytes of the character set to expand into 2-byte SJIS (I guess using a lookup table).  I take it that this is separate from the compression scheme ?

Yep, they use the same lookup table for both Xanadu 1 and Xanadu 2. That's reversed back into a SJIS glyph only when each glyph is printed to the screen by the script interpreter.

So "yes", it's totally separate from the regular FALCOM1/FALCOM2 compression.


Quote
The reason I ask is that I wonder what the most common words/phrases in English would be, and whether they could be single-byte-substituted separately from the window-based compression (for example, names, "the ", "and " - including spaces - etc).  The longer the word, the less likely that it would show up in the past window.

If you're never going to "localize" the translation into any of the other EFIGS languages, then using a dictionary substitution like that is a perfect use for character codes $80-$FF.

In these "Internet" days it's easy to find lists of the most-common English words (like http://www.wordfrequency.info (http://www.wordfrequency.info/)) that can give you a good starting point for any dictionary, without having to do the work of producing your own "optimal" list.

Now, writing the code to create that "optimal" dictionary may be the kind of challenge that some programmers would enjoy ... but I don't think that extra work would be overly useful in a case like this.

The big question when using such a static dictionary is "Do the benefits outweigh the costs?".

There isn't a huge CPU cost, but you are going to have to store that dictionary in memory somewhere, so there's definitely a cost there.

There's also a question of the effect that it's going to have on the LZSS compression.

With 2-byte (or less) LZSS codes already acting as a dynamic dictionary, you're reducing the "gain" that you're going to get from using a static dictionary as well.

In the case of the Xanadu games, Falcom already take advantage of the "dictionary" idea by only storing some strings (such as speaker's names) once, and then using a script "call" to print them out.

So ... you've got a good idea  :)

... but I'm going to hold it in "reserve", and only use it if I run out of memory later.  :wink:
Title: Re: Xanadu II Translation Development Blog
Post by: dshadoff on October 21, 2015, 09:27:18 AM
Quote
The reason I ask is that I wonder what the most common words/phrases in English would be, and whether they could be single-byte-substituted separately from the window-based compression (for example, names, "the ", "and " - including spaces - etc).  The longer the word, the less likely that it would show up in the past window.

If you're never going to "localize" the translation into any of the other EFIGS languages, then using a dictionary substitution like that is a perfect use for character codes $80-$FF.

In these "Internet" days it's easy to find lists of the most-common English words (like http://www.wordfrequency.info (http://www.wordfrequency.info/)) that can give you a good starting point for any dictionary, without having to do the work of producing your own "optimal" list.

Now, writing the code to create that "optimal" dictionary may be the kind of challenge that some programmers would enjoy ... but I don't think that extra work would be overly useful in a case like this.

The big question when using such a static dictionary is "Do the benefits outweigh the costs?".


That's exactly what I meant when I said that it would be a combinatoric exercise - it's not just whole words, but rather partial words which could benefit, and it would be highly dependent on the actual script as well.  For example, maybe simple letter-pairs such as "sh", "st", "th", "tr", and "ea" yield good benefit without going as far as creating additional code for full words, and maybe they don't interfere with compression either.

One could find out the "net benefit" for character groups by finding groups of "n" characters and number of occurrences, running for "n" groups from 2 to the maximum size of a substitute.   This would be a very long list which would need to be sorted to determine maximum benefit.  Then, re-run again - but this time under the presumption that substitute #1 has been implemented...  All the while, keeping in mind that if you take advantage of the #1 benefit, you may reduce the effectiveness of #2 and #3... which turns it into a combinatoric problem, identifying all of the possible permutations and their maximal benefit.

But hopefully, it isn't such a brute force problem.

Quote
There's also a question of the effect that it's going to have on the LZSS compression.

With 2-byte (or less) LZSS codes already acting as a dynamic dictionary, you're reducing the "gain" that you're going to get from using a static dictionary as well.


Very true.

Quote
So ... you've got a good idea  :)

... but I'm going to hold it in "reserve", and only use it if I run out of memory later.  :wink:


Fair enough !  More complexity is more work, and more opportunity for bugs/issues.
Just thought I'd mention an idea that came to me while reading your reply.

-Dave
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 23, 2015, 10:33:57 AM
I think that "investigation" is over for a while, and it's time to get back to actually getting the text inserted into the game.

I've finally added all the programmer-garbage at the top of each extracted-script, so that I've got the information that I should need for the re-insertion, and now it's time to write that code.

When that's done, I'll test it by making sure that the existing scripts insert identically to the originals, and then it'll be time to try some test English in there.

For anyone that's interested, here's an example of what SamIAm will be working with over the next few weeks/months.

It is the complete script for the very first chunk in the Xanadu 2 game, when Arios is on the ship.

If you're interested, you can actually run the game and see when these pieces of text pop up; and if you've done any simple programming, then you should be able to follow the basic idea of what's going on with all the branches and calls, even if the exact details aren't clear.

  @chunkdefn( $a000, $bfff, $000fb800, 15 )

  @memregion( $a695, $ad97 )
  @memregion( $ae05, $bfff )

  @extscript( $9eb7, .script9EB7 )

  @scriptref( $a174, TYPE_JSR90D8, .scriptA6A3 )
  @scriptref( $a188, TYPE_JSR90D8, .scriptA8EF )
  @scriptref( $a18a, TYPE_JSR90D8, .scriptA95F )
  @scriptref( $a18c, TYPE_JSR90D8, .scriptA9E8 )
  @scriptref( $a18e, TYPE_JSR90D8, .scriptAAEF )
  @scriptref( $a262, TYPE_IMM37,   .scriptA695 )
  @scriptref( $a35b, TYPE_JSR9298, .scriptAB88 )
  @scriptref( $a37f, TYPE_JSR9298, .scriptAC22 )

.scriptA695:
  {帆船ローランディア号}
  _end()

.scriptA6A3:
  _enable_8x12_font()
  _set_pen_then_call_then_eol( orange, .scriptAE05 )
  _disable_8x12_font()
  _tst_2b03_x_bnz( $01, $02, .scriptA877 )
  _tst_2b03_x_bnz( $01, $10, .scriptA748 )
  _tst_2b03_x_bnz( $01, $20, .scriptA71B )
  _tst_2b03_x_beq( $20, $01, .scriptA8AB )
  _tst_2b03_x_beq( $20, $02, .scriptA8AB )
  _tst_2b03_x_beq( $20, $04, .scriptA8AB )
  _tst_2b03_x_beq( $20, $08, .scriptA8AB )
  {アリオスさま、準備が整ったようですな。そういえば、航海長が}
  _eol()
  {お話があるとのことです。}
  _wait_for_keypress_then_clear()
  {後部甲板に行ってみてはいかがですか?}
  _set_bits_2b03_x( $01, $20 )
  _wait_for_keypress_then_end()

.scriptA71B:
  {航海長がお話があるとのことです。}
  _eol()
  {後部甲板に行ってみてはいかがですか?}
  _wait_for_keypress_then_end()

.scriptA748:
  _tst_2b03_x_bnz( $01, $20, .scriptA762 )
  {アリオスさま。どうかされましたか?}
  _wait_for_keypress_then_clear()
  _jump( .scriptA775 )

.scriptA762:
  {アリオスさま。航海長はなんと?}
  _wait_for_keypress_then_clear()

.scriptA775:
  _enable_8x12_font()
  _set_pen_then_call_then_eol( orange, .script9EB7 )
  _disable_8x12_font()
  {うん‥‥}
  _eol()
  {航海長から新しい海域に入ったので、}
  _eol()
  {海図を描いてくれと頼まれたんだ。}
  _wait_for_keypress_then_clear()
  _enable_8x12_font()
  _set_pen_then_call_then_eol( orange, .scriptAE05 )
  _disable_8x12_font()
  {そうですか。}
  _eol()
  {‥‥確かアリオスさまは、}
  _eol()
  {絵画などは苦手のはずでは‥‥}
  _wait_for_keypress_then_clear()
  _enable_8x12_font()
  _set_pen_then_call_then_eol( orange, .script9EB7 )
  _disable_8x12_font()
  {はは、仕方ないさ。}
  _eol()
  {ところで、ダイモス‥‥その‥‥}
  _wait_for_keypress_then_clear()
  _enable_8x12_font()
  _set_pen_then_call_then_eol( orange, .scriptAE05 )
  _disable_8x12_font()
  {なんでしょう? アリオスさま。}
  _wait_for_keypress_then_clear()
  _enable_8x12_font()
  _set_pen_then_call_then_eol( orange, .script9EB7 )
  _disable_8x12_font()
  {私はもう、百騎長ではないのだから、}
  _eol()
  {いいかげん『さま』はよせ。}
  _wait_for_keypress_then_clear()
  _enable_8x12_font()
  _set_pen_then_call_then_eol( orange, .scriptAE05 )
  _disable_8x12_font()
  {はい。アリオスさま。}
  _eol()
  {‥‥あッ!!}
  _wait_for_keypress_then_clear()
  _enable_8x12_font()
  _set_pen_then_call_then_eol( orange, .script9EB7 )
  _disable_8x12_font()
  {やっぱりダメか‥‥}
  _set_bits_2b03_x( $01, $02 )
  _wait_for_keypress_then_end()

.scriptA877:
  {アリオスさまは、}
  _eol()
  {私めにとって大事な主君。}
  _wait_for_keypress_then_clear()
  {『アリオスさま』とお呼びしては}
  _eol()
  {いけませんか?}
  _wait_for_keypress_then_end()

.scriptA8AB:
  {アリオスさま。}
  _eol()
  {船倉の方に装備品がそろえてあります。}
  _wait_for_keypress_then_clear()
  {お急ぎにならずとも結構ですから、}
  _eol()
  {準備をなさってください。}
  _wait_for_keypress_then_end()

.scriptA8EF:
  _set_pen_then_call_then_eol( orange, .scriptAE0A )
  _tst_2b03_x_beq( $20, $01, .scriptA934 )
  _tst_2b03_x_beq( $20, $02, .scriptA934 )
  _tst_2b03_x_beq( $20, $04, .scriptA934 )
  _tst_2b03_x_beq( $20, $08, .scriptA934 )
  {しっかし、ここいらへんの海は}
  _eol()
  {穏やかだねぇ。}
  _wait_for_keypress_then_clear()
  {オレたちの故郷たぁ大違いさね。}
  _wait_for_keypress_then_end()

.scriptA934:
  {アリオスさん、結構広い船だからって、}
  _eol()
  {迷子になんかならないでくだせぇよ。}
  _wait_for_keypress_then_end()

.scriptA95F:
  _set_pen_then_call_then_eol( orange, .scriptAE0A )
  _tst_2b03_x_bnz( $01, $10, .scriptA9B8 )
  _tst_2b03_x_beq( $20, $01, .scriptA990 )
  _tst_2b03_x_beq( $20, $02, .scriptA990 )
  _tst_2b03_x_beq( $20, $04, .scriptA990 )
  _tst_2b03_x_beq( $20, $08, .scriptA990 )
  {船長、ご用は済んだんですかい?}
  _wait_for_keypress_then_end()

.scriptA990:
  {おや、船長。}
  _eol()
  {船倉は階段を下りて右、}
  _eol()
  {厨房のとなりですぜ。}
  _wait_for_keypress_then_end()

.scriptA9B8:
  {もうすぐ、見張り番を交代しますぜ。}
  _eol()
  {でも、マストに登るのは}
  _eol()
  {おっかねぇからなぁ‥‥}
  _wait_for_keypress_then_end()

.scriptA9E8:
  _set_pen_then_call_then_eol( orange, .scriptAE0A )
  _tst_2b03_x_bnz( $01, $10, .scriptAABD )
  _tst_2b03_x_bnz( $01, $04, .scriptAA8A )
  _tst_2b03_x_beq( $20, $01, .scriptAA55 )
  _tst_2b03_x_beq( $20, $02, .scriptAA55 )
  _tst_2b03_x_beq( $20, $04, .scriptAA55 )
  _tst_2b03_x_beq( $20, $08, .scriptAA55 )
  _conditional_jump( $c9, $b0, $10, $2aa5, .scriptAA66 )
  _conditional_jump( $c9, $b0, $20, $2aa6, .scriptAA66 )
  _conditional_jump( $c9, $b0, $30, $2aa7, .scriptAA66 )
  {いや~ 武器を持つと}
  _eol()
  {船長は見違えるね~}
  _wait_for_keypress_then_clear()
  _enable_8x12_font()
  _set_pen_then_call_then_eol( orange, .script9EB7 )
  _disable_8x12_font()
  {よ、よしてくれないか。}
  _set_bits_2b03_x( $01, $04 )
  _wait_for_keypress_then_end()

.scriptAA55:
  {いや~ 男はやっぱ海だよね~}
  _wait_for_keypress_then_end()

.scriptAA66:
  {船長、武器とかは}
  _eol()
  {ちゃんと装備しておいた方がいいですぜ。}
  _wait_for_keypress_then_end()

.scriptAA8A:
  {しかし、思い出すね~}
  _wait_for_keypress_then_clear()
  {3年前、船長を乗せて}
  _eol()
  {イクティア島まで運んだときのことを‥‥}
  _wait_for_keypress_then_end()

.scriptAABD:
  {船長、武器や防具は、}
  _eol()
  {装備してこそ意味があるんです。}
  _eol()
  {忘れねぇでくだせぇよ。}
  _wait_for_keypress_then_end()

.scriptAAEF:
  _set_pen_then_call_then_eol( orange, .scriptAE0A )
  _tst_2b03_x_bnz( $01, $10, .scriptAB65 )
  _tst_2b03_x_beq( $20, $01, .scriptAB30 )
  _tst_2b03_x_beq( $20, $02, .scriptAB30 )
  _tst_2b03_x_beq( $20, $04, .scriptAB30 )
  _tst_2b03_x_beq( $20, $08, .scriptAB30 )
  {もうすぐで、久しぶりの陸ですぜ。}
  _eol()
  {あと少し、ガマンしてくだせえ。}
  _wait_for_keypress_then_end()

.scriptAB30:
  {3年前、船を使ってもらった先生に}
  _eol()
  {頼まれたとはいえ、}
  _eol()
  {まさかこんな所までくるとはなぁ‥‥}
  _wait_for_keypress_then_end()

.scriptAB65:
  {ようやく、陸が見えるように}
  _eol()
  {なってきやした。}
  _eol()
  {長かったなぁ‥‥}
  _wait_for_keypress_then_end()

.scriptAB88:
  _modify_script_variable( $01, $10 )
  _enable_8x12_font()
  _set_pen_then_call_then_eol( orange, .scriptAE05 )
  _disable_8x12_font()
  {アリオスさま。いよいよですな。}
  _wait_for_keypress_then_clear()
  _modify_script_variable( $00, $11 )
  _enable_8x12_font()
  _set_pen_then_call_then_eol( orange, .script9EB7 )
  _disable_8x12_font()
  {うん。}
  _eol()
  {もうすぐリュコスの向かった新大陸か。}
  _wait_for_keypress_then_clear()
  _enable_8x12_font()
  _set_pen_then_call_then_eol( orange, .scriptAE05 )
  _disable_8x12_font()
  {そうです。}
  _eol()
  {上陸にそなえてください。}
  _wait_for_keypress_then_clear()
  {船倉の方に装備品がそろえてあります。}
  _eol()
  {お急ぎにならずとも結構ですから、}
  _eol()
  {準備をなさってください。}
  _wait_for_keypress_then_end()

.scriptAC22:
  _set_pen_then_call_then_eol( orange, .scriptAE0F )
  {大変です! 船長!!}
  _wait_for_keypress_then_clear()
  _call_asm_from_script( .codeAD98 )
  _enable_8x12_font()
  _set_pen_then_call_then_eol( orange, .scriptAE05 )
  _disable_8x12_font()
  {どうした、なにがあった?}
  _wait_for_keypress_then_clear()
  _set_pen_then_call_then_eol( orange, .scriptAE0F )
  {お捜しの船を見つけたんです!}
  _wait_for_keypress_then_clear()
  _enable_8x12_font()
  _set_pen_then_call_then_eol( orange, .script9EB7 )
  _disable_8x12_font()
  {なんだって!?}
  _wait_for_keypress_then_clear()
  _set_pen_then_call_then_eol( orange, .scriptAE0F )
  {前方の島の暗礁地帯に}
  _eol()
  {乗り上げているのを確認しました。}
  _eol()
  {間違いありません。}
  _wait_for_keypress_then_clear()
  _modify_script_variable( $00, $11 )
  _enable_8x12_font()
  _set_pen_then_call_then_eol( orange, .script9EB7 )
  _disable_8x12_font()
  {リュコスの船だ!}
  _eol()
  {やはり遭難していたんだ。}
  _eol()
  {すぐに向かおう。}
  _wait_for_keypress_then_clear()
  _modify_script_variable( $01, $10 )
  _enable_8x12_font()
  _set_pen_then_call_then_eol( orange, .scriptAE05 )
  _disable_8x12_font()
  {しかし困りましたな‥‥}
  _eol()
  {あのような岩ばかりでは}
  _eol()
  {近寄ることも難しい。}
  _wait_for_keypress_then_clear()
  _call_asm_from_script( .codeADBE )
  _set_pen_then_call_then_eol( orange, .scriptAE0A )
  {なに、島をぐるりと回りゃ}
  _eol()
  {船の入れるところもあるでしょう。}
  _wait_for_keypress_then_clear()
  {いざとなったら、ボートを使えばいい。}
  _wait_for_keypress_then_clear()
  _call_asm_from_script( .codeADDC )
  _enable_8x12_font()
  _set_pen_then_call_then_eol( orange, .script9EB7 )
  _disable_8x12_font()
  {よし、右舷回頭、面舵一杯!}
  _eol()
  {暗礁地帯をさけて、島に近づくぞ。}
  _eol()
  {急いでくれ!!}
  _wait_for_keypress_then_clear()
  _set_pen_then_call_then_eol( orange, .scriptAE17 )
  {アイアイサー!}
  _call_asm_from_script( .codeADFF )
  _wait_for_keypress_then_end()

.scriptAE05: ; 8x12 font
  {ダイモス}
  _end()

.scriptAE0A:
  {船員}
  _end()

.scriptAE0F:
  {見張り番}
  _end()

.scriptAE17:
  {船員たち}
  _end()

.endAE1E:

Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on October 23, 2015, 11:14:28 AM
Dang, that's a messy job, so they spread text around inbetween code... :/ Falcom does usually go with a text block model of null-terminated strings and indexing into the block, but I believe Zwei! was one other exception (plus here for Xanadu) where you had most of the script stored as in-lined strings inbetween code.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 23, 2015, 12:28:36 PM
Dang, that's a messy job, so they spread text around inbetween code...

Hahaha ... that's the clean version!  :wink:

Back when I was still trying to reverse-engineer complete script-blocks back into editable-source, you'd also see assembly code and data interleaved in there, too!  ](*,)

It's a powerful script-language, and a very powerful technique for making an 8-bit machine's macro-assembler to act as a high(ish)-level language.

I think that the whole scheme fell out of favor in the early years of the 5th generation when the "C" compiler replaced the macro-assembler ... but these kind of languages are back-with-a-vengence these days with Lua, Unreal Script, and every-other-developer's-proprietary-bytecode-interpreted-language.

At least most developers build games now with the knowledge that they need to think about localization into other languages.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 24, 2015, 12:01:38 PM
As I'm sitting here, writing the script-assembler (it's too simple to call a compiler), and wondering if it's too early for a beer ... I'm dragging in various bits of code from old projects to help.

Since Bonknuts talked about writing a scripting language in another thread, I thought that I'd point out this article (and concept) for any programmer that's not seen it.

http://cowboyprogramming.com/2007/01/04/practical-hash-ids/

The first time that I saw it totally integrated into a game's engine/toolchain was in NeverSoft's Tony Hawk Engine.

It's an amazingly powerful method for solving a lot of game asset-management issues on 32-bit machines, and for dynamically linking script bytecode to "C" code.

I've been using my own version of the idea since the early 2000's ... and when I finally get back to working on a PC-FX toolchain/library, you'll probably see it as one of the "core concepts".
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 26, 2015, 04:48:35 AM
From the "System Card Dreams" thread ...

I could make the Xanadu translations require extra memory in order to create a market ... and it would definitely make my job easier. But that doesn't seem like a nice thing to do, even if it might slightly lower the chance of a PCEWorks boxed-set.

For anyone that's reading through both these threads, I though that I'd explain how this would make things easier ...

If I had another 256KB RAM on a "Translation Card", then I'd just load Xanadu's META_BLOCKs directly into the extra RAM.

That would avoid the need to change the game's compressor to a new one, and SamIAm's translations could be as-big-as-they-need with little effort on my part.

The extra RAM would also make it easy to solve the space-in-the-game problem for the decompressed English scripts, and also give me plenty of room for English fonts and a new VFW font routine.

These are things that would save me a fair amount of time-and-effort in getting the translation done.

The downside would be that then the META_BLOCKs wouldn't fit onto the CD anymore.

That can be solved by increasing the size of the ISO ... but it does show that there's no quick-fix that doesn't have consequences, and we're just moving programmer-effort from one problem into a different one.

Now ... if I wasn't able save memory by switching the compressor, then having this extra memory would be the only way that you'd get a decent translation.

Food-for-thought.  :-k
Title: Re: Xanadu II Translation Development Blog
Post by: TheOldMan on October 26, 2015, 06:14:07 AM
Quote
there's no quick-fix that doesn't have consequences,

There never is <lol>. It's always a trade-off :)

A very silly question: Would it be possible to load the meta-blocks 'on the fly' from the cd? Or are they dependant on each other? (ie, block A calls block B such that both have to be in memory at once)
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on October 26, 2015, 06:43:32 AM
There's lot of free space in the ISO track - you don't need to expand it. It might look full, but there are lots of segments of left over 16bit PCM data in there. If you open the ISO track into a view than can interpret all data as PCE sprite format, you'll see that 16bit wave files have a very unmistakably unique signature to them. I usually run TMOD2 under dosbox (runs in XP too, but not on my win7 setup), with Dshadoffs PCE plugins for it.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 26, 2015, 07:34:34 AM
There never is <lol>. It's always a trade-off :)

Haha .. "yep", such is the life of a programmer ... or an electrical engineer, or most "design" jobs for that matter.   :wink:


Quote
A very silly question: Would it be possible to load the meta-blocks 'on the fly' from the cd? Or are they dependant on each other? (ie, block A calls block B such that both have to be in memory at once)

AFAIK Xanadu 1 just loads a single large META_BLOCK (176KB max size) for each game level.

That's a mix of graphics and code and script.

For instance, the 1st level's META_BLOCK is 160KB large and contains 71 individual DATA_CHUNKs, only 13 of which actually contain Falcom's script-language data.

In order to "split" that into 2 META_BLOCKs and dynamically swith between them, I'd have to totally understand exactly what's going on inside each of the 71 DATA_CHUNKs, and to then copy the ones that are needed for each of the 2 new META_BLOCKs, and also fix up the code/script in each to use the new DATA_CHUNK indexes.

Then I'd also need to understand the game well enough to hack in this dynamic-loading system, and to trigger it in places that won't break anything.

I suspect that it would just be easier to rewrite the game from scratch!

Now Xanadu 2 already implements a dynamic loading system ... that's it's big improvement, and it's why it can afford to use much prettier graphics.

So it's somewhat more possible to split it's META_BLOCKs into 2, but it would still be a major nightmare that would IMHO mean completely reverse-engineering the entire game.

So "possible"? Probably so with enough time and will, but not even slightly "practical" in any sane definition of the word.

Nope ... IMHO in order to get this actually done and not have it die-on-the-vine like the previous attempt, we're going to have to keep the basic structure of the game unaltered, and just change the details (such as the language of the text).

It's going to be the same when it comes to the font code.

While it would be "nice" to change things to use a full VWF ... the structure of the code is going to make that a little awkward.

The first step will be to use the 12x12 English SJIS glyphs in the ROM font, just like EsperKnight did.

It'll be ugly ... but it's just going to be a stop-gap measure to make sure that things don't break.

Then it'll be time to see what's the best way to make it all look nice, and to give SamIAm plenty of room on the screen for his translated text.

But that's really a problem that will get more serious attention when the English scripts are inserting correctly.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 26, 2015, 07:54:18 AM
There's lot of free space in the ISO track - you don't need to expand it. ... I usually run TMOD2 under dosbox (runs in XP too, but not on my win7 setup), with Dshadoffs PCE plugins for it.

Thanks for the suggestion!

I've never heard of those tools, and will have to check them out.  :D

It looks like the CD is pretty full on Xanadu 2, so that's great to hear.

They're definitely using fixed intervals for the data in the ISO track, and they didn't clean out all the old stuff in there ... so it'll be good to have some help in identifying what data is just left-over junk.

Xanadu 1 looks to have plenty of space left to just expand the ISO ... but then they could have hard-coded the CD audio locations, which would be annoying.

Either way ... I'm really hoping to avoid having to change any of the data locations at this point.
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on October 26, 2015, 01:56:13 PM
Here's pic of what 16bit wave files look like in PCE sprite format:
(http://pic.photobucket.com/bwe.png)

 It's very distinct.


 About 99.99999% of PCE game have junk interleaved between the data in the ISO tracks. Sometimes it's other games, or wave files, or even dev stuff (one game has the full source code to it in there along with developers notes, etc). Basically, whatever was on the harddrive at the time got copied into the ISO track.
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on October 27, 2015, 05:09:26 AM
Here's the link: http://pcedev.net/utils/tmod2_pce_support.zip
If you run it under dosbox, you'll need to set the memory to 64megs. Under XP, I was able to open files as well as 500megs. Under dosbox though, I think my limit was 200-300 megs before the app reported that it ran out of memory. It can have up to 7 files open at once. There's not readme file, so you have to click the "?" icon for how to use the features.

 At some point, I'm going to remake this util in windows (using SDL, with my own internal GUI support). Once you get to know your way around it, it has some really useful functionality.  I'll add more view features though (and control of bitplane orders).
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 27, 2015, 06:40:52 AM
Here's the link: http://pcedev.net/utils/tmod2_pce_support.zip

Thanks for the instructions and the link to the plugins ... I was just going to ask you for that!  :D
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on October 27, 2015, 08:47:23 AM
Hmm. I think I'm missing the DM files in the module folder of that zip file. I'll re-upload a new zip later. Dave Shadoff's site might have the full version as well.
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on October 27, 2015, 08:53:11 AM
They're all there, unless you added 'em by the time I looked at it. So tmod with David's PCE plugin is still useful after all these years, huh ? Would've thought something more powerful and Windows-based would've come along by now.

Well, actually, in that vain, FYI, but I found the YYCHR apps are pretty good replacements, though they're developed by Japanese fans. You can still work 'em pretty good as the menus are all English. See if any of these can work for you:

http://www45.atwiki.jp/yychr/
http://www45.atwiki.jp/yychr/pages/23.html
http://www.geocities.jp/yy_6502/yychr/yy-chr20120407.zip

And:

http://www.geocities.jp/yy_6502/
http://www.geocities.jp/yy_6502/yychr/yychr_net.zip
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on November 02, 2015, 04:38:00 AM
Time for another update!

The script-assembler is coming along nicely, with around 2,500 lines of C code written so far.

At this point the scripts for both Xanadu 2 and Xanadu 1 are assembling, and the assembler's output is being verified as identical to the original contents of the scripts in the DATA_CHUNKs.

It's not all being tested, yet ... there's still a lot left to do!

But it's all working well enough to do a simple test (using the ugly 12x12 System Card font) and to hack in some SJIS-encoded English text into both games.

That means ...
[ul][li]Decompressing the original META_BLOCK from the CD into it's dozens of DATA_CHUNKS.[/li][li]Assembling each of the script files for that META_BLOCK and overwriting the original script data.[/li][li]Recompressing all the DATA_CHUNKSs (FALCOM2 format for Xanadu2, FALCOM1 format for Xanadu 1).[/li][li]Writing the new META_BLOCK out to the CD image.[/li][/ul]
Here are the modified scripts for each of the games, the translator just adds the new English text underneath the original Japanese text.

When SamIAm gets these, he'll just do the same and then add/remove any extra "_eol()" end-of-line commands to make things look pretty on the screen.

For Xanadu 1 ...

.scriptB35F:
  _set_pen6_then_call_then_eol( .scriptBA2F )
  {うおーっ、船だあっ!!}
  [Xanadu]
  _eol()
  {商人が来たーッ!!}
  [1 Test]
  _wait_for_keypress_then_clear()
  _set_pen6_then_call_then_eol( .scriptBA38 )
  {ポルダ村なんかに負けるか!}
  [Hello,]
  _eol()
  {こっちが先に取り引きするぞっ!!}
  [World! OK]
  _wait_for_keypress_then_end()


(http://farm1.staticflickr.com/636/22096033793_6e222e5bb5_o.png)
(http://farm6.staticflickr.com/5722/22691177336_bc8440db27_o.png)


For Xanadu 2 ...

.scriptAB88:
  _modify_script_variable( $01, $10 )
  _enable_8x12_font()
  _set_pen_then_call_then_eol( orange, .scriptAE05 )
  _disable_8x12_font()
  {アリオスさま。いよいよですな。}
  [Xanadu2]
  _wait_for_keypress_then_clear()
  _modify_script_variable( $00, $11 )
  _enable_8x12_font()
  _set_pen_then_call_then_eol( orange, .script9EB7 )
  _disable_8x12_font()
  {うん。}
  _eol()
  {もうすぐリュコスの向かった新大陸か。}
  [Test String]
  _wait_for_keypress_then_clear()


(http://farm1.staticflickr.com/707/22691177166_7537cd1c4b_o.png)
(http://farm1.staticflickr.com/758/22717179465_6d3c8e37a6_o.png)
Title: Re: Xanadu II Translation Development Blog
Post by: seieienbu on November 03, 2015, 08:03:29 PM
I love seeing English words in those text boxes. 
Title: Re: Xanadu II Translation Development Blog
Post by: Dicer on November 04, 2015, 12:19:53 PM
I love seeing English words in those text boxes.

Ditto!
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on November 04, 2015, 01:33:10 PM
I love seeing English words in those text boxes.

Ditto!

Sorry, guys, I know that it's pretty underwhelming after nearly 3 months, but this is one complex swine of a game to hack!

I was going nuts, doing all this work with nothing visible to see ... and so felt the need to get something on the screen, even if it's only a "nasty" hack.  :oops:

The whole issue of "motivation" when the task is seeming really, really tough is definitely something to "blog" about at some point.

I only recently read the whole thread from SamIAm & EsperKnight's original attempt to get the game translated, and it was heartbreaking to see how happy everyone was ... and then how it just fizzled out and died.

It's easy (for me, now) to see why poor EsperKnight ran into problems, and why his approach was doomed; and it's taken a long time to do it all "properly" so that I can have some confidence that the technical issues are solved.

I can only imagine just how frustrated and de-motivated EsperKnight must have felt, to have put in all the hard work that he did, only to see everything start to break when SamIAm's translated scripts were first being re-inserted into Xanadu 2.  :(

***********************

As for this hack ... I'm happy to say that the script-assembler is now approx 3,000 lines of C code, and is verified to be compiling the original scripts with 100% accuracy, including all the script parameters and address fix-ups.  :)

I'm confident enough that I've passed the first set of Xanadu 1 scripts on to SamIAm for translation.
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on November 05, 2015, 02:17:11 AM
Nice! Also, my condolences to your free time and sanity ;)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on November 09, 2015, 12:27:13 PM
OK, continued on from the main Xanadu translation thread ...


(http://farm1.staticflickr.com/757/22467992487_70d73155ce_o.png)


I'm guessing that the outlined font was their "default" because dynamically making the ROM font "bold" and giving it an outline is a pretty-damned-clever programming effect (IMHO).

Does anyone know of another PCE CD game that does that with the ROM font?

I seem to recall a couple of other late gen games that might have done that.

I'd love to know what the games are so that I can check them out.

I've really not seen Xanadu 1's "bold" font effect done this well before.

It's not a simple pixel-doubling, because it actually keeps some of the details in the font that that would overwrite.

It's almost like they specifically detecting on-off-on pixel patterns and making sure that the "off" is preserved.

It's cool (IMHO). I was amazed at how well their algorithm coped with the narrower English font.

The programmer screwed-up the black outline pass after that ... but that should be easy to fix.
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on November 09, 2015, 02:29:11 PM
OK, continued on from the main Xanadu translation thread ...
(http://farm1.staticflickr.com/757/22467992487_70d73155ce_o.png)

Oh wow, you got a font hack going already! MUCH BETTER! :)

Reminds me, nully once made this post that SamIAm+Bonknuts=:
http://www.pcenginefx.com/forums/index.php?topic=9456.msg368540#msg368540

But, he was wrong, not the first time either! ;)

SamIAm + elmer = (http://img4.wikia.nocookie.net/__cb20070728021714/powerrangers/images/5/51/Proo_fp_megazord.gif)
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on November 09, 2015, 03:29:04 PM
Finally! I can't retire from all things translations. I've waited so long... ;_; ... . . :mrgreen:


f(x)=SamIam^3 + 2^elmer...

f'(xanadu)=3SamIam^2 + (2^elmer)*ln(2)..(http://img4.wikia.nocookie.net/__cb20070728021714/powerrangers/images/5/51/Proo_fp_megazord.gif)
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on November 09, 2015, 03:46:23 PM
 :mrgreen:
Title: Re: Xanadu II Translation Development Blog
Post by: dshadoff on November 09, 2015, 04:48:28 PM

I'm guessing that the outlined font was their "default" because dynamically making the ROM font "bold" and giving it an outline is a pretty-damned-clever programming effect (IMHO).

Does anyone know of another PCE CD game that does that with the ROM font?

I seem to recall a couple of other late gen games that might have done that.

I'd love to know what the games are so that I can check them out.

I've really not seen Xanadu 1's "bold" font effect done this well before.


Well, later games did a bunch of things with fonts:

- Koei (and others) made their own font instead of using system font

- lots of games started using multiple different fonts in different spots

- hang-shadows were used in lots of games, but not necessarily on all text (Tokimeki Memorial seems to have this).  This is done by taking the orginal font, shifting it right one pix and down one pix, and printing it in black. Then white (or whatever color) on top of that, without shift.  All on transparent background, so both the black and foreground colors are apparent.

- I think Riverhill (Gunbuster) might have just doen a bold effect on some text by shifting right and blending.

- several companies all added large amounts of text as graphics splashes instead of font/text.

Title: Re: Xanadu II Translation Development Blog
Post by: elmer on November 10, 2015, 06:48:39 AM
As for this hack ... I'm happy to say that the script-assembler is now approx 3,000 lines of C code, and is verified to be compiling the original scripts with 100% accuracy, including all the script parameters and address fix-ups.  :)

Now that it's basically "done", and relocating scripts as the English translations make them overflow their original space, it's approx 3,500 lines of C code. Phew!  ](*,)


SamIAm + elmer = (http://img4.wikia.nocookie.net/__cb20070728021714/powerrangers/images/5/51/Proo_fp_megazord.gif)

Hahaha!   8)

I think that SamIAm is the metal dude ... and I'm just full of the "hot air" in the background.  :wink:


Oh wow, you got a font hack going already! MUCH BETTER! :)

I'm happy with the results ... but it's an embarrassingly small hack, just like Team Innocent.

It's really just filling the game's glyph buffer with my font data instead of the ROM font data, and then modifying the cursor increment.


; ***************************************************************************
;
; Get the 8x12 ASCII glyph data (replaces call to EX_GETFNT).

bank_font equ $84

get_acsii_glyph:
        lda   <_al
        sec
        sbc   #$20

        stz   <_bl
        asl   a
        rol   <_bl
        asl   a
        rol   <_bl
        sta   (.smod + 1)
        ldy   <_bl
        asl   a
        rol   <_bl
.smod:  adc   #$00
        sta   (.loop + 1)
        tya
        adc   <_bl
        adc   #high($a000)    ; Font is 256-byte aligned, at $a000.
        sta   (.loop + 2)

        tma   #$05
        pha
        lda   #bank_font
        tam   #$05

        ldy   #11             ; Font data is 12-bytes (0-11).
        ldx   #22             ; Copy it as 16-bit wide.
.loop:  lda   $0000,y
        sta   $280a,x
        stz   $280b,x
        dex
        dex
        dey
        bpl   .loop

        pla
        tam   #$05

        rts


; ***************************************************************************
;
; Increment the text cursor by one or two 4-pixel steps.

inc_text_cursor:
        lda   <_ah            ; Hi-byte of glyph code from EX_GETFNT.
        bne   .double
        lda   <_al            ; Lo-byte of glyph code from EX_GETFNT.
        bmi   .double
        sec
        sbc   #$20
        bcc   .double

        tax
        lsr   a
        lsr   a
        lsr   a
        sax
        and   #$07
        tay
        lda   idx2msk,y
        and   tbl8x12,x
        beq   .single

.double:inc   $2805
.single:inc   $2805
.done:  rts

idx2msk:.db   $01, $02, $04, $08, $10, $20, $40, $80

tbl8x12:.db   $7D ; 01111101
                  ; '&%$#"!

        .db   $AF ; 10101111
                  ; /.-,+*)(

        .db   $FF ; 11111111
                  ; 76543210

        .db   $F3 ; 11110011
                  ; ?>=<;:98

        .db   $FF ; 11111111
                  ; GFEDCBA@

        .db   $FD ; 11111101
                  ; ONMLKJIH

        .db   $FF ; 11111111
                  ; WVUTSRQP

        .db   $FF ; 11111111
                  ; _^]\[ZYX

        .db   $FE ; 11111110
                  ; gfedcba`

        .db   $E9 ; 11101001
                  ; onmlkjih

        .db   $FF ; 11111111
                  ; wvutsrqp

        .db   $FF ; 11111111
                  ;  ~}|{zyx



Finally! I can't retire from all things translations. I've waited so long... ;_; ... . . :mrgreen:

Haha ... you don't get off that easily!  :wink:

Just like you, I'd much rather be writing new code than hacking around in someone's old code.

I'm hoping that you'll want to do Anearth Fantasy Stories with SamIAm when you've got the time.

The community needs to keep him busy ... it's rare to find someone with his combination of passion and capability.  :D
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on November 10, 2015, 07:59:48 AM
Well, later games did a bunch of things with fonts:

- Koei (and others) made their own font instead of using system font

- lots of games started using multiple different fonts in different spots

- hang-shadows were used in lots of games, but not necessarily on all text (Tokimeki Memorial seems to have this).  This is done by taking the orginal font, shifting it right one pix and down one pix, and printing it in black. Then white (or whatever color) on top of that, without shift.  All on transparent background, so both the black and foreground colors are apparent.

- I think Riverhill (Gunbuster) might have just doen a bold effect on some text by shifting right and blending.

- several companies all added large amounts of text as graphics splashes instead of font/text.

Thanks for the list.  :)

I'm not really talking about custom fonts or text that's built into graphics ... what really interests me is developers that did unusual "real-time" processing of the font data.

"Hang-shadows" aka "drop-shadows" were the most common effect that's used almost-everywhere.

"Outlines" are another common and easy-to-do effect ... especially when the text is a layer on top of a moving background.

I'll have to take a look at Gunbuster and see what it's doing.  :-k

Xanadu 1's "bold" really sparks my curiosity because someone had the smart idea of how to preserve the small details in the font.  :clap:

Take a look at these examples ...


     Original    Double      Xanadu      Outline

01   .........   .........   .........   .OO......
02   .X.......   .XX......   .XX......   O..O.....
03   .X.......   .XX......   .XX......   O..O.....
04   .X.......   .XX......   .XX......   O..OOOO..
05   .X.XXX...   .XXXXXX..   .X.XXXX..   O.O....O.
06   .XX...X..   .XXX..XX.   .XXX..XX.   O...OO..O
07   .X....X..   .XX...XX.   .XX...XX.   O..OOO..O
08   .X....X..   .XX...XX.   .XX...XX.   O..O.O..O
09   .X....X..   .XX...XX.   .XX...XX.   O..O.O..O
10   .X....X..   .XX...XX.   .XX...XX.   O..OOO..O
11   .XXXXX...   .XXXXXX..   .XXXXXX..   O......O.
12   .........   .........   .........   .OOOOOO..

     Original    Double      Xanadu      Outline

01   .........   .........   .........   ......OO.
02   ......X..   ......XX.   ......XX.   .....O..O
03   ......X..   ......XX.   ......XX.   .....O..O
04   ......X..   ......XX.   ......XX.   ..OOOO..O
05   ..XXX.X..   ..XXXXXX.   ..XXX.XX.   .O...O..O
06   .X...XX..   .XX..XXX.   .XX..XXX.   O..OO...O
07   .X....X..   .XX...XX.   .XX...XX.   O..O.O..O
08   .X....X..   .XX...XX.   .XX...XX.   O..O.O..O
09   .X....X..   .XX...XX.   .XX...XX.   O..O.O..O
10   .X....X..   .XX...XX.   .XX...XX.   O..OOO..O
11   ..XXXXX..   ..XXXXXX.   ..XXXXXX.   .O......O
12   .........   .........   .........   ..OOOOOO.



Xanadu's "bold" processing preserves the blank "." pixel where round part of the "b" and "d" join the stem on line 05.

That really helps to preserve the roundness of the original glyph and IMHO is vital to making the "bold" effect look good.

When you look carefully at the difference between the "b" and the "d", you can analyze how they must be doing it.

From what I can see, they're shifting the original data right by 1 pixel and then "or"ing it back in to produce the "double" version.

Then they're looking for "X.X" sequences in the original data and making sure to clear any "." pixels like that from the "double" version.

That's probably as simple as ...

        lda   font_data,y     ; Double the font data.
        lsr   a
        sta   (.and + 1)
        or    font_data,y
        sta   (.msk + 1)

        lda   font_data,y     ; Mask out the "0" pixel
        asl   a               ; data in "101" sequences.
.and:   and   #$00
        eor   #$ff
        or    font_data,y
.msk:   and   #$00
        sta   bold_data,y


Now I'm going to actually take a look at their code and see if they're actually doing it any more efficiently than that.  :wink:
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on November 10, 2015, 11:56:59 AM
Finally! I can't retire from all things translations. I've waited so long... ;_; ... . . :mrgreen:
Haha ... you don't get off that easily!  :wink:

Just like you, I'd much rather be writing new code than hacking around in someone's old code.

I'm hoping that you'll want to do Anearth Fantasy Stories with SamIAm when you've got the time.

The community needs to keep him busy ... it's rare to find someone with his combination of passion and capability.  :D

 SamIam is probably more valuable than any of us hackers. It's hard to find a good translator that wants to do PCE translations. Everything in the translation scene is soo Nintendo centric, or counter-nintendo centric (sega stuff), or just plain out skips this generation (PS2, etc). When it comes to RPGS, it's like the PCE is the system no one wants to touch (outside of niche communities that surround it).

 To be honest, Dead of the Brain should be finished. It's almost there. The script was dumped, Dave made tools for script insertion, the font routine works (with some odd ball convoluted support needed to prop it up). And the translator has been sitting in this for years. I would hate to start anything new when other projects are so close.

 I always held this idea that a community could work on projects as a whole.. a team. Members might come and go, but if the translation process is organized enough - people can pick up where others have left off.

 Cosmic Fantasy I has a working font routine; Dave figured out the script format. That just needs a translation. Stuff like that.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on November 12, 2015, 01:52:56 AM
I don't know whether I am really more valuable than any hackers, but I am all in favor of being kept busy.

It really takes two to tango, unless you're some freak of nature who can hack and translate and find the time for both. I'm pretty useless by myself.

Also, morale is critical during projects like these, and knowing that the other guy is working his tail off too is critical. The fact that elmer has been doing amazing work motivated me to squeeze in four hours of translating today...and I hope that fact is motivating to elmer.  :wink:
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on November 27, 2015, 05:48:34 AM
Also, morale is critical during projects like these, and knowing that the other guy is working his tail off too is critical. The fact that elmer has been doing amazing work motivated me to squeeze in four hours of translating today...and I hope that fact is motivating to elmer.  :wink:

Definitely!  :wink:

I've been feeling guilty that SamIAm has been working so hard on the translation, and that I've been "playing" with the Turbo Everdrive 2.

The reason is that I got the complete 1st-draft of the 1st-level of Xanadu 1 and tried to insert it into the game ... and it immediately ran out-of-memory on the very first script chunk in the game.

So that meant that I've got to implement the entire game-recompression and decompressed-script-overflow code before we can move forward.

Yuk! That's a lot of work.  #-o

That really brought up the question of whether we even have any good alternative to use if the translation needs extra RAM, or whether it would then be Mednafen-only (or CD Stupid Card for those of us lucky enough to have them).

Well, after a lot of messing around (as documented in various other threads), it looks like the Turbo Everdrive 2 is definitely going to be an alternative that people can actually go out and buy if there are any CD translations/homebrew in the future that need extra RAM above-and-beyond the 256KB that the Super System Card provides.

There's also the possibility of TheOldMan's 512KB ROM/RAM card that he's designing, or the mythical 1MB-RAM card that I've been thinking about ... but the Turbo Everdrive 2 actually exists, and can be purchased, and is a really nice card (if a little bit more expensive than some people would like).

So, with that concern out of the way, now it's time to get back to Xanadu!  :)
Title: Re: Xanadu II Translation Development Blog
Post by: MNKyDeth on November 27, 2015, 05:57:34 AM
Was it stated earlier that the Arcade Card Duo/Pro are not viable options in this scenario Elmer? Or could we use those for those of us that have them?
Title: Re: Xanadu II Translation Development Blog
Post by: spenoza on November 27, 2015, 06:16:03 AM
Elmer has brought up in multiple threads, on multiple occasions, why the Arcade Card standard is not effective/appropriate for this.
Title: Re: Xanadu II Translation Development Blog
Post by: MNKyDeth on November 27, 2015, 06:24:27 AM
Elmer has brought up in multiple threads, on multiple occasions, why the Arcade Card standard is not effective/appropriate for this.

Ok, thank you.

I think I remember reading something on it but wasn't for sure.

I recently bought both of these games and have them now mostly because of this project. I also have a 2.4 TED enroute so I should be good to go hopefully soon. I am just excited for this project as I have always heard good things about the Xanadu games.
Title: Re: Xanadu II Translation Development Blog
Post by: Black Tiger on November 27, 2015, 06:30:36 AM
Elmer has brought up in multiple threads, on multiple occasions, why the Arcade Card standard is not effective/appropriate for this.

Ok, thank you.

I think I remember reading something on it but wasn't for sure.

I recently bought both of these games and have them now mostly because of this project. I also have a 2.4 TED enroute so I should be good to go hopefully soon. I am just excited for this project as I have always heard good things about the Xanadu games.

You can play just the action/boss sequences of both games through the debug modes in the meantime.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on November 27, 2015, 06:31:18 AM
Was it stated earlier that the Arcade Card Duo/Pro are not viable options in this scenario Elmer? Or could we use those for those of us that have them?

I'm still hoping to avoid needing the extra RAM ... but Xanadu 2 is the game that's probably going to cause the most trouble.

That's because its FALCOM2 compression is already doing a good job, and so the amount of memory that I get back by switching to SWD4 or SWD5 is going to be less than with the FALCOM1 compression on Xanadu 1.

I think that I'm going to need quite a bit of extra space for the compressed translations, and I've also got to free up 8KB for the decompressed translation.

Let's just hope that everything fits, and that we don't need the extra memory.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on December 01, 2015, 12:05:26 PM
Time for an update ...

As you, Dear Reader, may have seen, the font hacks that I took screen grabs of a few weeks ago are now properly integrated into the CD on both Xanadu 1 and Xanadu 2.

That's taken a fair bit of behind-the-scenes messing around to actually locate/extract the different code overlays for both games and then put together a PCEAS framework to let me modify them all and then reinsert them into the CD image.

Part of that has involved the discovery of how both games actually locate the files that they're loading from CD.

***************

They're both using a 2KB "directory" structure that's loaded as part of the IPL sectors and is then kept permanently in memory.

They're then referring to files by a 2 byte code when they want to load them ...

The 1st byte is a file type "X" for executable, "Z" for compressed META-BLOCK, and "A" for something else (presumably audio).
The 2nd byte is a binary number, and seemingly refers to the game section.

For instance, in Xanadu 1, the "Main Menu" is actually made up of 3 files "X00", "A00" and "Z00".

It also makes it really clear that there's a single "game" overlay, and 12 different sets of META-BLOCKs for each level ...

"X10", "Z10", "Z11", "Z12", "Z13", "Z14", "Z15", "Z16", "Z17", "Z18", "Z19", "Z1A", and "Z1B".

It's an interesting discovery ... and I wish that I'd found it a long time ago.

Having a list of files like this makes it a lot easier to see how the game is put together.

It also shows that there's a lot of the game that we've not touched at all, yet!

***************

One nice side-effect of finding where the directory structure actually lives when it's loaded into in memory, is that there's enough free space in that bank for the English font, rather than just putting it in the space that I'm freeing up by recompressing the game data.

That's going to be really important on Xanadu 2, because the META-BLOCKs in that game just won't shrink down as much, and I'm already worried if there's going to be enough memory.

***************

Which leads on to the compression/decompression.

I've got a 1st-version of the SWD5 decompressor for the PCE, and I've managed to squeeze it down into being a few bytes shorter that the FALCOM1 decompression code, so it can just live in the same location and overwrite the old code.

I've also hacked the SWD5 format so that it can automatically decompress some data into a different block after it decompresses a script chunk.

That seems like the easiest way to get the game to allow SamIAm's translated script chunks to expand in size and overflow into the space that we're creating by recompressing all those game files.

Now that I've found the directory structure, I'm in the position of being able to rewrite all those old files in the new compression format ... and hope that it all doesn't just blow-up!  :pray:

That's the next task.

***************

Anyway, for anyone that's interested in a challenge, here are the directories for Xanadu 1 & 2.

See if you can guess which groups of files are for the Main Menu, the Cinemas, the Top-Down Game, the Side-Scrolling Game, the Boss fights, etc.  :wink:

***************

Xanadu 1 Files ...

X00, A00, Z00,
X01, Z01,
X02, Z02,
X03, Z03, A03,
X04, Z04, A04,
X05, Z05, A05,
X06, Z06, A06,

X10, Z10, Z11, Z12, Z13, Z14, Z15, Z16, Z17, Z18, Z19, Z1A, Z1B,

X30,
Z30, A40, A50, A60,
Z31, A41, A51, A61,
Z32, A42, A52, A62, A72, A82,
Z33, A43, A53, A63,
Z34, A44, A54, A64,
Z35, A45, A55, A65,
Z36, A46, A56, A66,
Z37, A47, A57, A67,
Z38, A48, A58, A68,
Z39, A49, A59,
Z3A, A4A, A5A, A6A, A7A,
Z3B, A4B, A5B,
Z3C, A4C, A5C,

X20, Z20, A20,
X21, Z21, A21,
X22, Z22, A22,
X23, Z23, A23, A33,
X24, Z24, A24,
X25, Z25, A25,
X26, Z26, A26,
X27, Z27, A27,
X28, Z28, A28,
X29, Z29, A29,
X2A, Z2A, A2A,
X2B, Z2B,


***************

Xanadu 2 Files ...

XF0, ZF0,

X10, Z90, Z0F, A0F,

Z00, Z01, Z02,
Z10, Z11, Z12, Z13, Z14, Z15, Z16, Z17,
Z20, Z21, Z22, Z23, Z24, Z25, Z26, Z27,
Z30, Z31, Z32, Z33, Z34, Z35, Z36, Z37,
Z40, Z41, Z42, Z43, Z44, Z45, Z46, Z47, Z48, Z49,
Z50, Z51, Z52, Z53, Z54, Z55, Z56, Z57,
Z60, Z61, Z62, Z63, Z64, Z65, Z66,
Z70, Z71, Z72, Z73, Z74, Z75, Z76,
Z80, Z81, Z82, Z83, Z84, Z85,

A15,
A20, A24, A25, A26,
A35,
A41, A42,
A51,
A60,
A70, A74, A75,
A82,

XA0,
Z98, A98,
Z99, A99,
Z9A, A9A,
Z9B, A9B,
Z9C, A9C,
Z9D, A9D,
Z9E, A9E,
Z9F, A9F,
ZA0, AA0,
ZA1, AA1,
ZA2, AA2,
ZA3, AA3,
ZA4, AA4,
ZA5, AA5,
ZA6, AA6,
ZA7, AA7,
ZA8, AA8,
ZA9, AA9,
ZAA, AAA,
ZAB, AAB,
ZAC, AAC,
ZAD, AAD,

AB0, AB1, AB2, AB3, AB4, AB5, AB6, AB7,

XC0, ZC0, AC0,
XC1, ZC1,
XC2, ZC2,
XC3, ZC3,
XC4, ZC4,
XC5, ZC5,
XC6, ZC6,
XC7, ZC7,
XC8, ZC8,
XC9, ZC9,
XCA, ZCA,
XCB, ZCB,


***************
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on December 01, 2015, 02:43:15 PM
elmer, you definitely impress me.. lol

You should put up a public blog site of these two projects, so people outside this forum can see your progress.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on December 03, 2015, 09:15:32 AM
You should put up a public blog site of these two projects, so people outside this forum can see your progress.

Nah, I can't be bothered. IMHO, the folks here are the ones most interested in the PC Engine (except, maybe, for that one French forum that I keep on forgetting about).

I'm just making sure that the people here can see that the translation keeps on slowly moving forwards, and that it's not just going to die like it did the last time, and perhaps, to also see just how much work is involved.

Oh ... it's also a chance to be a noisy Old Fart and pontificate about "the good old days" ... hahaha!  :wink:

**********

Since the subject of sound drivers is being talked-about again, I thought that I'd take a quick look at the Xanadu games.

It looks like they're both using Falcom's own proprietary sound driver, and not the one that's built into the System Card.

I'm going to hazard a guess and say that that is probably because it was easier for them to recode their existing PC-88/PC-98 driver to work on the PCE, than get their current music guy(s) to switch to a completely different way of working.

Of course, if it turns out that they were using MML on the PC-98 ... then I'd be totally wrong!   8-[

**********

And since I've also not mentioned it, yet, it's interesting to see that while Xanadu 1 used the System Card's CD routines to load a complete level of data at one time; when it came to Xanadu 2, and the need to quickly switch out large chunks of data as you move around the level, they appear to have abandoned the System Card's routines and are using their own custom code for all the CD loading.  :-k
Title: Re: Xanadu II Translation Development Blog
Post by: ccovell on December 03, 2015, 09:57:49 AM
I gotta say that Xanadu I has absolutely fantastic, awesome music.... but the instruments aren't that complex and they don't change all that much.  It's quite typical of a JP computer composition/translation, I think.  Jinmu Denshou (Yaksa) on the PCE has a similar thing going on.  The focus is on polyphony with a lot of sawtooth sounds.

Compare that to Ankoku Densetsu or Dungeon Explorer, where in a lot of situations simple square waves are used, but 2 channels are paired, playing almost the same note.  The phasing between the square waves does all of the heavy lifting to make a powerful sound.
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on December 03, 2015, 12:18:02 PM
So Xanadu 2 is another later gen PCE game to use custom cd read routines. The system card one isn't that great for running multiple threads of code. I've seen games do it, but it's hack-y. Besides, it's slow too. Only 90k per second transfer bandwidth. The newer routines are at least 122k/sec.

 If you get a chance, see if you can rip the custom cd read part. I have one from Seiya Monogatari that I'd like to compare. 
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on December 05, 2015, 05:21:51 PM
If you get a chance, see if you can rip the custom cd read part. I have one from Seiya Monogatari that I'd like to compare.

I doubt that I'll have the time to seriously investigate the custom CD routines for a few months, but I can tell you where they are.

Here is the function that loads a code overlay from both Xanadu 1 and Xanadu 2.

You can see that they're almost identical, and that new custom routines are set up to use the same input parameters as the original System Card routines.

All you have to do is to run Xanadu 2, and by the time that you get to the Main Menu, you'll be able to find the new CD read routine at $a807 in bank $84.

Good hunting!


*********************
XANADU 1 LOAD_OVERLAY
*********************

$3308   jsr   $334a     ; _find_file_index

$330b   jsr   $3377     ; _find_file_pos_len

        lda   $02       ; local addr
        sta   $fa
        lda   $03
        sta   $fb
        lda   $01
        sta   $ff

        jsr   $e009     ; ex_cd_read

        sta   $45
        cmp   #$00      ; $00 = OK
        beq   $3328

$3323   jsr   $33a1
        bra   $330b

$3328   rts


*********************
XANADU 2 LOAD_OVERLAY
*********************

$332b   jsr   $3371     ; _find_file_index

$332e   jsr   $339e     ; _find_file_pos_len

        lda   $02       ; local addr
        sta   $fa
        lda   $03
        sta   $fb
        lda   $01
        sta   $ff

        tma   #$20      ; Remap bank $84 into $a000
        pha
        lda   #$1c
        clc
        adc   $203f
        tam   #$20

$3348   jsr   $a807     ; !!! CUSTOM CD LOADING CODE !!!

        pla
        tam   #$20
        rts

Title: Re: Xanadu II Translation Development Blog
Post by: elmer on December 08, 2015, 02:02:48 PM
I gotta say that Xanadu I has absolutely fantastic, awesome music.... but the instruments aren't that complex and they don't change all that much.  It's quite typical of a JP computer composition/translation, I think.  Jinmu Denshou (Yaksa) on the PCE has a similar thing going on.  The focus is on polyphony with a lot of sawtooth sounds.

Compare that to Ankoku Densetsu or Dungeon Explorer, where in a lot of situations simple square waves are used, but 2 channels are paired, playing almost the same note.  The phasing between the square waves does all of the heavy lifting to make a powerful sound.

Thanks for the analysis, I find that very, very interesting.  :D

A pair of slightly de-tuned channels is a great trick for making a wonderful sound.

**************

Just a quick update on the current progress, since I don't have any new pretty pictures to show.

The game seems to be happy to run with SWD5-compressed data instead of the old FALCOM1/FALCOM2 compressed data.

I'm testing the first scripts, and the overflow functionality (that lets the English translations be much larger than the Japanese originals) seems to be working fine.

My changes to the script compiler to allow for that introduced a couple of bugs that's taken a while to fix.

The current annoyance is that the game is stomping all over my English font ... so that place where I've put it isn't as "safe" as I thought.  :roll:

I think that I can free up some memory for the font by optimizing how the CD directory information is stored ... and that's the next task.

So, two steps forward, half-a-step backwards.  ](*,)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on December 18, 2015, 08:02:18 AM
Time for another couple of screenshots ...


(http://farm6.staticflickr.com/5788/23535230300_8a91fab4b1_o.png)

(http://farm6.staticflickr.com/5729/23804822426_c5072bfda2_o.png)


It's nice to see some progress, but they don't look too impressive when compared to the previous screenshots, do they?

It's just from the first building that you go into when you start the game. Wasn't that already done?

The answer is "No" ... this is actually a major step forward, and one that's taken a lot of invisible time-and-effort.

Let me explain ...


******************

As SamIAm has said in the main thread, in the past couple of weeks I've actually got all of his current translations inserted into the game (the first 5 levels).

My goal is to get to the point that I can just give him a set of insertion tools, and then he'll be able to make small edits and quickly see how they look in the game.

We're still quite a way away from that goal, but now we're one big step closer.

That's because the game has been built like an onion ... with many layers.

The 12 levels (which contain a total of 168 script files) that SamIAm has been translating are at the outer layer.

They're the most important part of the game ... but they often refer to little snippets of script data that are actually stored in the inside the middle layer, the Game Code overlay itself.

The Game Code overlay uses functions that are built into the Boot Code ... the inner layer.

This is a very structured way of putting a game together, but it can be a real PITA to hack.

In contrast, Zeroigar was constructed like a book ... totally separate pages that really didn't refer to each other. It was also a PITA to hack, but in a totally different way.

In Zeroigar, with its 35+ different programs, I'd often have to find/implement similar hacks in all 35+ different programs. But since each one was separate, each hack was independant of the others, and nothing relied on the previous hacks. That is time-consuming and terribly boring to do ... but it's not particularly difficult.

In the Xanadu games, changes can affect each other. That's a more efficient way of doing things, but it's a bit more complicated to manage.

In particular ... the method that I'm using for recompiling the translated scripts, and for handling the overflow that happens because there's not enough room to the English text, and then repackaging everything back into each level's META_BLOCK so that it gets loaded correctly ... well, that just doesn't work for those inner layers.

Modifying the whole process to be able to handle those inner layers is what has taken a lot of time over the last couple of weeks.

In Xanadu 1, nearly all of the item description script data is stored in the Game Code overlay. The name "Arios" is also in there, as are various common scripts such as the generic things that the "Sister" says when you're in a temple.

Interestingly enough ... each level's META_BLOCK also contains a special DATA_CHUNK with up to 8 level-specific custom items that overwrite the default item descriptions in the Game Code overlay when that level is loaded.

It was only a couple of days ago that I found out that those existed, and then tracked down how they were done. We weren't extracting those scripts before ... now we are.

The problems with having all those scripts in the Game Code overlay is that ...
[uldecimal][li] there isn't enough memory in the Game Code overlay for the English versions.[/li][li]the scripts in the levels directly refer to the locations of the scripts in the code.[/li][/ul]That's meant that I've had to figure out both how to load up the extra data for the translations, and also how to tell all the level scripts that the Game Code scripts have moved to a different location.


******************

Solving the 1st part has meant splitting the scripts that are in the Game Code into 3 different parts.

The script table that is used to locate each item's description has been moved into some of my extremely-precious free space in the CD Boot Code section. That means that it is always available for reference/modification, which is needed for when the Game Code loads the level-specific item descriptions and overwrites some of the table entries.

The item descriptions themselves have been moved into the bank of extra memory that I've freed by recompressing all of the game's data (the META_BLOCKs) with the more-efficient SWD5 compression.

I've written some new code that's been added to the Boot Code itself to actually load those item descriptions and then copy them into that bank.

All the "names" and "common" scripts are still in the Game Code overlay, and now that the item descriptions have been removed from it, there's plenty of room in the overlay for the larger translations.

FYI ... the current English translations that have been inserted are sometimes taking up to 50% more space than the original Japanese scripts.


******************

Solving the 2nd part has been easier, but needs to be improved.

When I first started to disassemble the scripts and found that Falcom were structuring the game like this, I knew that I'd have to deal with it at some point, and so added the information into the extraction process.

Each script file that SamIAm is translating has a section at the top that contains a list of the "external" scripts that that particular script can refer to that aren't actually located in that particular script file.

It looks like ...

  @extscript( $997e, .table997E  )
  @extscript( $9ea8, .script9EA8 )
  @extscript( $9ead, .script9EAD )
  @extscript( $9ecd, .script9ECD )
  @extscript( $9f1b, .script9F1B )
  @extscript( $9f8b, .script9F8B )


This tells the script compiler that when it sees a script referring to something with one of those labels (the 2nd value), then it should actually compile in a different address (the 1st value).

Now that I've actually got those scripts compiling, that table is changed to the following, which corresponds the the new locations of each of the scripts ...

  @extscript( $3f7e, .table997E  )
  @extscript( $9614, .script9EA8 )
  @extscript( $998a, .script9EAD )
  @extscript( $99bb, .script9ECD )
  @extscript( $9a2a, .script9F1B )
  @extscript( $9ad1, .script9F8B )


This is fine, and works great (you can see the results in the screenshots above), but it's a real PITA to manage.

It means that whenever SamIAm or I edits one of those scripts in the Game Code, then I've got to change that table in all 168 script files.

I need to implement a "better" solution for the script compiler (like "include" files) ... that's the next task on my list.  :-k


******************

So, the conclusion from all of this rambling, is that what you are seeing in those screenshots at the start of this message is actually the result of scripts that are located in a number of different places and that are loaded into memory at totally different times.

The 1st screenshot comes from a script that's located in the 1st script file for the 1st level (the Prologue).

Then, that same script calls some code that gives the player the "Clothes" item, and then calls another script in the Game Code overlay to display the "item-received" script (which has been re-compiled into a new location).

The "item-received" script then looks up the item number in the item table (which has been re-compiled into the Boot Code), and then prints out the item description for "Clothes" (which has been re-compiled into the extra script memory that I've freed-up), and finally prints out " received."

So, even though it just looks like a simple pair of messages on screen ... getting all those things working and properly-coordinated is actually a pretty major step forward in getting the translation done.  :wink:
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on December 18, 2015, 01:14:42 PM
Awesome post, elmer. :)

So awesome, it inspired me to drop what I was doing and get back to work on Chapter 5. ;)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on December 27, 2015, 03:59:05 AM
This "blog" has definitely been getting quieter in the last few weeks as there's not too been much "interesting" stuff to post, since Xanadu 1 is pretty-much hacked-to-death at this point.

The only interesting problems that have had to be solved were in what I keep on calling the "Weapon Shops", i.e. the "Buy" shop and the "Sell" shop.

First of all, they contain "custom" code for printing the text messages, and that code wasn't extracted-and-patchable in the way that the other code overlays were.

The solution for that was to add some new patching commands into the script compiler to apply the patches at the same time that the translations are applied.

That's a pretty ugly hack ... but it works, and it keeps the ugliness restricted to only those few scripts that use the new script commands.

***********

More interesting was that those Weapon Shop scripts are the only time that I've seen so far that Falcom is decompressing graphic data while the game/music is still running ... well, it's the only one that has caused a problem anyway.

The Weapon Shops use a custom set of tiles for the dialog boxes, and it decompresses that graphic data whenever the dialog box is cleared.

My new SWD5 decompressor is using the HuC6280's TII instruction for data copies ... which, as any PCE programmer knows, blocks interrupts while it is executing.

That doesn't cause any problem if you're only disabling the interrupts for a short time, but in this particular case, the graphics for the dialog box compress really well, and the SWD5 decompression executes TII copies with large chunks of repeated data.

That was blocking interrupts too long, and was causing a skip in the music and a nasty glitch in the graphics on the screen.

The obvious solution is to replace the TII instruction with an assembly routine that does the data copy without blocking the interrupts.

The problem is that that routine is both larger and slower than using the TII instruction.

Sometimes that's the best solution to use, particularly if you're doing a lot of complex stuff with interrupts ... but in this case, there's another solution available.

That solution is just to change the compression code to set a lower limit on the maximum size of any repeated chunk of data that is found.

In this case ... changing that limit from 8KB, all the way down to 128 bytes, was enough to fix the glitching.

In order to avoid hurting the compression too much, the "fix" is only applied to that 1 specific chunk of graphics data ... which was another problem ... but it's all solved now.

***********

As Dave so very correctly pointed out a while back ...

The data that you will be recompressing later will NOT be the same as the data in those blocks today, so a test on SWD3/SWD4 compressibility of existing data is not very relevant.

For one thing, text is usually encoded in these things as 2-byte SJIS for kanji, and 1-byte JIS for kana.  It doesn't compress anywhere near as well as English (though it is generally slightly more dense to begin with).

So, now that we've got a couple of levels of English translations running in Xanadu 1, I thought that I'd take a look at how the compression is doing.

META_BLOCK "Z10" $000d9800, originally 160KB,  SWD5 Jpn 134KB,  SWD5 Eng 138KB.
META_BLOCK "Z11" $00105800, originally 148KB,  SWD5 Jpn 126KB,  SWD5 Eng 130KB.
META_BLOCK "Z12" $00131800, originally 176KB,  SWD5 Jpn 148KB,  SWD5 Eng 154KB.
META_BLOCK "Z13" $0015d800, originally 174KB,  SWD5 Jpn 146KB,  SWD5 Eng 152KB.
META_BLOCK "Z14" $00189800, originally 166KB,  SWD5 Jpn 140KB,  SWD5 Eng 148KB.


The game allocates 176KB for loading a META_BLOCK into memory, and I need to reduce that to 168KB maximum in order to free up the 8KB block that I'm using for the English translations.

Those results show that we're doing really well so far, and that we should have no trouble getting Xanadu 1 to run with a Super System Card 3, and that we're not going to need the extra memory in a Turbo Everdrive 2.  :D

Just to state the obvious ... it's still way too early to tell if Xanadu 2 is going to fit.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on December 27, 2015, 11:40:15 AM
Sometimes things work out ...

(http://farm6.staticflickr.com/5639/23386427723_690a684c07_o.png)


Sometimes things don't ...

(http://farm6.staticflickr.com/5790/23385006374_4500d5414c_o.png)


So, once again, with Xanadu 2 it's the Weapon Shops that are being a royal PITA.  :roll:

Falcom are not only doing a completely new trick with them, but they're using custom display code for the 2 English strings that bypasses my regular text-display fixes, and causes character spacing problems.

The new trick is actually pretty neat ... in Xanadu 2, all of the item descriptions are stored in the script chunk for the "Pause Menu", and not in the Game Code like in Xanadu 1.

Each Weapon Shop is contained in it's own script chunk, just as you'd expect, and this is decompressed and copied into $A000-$BFFF for execution just like all the other script chunks.

But in order to print out the item descriptions, the Weapon Shop itself decompresses the Pause Menu's script chunk into the temporary decompression buffer and maps that buffer into $C000-$DFFF, just so that it can access the table of item descriptions (which is located $2000 higher than normal).

I think that's quite a neat trick.  :)

However ... now we've got a couple of problems.

The easier one is going to be finding/hacking the new custom display code so that the 8x12/4x12 English font spacing works properly.

The harder one is that even when that is done, the English item descriptions are just too long to fit into the small box that's been provided.  #-o

That will need some thinking ... and possibly a new 6x12 font.

There should be space for a new font where Xanadu 2 is currently loading it's custom 8x12 font ... thankfully.

But it's going to be a real PITA to switch the entire game from working in 4-pixel text-coordinate steps into 2-pixel (or 1-pixel) steps in order to cope with both 4, 8, and now 6-pixel wide English glyphs.  ](*,)
Title: Re: Xanadu II Translation Development Blog
Post by: dshadoff on December 27, 2015, 01:01:50 PM
I appreciate all the thought that's going into this, but...

All other RPG game where this has happened, have resorted to short-form names - at least within the context of the weapons shop.

Is this not an option ?  Or just an option you'd prefer not to entertain ?

-Dave
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on December 28, 2015, 03:04:21 AM
All other RPG game where this has happened, have resorted to short-form names - at least within the context of the weapons shop.

Is this not an option ?  Or just an option you'd prefer not to entertain ?

It's definitely an option, and I can certainly understand why translation teams do it, but take a look at this example of what's going on ...

(http://farm6.staticflickr.com/5646/24025523015_940f7de959_o.png)


Yes, I could just ask SamIAm to abbreviate both examples to "Lethr Armor" and "Dragn Slayr" ... but it's not a nice work-around, and it doesn't fit with the care-and-attention that Falcom put into these games.

If I can find a reasonable solution to avoid it then, personally, I'd find it pretty embarrassing (as a professional programmer) to have the game display the name of the game's legendary weapon, the weapon that gives it's name to the entire series of games, as "Dragn Slayr" instead of "Dragon Slayer".

Unlike Xanadu 1, Xanadu 2 already contains an 8x12 font that it uses for some character's names, for some special graphical characters, and for that item description in the Weapon Shops (which is why the spacing is almost correct).

It only loads up that font during the game, so I couldn't use that memory for the main English font (because it has to work in the Main Menu), but it does mean that I've got some space that I can use for a condensed font.

If I can change the game to use 1-pixel text coordinates, then it opens-up the possibility to switch the current bi-width English font into a fully variable-width font ... which will look nicer.

IMHO, the current font looks pretty good, and I've tweaked the glyphs to give them a consistent spacing ... but, to-be-honest, that has made the outlined versions in Xanadu 1 overlap so much that they look terrible!

I've spent over 600 hours, so far, hacking these games and recreating an important chunk of Falcom's toolchain, and it would be a shame to take the "easy" solution now just to save a few more hours of trying to do it "right".
Title: Re: Xanadu II Translation Development Blog
Post by: dshadoff on December 28, 2015, 06:42:51 AM
Fair enough.
Well, there are also other possible solutions too...

One could have the grid layout of the bottom line adjusted to make a bit more room for the weapon name...

But another one I just thought of, which may look even better than the original....
If possible, switch the location of the weapon name (3rd line) with the power up/down report ("Attack +12" on top line).  That layout would afford more room for the weapon name, and would probably make more sense to the user.

I also have a pretty good feeling that the box on the third line wouldn't be overflowed by "Attack +12" or whatever other possible text could show there.  And even if it couldn't handle all lengths, these phrases would be better candidates for shortening than the weapon names.

Not sure how much work this would be, but given what you've already achieved, it may not be so difficult.

-Dave
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on December 28, 2015, 12:42:31 PM
One could have the grid layout of the bottom line adjusted to make a bit more room for the weapon name...

I thought about this, but I'm a bit worried to rely on it because I'm not sure what the maximum width of the numbers in the other 2 boxes is.


Quote
But another one I just thought of, which may look even better than the original....
If possible, switch the location of the weapon name (3rd line) with the power up/down report ("Attack +12" on top line).  That layout would afford more room for the weapon name, and would probably make more sense to the user.

I also have a pretty good feeling that the box on the third line wouldn't be overflowed by "Attack +12" or whatever other possible text could show there.  And even if it couldn't handle all lengths, these phrases would be better candidates for shortening than the weapon names.

Now this is a great idea, I wish that I'd thought of it myself!  #-o

I'm currently trying to get the 1-pixel coordinates working, but even if I do, I'd favor trying to shift around which box is used for which string anyway ... it's a much more logical layout for a Western game player.

Thanks!  :D
Title: Re: Xanadu II Translation Development Blog
Post by: Black Tiger on December 28, 2015, 01:58:13 PM
Yeah, purely from a game player perspective, I'd be much more comfortable with the item names up top.
Title: Re: Xanadu II Translation Development Blog
Post by: IvanBeavkov on December 30, 2015, 06:02:18 AM
elmer, I just want to say I find this thread immensely interesting. I just love reading the details about how the game was built. It makes me wish I had the time to devote to learn how to do this.

Keep up the good work!
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on December 31, 2015, 06:47:04 AM
elmer, I just want to say I find this thread immensely interesting. I just love reading the details about how the game was built. It makes me wish I had the time to devote to learn how to do this.

I'm glad that I'm not just boring everyone!

IMHO Falcom really put these games together well, I think that they're a great example of the best-practices in Game Engine design for the time.

It's been interesting to get a look behind-the-scenes as I've been hacking into the game, and to get an appreciation of just how good Falcom were at putting this kind of game together after they'd spent nearly 10 years of putting together the "Dragon Slayer" and "Ys" series on 8-bit and 16-bit home computers.


Yeah, purely from a game player perspective, I'd be much more comfortable with the item names up top.

It took a while to figure out how Falcom were setting up the positions of the text sprites, but here you go ...

(http://farm6.staticflickr.com/5786/23449463943_aea9fb8255_o.png)


There are a lot of different text messages that go into that "Attack +12" string area ... and the number itself can be up to 6 digits long.

I think that I'm going to need that 6x12 font in order to keep any abbreviated text messages understandable.  :-k
Title: Re: Xanadu II Translation Development Blog
Post by: dshadoff on December 31, 2015, 07:11:05 AM


It took a while to figure out how Falcom were setting up the positions of the text sprites, but here you go ...

(http://farm6.staticflickr.com/5786/23449463943_aea9fb8255_o.png)


There are a lot of different text messages that go into that "Attack +12" string area ... and the number itself can be up to 6 digits long.

I think that I'm going to need that 6x12 font in order to keep any abbreviated text messages understandable.  :-k


Wait... did you say "text sprites" ?
If they're using sprites, you need to know that beyond 16 sprites on the same scan line, there will be hardware flickering.  One more difficulty with longer text phrases.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on December 31, 2015, 07:45:44 AM
If they're using sprites, you need to know that beyond 16 sprites on the same scan line, there will be hardware flickering.  One more difficulty with longer text phrases.

Whoops, I guess that I wasn't clear enough.  :oops:

It is just text rendered into a large VRAM bitmap, which is then displayed as sprites.

Falcom are allowing for 128x16 for the weapon name (4 sprites), and 192x16 for the description/benefit message (6 sprites).

The box at the bottom only has room for approx 88 pixels of the description/benefit message, so I've left the extra 2 sprites up at the top of the screen where they won't get in the way.

Falcom are actually using the same low-level text rendering code for those strings as all the other text in the game, but they're setting a flag to bypass all the normal text cursor positioning code, and they're just using lower-level 4-pixel-sprite-strip position coordinates.

That makes it easier for them to control the exact pixel positioning for single-line messages rather than having to abuse the higher-level teletype-style console text code that handles the normal game text.

It wasn't that hard to find once I saw that the text was broken ... but it means putting in a bunch of small fixes for every string that's displayed in that way, rather than the clean fix-it-all-in-one-place that worked for the other game text.
Title: Re: Xanadu II Translation Development Blog
Post by: seieienbu on January 02, 2016, 08:53:25 AM

(http://farm6.staticflickr.com/5786/23449463943_aea9fb8255_o.png)


There are a lot of different text messages that go into that "Attack +12" string area ... and the number itself can be up to 6 digits long.

I think that I'm going to need that 6x12 font in order to keep any abbreviated text messages understandable.  :-k


I think I speak for everyone when I say that abbreviating Defense to Def is nowhere nearly as gross as abbreviating Dragon Slayer to Dragn Slyr.  It's been a while since I've played, but I seem to recall the stats being referred to as Def and Atk on your character status sheet thing-y.  Assuming this is the case, if you leave it as Atk and Def then you have symmetry that actually works pretty nicely, in fact.....

Also, I'm of the opinion that the shop menu looks better with the item name up at the top than down below anyway.  Hurray for problem solving!
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on January 12, 2016, 04:18:42 AM
The new trick is actually pretty neat ... in Xanadu 2, all of the item descriptions are stored in the script chunk for the "Pause Menu", and not in the Game Code like in Xanadu 1.

Each Weapon Shop is contained in it's own script chunk, just as you'd expect, and this is decompressed and copied into $A000-$BFFF for execution just like all the other script chunks.

But in order to print out the item descriptions, the Weapon Shop itself decompresses the Pause Menu's script chunk into the temporary decompression buffer and maps that buffer into $C000-$DFFF, just so that it can access the table of item descriptions (which is located $2000 higher than normal).

When Falcom decided to put the item names/descriptions into the Pause Menu script chunk and keep them compressed most of the time, this had an interesting side-effect that recently caused some trouble for the Xanadu 2 translation process.

While the Weapon Shops get access to all of those item name strings by decompressing Pause Menu into temporarily-unused space ... that option isn't available to the regular script chunks.

Now most script chunks don't ever need to use those item names ... but some do, and those are the ones that contain a Treasure Chest.

When you open the Treasure Chest, you receive an item, or some gems, or just nothing ... but if it's an item, then the name of that item needs to be displayed.

So Falcom decided to make copies of the name strings for those items in each script chunk that contains a Treasure Chest.

In order to save memory, they only store the names of the small subset of items that you might potentially get from that particular Treasure Chest ... but the method that they use to store/access those strings is unique, and so they weren't being extracted for translation.

Well, now they are.  :)


(http://farm2.staticflickr.com/1531/24097650661_87ef73f7c9_o.png)

(http://farm2.staticflickr.com/1441/24072220732_0a7521478c_o.png)
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on January 12, 2016, 12:51:20 PM
Beautiful!   :clap:
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on January 20, 2016, 03:39:28 AM
Another thing that Falcom added to Xanadu 2 that wasn't in Xanadu 1, are the popup text boxes.

Just like text that's displayed in the Weapon Shops, these  popup boxes use some custom text printing code.

Once that was fixed, we go from ...

(http://farm6.staticflickr.com/5672/23453068435_8169ce3c6b_o.png)

To ...

(http://farm2.staticflickr.com/1695/23812442439_485d694cf5_o.png)


The last thing to deal with, is actually centering the text so that it all looks nice.

This is accomplished by passing an x-offset parameter to the routine that draws the text box.

Now, our text is obviously a very different width to the original Japanese text, and there are 168 of these popup text boxes in the extracted script, so we really don't want to have to adjust each one manually.

The solution is just to tell the script compiler where each of the popup text boxes is located in the extracted scripts, and then, when the compiler processes each of the translations, it can calculate the width of the new English string and hack in the correct x-offset parameter into the script chunk's code to get passed into the drawing code.


Here is the result ...

(http://farm2.staticflickr.com/1484/24072220752_d55e613b06_o.png)
Title: Re: Xanadu II Translation Development Blog
Post by: IvanBeavkov on January 20, 2016, 04:16:46 AM
Elmer,
I just want to say I love this thread so much. It is just so interesting to see these details and clever solutions to problems.

This thread should also be required reading for anyone who complains how long translations take. It is these little details that take a translation from "Well it is in English." To something truly special.

I also have a humble question to ask. Would it be possible, after you have completed this project, to be able to see the code of your tools to see how it works?

I am a software developer, custom business software not games, and I would like to contribute to the translation scene but I am having a hard time getting started. I have read some of the articles over on Romhacking.net, but for me I learn much better by example. So to be able to look at your tool next to the game iso would be very enlightening.

If you are not comfortable sharing your code that is fine I understand, I am just some random guy on the internet. If you do though I would be very grateful.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on January 20, 2016, 03:17:59 PM
I just want to say I love this thread so much.

Thanks!   :)


Quote
Would it be possible, after you have completed this project, to be able to see the code of your tools to see how it works?

Certainly, but it's still going to be many months before we're finished with everything.

Then I'll wait another few months to let things settle.

But I fully intend to release everything ... in the same way that I intend to release everything for Zeroigar, too.

In fact, we're nearly at the 6-month mark since the Zeroigar release, so I need to start gathering things together for that.

Except that I have very little free time just at the moment.  #-o
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on January 31, 2016, 12:56:07 PM
This is kind of motivating me to resume with the Emerald Dragon project which has been asleep for some time now.

Funny thing, elmer and SamIAm actually instead motivated me to put in time on advancing TurboRip which I worked on the other day actually due to MNKyDeth being in possession of another previously unknown pressing of Dungeon Master that wasn't in TurboRip's internal PCE TOC database. Heh. I'm much happier where it's at, although I still wish I had invested time in building a future GUI version. I could've whipped something up with Visual Basic long ago, but I just don't wanna take the easy way out with a RAD development package like that.

Anyway, I still wanna wrap up some things with TurboRip first, and then resume with Emerald Dragon. I'll have much more free time coming up.
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on January 31, 2016, 02:08:31 PM
This is kind of motivating me to resume with the Emerald Dragon project which has been asleep for some time now.

Funny thing, elmer and SamIAm actually instead motivated me to put in time on advancing TurboRip which I worked on the other day actually due to MNKyDeth being in possession of another previously unknown pressing of Dungeon Master that wasn't in TurboRip's internal PCE TOC database. Heh. I'm much happier where it's at, although I still wish I had invested time in building a future GUI version. I could've whipped something up with Visual Basic long ago, but I just don't wanna take the easy way out with a RAD development package like that.

Anyway, I still wanna wrap up some things with TurboRip first, and then resume with Emerald Dragon. I'll have much more free time coming up.

 Speaking of which, how are your gui app making skills? The PCE community could really use a PCE map making utility. *Hint-hint*. None of the ones out there offer tile editing along subpalette association, etc or the capability of the PCE (16 subpalettes). Pro Motion had something, but that was like a $100 and not sure if they worked on it in the past few years (it had a bug in the tile/tilemap section).
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on January 31, 2016, 02:49:42 PM
I tried to make a Font Editor once, but I gave up... Not good enough, I admit... lol

I'm too much of a slow poke and there's gotta be a lot of motivation to get something done. ;)

But on the subject, making a GUI really is kind of an art. If you look at my TOC Fixer (http://www.ysutopia.net/images/TocFixer01.png), you won't be impressed, but it's a lightweight executable built on barebone use of WinAPI so it'll work all the way back to Windows 95! It takes a lot longer to build with just a Visual C++ IDE, but it's more satisfying and more bug free.

On the other hand, my Translation Station app built with Access XP (recent Emerald Dragon version) shows what you can accomplish if you're persistent and motivated. :) But, I don't like the cost of VB or VBA RAD software development packages/environments which is what enabled me to build it... There's quite a bit of a pro/con thing.

Later, I made a cheap Internet Explorer version  (http://www.ysutopia.net/special/TransTool.gif) of Translation Station so that any of my translators (most of which were criminals so I never even should've bothered, but I digress, heh) didn't have to pirate Microsoft Access. That's mostly what DeuceBag used for our fan patches, and he also used it one last time (in commercial gain) to port the scripts out and secretly hand off to XXXSEED Games (http://www.xseedgames.com/) (you know the rest of the story).

Conclusion: Eh, I mostly suck with some exceptions and I'm too slow/tied up/burned out to be of much help to others. :)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on February 01, 2016, 03:18:36 AM
Elmer's Xanadu II dump is finally in my hands, and it looks great. We're exploring options for merging the old translation as it exists in Esperknight's dump with this new one. Elmer has so far gotten the old lines to sit at the top of each file where they exist in the new dump (and there are 300+ files). If I have to copy/paste everything manually, that saves me a big couple of steps. Next is to see whether the old lines can be placed exactly where they're supposed to go throughout the new dump without too many errors.

Done!  :D

Where the Japanese text in the new extraction matches the Japanese text in the old extraction, I've copied the old English translation into the new location in the script file.

That seems to have caught 80-90% of the translations.

All of the old translations are still dumped at the top of the new script files so that SamIAm can refer to them when he goes through each file and fixes things.

I've given SamIAm the insertion toolchain for Xanadu 2 ... so now it's all up to him!  :wink:

FYI ... all the translations fit into memory with no problem (at the moment), so I think that we're going to be OK with having the game still run on a regular Super System Card.

From my POV, barring any bugs, I'm done with the main hacking on the games.

What's left are all the small graphical changes that need to be made (like the initial menu option in Xanadu 2), and then implementing a full variable-width-font (since I'm pretty confident, finally, that there should be enough memory left in code space to do that).
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on February 01, 2016, 04:12:20 AM
This is kind of motivating me to resume with the Emerald Dragon project which has been asleep for some time now.
...
Anyway, I still wanna wrap up some things with TurboRip first, and then resume with Emerald Dragon.

Excellent news!  :D


Speaking of which, how are your gui app making skills? The PCE community could really use a PCE map making utility. *Hint-hint*. None of the ones out there offer tile editing along subpalette association, etc or the capability of the PCE (16 subpalettes). Pro Motion had something, but that was like a $100 and not sure if they worked on it in the past few years (it had a bug in the tile/tilemap section).

ProMotion (http://www.cosmigo.com/promotion) is a great app and I'd highly recommend it to anyone ... it gets a lot of commercial use.

A new version was released in December, and the price was dropped to $60.

There's also a "free" edition that people can use.

IMHO ... writing major GUI tools requires a huge investment in time. It's usually better to use existing tools with a custom export/processing stage.

Even during the actual time of the 4th-gen machines, most development was done with 256-color editors (like dpaint) with the teams following the convention that the 256-colors represent 16-palettes of 16-colors.

Most decent editors offer "grid" movement of the cursor that you can set to something like 8x8 so that you can simulate tiles.


I tried to make a Font Editor once, but I gave up... Not good enough, I admit... lol

I gave up writing GUI editors years ago ... but still have my custom "converter" that supports a lots of different inputs and outputs, and a crazy amount of "options".

IMHO colored fonts are best-done in photoshop so that you can use the huge supply of true-type fonts as a starting-point.

It's easy to reduce them down to 16-colors-or-less when they're done, and then you can remap them into specific palette indexes with grafx or promotion.

For single-color fonts, I just use "fony" (http://hukka.ncn.fi/?fony).
Title: Re: Xanadu II Translation Development Blog
Post by: poponon on February 01, 2016, 04:31:44 AM
But, I don't like the cost of VB or VBA RAD software development packages/environments which is what enabled me to build it... There's quite a bit of a pro/con thing.

I had an issue with this recently as well and switched over to Lazarus IDE as a result. Very similar to VB or VB6 but far better in nearly every way so far. It's a free Delphi clone. Just though I should add incase you want to give it a shot.
Title: Re: Xanadu II Translation Development Blog
Post by: TheOldMan on February 01, 2016, 05:09:50 AM
Congratulations.

Now the boring stuff starts :)
Title: Re: Xanadu II Translation Development Blog
Post by: Gredler on February 01, 2016, 06:04:55 AM
ProMotion (http://www.cosmigo.com/promotion) is a great app and I'd highly recommend it to anyone ... it gets a lot of commercial use.

A new version was released in December, and the price was dropped to $60.

There's also a "free" edition that people can use.


Wow this looks awesome! Thanks for sharing! Is this something that I can wrangle into HuC?

IMHO ... writing major GUI tools requires a huge investment in time. It's usually better to use existing tools with a custom export/processing stage.

Even during the actual time of the 4th-gen machines, most development was done with 256-color editors (like dpaint) with the teams following the convention that the 256-colors represent 16-palettes of 16-colors.

Most decent editors offer "grid" movement of the cursor that you can set to something like 8x8 so that you can simulate tiles.


Danm, I know it's potentially viable to create a script combining image magic and photoshop batch actions to automate this somehow, but my coding skills are far inferior to the requirements to set it up.

Best I could try and manage is to create a good exporting tool for a single pcx with correct color indexes.

Tile assignment and subdivision is a whole other beast, but it should be possible in photoshop (esp considering the slice tool export options for web development)


IMHO colored fonts are best-done in photoshop so that you can use the huge supply of true-type fonts as a starting-point.

It's easy to reduce them down to 16-colors-or-less when they're done, and then you can remap them into specific palette indexes with grafx or promotion.

For single-color fonts, I just use "fony" (http://hukka.ncn.fi/?fony).


In the past we used tools such as this http://www.bmglyph.com/ to create font atlas's, but that was just what the office used, and there are a ton of similar tools out there to get a base atlas made, that can then be painted in photoshop once generated. Tools like this allow unique fonts to be generated across multiple type faces which is obviously very helpful for creating fonts for various languages, but also has a great application for creating a base for low res sprite fonts.
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on February 01, 2016, 06:11:04 AM
But, I don't like the cost of VB or VBA RAD software development packages/environments which is what enabled me to build it... There's quite a bit of a pro/con thing.
I had an issue with this recently as well and switched over to Lazarus IDE as a result. Very similar to VB or VB6 but far better in nearly every way so far. It's a free Delphi clone. Just though I should add incase you want to give it a shot.

Thanks man, I will! I was googling for alternative IDEs to Microsoft VC++ Express the other day with form building VB-style aspects. Probably you gotta pay for something good like that. The freeware route I guess just seems using resource hackers to lay out the form objects and then connect it up with your code to handle input manually and what not. How I built TOCFixer.

For single-color fonts, I just use "fony" (http://hukka.ncn.fi/?fony).

Dang, that is nice! Heck, that is what I was trying to build and wanted (way back when), pretty much.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on February 08, 2016, 03:19:31 PM
What's left are all the small graphical changes that need to be made (like the initial menu option in Xanadu 2), and then implementing a full variable-width-font (since I'm pretty confident, finally, that there should be enough memory left in code space to do that).

The fully-variable-width font is now working in both Xanadu 1 and 2.  :D

It's a good time to look back on the progress in the font replacement over the last few months, and compare how they look.

If you've got "irfanview" or some other simple way to flip back-and-forth between the downloaded screengrabs, then you'll get the best sense of exactly what the differences are.

The 1st picture is from the first batch of screens that I posted back in early November ...

http://www.pcenginefx.com/forums/index.php?topic=19968.msg435280#msg435280

This is using the quick-and-easy bi-width font hack, which makes each tile (the spacing between the letters) either 4-pixels or 8-pixels wide.

The letters themselves are drawn either 1-pixel, 6-pixels or 7-pixels wide.

It looks good, but there's an inconsistent gap between the letters ... mostly it's 2-pixels, but sometime it is 1-pixel or 3-pixels.

Xanadu 1 - Old BWF (6-pixel/1-pixel)

(http://farm6.staticflickr.com/5769/22265208403_e7b91406bc_o.png)

**********************

Eventually my training and my slightly OCD nature got the better of me and I couldn't stand the ugly inconsistency anymore, and so I modified the font.

This time, it's still using the 4-pixel or 8-pixel tile size, but the letters themselves are all either drawn 3-pixels or 7-pixels wide.

This gives a 100% consistent 1-pixel gap between the letters, at the cost of having some letters look a little too wide.

Honestly, I wouldn't be embarrassed at all to ship the game with this font.

Xanadu 1 - Old BWF (7-pixel/3-pixel)

(http://farm2.staticflickr.com/1549/24793522101_11a34b34bb_o.png)

**********************

But it was always the goal to implement a variable-width-font if there was enough memory free for the extra code and data (the table of widths of each glyph).

With a VWF, I get to go back to 6-pixel wide letters, and also get to have a consistent 2-pixel gap between the letters.

That 2-pixel gap is absolutely necessary to make Falcom's "bold-and-outlined" effect look good, but it also helps to make the font a little easier on the eyes by making the distinction between each letter just that little bit clearer.

Here's how that looks, and I hope that you'll all agree that it is pretty nice ...

Xanadu 1 - New VWF

(http://farm2.staticflickr.com/1566/24519306129_6fa9034a93_o.png)
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on February 09, 2016, 04:34:22 AM
The new VWF screenshot is quite nice. I did not mind one screenful of the compressed old BWF (1 pixel gap), but reading in general will be much more pleasant with new VWF.

:)


Until you change it again, to incorporate JUMBO-sized letters for the first character of every dialogue box.

Ha!
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on February 09, 2016, 08:09:47 AM
Until you change it again, to incorporate JUMBO-sized letters for the first character of every dialogue box.

Hahaha, yep, I do like to make iterative "improvements"!  :wink:

There's no chance of putting in a medieval-style huge first letter (but it would be kind-of-cool), but I am a little tempted to see if I can get the speaker's name in bold ... just to see what it would look like.  :-k

****************

In the meantime, I fixed a bug in Falcom's bold-and-outline code where it missed some pixels in the outline.

Here's the original (look at the very top and bottom line of each character's outline) ...

(http://farm2.staticflickr.com/1479/24555639629_b472b4067b_o.png)


And here's the fixed version ...

(http://farm2.staticflickr.com/1580/24829932921_26785c7305_o.png)
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on February 09, 2016, 10:16:37 AM
Easier to read! A few pixels = make a difference. :)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on February 09, 2016, 11:32:53 AM
Easier to read! A few pixels = make a difference. :)

Hahaha ... I couldn't have asked for a better quote to lead in to this next post!  :wink:

Once you've got the capability to do a variable-width-font and can start drawing any glyph on any pixel boundary, it opens up the possiblity to implement the next visual improvement in font drawing ... and that is "kerning" (https://en.wikipedia.org/wiki/Kerning).

For those that don't know what that is ... it's just the name for adjusting the spacing between particular pairs of glyphs in order to make them more readable.


The spacing between letters can make things look unprofessional, and harder to read ...

(http://farm2.staticflickr.com/1605/24558540849_4ecfea1b3a_o.jpg)


Or, when done really badly, it can even totally change the desired meaning of a sentence ...

(http://farm2.staticflickr.com/1491/24808216512_aed39d3ce7_o.jpg)


******************************

So, where does that take us in the Xanadu games?

Well, even at the low resolution of the 4th-generation consoles, there are still some particular combinations of English characters that can benefit from a little tweaking in order to make each word distinct and easy-to-read.

At this resolution, it's a pretty subtle effect, but it really is one of those little details that marks a product as "AAA".

And the thing is, it is actually pretty easy to implement from a programming POV.

All the hard work is done in the script compiler.

It has to look at each English string that is inserted into the game, and identify the pairs of characters that need an adjustment, and then write an encoded pixel-offset value into the output data just after the 1st character and just before the 2nd character.

All that the game code has to do is to draw the string as normal, and then, when it gets to one of these specially-encoded-offsets, it just adjusts the drawing position as requested, and then immediately continues drawing the next glyph.

In most cases you just encode a +/- 7 offset like this as the normally-unused ASCII codes $10-$1F, but since Falcom are using all the codes from $00-$1F for their script interpreter, I've just encoded the offset as $F0-$FF instead.

Here are a couple of examples of the results.

This is another one of those examples where it is easier to see if you download the images and can then flip back-and-forth between them to see the difference.

Everyone should be able to quickly see the change in the "Te" and "Ta" below, but are you sharp enough to see the other changes without downloading the pictures?  :wink:


Xanadu 1 - VWF without kerning

(http://farm2.staticflickr.com/1665/24296404063_011d56d3ba_o.png)


Xanadu 1 - VWF with kerning

(http://farm2.staticflickr.com/1472/24627799420_4014152ec6_o.png)


Xanadu 2 - VWF without kerning

(http://farm2.staticflickr.com/1467/24896975396_ed43f0ae7e_o.png)


Xanadu 2 - VWF with kerning

(http://farm2.staticflickr.com/1589/24296404153_24b8b89ed3_o.png)
Title: Re: Xanadu II Translation Development Blog
Post by: seieienbu on February 09, 2016, 05:40:39 PM
It's a shame that this much perfectionism and attention to detail didn't make it into more released titles.
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on February 09, 2016, 11:21:42 PM

It's a shame that this much perfectionism and attention to detail didn't make it into more released titles.

Le truth.

Le kerning.

Le typography.
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on February 10, 2016, 02:07:54 AM
Wowser, elmer really is one of the rarest talents to come along and dedicate some time for PCE hacking! Besides Bonknuts, I never saw anybody else at this level!
Title: Re: Xanadu II Translation Development Blog
Post by: ginoscope on February 11, 2016, 12:22:00 PM
It's a shame that this much perfectionism and attention to detail didn't make it into more released titles.

Exactly what I was thinking where was Elmer when we got some of those questionable translations in the 1990s lol.  Really enjoy reading the blog updates.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on February 12, 2016, 04:03:52 AM
Le typography.

Le Definitely!  :wink:

I'm not a Graphic Designer myself, but I was lucky enough to have a teacher at school who loved the art of printing, and so had the opportunity to learn to "set" real metal type on an ancient Heidelberg printing press, and to see the wonderful old machine drag paper out of a hopper and thump the platen down on the freshly-inked type.

It one of those sight/sound/smell memories that you never forget.  :)

And so decades later, I end up being one of the few programmers on the planet to have his own personal fully-licensed-and-registered copy of the complete Adobe Font Folio collection, and I go around trying to make sure that the font printing looks as-good-as-possible in anything that I work on.

Just one of those little quirks-of-fate!


It's a shame that this much perfectionism and attention to detail didn't make it into more released titles.

Time and money are such an important factor in professional game development.

When it comes to NEC/Hudson translating Japanese games for the North American market, they probably didn't have a lot of either.

Even if they got the source-code to each of the games that they wanted to translate ... then they'd still have to spend a lot of time figuring out how to modify it to get an English font working.

And if the original Japanese developer did the translation work themselves, then you're probably dealing with guys that don't have any background in Western typography, and are just trying to do the best that they can in a limited time.

I know that when I've worked on translations into Japanese, I'm just looking at chicken-scratchings on the screen, and I'm totally dependent upon a translator (probably from a 3rd company, and who just wants to get home on time) to look at things.

Only the really, really, really high-profile titles are going to get the kind of love that you can see that SamIAm and I are trying to apply to the Xanadu games ... and that we only have the luxury of spending this much time on because we're not doing it as a "paying job".


Wowser, elmer really is one of the rarest talents to come along and dedicate some time for PCE hacking!

Thanks for the kind words ... but I hope that I'm showing that at-least-some of this stuff isn't too difficult for any programmer to do ... if they make up their mind to do it.

It's more a case of the knowledge that it can be done, together with the will to spend the time to do it, and less about raw talent.

I hope that I'm helping to explain why custom tools can make such a difference to the end-result.

Not every translation project needs a programmer ... we've just had a wonderful example of that with toktogul's magnificent work on "The Lost Sunheart", and his current work on "Daichi Kun Crisis".

But when a programmer is involved, I'd pretty-much-always advocate for developing some quick-and-dirty custom tools over using pre-made do-everything "hacker" tools, such as EsperKnight's use of "Atlas".

IMHO, his insistence on using that tool ended up totally masking what was really going on inside Falcom's script code, and so left him with no clear idea of why things started breaking when he tried to re-insert English text, and how to fix the problem.  :-k

Well ... that, and the fact that it wouldn't have mattered anyway because he'd have run out-of-memory.


Exactly what I was thinking where was Elmer when we got some of those questionable translations in the 1990s lol.

Hahaha ... I was busy working-for-a-living developing original games, including translating a couple of them into Japanese.  :wink:
Title: Re: Xanadu II Translation Development Blog
Post by: ccovell on February 13, 2016, 11:02:39 AM
...I go around trying to make sure that the font printing looks as-good-as-possible in anything that I work on.

Oh. 

On that note, Elmer.  Sorry, I forgot to tell you that I had already fully translated Xanadu.  The patch is up on RomHacking.net now!  Today!

Preview:
(http://www.chrismcovell.com/images/xanadutrans.gif)

;-D
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on February 14, 2016, 06:19:38 AM
Damn ... you mean that I spent all this time over these months only to be pipped-to-the-post at the last minute?  :shock:

Hahaha ... beautiful font work, though ... you have my total admiration!  :clap:

It's still easier to read than what I get out of "Google Translate" when I'm trying to understand the PC-FX developer documents!  :wink:

Title: Xanadu II Translation Development Blog
Post by: esteban on February 14, 2016, 10:46:41 AM
(http://www.chrismcovell.com/images/xanadutrans.gif)


You can punch me, but that font could work with proper kerning/leading/tracking/smoking/cracking.

:)

I'm serious.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on February 15, 2016, 03:59:31 AM
You can punch me, but that font could work with proper kerning/leading/tracking/smoking/cracking.

:)

I'm serious.

I agree, there's definitely something nice about an anti-aliased font ... in the right circumstances.  :)

If you look at Zeroigar, you'll see that I used one for the subtitle "Level Name" screens to try to match the one that SamIAm baked into the video subtitles.

But it takes a whole lot of palette entries to get those gradient-colors for the edges, and we just don't have enough unused-palette-entries available here in Xanadu (or in the in-game screens in Zeroigar).

Plus ... I often don't really like anti-aliasing on "thin" fonts ... it's just too hard to be consistent about the stem widths, and it all starts to look very blurry.

A nice-and-crappy composite TV signal will smooth out the whole thing and actually make it look pretty-damned-good, but today we're often dealing with higher-resolution displays or maybe we watch the game on an LCD output, both of which make things "too" sharp for a low-resolution 256-wide signal.

Finally, there's the issue of finding the extra memory for the font ... basically doubling or tripling it's size.

Perhaps I'm being too negative about it ... but then-again I'm a guy that still switches off the blurry anti-aliased fonts in any programmer's-editor and just uses a nice-and-clean bitmap font instead.

In fact I have my own bitmap font that I install into Windows to replace the ugly Microsoft ones.  :wink:
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on February 15, 2016, 09:52:03 AM
But when a programmer is involved, I'd pretty-much-always advocate for developing some quick-and-dirty custom tools over using pre-made do-everything "hacker" tools, such as EsperKnight's use of "Atlas".

IMHO, his insistence on using that tool ended up totally masking what was really going on inside Falcom's script code, and so left him with no clear idea of why things started breaking when he tried to re-insert English text, and how to fix the problem.  :-k

Atlas ? Is that that translation software used by professionals in the industry ? I had a translator once for Falcom's Zwei! PC game from Finland or Sweden (forget) who used that. He did eventually translate the script I provided him, but English wasn't his native language and by the time it happened years later, I just didn't see a lot of point, not just due to burn out... But yeah, I heard of this if we're thinking of the same thing.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on February 15, 2016, 10:15:39 AM
Atlas ? Is that that translation software used by professionals in the industry ? I had a translator once for Falcom's Zwei! PC game from Finland or Sweden (forget) who used that.

NO, it is most-definitely NOT a professional-level solution.  :wink:

It's a hacking scene tool that lets you insert stuff into a file image (i.e. a ROM or an ISO).

http://www.romhacking.net/utilities/224/

Even on romhacking.net's download page it says "Level: Beginner".

I'm sure that people can get it to do some reasonably decent results if the game's text is stored simply enough, and you're willing to put up with the ugly syntax.

Whenever I've done translations (i.e. lots of EFIGS, and some Japanese), both the publishers and the translation companies were happiest with Excel files.

Then it's up to the developer to get the translated text out of the excel file and into their game source/data ... preferably in some automated fashion.
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on February 15, 2016, 12:15:23 PM
NO, it is most-definitely NOT a professional-level solution.  :wink:

It's a hacking scene tool that lets you insert stuff into a file image (i.e. a ROM or an ISO).

http://www.romhacking.net/utilities/224/

Ah, I see. It's a just generic command-line app to insert text back into the game.

EDIT: Just to check that my memory isn't fading, this must be what that translator would use for his translation business:

https://www.fujitsu.com/global/products/software/packaged-software/translation/atlas/

He talked about an interesting feature it has, this "translation memory" which he said helped him a lot. And I found his website again:

http://www.loekalization.com/

That's right, he was from the Netherlands! And his tag, lol, "Don't localize. Loekalize."

Kinda interesting, one can get an idea of what professional translators charge videogame companies for things like manual translations. He once wanted to license "Legend of Heroes VI: First Chapter" from Falcom way before those bozos at X.X.XSEED Games (http://www.xseedgames.com/) came along, even had saki with somebody from Falcom on his visit to Japan, but the deal fell through even though it got as far as Falcom giving him hundreds of script files to get started on it.

Quote
Whenever I've done translations (i.e. lots of EFIGS, and some Japanese), both the publishers and the translation companies were happiest with Excel files.

Then it's up to the developer to get the translated text out of the excel file and into their game source/data ... preferably in some automated fashion.

Yeah, the "primitive" way to do it (I've seen Falcom's EXCEL files from X.X.XSEED), or just straight text files... I always wanted to provide something better when I got started that would put my name on the map, but it's a lot of work/planning for something extensible, universal, etc... It would still wind up being a hackish solution even though I thought I was better than that... :/ I would just tell myself at the end, well, I produced an English patch with everybody involved at least, I still got the job done for whatever project (most cases)...
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on February 17, 2016, 05:48:54 AM
Whenever I've done translations (i.e. lots of EFIGS, and some Japanese), both the publishers and the translation companies were happiest with Excel files.

Then it's up to the developer to get the translated text out of the excel file and into their game source/data ... preferably in some automated fashion.

Yeah, the "primitive" way to do it (I've seen Falcom's EXCEL files from X.X.XSEED), or just straight text files... I always wanted to provide something better (http://s5.postimg.org/majzld4o7/Trans_Station_Emerald_Dragon01.png) when I got started that would put my name on the map, but it's a lot of work/planning for something extensible, universal, etc... It would still wind up being a hackish solution even though I thought I was better than that... :/ I would just tell myself at the end, well, I produced an English patch with everybody involved at least, I still got the job done for whatever project (most cases)...

Excel (or any spreadsheet) isn't that bad a tool to use if you're willing to do some work on producing tools to surround it.

Producers and translators generally don't want to deal with game-code, or with trying to find strings in the middle script files that keep on changing.

Post-mortem fan translations are a very different beast to still-in-development, got-to-simultaneously-ship-in-5-or-more-languages translations.

It's easy to import/export an Excel spreadsheet into a text format (I used it's HTML import/export capability), and once you've got the ability to read/process/re-generate a translation spreadsheet at any time, then you can put it under source-control, and have it automagically color-code and put any "changed" text strings at the top of the file so that you're not wasting the translator's time.

As you've already found ... it's easy to "tag" and process text strings just by using CRC32 values, and it's easy to parse C source files (or LUA, or whatever script language you use) to export/import text strings into your game's desired format.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on March 11, 2016, 08:10:23 AM
Sometimes you spend ages writing something, and the end result is so-darned-subtle that you can hardly notice where all the effort went!  ](*,)


Xanadu 2 text without drop-shadow:

(http://farm2.staticflickr.com/1554/25405530200_4b4e1a3f4a_o.png)


Xanadu 2 text with drop-shadow:

(http://farm2.staticflickr.com/1559/25075855754_7b9d45c754_o.png)


The drop-shadow can be made more obvious by putting it in a darker color, but since Falcom never planned for one in the game ... there isn't a consistent palette entry available that works.

Perhaps it's for the best that it doesn't scream-out its presence ... I'd have felt bad if it looked out-of-place.

As it is ... it just makes things just-that-tiny-little-bit more readable.

EDIT:

I just couldn't leave it alone! Here's another version with a slight improvement ...

(http://farm2.staticflickr.com/1712/25615558721_3630ff0aa6_o.png)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on March 11, 2016, 11:28:00 AM
OTOH, the drop-shadow really does help the text in Xanadu 2's Weapon Shops, particularly when using a condensed font for the item descriptions.

Hopefully everyone will like how this looks!


Xanadu 2 Weapon Shop with drop-shadow and condensed font ...

(http://farm2.staticflickr.com/1588/25591284412_06a9c8d68a_o.png)
Title: Re: Xanadu II Translation Development Blog
Post by: Black Tiger on March 11, 2016, 11:31:32 AM
The drop shadow is definitely necessary and works great. :)
Title: Re: Xanadu II Translation Development Blog
Post by: geise on March 11, 2016, 12:23:44 PM
It really does look better.  You have no idea how much I appreciate the work you and everyone are putting in.
Title: Re: Xanadu II Translation Development Blog
Post by: dejan07 on March 12, 2016, 02:21:10 AM
I can notice the slight differences in fonts you showed us!
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on March 12, 2016, 06:28:10 AM
I think the font should be translucent + no drop shadow. Thank you.
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on March 12, 2016, 03:58:07 PM
It's easy to import/export an Excel spreadsheet into a text format (I used it's HTML import/export capability), and once you've got the ability to read/process/re-generate a translation spreadsheet at any time, then you can put it under source-control, and have it automagically color-code and put any "changed" text strings at the top of the file so that you're not wasting the translator's time.

Oh, that's pretty useful, color-coding changed/updated strings, I didn't know about. I used to be pretty good with Corel's spreadsheet app in their WordPerfect suite, till Microsoft took things over. But you gotta hand it to MS, the idea of VBA/Visual Basic for Applications integration with Word, Excel, Access, etc. is very powerful. Comes in handy very much.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on March 16, 2016, 08:10:44 AM
I think the font should be translucent + no drop shadow. Thank you.

Now that's out-of-the-box thinking for you!  :wink:


Oh, that's pretty useful, color-coding changed/updated strings, I didn't know about. I used to be pretty good with Corel's spreadsheet app in their WordPerfect suite, till Microsoft took things over. But you gotta hand it to MS, the idea of VBA/Visual Basic for Applications integration with Word, Excel, Access, etc. is very powerful. Comes in handy very much.

You can do some pretty-darned-amazing stuff with VBScript, I've definitely been impressed with what Microsoft created there.

I'm much-less impressed with their current efforts to shoe-horn megabytes of .NET runtime into everything.  :roll:
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on March 16, 2016, 08:16:51 AM
SamIAm has found that Xanadu 2's English font can be a bit difficult to read on a TV because the background pattern is a bit too bright.

So I tracked-down where Falcom are storing their palettes, and did a bit tweaking. That also let me make sure that the drop-shadow is drawn in the darkest background color.

What do folks think?


Xanadu 2 Message Box - Normal

(http://farm2.staticflickr.com/1682/25774389706_da65d850da_o.png)


Xanadu 2 Message Box - High Contrast

(http://farm2.staticflickr.com/1714/25499793250_f6b8338bfb_o.png)


Xanadu 2 Pause Menu - Normal

(http://farm2.staticflickr.com/1660/25800473075_736bdaeae5_o.png)


Xanadu 2 Pause Menu - High Contrast

(http://farm2.staticflickr.com/1692/25173843413_996ddd9168_o.png)
Title: Re: Xanadu II Translation Development Blog
Post by: Necromancer on March 16, 2016, 08:50:15 AM
The text definitely pops out more, but I can't say the original is that hard to read.
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on March 16, 2016, 09:20:31 AM
I like the high-contrast versions, especially because I'll be playing on an old CRT. :)
Title: Re: Xanadu II Translation Development Blog
Post by: Gredler on March 16, 2016, 09:39:03 AM
I really like the changes, it makes it much easier on my eyes
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on March 16, 2016, 11:09:02 AM
Wonderful!

When I load up Mednafen on my laptop and do some testing there, the original colors are never a problem. If you're using real hardware with a composite video connection, the blues are softened and blended somewhat, and again, it's not a big deal. But if you're using an RGB modded system and a CRT, the background pattern is harsh. It kind of reminds me of old TV static. The brightest color in the blue palette especially can really make some things hard to look at depending on what letters fall where.

This will definitely be an improvement. I can't wait to try it! Hooray, elmer!
Title: Re: Xanadu II Translation Development Blog
Post by: Johnpv on March 16, 2016, 12:15:11 PM
I REALLY dig the high contrast version.  To me it just pops so much more.
Title: Re: Xanadu II Translation Development Blog
Post by: seieienbu on March 16, 2016, 12:33:19 PM
Both look fine from here but if one looks better on a CRT then by all means go with that one!
Title: Re: Xanadu II Translation Development Blog
Post by: Black Tiger on March 16, 2016, 02:10:29 PM
Here's a version that balances the color of the original and is darker overall, while preserving the original artwork:

(http://superpcenginegrafx.net/misc/loxiibrc1b.png)

(http://farm2.staticflickr.com/1682/25774389706_da65d850da_o.png)(http://farm2.staticflickr.com/1714/25499793250_f6b8338bfb_o.png)


I didn't adjust the text and drop shadow colors, so it doesn't show how readable it could be. Using text colored similar to that high contrast pic should be readable using various video connections.


EDIT: here's the balanced color version shifted down a shade darker:

(http://superpcenginegrafx.net/misc/loxiibrc1c.png)

Title: Re: Xanadu II Translation Development Blog
Post by: elmer on March 16, 2016, 02:53:49 PM
I didn't actually change the text colors at all ... just the background colors.

And the thing is, I don't get full freedom over what color is used for what.

The drop-shadow has to be color 8, because that's the only one that's a dark background color in all the different palettes (in-game, pause-menu, and Weapon Shop), and the code to draw the drop-shadow has to use a consistent color.

So, for the in-game palette, all I did was to change ...

          G R B
color 8 - 1 1 2 - background pattern color 1 (also drop-shadow)
color a - 3 0 4 - background pattern color 4 (highlight)
color c - 2 1 3 - background pattern color 3
color e - 1 1 1 - background pattern color 2


to ...

          G R B
color 8 - 0 0 1 - background pattern color 1 (also drop-shadow)
color a - 2 0 3 - background pattern color 4 (highlight)
color c - 1 0 2 - background pattern color 3
color e - 0 0 2 - background pattern color 2


I'm open to other color suggestions, but I'm pretty limited on how much I can change.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on March 16, 2016, 03:25:43 PM
Quote
So, for the in-game palette, all I did was to change ...

What you've done seems very reasonable. I'm sure it will look good.

I'm just happy that this can work at all. Thanks so much for looking into it! :D

This is seriously going to be one of those things where once you try it, you won't be able to go back.

Xanadu 1 looks great in RGB, but I'm starting to get the feeling that Xanadu 2 might be better overall in composite, at least on a CRT. I think the artists made a lot of decisions both to accommodate and to take advantage of the PCE's composite signal quirks. I haven't honestly seen that much of it in RGB, though, so I'll wait to pass full judgement.

Thanks for the screenshots, Black Tiger. :)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on May 05, 2016, 08:18:19 AM
There's not been anything interesting to "blog" about on the Xanadu translations for a while, but SamIAm finally reported a problem that needed to be fixed.

The problem was in Xanadu 2 when you get a message box that prompts you to make a choice ... the highlighting was totally messed up.

Figuring out what was going on showed that Falcom are doing something really quite cunning to get those options dialogs to work.


Here's what was going wrong ...

(http://farm8.staticflickr.com/7412/26209076914_c83d190715_o.png)


The game wasn't crashing, so it obviously wasn't anything going too horribly wrong ... but WTF???

This is the piece of script that SamIAm has translated into English ...

.scriptA6BA:
  _enable_8x12_font()
  _set_pen_then_call_then_eol( orange, .scriptB4BE )
  _disable_8x12_font()
  [Lord Areios, I can send you to anywhere from the Prologue to Chapter Three.]
  _wait_for_keypress_then_clear()

  [What will you do?]*
  _choose_option_then_clear( $01, $01 )
  [ Continue]
  _next_option()
  [ Never mind]
  _end_of_options()
  _conditional_jump( $c9, $f0, $02, $9c63, .scriptA8BB )
  _conditional_jump( $c9, $f0, $01, $9c63, .scriptA72C )



Well, that looks simple, and there's nothing obviously wrong with it, so it was time to actually take a look at the code that process those options boxes.

That's something that I'd been hoping that I wouldn't ever need to do, because I just figured out that the code was doing some smart stuff behind-the-scenes to remember where each string in the options was, and to just redraw each string when the highlight changes.

Once I found the code (which just took setting a VRAM-write breakpoint in Mednafen), it looked a bit simpler that I expected.

But it was quickly obvious that is was using some hard-coded coordinates, and that it was yet-another thing that my shift to using a VWF had broken.  #-o


Changing the coordinates from the original 4-pixel increments to 1-pixel increments resulted in ...

(http://farm8.staticflickr.com/7651/26541867620_794e14fcf2_o.png)


Definitely better ... but WTF is going on with all of those little dots?

Looking deeper into the code, it turns out that Falcom aren't redrawing the text at all to change the highlighted option, they are just doing a bunch of simple writes to VRAM.

Now the entire message box is made up of a bunch of 32x64 pixel sprites, and they call these routines to change 2 sprite-lines at-a-time of the whole 224x14-pixel block of a text line.

Y = vram-addr-lo
A = vram-addr-hi

set_hilite_2lines: tya
                   clc
                   adc  #$10
                   sta  self_modify+1
                   sei
                   st0  #VDC_MAWR
                   sty  video_data_l
                   sta  video_data_h
                   st0  #VDC_MARR
self_modify:       st1  #$nn
                   sta  video_data_h
                   cli
                   st0  #VDC_DATA
                   cla
                   tsb  video_data_l
                   tsb  video_data_h
                   tsb  video_data_l
                   tsb  video_data_h
                   rts


Y = vram-addr-lo
A = vram-addr-hi

set_normal_2lines: lda  $3e
                   sei
                   st0  #VDC_MAWR
                   sty  video_data_l
                   sta  video_data_h
                   cli
                   st0  #VDC_DATA
                   st1  #$00
                   st2  #$00
                   st1  #$00
                   st2  #$00
                   tya
                   clc
                   adc  #$10
                   tay
                   rts



Looking at that left me totally shocked ... I couldn't see how-on-Earth that code could change the text from cyan to white, and then change it back again?

So I had to seriously think about what that code was doing.

When highlighting an option, it's doing a really neat trick with the VRAM and the TSB instruction to copy the 2nd bitplane of the sprite data into the 1st bitplane of the sprite data.


Now saying that is one thing ... but it makes no real sense until you actually look at the colors that everything is drawn in ...

Color: 6 -> 7 (0110 -> 0111)   Effect: ------   Usage: text cyan
Color: 7 -> 7 (0111 -> 0111)   Effect: hilite   Usage: text white
Color: 8 -> 8 (1000 -> 1000)   Effect: hilite   Usage: background pattern 1
Color: 9 -> 9 (1001 -> 1000)   Effect: -LOST-   Usage: box border lite color
Color: A -> B (1010 -> 1011)   Effect: ------   Usage: background pattern 2
Color: B -> B (1011 -> 1011)   Effect: hilite   Usage: background pattern 2
Color: C -> C (1100 -> 1100)   Effect: hilite   Usage: background pattern 3
Color: D -> D (1101 -> 1100)   Effect: -LOST-   Usage: box border dark color
Color: E -> F (1110 -> 1111)   Effect: ------   Usage: background pattern 4
Color: F -> F (1111 -> 1111)   Effect: hilite   Usage: background pattern 4


When you look at it that way, you can see that copying bit-1 to bit-0 changes the text from cyan to white, and it changes the background colors, too ... but since some of the background colors are duplicated in the palette, you don't actually see the background change on the screen.


When setting an option back to normal, it's just setting the 1st bitplane of the sprite data to zero.

Huh??? How can that work if it's so different to what it does to set the highlight in the first place???


Once again, it makes no real sense until you actually look at the colors that everything is drawn in ...

Color: 6 -> 6 (0110 -> 0110)   Effect: normal   Usage: text cyan
Color: 7 -> 6 (0111 -> 0110)   Effect: ------   Usage: text white
Color: 8 -> 8 (1000 -> 1000)   Effect: normal   Usage: background pattern 1
Color: 9 -> 8 (1001 -> 1000)   Effect: -LOST-   Usage: box border lite color
Color: A -> A (1010 -> 1010)   Effect: normal   Usage: background pattern 2
Color: B -> A (1011 -> 1010)   Effect: ------   Usage: background pattern 2
Color: C -> C (1100 -> 1100)   Effect: normal   Usage: background pattern 3
Color: D -> C (1101 -> 1100)   Effect: -LOST-   Usage: box border dark color
Color: E -> E (1110 -> 1110)   Effect: normal   Usage: background pattern 4
Color: F -> E (1111 -> 1110)   Effect: ------   Usage: background pattern 4


When you look at it that way, you can see that clearing bit-0 changes the text from white to cyan, and it changes the background colors, too ... but, again, since some of the background colors are duplicated in the palette, you don't actually see the background change on the screen.

Now that's really, really cunning!  8)

A clever organization of the color palette and the colors that are used in the message box allows Falcom to change the highlight in the options dialog without caring what the text actually says.

But wait ... why does that mean that those dots appear?

Well, that's because we changed the background colors to make them darker so that the text stands out more.

But I didn't realize that those "duplicate" colors needed to be changed, too, so I left them at their original colors, and that's what those dots are.  :oops:


Once I figured that out, I just set the "duplicate" colors in the palette to our new darker colors, and ...

(http://farm8.staticflickr.com/7270/26541867580_7543896e39_o.png)


The problem is fixed, but there's one more question ... if you look at the two color tables, then you can see that changing to hilite or a normal both change the colors that the border of the message box is drawn in.

So the question is, why don't they?

The screen is 256-pixels wide, and the message box is 248-pixels wide, and the code that's shown above changes the background in 16-pixel wide strips. That should guarantee that the right-hand-edge of the message box is overwritten, just like the left-hand-edge was in SamIAm's original report of the bug.

But in reality, the last screenshot shows that it doesn't get destroyed.

Well, it turns out that Falcom must have had the same problem, and that they came up with another cunning solution.

They shifted the entire message box graphics over by a few pixels in VRAM, and so the right-hand-edge of the visible message box is actually at the left-hand-edge of a mostly-blank and off-screen sprite.

That means that the highlighting code doesn't actually overwrite that sprite at all ... just everything right up to the edge of it.

Once more, that's a really cunning solution to the problem.

Those Falcom guys really deserve a few beers, I wonder if they celebrate Cinco De Mayo?  :wink:


Anyway, here's one last screenshot of the everything working properly ...

(http://farm8.staticflickr.com/7336/26720756472_4c7566b9b1_o.png)

Title: Re: Xanadu II Translation Development Blog
Post by: Black Tiger on May 05, 2016, 09:29:30 AM
As much as it sucks that more language heavy games didn't make it over here bitd, I really am thankful that the LoX games didn't. Just so that things have played out the way they have and these guys are delivering a localization far beyond the quality of anything else at the time they came out.

Even if you gave me the choice back then, if I'd been informed of difference in quality, I'd have been happy to wait 20 years.

I'd of course still have had as much fun as I have with the Japanese versions in the meantime. :)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on May 09, 2016, 09:17:44 AM
Latest update : I've started extracting the graphics that we need to change, and converting them into editable PNG files.

(http://farm8.staticflickr.com/7535/26646270250_faa45bb0c5.jpg)

(http://farm8.staticflickr.com/7529/26315188503_61c61f1c62_m.jpg)

(http://farm8.staticflickr.com/7533/26919288885_be6befba55_m.jpg)
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 09, 2016, 06:33:19 PM
Yay! Nice work!  :D
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on May 10, 2016, 06:08:55 PM
And here are the first of the English graphics for Xanadu 1 actually working in the game ...

(http://farm8.staticflickr.com/7529/26352099384_6bac57baeb.jpg)

(http://farm8.staticflickr.com/7594/26863301112_c1f9b9aa9d.jpg)

(http://farm8.staticflickr.com/7120/26352099434_75914bf207.jpg)

I'm sure that things will get tweaked a bit more before we're ready to release everything, but I think that it's looking pretty decent.

Figuring out how to fix the centering of the options on the Main Menu took almost as long figuring out which of the 5000+ data chunks actually contained the graphics themselves!  :roll:

<EDIT>

I couldn't resist a bit more tweaking!
Title: Re: Xanadu II Translation Development Blog
Post by: SignOfZeta on May 10, 2016, 06:42:57 PM
Man this is AWESOME!!!
Title: Re: Xanadu II Translation Development Blog
Post by: Phase on May 10, 2016, 08:30:24 PM
Looking good, can't wait to play these.  8)
Title: Re: Xanadu II Translation Development Blog
Post by: Johnpv on May 10, 2016, 11:25:18 PM
Looking great!
Title: Re: Xanadu II Translation Development Blog
Post by: LentFilms on May 11, 2016, 01:40:45 AM
Really amazing to see all those graphics in sexy English! Keep up the awesome work guys!
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on May 11, 2016, 08:59:25 AM
I updated my previous post with some new screengrabs.

Black Tiger's excellent English logo is now recolored for Xanadu 1 and has been inserted into the game's Opening Visual.

I've also tweaked the other graphics a bit ... pure upper case just looks too much like "shouting".  :wink:

Apart from the Credits Roll, I think that's all of the text-in-graphics for Xanadu 1 ... and the credits can wait for a while.

So on to Xanadu 2.  :)
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on May 11, 2016, 09:33:27 AM
Fantastic progress. :)
Title: Re: Xanadu II Translation Development Blog
Post by: seieienbu on May 11, 2016, 11:11:49 AM


(http://farm8.staticflickr.com/7120/26352099434_75914bf207.jpg)


I always found the game's title a bit funny.  It is clearly titled "The Legend of Xanadu" in English.  However, right below that on the cover and next to it on the spine is Japanese text reading "Kaze no Densetsu Xanadu" or something like "The Winds of Legend of Xanadu," "The Wind's Legend Xanadu," or maybe even "The Legendary Winds of Xanadu."

Maybe SamIAm can tell me what's actually going on there?

...seriously though, this is looking great.
Title: Re: Xanadu II Translation Development Blog
Post by: ccovell on May 11, 2016, 11:55:58 AM
"Kaze no Densetsu" actually means "Legend of the Wind" (literally), not "wind of legend" or "legendary".  It's a point I've seen translators mess up a few times.

"Densetsu no..." means "legendary...".  Word order is important, otherwise the possessor becomes the possessed.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 11, 2016, 12:52:10 PM
This is one of those things that elmer and I have talked about briefly but never come to any decision on because it's going to be a pain in the butt.

Title: Re: Xanadu II Translation Development Blog
Post by: seieienbu on May 11, 2016, 01:13:30 PM
"Kaze no Densetsu" actually means "Legend of the Wind" (literally), not "wind of legend" or "legendary".  It's a point I've seen translators mess up a few times.

"Densetsu no..." means "legendary...".  Word order is important, otherwise the possessor becomes the possessed.

It's been a while since college so I'm a bit rusty on my Japanese, but didn't the 'no' particle essentially mean the same as a possessive apostroph followed by an 's'?  For example, "Fred の本" would mean "Fred's Book."

That being the case, doesn't the legend now belong to the wind?
Title: Re: Xanadu II Translation Development Blog
Post by: ccovell on May 11, 2016, 01:28:43 PM
Yes, so "Wind's Legend" is technically correct... but totally nonstandard in English.  That's why most titles are written "(The) Legend of...".

Alternately, since from my experience Japanese titles (sentences, even) can be a nonsensical word salad and nobody bats an eye:

The 'kaze no' in "Kaze no Densetsu" could even be interpreted as an adjective, something like "Windy Legend".  Because after all, the main title and subtitle of the games are conflicting: which is it, the Legend of Xanadu, or the Legend of the Wind?  Or is it the Windy Legend of Xanadu?  Or is it the Legend of the Wind, named Xanadu?  You can see how wishy-washy dreamy titles written only for aesthetic purposes throws more logical-minded English people for a loop.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 11, 2016, 01:41:01 PM
ccovell is right. 風の伝説 is "Legend of the Wind" and 伝説の風 is "Legendary Winds".

Both appear in this game, by the way.

As for the possessive bit, you're just overthinking that a little, I think. "Of" is possessive, e.g. the flag of America is America's flag.

Is "The Legend of Paul Bunyan" the same as "Paul Bunyan's Legend"? Well, you could nitpick and say that the former is a legend about Paul Bunyan, while the latter might be construed as being a legend that Paul is literally carrying in his hands. But as far as の is concerned, it definitely has that "of" capacity. 風の谷のナウシカ is Nausicaä of the Valley of the Wind.

の is possessive, but it's flexible in ways you wouldn't think based on English grammar.
サムのバカ!means Sam, you're an idiot!  私の行った所 is "The place I went to" (My went-there place).
Title: Xanadu II Translation Development Blog
Post by: esteban on May 11, 2016, 03:40:19 PM

I always found the game's title a bit funny.  It is clearly titled "The Legend of Xanadu" in English.  However, right below that on the cover and next to it on the spine is Japanese text reading "Kaze no Densetsu Xanadu" or something like "The Winds of Legend of Xanadu," "The Wind's Legend Xanadu," or maybe even "The Legendary Winds of Xanadu."

Maybe SamIAm can tell me what's actually going on there?

...seriously though, this is looking great.


Not that I can add anything to this discussion, but this might be interesting. :)


My commentary on PCE advertisement:

Quote
POETIC & PROPHETIC, IF CLICHÉD: The text, in English, below the portrait of characters reads, "The wind of fate has blown, that same wind from a thousand years ago, and it has raised the veil of mystery."
Free of any grammatical errors, this prose adds an extra touch of elegance to the overall presentation. Yes, elegant—despite how hackneyed "the wind of fate" and the rest of it sounds, especially for an ARPG/RPG. When the overall presentation of an advertisement is exquisite, down to the finest details, I can forgive a cliché, or two. Or three.


You can see the ad here:

http://archives.tg-16.com/Gekkan_PC_Engine_1994_01.htm

There are other ads available, too, for the curious.

:)
Title: Re: Xanadu II Translation Development Blog
Post by: seieienbu on May 11, 2016, 04:13:41 PM
Thanks for the lesson gentlemen.  May the wind of fate aid this translation!
Title: Re: Xanadu II Translation Development Blog
Post by: spenoza on May 12, 2016, 09:30:31 AM
の is possessive, but it's flexible in ways you wouldn't think based on English grammar.
サムのバカ!means Sam, you're an idiot!  私の行った所 is "The place I went to" (My went-there place).

In the former case, though, it could be argued that the more literal "Sam's idiocy" also technically works, and that "Sam, you're an idiot!" is simply a typical case of recognizing that "Sam's idiocy" is not something someone would ever say in English.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 12, 2016, 12:25:22 PM
In the former case, though, it could be argued that the more literal "Sam's idiocy" also technically works, and that "Sam, you're an idiot!" is simply a typical case of recognizing that "Sam's idiocy" is not something someone would ever say in English.

Deep analysis of の when used in this sort of grammatical capacity (as a so-called particle) will always take you back to the possessive. The main point is, you shouldn't think of it purely in terms of equaling an apostrophy-s even if that does seem like the simplest approach, because eventually you will be doing more complicated mental gymnastics to understand it that way, not to mention to translate it.

Also, I think "Sam's idiocy!" is maybe going down the wrong path for that particular pattern. The noun following の pretty much always feels concrete ("idiot") not conceptual ("idiocy"). For example, how else could it be the subject of the sentence "Sam the idiot/That idiot Sam forgot his umbrella." (サムのバカが傘を忘れた。)? Saying that my idiocy forgot the umbrella doesn't really work, does it? The person saying it certainly isn't talking about my idiocy, per se. He's talking about me.

As another example, to pick on a childhood friend of mine, ピーターのやつ or ピーターのやろう means "That guy Peter" or even "That bastard Peter". Again, it's quite the contortion to put it into "Peter's bastardliness", right? Especially if it's going to be the subject of a sentence, right?

One way to think about this might be that it's adding a degree of clarity to the statements あのバカ or あのやろう - that idiot and that guy, respectively.

As a final example of の's flexibility, if you put the name on the end, you can do things like 料理人のマーク (Mark the chef) or 大工のジャック (Jack the carpenter), too.

In the end, while you can force yourself to interpret these through apostrophe-s, I don't know why you would want to. It's best to understand what "possessive" means in general, then take の as its own thing, IMHO.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on May 12, 2016, 12:45:19 PM
I always found the game's title a bit funny.  It is clearly titled "The Legend of Xanadu" in English.

Well ... you see ... err ... Houston, we've got a problem!

(http://farm8.staticflickr.com/7324/26373077654_a7ef5b44c4.jpg)

There's a 224-pixel width limit on the logo in Xanadu 1.

We're going to need Black Tiger to ride to the rescue if we want to fit "The" in as well!  #-o
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on May 12, 2016, 01:04:02 PM
Do you guys have an official announcement page yet?
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on May 12, 2016, 01:21:25 PM
Do you guys have an official announcement page yet?

I don't think that we've even talked about it!

I certainly don't want to run a website.
Title: Re: Xanadu II Translation Development Blog
Post by: Black Tiger on May 12, 2016, 01:24:27 PM
Although it was already impossible to pull of that English logo in the amount of space there is (it literally fills the width of the screen), while remaining extremely faithful to the style of the original, the way I looked at it when designing it is that this is not the official golden cursive title which already exists within the game. This logo is supposed to be different and LEGEND OF XANADU balances out the differences between the two and visually, the OF is already enough of a compromise to the style of the logo it's actually replacing. Just the same, the OF instills the same sense of symmetry you get from the Kanji/Katakana split of the original. But any use of THE would break the overall style in general.

It's supposed to be simpler and bolder, because of its specific uses in these games. Plus, this kind of variation is common in localizations of the time (It's simply ZELDA II for just one game because it works better in-game). Trying to shoehorn in THE just for the sake of technicality is only going to further compromise the style of the original logo as well as the English version.

I think that if a majority of people care more about the technicality of one of the game's Japanese names, the best way to do it would be to just use the existing Kaze no Densetsu logo as-is and add a single-pixel-width for underneath which plainly says, KAZE NO DENSETSU or THE LEGEND OF XANADU, or if most people are dying for a proper translation, then WINDY LEGEND or whichever is the most popular interpretation.
Title: Re: Xanadu II Translation Development Blog
Post by: ccovell on May 12, 2016, 04:53:55 PM
As another example, to pick on a childhood friend of mine, ピーターのやつ or ピーターのやろう means "That guy Peter" or even "That bastard Peter". Again, it's quite the contortion to put it into "Peter's bastardliness", right? Especially if it's going to be the subject of a sentence, right?

This is right.  Also more examples in Japanese: "Hitsuji no Shaun" and "Kuma no Pooh-san" is how Shaun the Sheep and Pooh-bear (Winnie the Pooh) are written.  So, the person/animal's name can be on the left or right side of the の and it seems to make no difference, really.  It's like "の" is used just as the BE verb is in English.  I bring up these examples everytime my students think の is a simple possessive when put into English.
Title: Re: Xanadu II Translation Development Blog
Post by: Dicer on May 13, 2016, 07:08:41 AM
I always found the game's title a bit funny.  It is clearly titled "The Legend of Xanadu" in English.

Well ... you see ... err ... Houston, we've got a problem!

(http://farm8.staticflickr.com/7324/26373077654_a7ef5b44c4.jpg)

There's a 224-pixel width limit on the logo in Xanadu 1.

We're going to need Black Tiger to ride to the rescue if we want to fit "The" in as well!  #-o

Made the big font smaller and place the "the" over the top...if such a thing is doable
Title: Re: Xanadu II Translation Development Blog
Post by: spenoza on May 13, 2016, 11:33:08 AM
Also, if you could fit Olivia Newton John in the background there that'd be swell.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on May 13, 2016, 05:15:46 PM
Made the big font smaller and place the "the" over the top...if such a thing is doable

The English glyphs in Black Tiger's logo are 14-17 pixels wide ... so it might be possible to make them 1 or 2 pixels narrower without totally screwing up the look of the logo ... but I'm speaking as a "programmer" there, and not an "artist".

There are very good reasons that you don't see programmer-art in games anymore ... we're generally pretty bad at it (I know that I am).

The problem is also a question of "what on Earth should the logo say?".

I've spent months hearing the game referred to as Legend of Xanadu, and I thought that was its name.

I only just got real physical copies of the game from SamIAm last week.

And it was a couple of days ago that we've really started talking about this whole "Kaze no Densetsu" being "The Legend of the Wind", and how that actually ties into the game itself.

I can put any logo in the game, as long as it fits in the physical space ... 224x32 pixels for Xanadu 1 and 256x32 pixels for Xanadu 2.

Falcom are doing a lot of "clever" stuff with hardcoded sprites to display those logos and to fade them in and out with the sparkly effect.

Trying to change the size of the logos, or to display a subtitle, would be an absolute nightmare.


This logo is supposed to be different and LEGEND OF XANADU balances out the differences between the two and visually, the OF is already enough of a compromise to the style of the logo it's actually replacing. Just the same, the OF instills the same sense of symmetry you get from the Kanji/Katakana split of the original. But any use of THE would break the overall style in general.

And this is the classic problem ... how to make the logo actually look good artistically while conveying the information that needs to be conveyed.

I like the way the the logo is balanced now, and it really does show that symmetry that Black Tiger is talking about.

But the question is, now that I have a better idea of how Falcom actually named the game ... is it "right"?

If I'm understanding things ... "Xanadu" and "The Legend of Xanadu" are basically just saying the the game is a part of the Xanadu/Dragon Slayer series.

The game's individual title is "Kaze no Densetsu", i.e. "The Legend of the Wind", and according to SamIAm, that's the name that it is primarily known by to Japanese gamers.

I suspect that this issue will be a topic of discussion for a while.  :-k
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 13, 2016, 05:56:36 PM
I've spent months hearing the game referred to as Legend of Xanadu, and I thought that was its name.

This is my bad, and I really am sorry. I should have caught this at an earlier stage.  :oops:

Quote
If I'm understanding things ... "Xanadu" and "The Legend of Xanadu" are basically just saying the the game is a part of the Xanadu/Dragon Slayer series.

That's probably the best way to interpret it. The word "Xanadu" does not appear in the game script once.

As a whole, the Xanadu/Dragon Slayer series is/are the most disjointed I've ever seen.

http://www.hardcoregaming101.net/dragonslayer/dragonslayer.htm
http://www.hardcoregaming101.net/xanadu/xanadu.htm

So, the original Xanadu is the second game in the loosely-connected Dragon Slayer series, and every main entry in the Dragon Slayer series got its own loosely-connected spin-offs. The Legend of Xanadu on PCE is supposed to be connected to the original Xanadu and yet also be Dragon Slayer VIII somehow...and it also doesn't have any characters or locations in common with the other games; only the sword with the name "Dragon Slayer".

It's a mess.

Quote
The game's individual title is "Kaze no Densetsu", i.e. "The Legend of the Wind", and according to SamIAm, that's the name that it is primarily known by to Japanese gamers.

I suspect that this issue will be a topic of discussion for a while.  :-k


There are lots of good reasons to go with "Legend of the Wind", and lots of good reasons not to.

First, I'm curious to see whether "Xanadu - Legend of the Wind" can be made to fit in that space somehow, because if it can't, then that pretty much answers that.
Title: Re: Xanadu II Translation Development Blog
Post by: seieienbu on May 13, 2016, 08:28:07 PM
Having bigger "Xanadu" then "Legend of the Wind" as a subtitle might work well in this case imo
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 13, 2016, 10:39:01 PM
I think so, too. Depending on palette limitations, there might be potential to having "Xanadu" be in a darker shade, then having "Legend of the Wind" partially overlapping it in a lighter shade. You could put one in cursive script and the other in a more ordinary font, too.

----------------------------

By the way, about project pages: it's very generous of folks to offer hosting. Right now, though, I think I would be spreading myself thin trying to get an attractive looking page launched and updated.

My plan is to do a second play-test-edit of both games, get the dub out of the way, and then ask for volunteers to test/offer feedback for both games. While they are doing that, I think the time would be ripe to start spreading the word a bit.
Title: Re: Xanadu II Translation Development Blog
Post by: LentFilms on May 14, 2016, 02:24:27 AM
Just throwing my two cents in about the game's name: the English text on the box says "The Legend of Xanadu" and that is the title the game is known by for most English fans, so I think that would be the best name to use. But I also don't see a problem with just having it say "Legend of Xanadu" on the title screen.

As a side note, I don't think you really need to spread the word about the project while it is being tested. Once the patches are released, word will get around. A lot of websites even covered your guys' Zeroigar patch and I don't think most people outside of this forum even knew about the project as it was being made. So I think having a fancy project page or trying to "spread the word" before everything is done and out is unnecessary. But do whatever you want to do.  :wink:

Keep up the awesome work!
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 14, 2016, 04:52:30 AM
If it turns out that there's just no way to get "The Legend Of Xanadu" into one line without having the whole thing look like crap, then we can consider going back to just "Legend of Xanadu".

From a language perspective, there are only two really good candidates for the title: "The Legend of Xanadu", which is exactly what Falcom wrote on all the materials, or "Xanadu - Legend of the Wind", which in my judgement is the best translation of the Japanese title.

Reasons for going with "The Legend of Xanadu" include that it's a name that Falcom themselves gave it, that it's what most people are going to expect, and that it's very likely going to be the only one that we can cram into that space and still have it look good.

Meanwhile, reasons for going with "Xanadu - Legend of the Wind" include that it appears to be the primary title of the game (in Japan, nobody writes "The Legend of Xanadu" in katakana or romaji, ever), that "The Legend of Xanadu" could be nothing more than a touch of foreign-looking/sounding flair that Falcom stuck on the packaging, and that "Wind" is actually a pretty important thing in the first game. I mean, it's not the "Chrono" in Chrono Trigger, but it's definitely part of the story.

But "Legend of Xanadu" in-game when the printed materials all include a "The" on them? It reminds me of shoddy NES shovelware. You know, one of the primary things that has kept me going during this whole project is that it's a chance to try to do something as well as I can do it, and to do a better job than is usually done. I want this to be a Grade-A fan-translation, and for it to stand up next to any decent professional localization. Thus, if we're going to go with sub-optimal language for the title, there had better be a damned good reason for it.

Like I said, if the art-perspective is that only "Legend of Xanadu" is short enough to look good at all, then we can make the hard decision and go with it. However, if "The" can fit somehow, even if it takes some serious reworking, then I really strongly feel that that's what we need to have.
Title: Re: Xanadu II Translation Development Blog
Post by: Black Tiger on May 14, 2016, 06:42:25 AM
If the size/palette restrictions can't be expanded and the current pixelart were to be used as a "compromise", the logo in TLoX could probably gain a tiny horizontal or vertical "THE".

The logo in TLoXII is already touching the sides of the screen and it took a miracle to make something half-decent looking. Something to keep in mind is that the logo in TLoXII is also used on the title screen. So even if the sprite block can be expanded in size and variation in English, retaining the art style of the original or even just in a comparable sized font, will require a 2-row title.

The other thing to remember, is that in the actual existing game, Falcom themselves thought that compromising their official title was worth it to achieve the composition and artwork they preferred for the title screen.


(http://superpcenginegrafx.net/misc/lods3.png)(http://superpcenginegrafx.net/misc/lodsg.gif)


This shows that Falcom didn't think that a two row title sitting higher or any other variation on the screen was worth the trade-off.


But if the size, palette and positioning can be changed, an extra row can just be positioned above the current position of the single-row logo. Or the 2-row logo can be lowered a bit for composition. Or it can be moved further up and the full title can be used, since the upper part of the background that Falcom decided wasn't worth covering is getting covered anyway.


(http://superpcenginegrafx.net/misc/lods4.png)(http://superpcenginegrafx.net/misc/lods5.png)(http://superpcenginegrafx.net/misc/lods6.png)




There is literally only one pixel of unused space at the top and bottom of the TLoXII logo, so if the English logo is scrapped and subtitles are used and the size/palette cannot be expanded, this is how it would work (current English logo for comparison):


(http://superpcenginegrafx.net/misc/lods7.png)(http://superpcenginegrafx.net/misc/lods9.png)




If the sprite size/palette/positioning can be altered, I could also do all kinds of different things with the menu and copyright text as well. I could also add more shading to the outline of the title logo or even have a gradient cutting through the inner font. I was shooting for extreme authenticity when pulling out all the stops for the current logo and I know that no one will compare the original to mine pixel-by-pixel to appreciate how faithful it is. But if we're going in a radical new direction, pretty much anything could be done, like the golden cursive logo from the cover. Depends on how far you want to tinker with things. I know it's already been a lot of work.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on May 14, 2016, 08:39:42 AM
Oh,c**p! Now we've got a problem with the current Xanadu 2 logo.

This is the Japanese logo in the Xanadu 2 Opening Visual ...

(http://farm8.staticflickr.com/7415/26737507030_ac9d154d01.jpg)

The highlight is a high-priority sprite that moves behind a background layer (which has a cutout for the logo), and above the logo sprites.

Apart from all the messing around that that's going to mean for mean for me when converting the new English logo into cutouts, it also means that the English logo can only be a maximum of 240 pixels wide in order to avoid sprite-dropout and cutoff during the visual sequence.

The current logo is 244 pixels wide ... and that's just not going to work.


But if the size, palette and positioning can be changed, an extra row can just be positioned above the current position of the single-row logo. Or the 2-row logo can be lowered a bit for composition. Or it can be moved further up and the full title can be used, since the upper part of the background that Falcom decided wasn't worth covering is getting covered anyway.

I may be able to find some unused colors in the palette that can be used ... but I can't change the overall size of the logo.

Falcom are doing way too much dynamic messing around with the sprites/backgrounds for that to work without rewriting the code for the entire intro sequence ... which just isn't practical.


Quote
There is literally only one pixel of unused space at the top and bottom of the TLoXII logo, so if the English logo is scrapped and subtitles are used and the size/palette cannot be expanded, this is how it would work:

(http://superpcenginegrafx.net/misc/lods7.png)

If that kind of arrangement is the best alternative, then I could certainly live with it (preferably in some other color).

But I'd really love to see if we can keep the idea of what you've done, but just make the English letters a bit narrower ... if it can be done.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 14, 2016, 01:16:13 PM
"The Last Of Dragon Slayer" is something I think we can say is not really part of the title. It doesn't appear once in either the manual or in any of the game's articles or advertisements in PCE Fan magazine between the time it was announced and the time it was released and after. Yes, I have all of them, and yes, I just checked.

Also, that should probably be changed to something like "The Last Dragon Slayer" or "The Final Dragon Slayer". I think what they want to say is that this is going to be the final game in the Dragon Slayer series.

Two little side notes: first, the magazine refers to both games strictly as kaze no densetsu, with "The Legend of Xanadu" appearing only as the golden cursive graphic in advertisements. Second,  it's interesting to note that the oft-repeated tagline for Xanadu 2, which is even on the back of the case, is 伝説の風再び..., which means literally "The Legendary Wind Once More..." and is really something like "The Legendary Wind Returns/Rises Again".

Even though it may still be impossible, this tilts me a little further toward preferring "Xanadu - Legend of the Wind".

Anyway...

Quote
There is literally only one pixel of unused space at the top and bottom of the TLoXII logo, so if the English logo is scrapped and subtitles are used and the size/palette cannot be expanded, this is how it would work:

(http://superpcenginegrafx.net/misc/lods7.png)


I could definitely live with this. Maybe it's because the Japanese is easy on my eyes anyway, but this looks like a very tasteful compromise.

Thanks for taking the time to look into this, Black Tiger. I'm very grateful for your help, and again, I'm sorry that I didn't pick up on this issue earlier.   :oops: :)
Title: Re: Xanadu II Translation Development Blog
Post by: seieienbu on May 14, 2016, 09:58:17 PM


Quote
There is literally only one pixel of unused space at the top and bottom of the TLoXII logo, so if the English logo is scrapped and subtitles are used and the size/palette cannot be expanded, this is how it would work:

(http://superpcenginegrafx.net/misc/lods7.png)


I think this is a pretty classy looking logo.  If you can't make it work well from a technical and aesthetic standpoint at the same time, I'd rather you went with something like this.
Title: Re: Xanadu II Translation Development Blog
Post by: Vimtoman on May 15, 2016, 02:07:27 AM
Thumbs up from me.

Maybe lose the II on the English text.
Title: Re: Xanadu II Translation Development Blog
Post by: Black Tiger on May 15, 2016, 05:29:37 AM
If people like 1 pixel text overlapping, I'll try add a THE to the English logo when I have a chance to work at my computer.

Adding a horizontal THE which doesn't overlap would rrquire as much extra space on the opposite end to be centered.

A Zelda style logo could be dobe, with tony text above Xanadu, but it would look like it's a Xabadu game.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on May 15, 2016, 01:58:20 PM
Also, that should probably be changed to something like "The Last Dragon Slayer" or "The Final Dragon Slayer". I think what they want to say is that this is going to be the final game in the Dragon Slayer series.

I thought that "The Last of Dragon Slayer" sounded hokey until it was explained to me that "Dragon Slayer" is the name of the sword, and that the continuity in the rather-disjointed series is proved by the sword itself.

As such ... "The Last of Dragon Slayer" actually seems quite appropriate to me, now.

If I'm understanding it right, the series of games is named after the sword itself, and "Xanadu" is the name of the planet/world where Falcom set this series of games.


(http://superpcenginegrafx.net/misc/lods7.png)

I could definitely live with this. Maybe it's because the Japanese is easy on my eyes anyway, but this looks like a very tasteful compromise.

As Vimtoman said "Maybe lose the II on the English text.".

But still ... something doesn't seem right.

If we were just doing subtitles on the voice-overs and leaving other Japanese text in the game, then I could understand going with the subtitled logo.

But if we're going to the trouble of trying to do an English dub, and we're doing a lot of work to replace every other piece of Japanese text within the game, then leaving this one seems ... a little lazy of us.

IMHO, it's definitely not what would have happened if the game had been professionally localized back-in-the-day.

**************

Moving forward, I've figured out how all the character's names in the Xanadu 2 Opening Visual actually work, and they can now be replaced.

(http://farm8.staticflickr.com/7253/27007230366_6cddd31aca_o.png)


They're all stored in a black-and-white (1bpp) image that should be easy to change into English (but there are some size restrictions).

(http://farm8.staticflickr.com/7072/27006389936_89fdf98405_m.jpg)
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 15, 2016, 03:13:42 PM
I thought that "The Last of Dragon Slayer" sounded hokey until it was explained to me that "Dragon Slayer" is the name of the sword, and that the continuity in the rather-disjointed series is proved by the sword itself.

As such ... "The Last of Dragon Slayer" actually seems quite appropriate to me, now.

If I'm understanding it right, the series of games is named after the sword itself, and "Xanadu" is the name of the planet/world where Falcom set this series of games.

If the meaning is more along the lines of "the sword's last outing" than "the final game in the series", then there is certainly no problem story-wise. However...and I'm open to discussion on this...I think you would need to say "The Last of the Dragon Slayer". If you leave out "the", then Dragon Slayer becomes a more directly addressed entity like Peter or Mark, and I have to leave out "the" everywhere just as I would never say "The Peter" or "The Mark".

"Hand over Dragon Slayer!"

"We better find Dragon Slayer."

"Only Dragon Slayer can defeat him."

It kind of reminds me of the way Tolkien had weapons with real names in The Lord of the Rings, like Glamdring, and treated them almost like living beings. Here, though, I have to say that I still prefer the sound of the Dragon Slayer. Like I said, I'm open to discussion on this.

However, do we have the space to insert a "the" there?

Japanese people have a terrible time grasping the proper use of "a" and "the" since they don't exist in the Japanese language, by the way.

Also, for what it's worth, I've never read any explanation for why "Xanadu" is in the title. It might be out there somewhere. I assume it's the name of the world, but I wouldn't say I'm confident about that.

Quote
As Vimtoman said "Maybe lose the II on the English text.".

But still ... something doesn't seem right.

If we were just doing subtitles on the voice-overs and leaving other Japanese text in the game, then I could understand going with the subtitled logo.

But if we're going to the trouble of trying to do an English dub, and we're doing a lot of work to replace every other piece of Japanese text within the game, then leaving this one seems ... lazy.

IMHO, it's definitely not what would have happened if the game had been professionally localized back-in-the-day.

I agree.

I'm really curious to see what it looks like when "The" gets put in there and the letters get squished some more or done in a different style entirely.

Quote
Moving forward, I've figured out how all the character's names in the Xanadu 2 Opening Visual actually work, and they can now be replaced.

They're all stored in a black-and-white (1bpp) image that should be easy to change into English (but there are some size restrictions).

(http://farm8.staticflickr.com/7072/27006389936_89fdf98405_m.jpg)


Nice work.  :D

I'll PM you. Those are the names of each character with the name of the actor who provided the voice.

If people like 1 pixel text overlapping, I'll try add a THE to the English logo when I have a chance to work at my computer.

Adding a horizontal THE which doesn't overlap would rrquire as much extra space on the opposite end to be centered.

A Zelda style logo could be dobe, with tony text above Xanadu, but it would look like it's a Xabadu game.

I'm thinking a vertical "The" probably wouldn't look so hot, so let's stick with horizontal

I'm no artist, but for these longer titles, I would be fine with basically tossing the style of the original altogether. It's all right if it doesn't look as much like a proper logo, per se, as long as it looks pretty and appropriate as a title.

I'd start experimenting with thin cursive if I knew where to begin.
Title: Re: Xanadu II Translation Development Blog
Post by: ccovell on May 15, 2016, 08:23:21 PM
By the way, "The Last of..." is often (from my experience) a poor Japanese mistranslation for what really should be "The End of..."  (...末 / ...の最後 / ...の終わり)

It does sound hokey because it's unnatural.

The Last of... usually means the final one in a series of the same things.  The End of... means the last period in a single one's life.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 15, 2016, 09:05:28 PM
Yeah, that's the feeling I had, too. My gut tells me that "The Last of Dragon Slayer" is still referring to the series, but for all I know, they might have meant it to mean both the series and the sword.
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on May 16, 2016, 07:44:44 AM
Apart from the Credits Roll, I think that's all of the text-in-graphics for Xanadu 1 ... and the credits can wait for a while.

Yeah, we never did get the Ys IV credits roll translated actually. No motivation as nobody cared and it would be the most difficult task remaining as compressed graphics blocks never needed to be dealt with for anything else.
Title: Re: Xanadu II Translation Development Blog
Post by: spenoza on May 16, 2016, 02:26:19 PM
The Final Dragon Slayer would take up a little less space, and convey the same meaning without the confusion over naming.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on May 17, 2016, 05:11:30 PM
Yeah, we never did get the Ys IV credits roll translated actually. No motivation as nobody cared and it would be the most difficult task remaining as compressed graphics blocks never needed to be dealt with for anything else.

Hahaha ... that makes so much sense!  :wink:

But in this case, the Xanadu 1 Credits are already in English ... but there are some spelling mistakes, and we're changing a couple of Falcom's Engrish names.

My terrible programmer-OCD is going to make me figure it out and fix it, and nobody, absolutely nobody, is going to notice or care.

I've had to keep the lunacy in check for years of commercial development ... but this is where I get to do things to my (totally excessive) standards of "right".

That's why I love working with SamIAm ... he's wonderfully obsessed with all of the little (absolutely crucial) details that make something "AAA". That's a rare find.
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on May 17, 2016, 06:09:47 PM
My terrible programmer-OCD is going to make me figure it out and fix it, and nobody, absolutely nobody, is going to notice or care. I've had to keep the lunacy in check for years of commercial development ... but this is where I get to do things to my (totally excessive) standards of "right".

That's cool, the projects are very lucky to have found you. If I was as good as you, I would too.
Title: Re: Xanadu II Translation Development Blog
Post by: Black Tiger on May 24, 2016, 03:47:52 PM
Here is a version of the logo with THE that is 1 pixel narrower than the original.


(http://superpcenginegrafx.net/misc/nu1.png)

(http://superpcenginegrafx.net/misc/ole1.png)


(http://superpcenginegrafx.net/misc/nuts1.png)


Here's a version with the darker outline coloring all of the THE (no longer faithful to the overall coloring scheme):

(http://superpcenginegrafx.net/misc/nuts2.png)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on May 24, 2016, 05:10:58 PM
Here is a version of the logo with THE that is 1 pixel narrower than the original.

(http://superpcenginegrafx.net/misc/nu1.png)


That looks great, thanks!  :D

That'll work fine on the title screen, but as I pointed out here ...

http://www.pcenginefx.com/forums/index.php?topic=19674.msg457215#msg457215

We've only got 240-pixels maximum width for the logo on the Opening Visual.

I guess that one option would be to just chop off the leading "The" on that Opening Visual, that would make it fit.

Would that bother anyone?
Title: Re: Xanadu II Translation Development Blog
Post by: Vimtoman on May 24, 2016, 09:26:35 PM
I prefer it without the "The"
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 24, 2016, 10:45:46 PM
We've only got 240-pixels maximum width for the logo on the Opening Visual.

I guess that one option would be to just chop off the leading "The" on that Opening Visual, that would make it fit.

Would that bother anyone?



Surely we can come up with a more elegant solution.

Black Tiger, I know you spent a long time on that original graphic, but in all honesty, both the "of" and the "the" are a bit too small now, and the "the" especially looks a bit on the tacked-on side.

I'm a lousy artist, and this might sound totally naive, but based on a little goofing around with Gimp over the original background, it looks to me like 240x32 is enough to fit "The Legend of Xanadu II" comfortably enough, even with all the letters of a uniform size, as long one is willing to go with a different style. We have a few colors available for shading or outlining...elmer could probably tell us if it's an option to change the palette, too...and we can keep it simple.

Here's a quick-n-dirty mock-up. It's just Palatino Linotype Bold Italic with an outline and no shading. Let me emphasize that I don't think think this is beautiful or stylistically ideal so much as I just think it demonstrates what's possible within our size limitations. Although I see now that I accidentally made it 33 pixels tall, the important thing is that it's only 232 pixels wide.

(http://pic.photobucket.com/bwe.png)

A prettier font and some hand shading/touching up, and I think we can do this. It's fine to make the "The" and "of" smaller, too, as long as it's in moderation.

EDIT - Rebalanced the sizes just a bit. This is 239x32:

(http://pic.photobucket.com/bwe.png)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on May 25, 2016, 06:07:42 AM
Here are Black Tiger's logos with taller letters for "THE" and "OF", and with a little bit of rounding on the "A" in Xanadu, and straightening of the stems on the "X" and "A" ...

(http://c2.staticflickr.com/8/7438/27148282012_fb934bc0f1_o.png)

(http://c2.staticflickr.com/8/7713/27245306955_3379976e1a_o.png)


The Xanadu 1 logo now fits within the space that it needs to.

The Xanadu 2 logo is still a couple of pixels too wide ... but here's the interesting thing ... the interior of the Xanadu 2 logo just fits within the 240-pixel limit that's needed in order to make the "highlight-in-the-dark" effect work.

The means that if I can screw around with the display code in a pretty major way ... then I just might (if I'm very, very lucky) be able to get it to work.

Unfortunately, there's no free space in the code that can be used to abuse it in that way, which would mean changing the location of the code file on the CD (i.e. it's going to be a lot of work).

It would also require doing lots of extra moving around of data in VRAM that the code does not do now ... which could easily break things, or just plain not work.

<EDIT 3RD TIME> (to fix a couple of outline pixels)

A small mod to the bottom of the "II" in Xanadu 2 to make it a little more balanced, and different sizes for the "THE" and the "OF".

I think that I prefer the bottom one, but I'm not sure.

(http://c2.staticflickr.com/8/7071/27214028906_9c35aa6624_o.png)

(http://c2.staticflickr.com/8/7527/27248282965_bedaf119d8_o.png)
Title: Re: Xanadu II Translation Development Blog
Post by: Black Tiger on May 25, 2016, 07:03:52 AM
That updated logo for The Legend of Xanadu looks much better than I expected and after having some time away to gain perspective, the The Legend of Xanadu II logo looks much better than I thought. The smaller OF isn't just to save space. Having it match the THE makes the THE feel less tacked on and balances out the logo overall.

If the latest logo was accepted more or less (I'd like to try improving the smaller "II", THE and OF and misc can be adjusted), I planned to make an alternate for the cinema which needs to be 240 pixels wide. I was going to re-sculpt the "II" to remove a couple more pixels. Basically giving it edged corners instead of pointy ones would make everything 240 wide. If it looked good enough, the same could be used for the title screen.

But Sam really doesn't want the logo and a faithful style isn't a priority for him. I don't want to spend much time on something that is going to be tossed in favor of generic font text. That last mockup of his and comment really shows how radically different we view aesthetics. :P I think that a smaller version of the same font like that looks ridiculous. Like something out of a photoshop disaster.

I'm not just desperate to have something I worked on appear in a game. LoXII has been important to me for almost 20 years now, which is why I put so much work into my guide back then and have been telling everone about the game ever since. I want a faithful logo because I care about the game and want it to be a step above generic localizations. If I had enough free time, I could post lots of examples of game logos with similar small text paired with stylized text.

If you guys can agree that you want to make this logo work, I'll continue working on it.




EDIT: Here is a good example off the top of my head:

(http://i.imgur.com/WBt5jHi.jpg)
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 25, 2016, 10:20:33 AM
The bottom one that elmer posted, I could live with. Let's see what it looks like on a TV.

The title on the title screen has to match the title of the game. In addition, it has to look good. Adhering to the style of the original is a nice bonus if we can get it, but I wouldn't want it to come at the sacrifice of either of the first two things. 風の伝説ザナドゥ is eight characters, only three of which are kanji, while The Legend of Xanadu is twenty; it really doesn't seem inappropriate to recast the style entirely, and I dare say that that's probably what Falcom would have done if they had made the art for an English localization themselves.

The point of those images I posted was only to show that 240x32 is enough space to approach the title screen text in a variety of ways.

Black Tiger, your work was great before we realized we needed a "The" in there, and it might work out yet. Like I said, all I really care about is that it has the complete title and it looks good.
Title: Re: Xanadu II Translation Development Blog
Post by: Dicer on May 25, 2016, 11:38:48 AM
I prefer the top, the smaller THE and OF don't look stretched to me, where the bottom one does, regardless it's bang up work either way...
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on May 25, 2016, 04:28:19 PM
Here's the new logo (larger text version) working in the game ...

(http://c2.staticflickr.com/8/7300/27221558736_be9f0f704f_o.png)


I like it!  :D

Let's hope it works well on SamIAm's TV.

There's still the question of whether the title should actually be "Legend of the Wind II" ... but let's leave that discussion for another day.

BTW ... the horizontal crossbars in the large E and A are above the centerline of each glyph, so I don't see any visual disconnect in having the crossbars in the small text also be just above the centerline.
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on May 26, 2016, 09:27:22 AM
There's still the question of whether the title should actually be "Legend of the Wind II" ... but let's leave that discussion for another day.

Eh, "Xanadu" is just so well known (add in that movie!), it'd be very tough to justify its removal. I hated these sticking points in projects... Sometimes Falcom really did do a bad enough job to ignore precedent/history of documents/printed materials/game script (like say "Romn" which Konami later localized to "Romun" for Ys VI). I foolishly went back to the Ys IV script, changed it to "Romn" so it all looked the same with the PC version's manuals/script/website/etc. but after Konami, it was like, duh, did I really need their precedent-setting PS2 release in the US to realize I shouldn't have done that ?? Heh.
Title: Re: Xanadu II Translation Development Blog
Post by: deubeul on May 26, 2016, 09:43:17 AM



(http://pic.photobucket.com/bwe.png)

A prettier font and some hand shading/touching up, and I think we can do this. It's fine to make the "The" and "of" smaller, too, as long as it's in moderation.


(http://pic.photobucket.com/bwe.png)


Font consideration apart, I love the fact that you use upper and lower case, It makes the "II" stand out.

Title: Re: Xanadu II Translation Development Blog
Post by: elmer on May 26, 2016, 10:40:31 AM
I've asked to see what the logo would be like if the logo font were made a little bit narrower, but it never happened, and so I decided to spend some time in grafx and try it myself.

Changing the width of the stems of each letter from 6 pixels to 5 pixels give us back a whole lot of space.

I've used that space to make the "The" and the "Of" wider again, and to restore the larger "II" and space it out so that it doesn't get lost in the main logo.

The Xanadu 2 logo now fits in the 240 pixels that are allowed for for it, meaning that I wouldn't have to jump through hoops to make it work in the Opening Visual.

What do folks think? Is this an improvement on yesterday's versions?


(http://c2.staticflickr.com/8/7327/27238668936_4786670ee5_o.png)


(http://c2.staticflickr.com/8/7425/27202270151_598f3dbf04_o.png)


Wider font version ...

(http://c2.staticflickr.com/8/7300/27221558736_be9f0f704f_o.png)

Title: Re: Xanadu II Translation Development Blog
Post by: johnnykonami on May 26, 2016, 10:49:41 AM
I honestly think this one looks best, with "The" and "of" staying the same size.

(http://pic.photobucket.com/bwe.png)
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on May 26, 2016, 11:13:32 AM
I can't choose...
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 26, 2016, 03:46:53 PM
(http://pic.photobucket.com/bwe.png)                  (http://c2.staticflickr.com/8/7300/27221558736_be9f0f704f_o.png)

Three out of three people I have asked, with no explanation beyond presenting both images at the same time and asking which they prefer, have pointed to the mock-up with equal-sized lettering.

Two of those people were Japanese, and they said something kind of obvious from which I think a lesson can be drawn: The equal-sized lettering is much easier to read.

If you take any one letter from BT's image, excluding the THE and the OF, and compare it to the corresponding letter from the mock-up I made, BT's letter looks better, no question. However, I still think the fact that it was retro-fitted from having no THE at all to its current state has made it deeply flawed. Otherwise, my highly amateur mock-up shouldn't have been able to even compete with it.

Elmer's latest version is a definite improvement. Besides the larger THE, the II really needed more separation, and now it's got it. If we go with that, I'll basically be satisfied.

However, I would really be interested in seeing more mock-ups made with equal-sized lettering (or at least closer to equal if someone can make that work - I obviously couldn't). I honestly think that if we took that approach with a better font than the one I used, then took the time to add a bit of shading and touch up whatever else by hand, we could get something that has the best of both worlds.

Black Tiger, if you would like to make that kind of mock-up, I'd love to see it.

At this point, I want to see a whole smorgasbord of mock-ups, and in addition to making more of my own, I would like to invite anyone else who has a vision of what this title screen could look like to contribute. After all, if I can make a mock-up, anyone can. You wouldn't need to polish anything - just make sure it fits into 240x32 and uses the same colors from the original.

Here's a blank background and the original image:
(http://i171.photobucket.com/albums/u305/sirsinnes/Kaze%20no%20Densetsu%20Xanadu%20II%20J-0002_zpsb0uabj97.png)             (http://pic.photobucket.com/bwe.png)

Of course, "The Legend of Xanadu II" and "Xanadu - Legend of the Wind II" (dropping or changing the hyphen is fine) are both welcome.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 26, 2016, 04:07:40 PM
To get the ball rolling, here's my first mock-up with a sloppy attempt at shading.

(http://i171.photobucket.com/albums/u305/sirsinnes/test7_zpspq4axdt2.png)

I think it at least shows that we ought to be able to get shading in there even with equal sized lettering.

Next, I'll try some different fonts.
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on May 26, 2016, 04:30:48 PM
Of course, "The Legend of Xanadu II" and "Xanadu - Legend of the Wind II" (dropping or changing the hyphen is fine) are both welcome.

Oh, silly me, right, it wasn't about dropping Xanadu. This "Xanadu - Legend of the Wind" subtitle business. Even if it's technically more accurate, I think it sounds terrible and takes some punch out of what's already a great title. I'd leave it alone.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 26, 2016, 05:12:17 PM
Another not-awesome-but-thought-provoking mock-up:

(http://i171.photobucket.com/albums/u305/sirsinnes/test8_zpsevjiuztq.png)
(234x30, Deftone Stylus)

I chose this font as an example of a thicker cursive style that is really easy to shade (not that I did a particularly great job of shading). The image I posted previously had a few places where there was only one dark blue-green pixel in between the light blue outline, such as the upper left parts of the lowercase A's, and it became impossible to apply formulaic interior shading there. With something like this, that's not a problem. There's even enough room to apply something like a horizontal gradient shade if we want to.

With this font, I can't say I'm in love with the T, the X, or of course the II. Don't ask me why the lowercase U came out so short, either. Anyway, it's interesting. If the question is "Can we fit legible, cursive, outlined letters in that space and still have room for shading?" this gives us the answer: absolutely.

Something just a little "tighter" all around could look nice.

Next, I'll try something more print-like.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on May 26, 2016, 06:35:56 PM
Another not-awesome-but-thought-provoking mock-up:

(http://i171.photobucket.com/albums/u305/sirsinnes/test8_zpsevjiuztq.png)


Oh, dear Sam, that may be one of the ugliest mock-ups that I've ever seen ... I could even have nightmares!  :lol:

Perhaps we should leave the experimentation to folks who have an "artistic" eye!  #-o

I rule myself out on that account ... and you're teetering on the borderline with that last screenshot.  :wink:

If you want to keep on going ... may I suggest Berthold Nofret Std Medium Italic ...

https://www.linotype.com/260403/nofret-medium-italic-product.html?showVariation=261622

It's one of my favorite fonts, and I have a licensed copy of it around here somewhere!
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 26, 2016, 07:02:59 PM
It is pretty gross, isn't it?  :mrgreen:

I'll try that font later, thanks!
Title: Re: Xanadu II Translation Development Blog
Post by: Phase on May 26, 2016, 08:25:00 PM
I gave it a shot, tried to make it like the cover art.
Not sure how it would look on a tv could be too aliased?
(http://www.ektophase.com/TG16/Xan1.png)
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 26, 2016, 08:50:35 PM
Thanks, Phase! I dig it!

Could you try making the II a little sleeker, and increasing the amount of space between the words?

I whipped another one up real quick. This kind of thing would be hard to shade, but I don't think it looks terrible. The tips of the lowercase H and D I could do without...

(http://pic.photobucket.com/bwe.png)
(239x31)

Right now, I'm looking at stuff of the fancy-thin-liney variety, and most of it doesn't work. Since we need a light blue outline around a dark blue-green primary color, it seems necessary to keep some real width in there.

Using cursive because Falcom used cursive seemed reasonable enough to me at first, but I'm starting to think that if we have to stick with this color scheme, where the line can never be thinner than three pixels wide and needs to be four for shading, we're probably better off going with some kind of italicized print unless we can find a simple fat cursive that doesn't look bad.

The extra width forced by the outline might keep us from wanting to use the original cursive style. That, and the fact that it is a bit on the gaudy side.  :wink: Anyway, Phase, if you don't mind making a couple of quick modifications like I mentioned above, I'd really love to see what it looks like. :D
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 27, 2016, 04:29:06 AM
(http://i171.photobucket.com/albums/u305/sirsinnes/aramis%20italic%20bold_zpsfmhidaco.png)
(239x31)

I tried bolding and shading the last one I made. The X got funky when I modified away some of the weirdness introduced by the bolding, and I still don't like the nightcaps on the d and h. Also, at the moment, the shading is a little harsh - I used only the darker of the two colors.

Overall, not too shabby.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on May 27, 2016, 04:29:22 AM
I gave it a shot, tried to make it like the cover art.
Not sure how it would look on a tv could be too aliased?
(http://www.ektophase.com/TG16/Xan1.png)


That's very interesting, thanks!

I think that it looks too blurred at the moment with the letters running into each other, but it looks like you've got plenty of space to space things out a bit more.

The exterior anti-aliasing is also a bit too heavy at the moment.

The big thing that it shows, is that going in that direction is unlikely to give enough pixels to keep the interior drop-shadow that's in the original Japanese logo.
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on May 27, 2016, 07:34:16 AM
Another not-awesome-but-thought-provoking mock-up:

(http://i171.photobucket.com/albums/u305/sirsinnes/test8_zpsevjiuztq.png)

Oh, dear Sam, that may be one of the ugliest mock-ups that I've ever seen ... I could even have nightmares!  :lol:

Heh, yeah, non-starter!
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on May 27, 2016, 09:14:34 AM
Here is my mock-up (Original font):

 (http://junk.tg-16.com/images/Xanadu_Skaters.html)
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on May 27, 2016, 10:45:09 AM
Hahahahaha!!!!

Where did that come from ??? ;)
Title: Re: Xanadu II Translation Development Blog
Post by: Dicer on May 27, 2016, 10:58:23 AM
Not diggin the cursive...
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 27, 2016, 11:55:19 AM
That one I posted was just an experiment to see if I could get shadable, legible cursive letters in 240x32.  :wink:

Here's another version of that last one I posted. I removed the nightcaps, though the tips could still be improved, and I enlarged the II.

(http://i171.photobucket.com/albums/u305/sirsinnes/aramis%20italic%20bold_zpsn7rctxwo.png)

If I do anything else to it, it will be to increase the height of the capital T and L by a pixel or two.

Next, I'll try a straighter, possibly thicker and more rigid font.
Title: Re: Xanadu II Translation Development Blog
Post by: Phase on May 27, 2016, 04:07:41 PM
(http://www.ektophase.com/TG16/Xan5.png)
http://www.ektophase.com/TG16/Xan2.png  -old
Here's a cleaner version no outer anti-aliasing, bigger word spacing, slight inner shadow. The II would have to be remade to match. Would take more work to add a bigger gap to the letters. I could work on it if you guys liked were it is going. but not sure if its gonna get too much better, its kind of an extreme cursive to do in the limited resolution.

Edit: cleaned slightly more and added a basic 2
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 27, 2016, 04:53:19 PM
It definitely brings a smile to my face (you know, in the good way). :)

If there is anything else you feel like doing to it, I'd love to see it. On the other hand, if you want to hold back on sinking more time into it for now, that's fine, too. We're in a very experimental phase at the moment.

Anyway, I'm really happy that we have this avenue explored now, so thanks again!

Title: Re: Xanadu II Translation Development Blog
Post by: Phase on May 27, 2016, 05:14:39 PM
No problem, yeah its always cool to see different concepts.

Here is a certain font we all know(hint look at my avatar) but it actually looks kinda rpg like, kind of like final fantasy slim letters
(http://www.ektophase.com/TG16/Xan3.png) (http://www.ektophase.com/TG16/Xan4.png)
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 27, 2016, 05:56:32 PM
Cool! I hadn't tried any uniform-size all-caps solutions yet, but I might have to soon.

I'm still searching for a font that takes the plain mixed upper-lowercase in the direction I'd like to see it go, too.
Title: Re: Xanadu II Translation Development Blog
Post by: Phase on May 27, 2016, 10:03:58 PM
I edited my last post with the cursive font added a matching 2 in there or something.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 27, 2016, 11:57:22 PM
After more failed experiments, I went back and tweaked this one some more:

(http://pic.photobucket.com/bwe.png)

- Increased size of T, L, and X.
- Tweaked tips of d and h (maybe made them worse, though)
- Merged II
- Moved things a little closer together - now it's 234x29

I find it highly unlikely that anything I make is actually going to wind up being used, but nonetheless, this is pretty fun. It's actually the first time I've ever fooled around in a modern graphics editor, and the first time I've drawn pixels since high school.  :)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on May 28, 2016, 03:14:15 AM
(http://www.ektophase.com/TG16/Xan5.png)

Thanks, that definitely looks better to me.

But the letters still blur together too much inside the words IMHO.  :-k


Quote
its kind of an extreme cursive to do in the limited resolution.

Yes, it is, and I'm absolutely amazed at how faithfully you've reproduced all the curly details in the box art in such a low resolution.

Great job!  :clap:

The main logo itself is 196 pixels wide, but you'd only need another 13 pixels to add 1 pixel space between each letter to separate them, which would still be well within the 224 pixel limit for Xanadu 1.

It would mean reducing the new "II" a little in order to fit in Xanadu 2's 240 pixel limit, though.

Do you think that the extra 1 pixel would be enough to work with, and still look good?


No problem, yeah its always cool to see different concepts.

Here is a certain font we all know(hint look at my avatar) but it actually looks kinda rpg like, kind of like final fantasy slim letters

(http://www.ektophase.com/TG16/Xan4.png)

I'm a bit worried that it looks too much like the Final Fantasy logo, and it really has no connection to anything in Falcom's original artwork ... but it's clean and readable and I've always loved using small-caps as a solution for avoiding inconvenient descenders like on the 'g'.  :wink:


After more failed experiments, I went back and tweaked this one some more:

(http://pic.photobucket.com/bwe.png)


Actually, I really, really like this.

It's not as faithful to the box art as Phase's logo is, but it's got the same "flavor" to me, and it's clean and readable.

The tail on the 'f' helps stop the tail on the 'g' from looking so lonesome and out-out-place in the absence of all the curly extras from the T, L and X.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 28, 2016, 05:27:29 PM
(http://pic.photobucket.com/bwe.png)

The latest version. (236x32)

- Lowercase letters re-rendered and stretched to be one pixel taller before applying outline. With the f at 32 pixels tall, we're now at the maximum height for the image.
- T and L raised in height by one pixel, done by hand.
- The II is redone to be a couple of pixels larger and sit one pixel beneath everything else.
- The old X was sloppy and shorter than the T and L. I re-did it and brought it in line.
Title: Re: Xanadu II Translation Development Blog
Post by: Phase on May 28, 2016, 07:07:13 PM
(http://pic.photobucket.com/bwe.png)
That does look good, a few of the letters are a little sharp like the E. I'm curious how that would look not italic?

(http://www.ektophase.com/TG16/Xan6.png)
Updated the letter spacing, smaller II, also tightened the word spacing a little to get it to fit within the background tablet.
Are we just using the colors on the title screen or is there a palette? I think I used some colors from the original concept, and perhaps the outline is a little bright right now.

(http://www.ektophase.com/TG16/Xan4.png)   (http://www.ektophase.com/TG16/FF2.jpg)
Side by side isn't too close, and it is turbo related heh. I also like that its clean and the tall text kinda gives it a chisel
look to go with the background tablet/stone. On the other hand you are right that it doesn't have any connection.

Well, all of them are interesting  :-k  :)
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 28, 2016, 08:34:54 PM
(http://pic.photobucket.com/bwe.png)
That does look good, a few of the letters are a little sharp like the E. I'm curious how that would look not italic?

"Italic" is basically an element that's baked into the font itself, so even the non-italic version actually renders about the same.

Another problem is that we're very short on space, and you'll notice how tightly things are packed around the two e's in "Legend" in particular. If rounding them out displaces the next letter by very much at all, it'll be a problem.

You could definitely call it an inherent flaw of this whole design.

But maybe there is another e from another font that fits the style and doesn't have the sharpness. I'll have to experiment.

Quote
(http://www.ektophase.com/TG16/Xan6.png)
Updated the letter spacing, smaller II, also tightened the word spacing a little to get it to fit within the background tablet.
Are we just using the colors on the title screen or is there a palette? I think I used some colors from the original concept, and perhaps the outline is a little bright right now.


AFAIK, we'll need to keep this within the colors you see in the original graphic only, which is made of sprites and uses its own palette. None of the extra colors from the background layer can be copied. So, that's two shades of light blue for the outline, two shades of dark green for shading, and one shade of moderately dark blue-green for the main body.

Those might be changeable, but I'm not sure if it's possible to go beyond five colors.

I think you've got this one looking better than ever, but I'm afraid that once it gets simplified into the limited palette, it will look a little rough. The font itself is also still maybe a little on the gaudy side.

Quote
(http://www.ektophase.com/TG16/Xan4.png)   (http://www.ektophase.com/TG16/FF2.jpg)
Side by side isn't too close, and it is turbo related heh. I also like that its clean and the tall text kinda gives it a chisel
look to go with the background tablet/stone. On the other hand you are right that it doesn't have any connection.

Well, all of them are interesting  :-k  :)

Definitely  :)

This last one is my favorite of the ones you've done, and I would say it's already a very serious contender. The "chiseled" look is something I was hoping I could incorporate into a lowercase rendition, but I can't seem to find anything that will work for that.

I don't think it looks too similar to the Final Fantasy or Turbo Grafx fonts. However, I do worry that it's a pretty big stylistic departure. It looks so powerful and in-your-face, but the original games as a whole, especially the second one, are a little more subtle and gentle in terms of overall style.

When you load up Xanadu 2, you see only the background layer first, and then the title graphic dissolves in. When it's finished, this music starts. Eventually the background layer fades to black, and you see twinkling blue crystal shards start falling down the screen behind the title graphic like snow while the music continues. It's all supposed to be very pretty.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 29, 2016, 01:05:27 AM
Managed to get that e rounded out a bit. It cost me two horizontal pixels, which isn't bad.

(http://pic.photobucket.com/bwe.png)
(238x32)

I'm not sure whether I really like it, though. "Sharpness" itself is supposed to be an element of the font. Once I round out the e, there is more pressure to round out the n, and once you've done that, the whole thing is a bit less striking. Also, even though it looks good after the h, the rounded e doesn't jive so well with the g or the n.

However, this did get me to realize that it would actually not be difficult at all to go back to the original e and just lengthen its tail a little, which it needed.

I like that we aren't coming too close to the maximum size with the original e. 236 feels like it isn't quite spilling out of the background border yet. I also remember elmer saying that Nintendo would reject a game for having a title that spanned to much of the screen.

While I was at it, I put the X-and-the-a and the d-and-the-u each one pixel closer to each other, then turned that savings around to spread the The-and-the-Legend and the u-and-the-II out one pixel further apart.

(http://i171.photobucket.com/albums/u305/sirsinnes/aramis%20italic%20boldmodEtailsquish_zpsit2kaewz.png)
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 29, 2016, 03:39:43 AM
This fixes (or at least attempts to fix) the last of the major things I was worried about.
(http://i171.photobucket.com/albums/u305/sirsinnes/modEtailSquishTipsATmodB_zpson1x36hk.png)
(237x32)

- The T is much improved at the cost of only 1 horizontal pixel.
- The tips of the h and d's are modified so that they're not so dang round anymore.
- The left base of the h is also de-rounded.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on May 29, 2016, 04:29:28 AM
Updated the letter spacing, smaller II, also tightened the word spacing a little to get it to fit within the background tablet.

Thanks!


Quote
Are we just using the colors on the title screen or is there a palette? I think I used some colors from the original concept, and perhaps the outline is a little bright right now.

The palette for each game is in the logos that I've uploaded here, those are game-ready paletted images (the red backgrounds are color 0 which becomes transparent) ...

http://www.pcenginefx.com/forums/index.php?topic=19674.msg458266#msg458266

Title: Re: Xanadu II Translation Development Blog
Post by: elmer on May 29, 2016, 09:23:28 AM
Well, SamIAm and Phase have inspired me to put some more time into pushing pixels in the old logo, and I've cleaned it up a bit more and used small-caps for the letters instead of all-caps.

I think that it makes it a lot nicer and more readable to the eye.

Anyway, here are the current contenders, all mapped into the game palettes.

It's really unfair to put Phase's logo in here, because I had to remap it myself, and I'm sure that he'll do a cleanup pass and make it look a lot nicer, but I thought that it would be interesting as a size/style comparison anyway.

(http://c2.staticflickr.com/8/7341/27238138672_b7f5d4c9d9_o.png)

(http://c2.staticflickr.com/8/7583/26728354494_0686cf4888_o.png)

(http://c2.staticflickr.com/8/7284/27238138742_b6fc425e75_o.png)

(http://c2.staticflickr.com/8/7293/27335359045_1f3fa5a563_o.png)

(http://c2.staticflickr.com/8/7381/27302021716_6d8944be95_o.png)


<EDIT>

Whoops, got the interior color wrong on the Xanadu 2 logos for a second ... fixed it!
Title: Re: Xanadu II Translation Development Blog
Post by: LentFilms on May 29, 2016, 09:54:06 AM
Personally I like Phase's logo at the bottom. It is similar to the English logo used by Falcom and it looks the least stiff, if that makes sense.
Title: Re: Xanadu II Translation Development Blog
Post by: Phase on May 29, 2016, 10:10:14 AM
Looks like all of them are improving  8)

I'm late, was just changing them to the palette  :) and trying the purple out.
(http://www.ektophase.com/TG16/Xan7.png)

(http://www.ektophase.com/TG16/Xan9.png)



Title: Re: Xanadu II Translation Development Blog
Post by: elmer on May 29, 2016, 10:54:28 AM
Looks like all of them are improving  8)

That's the magic of competition! :wink:

I've just checked, and it looks like none of the other colors in the logo palette are used anywhere else on the screen ... so that gives us all an 9 extra palette entries to create some new anti-aliasing colors if we want to.

That's where my meager programmer-art skills give up, so if Black Tiger isn't interested in improving the logo some more from where it is now, then the field is going to be open for you guys.  :wink:
Title: Re: Xanadu II Translation Development Blog
Post by: schweaty on May 29, 2016, 12:39:57 PM
I also like phase's version.  I think he is a graphic designer by trade, so we should take his free work he has given us ;)
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 29, 2016, 12:54:48 PM
In terms of shape, I think I'm about done with mine, too. From here on out it, I would only change the colors and maybe add a external horizontal drop shadow on the left. Depending on how things go, I might also do a tiny bit of modding so I could add drop shadow on the bottom, too.

In terms of alternate colors, I would be interested in having an alternate intermediary shade tone between the primary blue-green color and the darker shadow color, if one exists. The current intermediary tone is the same as the main background color and doesn't work so well in the places I might like to use it.

Also, if we add any external drop-shadow to whichever one we go with, it might be better to have it as black. The background layer screen fades out to black for the crystal-snow, and if we use a not-quite-black color, it might stand out in bad way. Of course, it might not.

Anyway, nice work, Phase and elmer. :D
Title: Re: Xanadu II Translation Development Blog
Post by: Black Tiger on May 29, 2016, 03:24:06 PM
I'm currently working on a 100% pixelart version of the official English logo (no fonts or photoshop effects used).

It's 240 x 64 pixels.


(http://superpcenginegrafx.net/misc/xloxt3.png)

(http://superpcenginegrafx.net/misc/xloxt1.png)

(http://superpcenginegrafx.net/misc/xloxt2.png)
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on May 29, 2016, 03:33:58 PM
I'm currently working on a 100% pixelart version of the official English logo (no fonts or photoshop effects used).

It's 240 x 64 pixels.


(http://superpcenginegrafx.net/misc/xloxt1.png)

(http://superpcenginegrafx.net/misc/xloxt2.png)

Now that I kinda like and nice idea to center 'II' as a background to gain more width for the rest!
Title: Re: Xanadu II Translation Development Blog
Post by: spenoza on May 29, 2016, 03:40:20 PM
I'm currently working on a 100% pixelart version of the official English logo (no fonts or photoshop effects used).


That's very nice, actually. My only complaint would be the giant "II" is a bit too giant, and obscures too much of that neat design in the center of the background. I think a slightly slimmer variant would be the bees knees.
Title: Re: Xanadu II Translation Development Blog
Post by: Black Tiger on May 29, 2016, 03:50:07 PM
I'm currently working on a 100% pixelart version of the official English logo (no fonts or photoshop effects used).



That's very nice, actually. My only complaint would be the giant "II" is a bit too giant, and obscures too much of that neat design in the center of the background. I think a slightly slimmer variant would be the bees knees.


I literally just threw it together to show where a II will go. It should be relatively big though, but I did envision slimmer.



If elmer is up for changing the palette, here is the kind of thing that could be done (using 13 colors):


(http://superpcenginegrafx.net/misc/xloxt4.png)
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 29, 2016, 06:37:30 PM
You guys realize that we cannot go over 32 pixels in height, right?

That whole thing is 63 pixels high. The X alone is 43.

Let's squish it down:

(http://pic.photobucket.com/bwe.png)

You have to work that into something that looks good. This image is only scaled to 480x64, too. Once you take it down to 240x32, it starts having major problems. I scaled this down to the proper size, then scaled it back up:

(http://i171.photobucket.com/albums/u305/sirsinnes/welp_zpsngcgxosf.png)

And don't forget, that's (proportionally) 240 pixels wide, but Xanadu 1 only allows 224.

You might be able to make this concept work, but I have to say, if you set such a low ceiling/floor in order to make the background II work, the actual words are probably going to have to be tiny.
Title: Re: Xanadu II Translation Development Blog
Post by: Phase on May 29, 2016, 07:55:16 PM
Another interesting concept, nice job on the font  :)

Well, I added 4 new colors to my concept and did some blending/anti aliasing with them was able to squeeze a little more detail out over my last pic also remade the 2 since the last one was a little jaggy.
(http://www.ektophase.com/TG16/Xan91.png)
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 29, 2016, 10:13:38 PM
Looking good, Phase.

Here's my first crack at changing the outline to use differing shades of light blue like the original does. I had thought there were only two, but there are really three shades in there, and the original has four bands total, with the colors arranged from top to bottom like 1, 2, 3, 2.

I originally tried to use four bands, but in short, this forced only the tails of the f and g to have the fourth, brighter band, and it looked weird. This has just three bands, in the order you would expect. It seems to make a nice gradient if I put the first two bands higher up, and so those two are each only 7 pixels tall. I might alter them later.

Or, I might do something completely different.  :D

Also, I added automated drop shadow on the left. This is the same color as the internal shading. I tried adding it on the bottom as well (see how the light is coming in from the upper right?), but that actually looked bad. If I do attempt to add bottom drop-shadow, it will have to be done in a customized and sparing kind of way. This is good, though - it means I don't have to resize anything to fit 31 pixels.

(http://i171.photobucket.com/albums/u305/sirsinnes/logo4_zpshdiwzykr.png)
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 29, 2016, 11:53:29 PM
One more.

It occurred to me that with light coming in from above, the tops of each letter should have the lightest shade on them.

Here, I not only brought down the banding, but I changed it so that the larger letters have slightly different boundaries. I think it works, and it makes it look more like natural lighting.

The bottom band is only about 14 pixels high now, instead of 18 like before.

(http://i171.photobucket.com/albums/u305/sirsinnes/logo6_zpsjyc3ax8g.png)
(238x32)

The next big thing to do is start thinking about how to use other colors via the open palette spaces to soften this. If you zoom in, you can see that Phase's logo has a lot of anti-aliasing to soften it via colors not yet set by the game, while mine has none and works in the game as-is.

Maybe we could agree on a set of extra colors to use so that poor elmer doesn't go insane trying to accommodate different palettes for each entry?

Bear in mind, we still don't know how anti-aliasing is going to look coming out of real hardware. That's something to test sooner rather than later.
Title: Re: Xanadu II Translation Development Blog
Post by: spenoza on May 30, 2016, 03:09:37 AM
It is really funny to me that with all the hard work and hacking that's gone into this so far from the two of you, the title screen text has dominated conversation here for days. It SEEMS like such a trivial thing, though the attention we've all been giving it is a clear indication that that's entirely incorrect. It is something people see every time they boot the game, and sets the tone for the experience.
Title: Xanadu II Translation Development Blog
Post by: esteban on May 30, 2016, 03:37:58 AM
I really like several of the mock-ups...

:)

It is really funny to me that with all the hard work and hacking that's gone into this so far from the two of you, the title screen text has dominated conversation here for days. It SEEMS like such a trivial thing, though the attention we've all been giving it is a clear indication that that's entirely incorrect. It is something people see every time they boot the game, and sets the tone for the experience.

"The last 2% requires 98% finesse." —Pliny the Middle-Aged
Title: Re: Xanadu II Translation Development Blog
Post by: Vimtoman on May 30, 2016, 03:42:55 AM
I really like several of the mock-ups...

:)


freudian psychology says you dont like any.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on May 30, 2016, 06:09:09 AM
If elmer is up for changing the palette, here is the kind of thing that could be done (using 13 colors):

(http://superpcenginegrafx.net/misc/xloxt4.png)


That's lovely ... but I really don't know how you expect me to get it into the game!  ](*,)

Changing the palette is OK, it looks like I should be able to do that without any consequences.

But as SamIAm posted above, and as I've posted a few times, the limit for Xanadu 2 is 240x32, and the limit for Xanadu 1 is 224x32.

Now, it is technically possible for the PCE to display your larger logo as 64-high sprites instead of 32-high sprites, and I suspect that you're counting on that, but practically it would be a nightmare.

Ignoring that I'd have to do a lot of messing around inside the display code to do that, including possibly re-writing that "sparkle" fade-in effect, there's also the problem of memory.

I haven't looked at the memory footprint of Xanadu 1 yet, but I have taken a look at Xanadu 2, and there really isn't any free!

The Xanadu 2 opening video uses all the available memory in the PCE, including loading data into the audio memory.

The 8KB of code is almost completely full; there are only 54 bytes free for patching. That's not a lot, especially since I've already got to patch it to deal with the English names of the game's characters.

There might be a way to make it work ... but only if I remove "THE LAST OF DRAGON SLAYER" sprite, and even then it would be one heck of a lot of messing about.

Then there's Xanadu 1 ... I'd still have to check out if there's a hope-in-heck of changing it from 224 pixels to 240 pixels.

My instant reaction to putting it in is "no way".

But if you keep on working on (and it gets an exterior drop-shadow  :wink:), then I like the idea of it enough to spend the time to see if it is even possible.

It just may well not be.

BTW ... I'm really not loving seeing Xanadu 1's purple in Xanadu 2. Is that what you're going for, or just a quick mock-up?
Title: Re: Xanadu II Translation Development Blog
Post by: geise on May 30, 2016, 06:27:07 AM
I'm currently working on a 100% pixelart version of the official English logo (no fonts or photoshop effects used).

It's 240 x 64 pixels.


(http://superpcenginegrafx.net/misc/xloxt3.png)

(http://superpcenginegrafx.net/misc/xloxt1.png)

(http://superpcenginegrafx.net/misc/xloxt2.png)

I wasn't sure of the cursive at first, but I have to go with this one.  They all look pretty good.  This one I think goes with the graphics on the title screen the most.

EDIT:  NM.  I didn't see he 240x32 limit for Xanadu 2.
Title: Re: Xanadu II Translation Development Blog
Post by: Black Tiger on May 30, 2016, 06:42:47 AM
When I grabbed an old copy of the original logo sprite that I thought was the one elmer originally gave me, I apparently opened the first pic I made to draw the English logo beneath. Anyway, I started out basing everything on the correct dimensions  efore that and it was only when I found I had way more vertical room than I expected, that I started giving the X most of its size back.

It won't be a problem fitting it within 32 pixels of height, as only the largest letters are that tall already. I just need to see how I can make a "II" sit behind and be legible enough, but shaving a couple pixels off the talkest letters will likely do the trick. The 9 free colors in the current palette that elmer mentioned earlier are all this needs. It will also fit in Xanadu 1 no problem as if you compare it to the original "Legend of", you'll see that I actually spread the words apart further to accomodate a horizontal version of the official logo with that giant X. Now I can push them back closer together.

Obviously there's no need for any of that stuff Sam posted. This is pixelart that I drew one pixel at a time and not a photoshop job. The X is just going to be resculpted.
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on May 30, 2016, 07:37:36 AM
The Xanadu 2 opening video uses all the available memory in the PCE, including loading data into the audio memory.

The 8KB of code is almost completely full; there are only 54 bytes free for patching. That's not a lot, especially since I've already got to patch it to deal with the English names of the game's characters.
I'm not sure what you mean. I just looked and there is a ton of free space in a lot of banks, as well as vram itself, for the title screen part. The opening data gets loaded afterwards (xanadu 2 is using the new cd read lib routines, so it won't break on $e009).

 
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on May 30, 2016, 08:06:37 AM
I'm not sure what you mean. I just looked and there is a ton of free space in a lot of banks, as well as vram itself, for the title screen part.

We're talking about different parts of the game.

The Title Screen has plenty of free memory (RAM) ... VRAM would be a matter of "juggling" the free space that's there ... you'd have to change the VRAM that the "sparkle" uses ... and double the "sparkle".

The bigger problem is the "Opening Visual" ... that's part of the opening cutscenes.

That's the one that's full.

Again ... it's less a case of VRAM, but more one of RAM and hacking-space to modify the code to change the playback.

BUT ... I just tested it, if I change my compressor to "optimal" mode (which is unbelievably slow, and incredibly painful to use), I can free up about 6KB of RAM, which just might be enough.  :-k


Quote
The opening data gets loaded afterwards (xanadu 2 is using the new cd read lib routines, so it won't break on $e009).

Put a breakpoint at $339e, that the routine that the game uses to locate a file on the CD ... when you return from that, the game maps in the bank with the CD loading code and calls it.

And there's still the question of Xanadu 1, and its 224 pixel width.
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on May 30, 2016, 08:10:05 AM
Does the intro/prologue overwrite the titlescreen area/data or does it share it? I see the 54 bytes you're talking about. What about the tail end of cdram? A quick look showed decent strings of free bytes there. If you ran the intro/prologue through bizhawk emulator and did a CD logger, you'd know for sure.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on May 30, 2016, 09:27:02 AM
Does the intro/prologue overwrite the titlescreen area/data or does it share it? I see the 54 bytes you're talking about. What about the tail end of cdram? A quick look showed decent strings of free bytes there. If you ran the intro/prologue through bizhawk emulator and did a CD logger, you'd know for sure.

It loads up banks $68-$83 inclusive.

Bank $84 contains the CD loading code + some other stuff.
Bank $85 is the decompression buffer and gets constantly overwritten.
Bank $86 contains the CD directory and various data buffers that get overwritten at various times.
Bank $87 contains ... something, and also gets overwritten.

BUT ... you're absolutely right ... the (CD sector?) buffer in the last 2KB of Bank $87 does not get overwritten while the Opening Video is loaded and run, which means that I've actually got plenty of RAM to play with, as long as I can get it loaded somehow ... and I have a pretty good idea of how to do that.

So ... we've established that it should be possible  to hack the game to get Black Tiger's new 64-high logo working in Xanadu 2.

Now, can you just figure out if it's possible to expand the logo to 240 pixels in Xanadu 1's Opening Visual, and then I can get back to rewriting CC65's code-generation!  :wink:
Title: Re: Xanadu II Translation Development Blog
Post by: Black Tiger on May 30, 2016, 10:12:53 AM
If that's what you really want to do, that's cool. But I can totally do an alternate version with a normal sized X and push the words closer together for LoX1. I don't think it will look as faithful or quite as nice, but it could even look better for all I know. As I've said, I'd prefer to keep things as authentic as possible, but whatever you gotta do within what you're up for doing. :P
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on May 30, 2016, 12:18:34 PM
If that's what you really want to do, that's cool.

Am I amazingly happy to have the prospect of all the extra work dumped onto me unexpectedly?

Nope. And last night I'd have said "no way can this be done".

But it looks like it's going to be possible in Xanadu 2, and it may be possible in Xanadu 1 (IMHO it needs to be the same logo in both).

At that point it is a cost/benefit calculation ... and the answer is that after a night to sleep on it, I can really see the benefit that allowing a 64-pixel height could bring.

Now, there are definitely some things that jar about the current iteration of your bigger logo, particularly the blank space between the 'a' and the 'n', and between the 'd' and the 'u'.

Those serifs are just too darned big, causing the letter spacing to result in those eye-distracting blank spaces.

There's also the question of how much space is avaiable inside the stems ... is there going to be enough room to put in the internal shadow that's in the original Japanese logo ... and then the next question, do we care about that?

Phase has done a wonderful job on his 32-pixel height logo, and the anti-aliasing work that he's done is excellent.

But it does begin to remind me of why I don't always love anti-aliasing at low resolutions on modern display devices.

It looks brilliant as a small image on my monitor while reading this forum, and I'm sure that it would look absolutely fantastic on a TV with the natural softness and blurring that that would give it ... but the when it comes to displaying it at a "playable" size on a modern high resolution display, all that anti-aliasing is too visible IMHO, and I need to squint to make it really look good.

But that's just my current reaction ... would I just get used to it over time?  :-k

There's also a fairness issue in that Phase has been doing some great work on his logo that basically takes the same source inspiration ... it only seems fair to see if he wants to try doing a 64-pixel logo, too.

Either way ... I need to investigate whether I can get a 240 pixel wide logo working in Xanadu 1 (I think that the answer was no the last time this came up).
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 30, 2016, 12:58:59 PM
If you use that really slow super-compression, will it possibly stall the progression of the intro sequence to the point that transitions start taking a long time and/or it no longer finishes with the music?

In the prologue scenes that are done within the normal game-engine, each screen transition takes 5 or so frames longer in the translation than the original because of elmer's new compression. A few frames each time isn't a big deal, especially when there are only a few transitions in each scene, but if there are more transitions and more frames of delay added each time in that intro sequence, we're going to have us a syncing problem.

If we can get 64 pixels in height in both games, then I'd give a tentative thumbs up to the box-art cursive style. However, I wouldn't mind seeing a quick mock-up more like the original e.g. Black Tiger's first logo for comparison.
Title: Re: Xanadu II Translation Development Blog
Post by: Black Tiger on May 30, 2016, 01:24:47 PM
Here is a 240 x 32 pixel version.


(http://superpcenginegrafx.net/misc/loxx4.png)

(http://superpcenginegrafx.net/misc/loxx1.png)

(http://superpcenginegrafx.net/misc/loxx2.png)



Even as I was saving these I noticed that I'd like to move the "L" a pixel closer to "egend".

Still lots of leeway to get it narrower for the first game.
Title: Re: Xanadu II Translation Development Blog
Post by: johnnykonami on May 30, 2016, 02:32:16 PM
This last version of the title screen looks really professional, good job guys.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 30, 2016, 04:10:00 PM
That is some skilled work on BT's part. I know I couldn't do that.

I'd like to draw people's attention to something, though:

(http://pic.photobucket.com/bwe.png)(http://superpcenginegrafx.net/misc/loxx1.png)

You might look at that and think wow, the English looks even better than the Japanese! And that would be understandable, because the English here is very exciting to look at.

However, keep in mind that the original Japanese graphic, in relation to the art in the rest of the game, is not dull. Tonally, it's very well-matched, with just a little touch of its own style like a good logo should have.

At the very least, I for one would like to see BT's work de-glitzified a bit, e.g. using milder coloring and maybe making letters like the X a bit tighter, along with slimming the background II at least a little.

However, in 240x32 especially, where it's all forced to get kind of fat, and even in 240x64, I'm afraid that that box-art-style cursive might be a little over-the-top. I felt this about Phase's rendition of it, too. It's really abandoning the subtle sensibility of the original logo entirely. If we use it, then in Xanadu 2's case especially, it will be by far the most ostentatious graphic in the game.

Xanadu 2 is not a wild party or a swashbuckling adventure, nor is it a particularly glamorous affair. It's a story of the somewhat mild-mannered characters from the first game wandering almost helplessly through an unknown continent that is full of ruin and dark, beautiful nature. Even the towns in the earlier parts of the game that are clean and pretty are also very subdued.

My work is not the height of perfection, but I do think it's a lot more in line with the tone of the game itself. I'd love for someone who can draw to do what it does even better.

(http://pic.photobucket.com/bwe.png)(http://i171.photobucket.com/albums/u305/sirsinnes/logo7_zpsasvjycni.png)
Title: Re: Xanadu II Translation Development Blog
Post by: Phase on May 30, 2016, 06:26:47 PM
I see what SamIAm is saying, and thats why I like his version as well. It has a simplicity to it.
Definitely something to keep in mind.

In a way I like BTs smaller logo better than the bigger one, maybe the big one is too big?, so is something in between possibly the answer like 48height? Not to make you guys do more work just theoretically :P

When SamIAms mention anti aliasing a few post back I was going to post that I was thinking the same thing that elmer was talking about later, the AA may deviate too far from the pixel shading look even though it has its benefits. About the extra colors on my last pic even though i added 4 colors, I didn't use some of the original colors so perhaps just picking some nicer shades is the key. Anyways went back to a pixel shading look.

I think this may be my final entry for 32 height as I'm pretty happy with it, though Im always down for changing stuff based on others input. The 2 was really bothering me and after I saw BTs version I thought I'd go back and take a look at the artwork again (http://2u.pacn.ws/640/5u/pa.105397.1.jpg)
see that little 2 thats the new plan  :-k

Also reading what SamIAms was saying on his gradient and lighting he made a good observation, and his is looking super nice ..so I borrowed his Idea there O:). My outline is heavier than BTs so I defo need to have a nice color gradient. also added a drop shadow back in (the first one I posted had one) but also because SamIAms looks nice :-" it can always be knocked out if its too much. Well, Im having fun and learning some techniques so don't quote me on this being my final entry.  :)

(http://www.ektophase.com/TG16/Xan93.png)
Edit: updated had a few odd pixels and had to lose the shadow because it was looking 3d
 
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on May 30, 2016, 06:36:07 PM
If you use that really slow super-compression, will it possibly stall the progression of the intro sequence to the point that transitions start taking a long time and/or it no longer finishes with the music?

The "super-slow" part is only on the compression side, it has no effect on the decompression speed (except to make it a tiny, tiny, tiny bit faster).

It's not something that you have to worry about ... except that that it makes previewing translation changes grindingly-slow when enabled, i.e. 10 to 20 times as long to do an insertion pass ... and that's just doing one file.

I really need to look at what LZ4 for is doing for its "optimal" processing and steal it!


You might look at that and think wow, the English looks even better than the Japanese! And that would be understandable, because the English here is very exciting to look at.

However, keep in mind that the original Japanese graphic, in relation to the art in the rest of the game, is not dull. Tonally, it's very well-matched, with just a little touch of its own style like a good logo should have.

Well, if we follow that train of thought, then I think that we get back to Black Tiger's original logo idea.

IMHO, that matches the feel of the original Japanese logo, but with just a touch of it's own style.

(http://c2.staticflickr.com/8/7319/27296675931_bffa3e9baa_o.png)

BTW ... I find this logo easier to "read" than any of the current cursive logos (except SamIAm's) because there's a clear distinction between the letters (<EDIT> when viewed at game-display resolution, but less so at web-browser resolution).

The biggest problem that I have with SamIAm's logo in it's current form is that it has too little style of its own.

The original Japanese logo seems (to my eye) to have a "feel" that's lacking from the simple text in Sam's logo.
Title: Re: Xanadu II Translation Development Blog
Post by: Phase on May 30, 2016, 06:41:43 PM
After rereading SamIAms post, I get what hes saying even more, so didn't mean to brush it aside, its just I was posting my latest. Its something worth discussing.
edit: doh elmer beat me to the next post lol
Title: Re: Xanadu II Translation Development Blog
Post by: Phase on May 30, 2016, 07:01:21 PM
For the sake of argument, many RPGs aren't super happy or humorous and still have heavily stylized logos and title screens?

 Not to be too biased :-" but imo I like both the cursive logos so far, and think they look a little more RPG like than the original and SamIAms.  The original still throws me off with the smaller words and also the font doesnt seem very rpg like and when you add the italic to it, it kinda makes me think of something speedy imo. The original english artwork doesn't really seem too crazy to me and looks like an RPG.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 30, 2016, 07:03:59 PM
Thanks a million, Phase! If we keep experimenting in 240x64, I hope you'll stick around and throw in some ideas. You do good work.  :D

EDIT: I just saw your next post. I'd be happy to talk more about why I hesitate to embrace cursive soon, but I need to start doing real-life work.

The "super-slow" part is only on the compression side, it has no effect on the decompression speed (except to make it a tiny, tiny, tiny bit faster).

It's not something that you have to worry about ... except that that it makes previewing translation changes grindingly-slow when enabled, i.e. 10 to 20 times as long to do an insertion pass ... and that's just doing one file.

I really need to look at what LZ4 for is doing for its "optimal" processing and steal it!

Well, that's good. I mean, it's good and bad, but for our purposes, it's one less barrier to making things work.

Quote
Well, if we follow that train of thought, then I think that we get back to Black Tiger's original logo idea.

IMHO, that matches the feel of the original Japanese logo, but with just a touch of it's own style.

BTW ... I find this logo easier to "read" than any of the current cursive logos (except SamIAm's) because there's a clear distinction between the letters.

The biggest problem that I have with SamIAm's logo in it's current form is that it has too little style of its own.

The original Japanese logo seems (to my eye) to have a "feel" that's lacking from the simple text in Sam's logo.

I totally agree. One could criticize my logo in a word as "forgettable" and without better art skills, I probably won't be able to fix that. If we are in 240x32, however, I honestly think it's the best compromise of the logos currently existing; it's easy to read and stylistically appropriate.

What we really need to know is, are we going up to 64 pixels in height? Because if we are, the possibilities go into the stratosphere. That would open up a whole new round of experimenting.

I just tried blowing up the font I was using and putting the title in two lines. Without touch-ups, it's not nice to look at, but it shows a lot of promise. With a different font, we could get that slightly-chiseled look going in lowercase, plus we could do the shading exactly like the Japanese logo does it (plus external drop-shadow if we like). 
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 31, 2016, 03:31:51 AM
Re: Why I'm not crazy about the cover-art cursive for Xanadu 2's title screen.

Let's start with a question: if they hadn't seen the cover art, would Phase or BT ever have thought to make the X like that?

I rather doubt it.

If the only reason to go with that whole style is because Falcom has used it elsewhere, I think that that's probably not enough.

On the cover itself, the cursive is thinner, the color is much lighter, the whole thing is more contained as one unit, and even though it is prominent, there are other strong and prominent visual elements to go with it. On these title screens, however, this writing gets dark and splayed out, with very noticeable outlines, and it's basically the only major thing the player looks at. At the very least, I think we have to acknowledge that it's working in a different way once we bring it over, and I'd say that anytime you do that, there's a very good chance you're just forcing it.

One of the reasons why I liked Phase's straight chiseled logo is because it emerged organically: Phase looked at the background, assessed what would fit, and proceeded from there. Something tells me it just doesn't quite strike the right chord for these games, but I feel almost sad to let it go. I still like that one more than the cursives, actually.

There's no accounting for taste, they say. My taste, for what it's worth, tells me that the cursive is simply too gaudy. Make no mistake, it also tells me that mine is nothing to get excited about, either. However, think about it like this: if you're going to a formal event, and you've only got two suits - one that's appropriate but a little dull and one that you're pretty sure is too flashy, wouldn't you pick the former? If you were choosing between two items at a buffet, and one was too salty and the other a little bland, wouldn't you go with the blander one?

I'd love to have one that hits the bullseye, but we just don't right now.

One more thing along the same lines: I'd rather undersell Xanadu 2 with the title screen than oversell it. I'd rather that players be pleasantly surprised that the game itself offers richer art than the title screen would suggest than have them be disappointed that it didn't deliver as much dazzle.

With Xanadu 1, it doesn't matter as much. That game is not only a lot brighter and peppier, but the logo only appears for a few seconds during the cutscene between the third and fourth chapter.

By all means, if you disagree with me let know how and why.  :wink:
Title: Re: Xanadu II Translation Development Blog
Post by: Phase on May 31, 2016, 11:35:57 AM
Sorry if my last post was overly argumentative this is yours and Elmers project.
I was also curious though because I would have probably went with the cursive style on a 64height concept. (at least with the actual word Xanadu)

Good points and thanks for going into more detail. I don't entirely agree, but I see what your saying.
Did you guys want to pursue some 64 height concepts now?
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on May 31, 2016, 12:28:38 PM
Did you guys want to pursue some 64 height concepts now?

Can you just give me a little longer?

I just need to finish something off before looking at the Xanadu 1 sprite situation to see if 240-wide is achievable.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 31, 2016, 01:14:05 PM
Sorry if my last post was overly argumentative this is yours and Elmers project.
I was also curious though because I would have probably went with the cursive style on a 64height concept. (at least with the actual word Xanadu)

Good points and thanks for going into more detail. I don't entirely agree, but I see what your saying.
Did you guys want to pursue some 64 height concepts now?

No no! I don't think you're being argumentative at all! On the contrary, I'd love to hear more of your perspective.

I'm happy to have this conversation with you. :D

Black Tiger's 64-high cursive is probably the prettiest thing we've got going. There's something to be said for that, and at that proportion, I think works well enough that it might be worth going for. Of course, with such a drastic spec change, I think we really should see another round of mock-ups before we decide. Even an additional 8 pixels in height would make the possibilities explode.

BT's 32-high cursive, as I feared it would, looks a bit cramped and fat. It's lacking the grace of the 64-high version.

By the way, I was going to ask, could you give me some examples of some of the 16-bit RPGs you were thinking of when you mentioned other games with exaggerated styles? I'd honestly love to know.

-------------

By the way, I just now had the unfair privilege of being able to try mine out on a real system and CRT in RGB.

You all might be interested to know that on my setup at least, the lightest blue outline color is less of a blue and more of an off-white, especially against the dark-green background before it fades to black. Also, the two medium blues are so close to each other that it's hard to distinguish them, although that might just be due to where the boundary is on my graphic in particular.

My first reaction to my logo was that I should probably raise the ceiling of the second band and reduce the first. What I might try is putting the brightest color on the upper right corners of all the short letters only, allowing a little more for the taller letters, and that's it.

I also think I can get away with using a fourth band on the tails of the f and g, and that it will look better. Right now, they look very blue.

In case you're wondering what I thought as a whole, here's how I'd sum it up: It doesn't really work as a logo at all. However, as a stylized title, like what you might see on the cover of a novel, it works very well.

A proper logo is admittedly preferable, though. If it's a choice between this and a moderately dysfunctional logo like elmer's mod of BT's old version, well, that's going to be tough.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on May 31, 2016, 07:01:50 PM
I'll probably weigh in with my feelings on the stylistic aspects that we're talking about tomorrow, but I'm too knackered at this point to want to enter that particular stratospheric realm of discussion.   :wink:

In the meantime ... the SWD5 compressor is giving me lots of space left to hack stuff in on the Xanadu 1 Opening Visual (so-called, even though it doesn't appear until you've finished the 3rd level in the game).

At this point, I see no reason why it wouldn't be possible to get a 240x64 logo working in Xanadu 1.

It'll take a lot of work ... especially for a logo that's only on screen for approx 8 seconds in the entire game ... but "yes", it's worth it.

This logo is (to my mind) one of the graphical links between the 2 games.

And the "Legend of Xanadu" logo appears on both of the original game boxes.

If expanding on the original Japanese logo to allow for 64-pixels height will allow us to get a great English logo then I think that it is worth my time in trying to make it work.

I don't overly love the attempts to recreate the box-art logo when it's been compressed down into 32-pixels of height.

They're both amazing in their technical skill ... but that logo just doesn't look good when it is squashed down into those few pixels.

OTOH, Black Tiger's 64-pixel logo gave a hint of how good looking and well-proportioned the original box-art logo could eventually look on screen, if given a decent amount of space.

So ... the game is afoot!  :D
Title: Re: Xanadu II Translation Development Blog
Post by: Phase on May 31, 2016, 10:38:38 PM
Some interesting views and opinions that are based on the game. My opinion having not actually played the game (yet) is more basic; that the cursive doesn't stand out too much to me, and compared to other rpgs doesn't bother me. When I briefly googled some rpg title screens (mainly SNES) about half seemed basic font like and the other half ranging from medium to heavily stylized. Also like I mentioned the cursive just seems rpg like imo for some reason.
Still like I said I can understand some of SamIAms views. But will let you guys discuss it since it seems more based on having played the game.

Good news on the 64 height  8) whipped up what I was thinking quickly in the past couple hours here. first one is kinda what I think of after reading SamIAms opinions though I could be way off.
made it kind of low contrast, glassy, basic/simple

(http://www.ektophase.com/TG16/XanS1a.png)

Then did one with the cursive Xanadu higher contrast more like the J Title screen, side note I was able to make it fairly quickly since I originally traced the art with vector paths so just had to scale it up luckily.

(http://www.ektophase.com/TG16/XanC1a.png)
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on May 31, 2016, 11:04:58 PM
I like where this is going already. The extra space is really changing things for the better! :D

First off, I am probably not going to be making more mock-ups just because I'm not an artist, and exploiting the extra vertical pixels is going to more about artistry compared to just the technical challenge of getting the title to fit into 240x32.

Besides, I need to get back to focusing on the script.  #-o

Phase, your second pic does not cross the line for me like the previous 32-high cursives did. It's got more simplicity and class. It's probably my favorite of all of your submissions so far.

Can you bring down the brightness just a smidge? I fear that that's going to be partially white on-screen as it is.

I'd love to see any number of color variations you'd like to share, honestly. Fair warning: we'll probably want to stay in the blue-green spectrum for Xanadu 2 and the purple spectrum for Xanadu 1.

As for your first pic, well, even I think you can be a bit more daring on the font than that.  :wink: But you can focus on the second one for now.

Anyway, thanks again!  :D
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on June 01, 2016, 05:26:28 AM
A proper logo is admittedly preferable, though. If it's a choice between this and a moderately dysfunctional logo like elmer's mod of BT's old version, well, that's going to be tough.

Moderately dysfunctional, eh? Them thar's fightin words!  :twisted:

One final set of changes to the old logo before it gets steamrollered by the expanded possibilities of a 64-pixel logo!  :wink:

I've made the leading "L", the "X" and the "II" one pixel taller to help them stand out more.

I've also moved the words apart more so that the "THE" and the "OF" are now properly separated from the other words.

I've also applied the interior drop-shadow to them and applied shading on their outlines.

I'd be happy to ship the translation with this version of the logo ... but I expect that we'll end up with something prettier.  :)

Once other thing ... I've ranted on about the use of drop-shadows to help small text pop off the screen and be readable.

Falcom put a side-only drop-shadow on the menu text on the title screen, and it's been bugging me for ages.

In this mockup I've expanded the drop-shadow to the bottom of the text too so that it's more readable.

I'm almost-certainly going to do this in-game as well, for both readability, and for consistency with the drop-shadows in the message boxes.

Unless there's some massive outcry about it ... which would surprise me, since the shadowing on that screen is inconsistent anyway.


(http://c2.staticflickr.com/8/7303/27364661906_a834fc9183_o.png)
Title: Re: Xanadu II Translation Development Blog
Post by: Black Tiger on June 01, 2016, 06:22:16 AM
I've been meaning to try doing italic THE and OF for that version of the logo and maybe touch up a few of the letters.


If the 64 pixel high logo becomes a reality, will it still require a single palette?
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on June 01, 2016, 06:51:30 AM
I've been meaning to try doing italic THE and OF for that version of the logo and maybe touch up a few of the letters.

I don't think that there's enough space left for nice italic letters in there, but I'd love to see the attempt.  :-k

There are definitely a few spots on the letters that could do with a little cleanup.  :wink:


Quote
If the 64 pixel high logo becomes a reality, will it still require a single palette?

At this point, yes. Expanding from 32-high to 64-high (in Xanadu 2) should just be a case of changing a bit in the sprite definitions.

Doubling the number of sprites to get a different palette in the bottom half, and adding a whole extra palette, would be rather more annoying to do. I'd really need to see some massive benefit.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on June 01, 2016, 03:27:09 PM
Were these ever posted earlier in the thread? I don't remember, and it would take a long time to check, so let me put up some fresh ones.

This is what the title graphic looks like in Xanadu 1. It dissolves in on a totally black screen, and almost immediately after the panning background comes in, starts dissolving right back out.

(http://pic.photobucket.com/bwe.png)(http://i171.photobucket.com/albums/u305/sirsinnes/Kaze%20no%20Densetsu%20Xanadu%20J-0022_zps1wk8hutq.png)

---------------------------------------

Also, this is from the credit roll of Xanadu 1. What happens is, the graphic dissolves in from blackness, just like the one above. Then it palette-shifts into becoming part of the stone background, over which the credits start rising.

I have to admit, in terms of sheer dimension, this is larger than I was remembering. It also makes me feel a little better about the prospect of using all-cursive in the title screen for Xanadu 2. However, I would still want it to be tight, whispy, and modestly colored. I think it would only work in 64-high.

Note that it does not appear in the credit roll of Xanadu 2, which I just checked, nor anywhere else in that game IIRC.

(http://i171.photobucket.com/albums/u305/sirsinnes/Kaze%20no%20Densetsu%20Xanadu%20J-0024_zps2l9nwvud.png)
(http://i171.photobucket.com/albums/u305/sirsinnes/Kaze%20no%20Densetsu%20Xanadu%20J-0025_zpsxsffq4w3.png)
(http://i171.photobucket.com/albums/u305/sirsinnes/Kaze%20no%20Densetsu%20Xanadu%20J-0026_zpspqvd8hqj.png)
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on June 01, 2016, 05:02:03 PM
A proper logo is admittedly preferable, though. If it's a choice between this and a moderately dysfunctional logo like elmer's mod of BT's old version, well, that's going to be tough.

Moderately dysfunctional, eh? Them thar's fightin words!  :twisted:


By no shortcoming of your skill or artistic sensibility do I find fault with your logo (I know you're just joking, too). I simply think, as you can probably guess, that since the base was not designed with THE in mind to begin with, it just doesn't work that well to put it in there. It's not particularly easy to read, and the whole seems off-balance. It's like whoever made it wasn't taking THE seriously. Plus, the II and the U still look cramped.

As important as looking "logo-like" is, I suspect that if you presented yours and mine side-by-side to various strangers, gamers and non-gamers alike, and took a poll, mine would get the greater number of favorables. Unexciting as it may be, it's a lot more harmonious.

We seem to be starting to refer to this title graphic as a "logo" now. One thing that occurred to me when I took those screenshots for my last post is that that golden cursive is The Legend of Xanadu's logo. In other words, it already has one. If we make another, it will have two. In the first game especially, the Japanese kaze-no-densetsu graphic is perhaps not really a logo so much as a title, which then wouldn't be meant to compete with the golden cursive.

All this really means, I suppose, is that we don't have to worry that much about making this graphic particularly logo-like. Let's just make sure it looks good, fits the part, and doesn't cause any huge conflict.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on June 01, 2016, 06:10:11 PM
EDIT:

Ah, screw all this crap. It doesn't matter. Let's just get something that looks nice.
Title: Re: Xanadu II Translation Development Blog
Post by: Phase on June 01, 2016, 06:55:44 PM
Interesting stuff, is there any further info we can get out of the manuals or art that could help?
Like is the cursive used much in it or just on the cover?

Edit: yeah after looking on google and pcengine.co.uk it's on most everything so why is not really in the game more prominently? (other than the first ending) and its not even in the second game.. that is weird.

I gotta take a look at that ending graphic thats pretty neat.
Title: Re: Xanadu II Translation Development Blog
Post by: Phase on June 01, 2016, 09:04:39 PM
(http://www.ektophase.com/TG16/XanC2c.png)
Quick mod darkened it up, added the J text from the ending graphic, raised it a little.
Title: Re: Xanadu II Translation Development Blog
Post by: Vimtoman on June 01, 2016, 09:08:46 PM
Spot on.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on June 01, 2016, 10:17:41 PM
(http://www.ektophase.com/TG16/XanC2c.png)
Quick mod darkened it up, added the J text from the ending graphic, raised it a little.


It looks much nicer in darker colors!  :)

But I'm still not convinced (yet) about the thick outline on the letters.  :-k

You posted while I was still messing with my test ... here's your logo that I recolored and reduced the outline thickness.

(http://c2.staticflickr.com/8/7342/27378911346_d9a584afc7_o.png)
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on June 01, 2016, 11:29:32 PM
I don't think we need the Japanese along the bottom, which is partially illegible anyway.

Otherwise, that looks really, really good.  :D

It's hard to say about the outline thickness. I can see the appeal of both. It's probably worth a test on a real system/CRT.

-----------------------------

I could puzzle over the significance and balance and usage of the title/logo art that Falcom made across the two games for ages, but I guess all that matters is that what they did doesn't make a lick of sense, so we shouldn't worry about it too much.

Let's just get something really nice and appropriate for the Xanadu 2 title screen that also copies over to that Xanadu 1 cutscene without causing any major problems.

Is 240x64 a lock yet? Pressure's on, elmer.  :D

Black Tiger, if you want to bring your 64-high full-cursive version to the next level, I'd love to see it.  :D
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on June 02, 2016, 03:05:29 AM
I watched the whole Xanadu 1 credits, and when they're through, the logo fades back out of the wall to look like this:

(http://pic.photobucket.com/bwe.png)

It was cool to see that the director, Yoshio Kiya, was also one of the main programmers.  :)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on June 02, 2016, 04:22:16 AM
Let's just get something really nice and appropriate for the Xanadu 2 title screen that also copies over to that Xanadu 1 cutscene without causing any major problems.

Is 240x64 a lock yet? Pressure's on, elmer.  :D

Whoops, wasn't I clear before? ... The answer is "Yes".  :)

Xanadu 1's Opening Visual was compressed with Falcom's old compressor ... my new compressor frees up enough memory to allocate a complete 8KB block for customization code, which is going to be plenty to do whatever I need to make the 240x64 logo work.
Title: Re: Xanadu II Translation Development Blog
Post by: Phase on June 02, 2016, 10:43:27 AM
Thats interesting you went into the outline, I actually tested a thinner outline and a hybrid of thick and thin last night, so Ill post those a little later. Will also lose the Japanese text and take a closer look at your test as well.

Title: Re: Xanadu II Translation Development Blog
Post by: spenoza on June 02, 2016, 01:48:11 PM
I actually like the inclusion of the Japanese. It's a kind of nod to some of the branding used in the JPN version. I think it's a bit of circular homage.
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on June 02, 2016, 02:28:11 PM
I actually like the inclusion of the Japanese. It's a kind of nod to some of the branding used in the JPN version. I think it's a bit of circular homage.

Agreed.

I like it, too.

:)

Sadly, it's missing a figure skater or two.
Title: Re: Xanadu II Translation Development Blog
Post by: Phase on June 02, 2016, 03:03:58 PM
Hmm well it can easily go back in.

Ok here is a comparison for the outline.
1 is full outline
2 is thin outline
3 is a hybrid were we put one on top of the other and change the "full" to a darker shade. softens it up a bit
here is a DL with the original size and 2x. http://www.ektophase.com/TG16/XanCompare.zip

(http://www.ektophase.com/TG16/Xan01x2.png)

(http://www.ektophase.com/TG16/Xan02x2.png)

(http://www.ektophase.com/TG16/Xan03x2.png)

sorry for taking up a whole page lol
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on June 02, 2016, 03:18:19 PM
HYBRID (#3)
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on June 02, 2016, 03:33:05 PM
That third one is looking fantastic.

I'll give you CRT photos within 24 hours of elmer getting it in the game.  :D

-------------------

Give me a bit to sit on whether to include the Japanese.

Two of the eight characters are illegible (though somewhat guessable) and the rest don't exactly look gorgeous. It's one thing to use this on an ending screen, but to a Japanese audience anyway, it wouldn't be acceptable for a title screen. At worst, it could add an element of sloppiness.
Title: Re: Xanadu II Translation Development Blog
Post by: technozombie on June 02, 2016, 04:42:01 PM
I don't post too much because I really don't have a lot to say, but damn am I getting worked up for these games to be released in English. Something about following along with it just draws me in. Keep up the good work!  :clap:
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on June 02, 2016, 05:28:21 PM
Thanks!

By the way, I just ran across this and can't help posting it.

(http://pic.photobucket.com/bwe.png)

The original Pepsi logo, 1898-1905.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on June 02, 2016, 06:26:32 PM
Hmm well it can easily go back in.

Ok here is a comparison for the outline.

3 is a hybrid were we put one on top of the other and change the "full" to a darker shade. softens it up a bit
here is a DL with the original size and 2x. http://www.ektophase.com/TG16/XanCompare.zip

That third one is looking fantastic.

Yep, I totally agree. The anti-aliasing against the green background looks really, really good, and it doesn't make the outlines look too big.

Nice idea!  :D

But, OTOH, it's giving the logo a green halo when put on the black background.

I'll have to see if that is fixable during the fade-out of the background.

If not, then I still like the 1-pixel outline better than the 2-pixel outline.


I'll give you CRT photos within 24 hours of elmer getting it in the game.  :D

Hahaha! No pressure there, then!  :wink:


Quote
Give me a bit to sit on whether to include the Japanese.

Two of the eight characters are illegible (though somewhat guessable) and the rest don't exactly look gorgeous. It's one thing to use this on an ending screen, but to a Japanese audience anyway, it wouldn't be acceptable for a title screen. At worst, it could add an element of sloppiness.

I don't really like seeing the Japanese there.

It was great to have the chance to look at it and make a judgement, but upon reflection, I think that it makes the whole thing look too busy, and I can't imagine it ever being there if the game had gotten a real US release.


By the way, I just ran across this and can't help posting it.

<Image Removed For Mental Health Reasons>

The original Pepsi logo, 1898-1905.

That's one seriously-horrible logo!  :shock:  :wink:
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on June 02, 2016, 08:36:02 PM
Yep, I totally agree. The anti-aliasing against the green background looks really, really good, and it doesn't make the outlines look too big.

Nice idea!  :D

But, OTOH, it's giving the logo a green halo when put on the black background.

I'll have to see if that is fixable during the fade-out of the background.

If not, then I still like the 1-pixel outline better than the 2-pixel outline.

If I had to choose, I would guess that the 1-pixel outline will look better, too.

Quote
I'll give you CRT photos within 24 hours of elmer getting it in the game.  :D
Hahaha! No pressure there, then!  :wink:

I just bought a 25-stack of cheap CD-Rs with the intent to use them all in the near future for this very purpose.  :wink:

Quote
I don't really like seeing the Japanese there.

It was great to have the chance to look at it and make a judgement, but upon reflection, I think that it makes the whole thing look too busy, and I can't imagine it ever being there if the game had gotten a real US release.

Yeah, it's a nice salute to the origin of the game, but it's really not necessary, and kanji don't have any reason to exist in the game-world.

Quote
That's one seriously-horrible logo!  :shock:  :wink:

I really wouldn't be surprised to see it turning up on tests at design schools.

"Explain at least five things this logo does poorly."
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on June 06, 2016, 05:52:24 PM
I've managed to get Phase's logo working on the Xanadu 2 title screen now, and the code-hacking required wasn't anywhere near as horrible to do as I'd imagined.  :)

The logo has be converted into a paletted form, and I had to mess around with the colors to keep some of them PCE-legal, but I think that the result is good ...

(http://c2.staticflickr.com/8/7489/27415774002_977e8313b3_o.png)

BTW, that's a 256-color paletted image with the colors in exactly the right places for the PCE, if someone wants to play with it!


While I was messing around, I moved the "u" up by a pixel to line up with the rest of the text.

Here's what it looks like in-game, running in Mednafen ...

(http://c2.staticflickr.com/8/7231/26906653493_0f8faa6d71_o.png)

(http://c2.staticflickr.com/8/7595/26906653503_faa14b3751_o.png)


I really, really like it!  :dance:

There's definitely room for a little bit of clean-up and fine-tuning, but the concept itself is working even better than I'd imagined.

I think that we're on to a winner with the expanding the logo to 64-pixel height!  :D

It's really good that Phase's new logo isn't overly wide ... Falcom's "sparkle" effect can't handle a logo larger than 192x64 without dropping frames and slowing down.

That's some new information that we didn't have until today.

I've also found out that the "sparkle" effect is limiting the logo to an 8 color palette, and not the full 16-colors that I would have expected.

Given the processing bottleneck that I also found today, I don't think that we're going to be able to "hack" that problem away, and that we're going to have to live with an 8-color logo.

Given the results that I'm seeing on the screen, that doesn't seem to be a problem!


I'll give you CRT photos within 24 hours of elmer getting it in the game.  :D

Hahaha ... the clock is counting down!  :wink:
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on June 06, 2016, 05:54:02 PM
I looked into that sparkle effect... I'm totally stealing it! ;>_>
Title: Re: Xanadu II Translation Development Blog
Post by: Phase on June 06, 2016, 06:50:16 PM
Interesting stuff, lucked out on the size.

yeah, I noticed a few goofy spots like the lower left end on the X could be better will try and touch it up some more.

I see you added the lower drop shadow like you mentioned on the options and falcom, looks good and goes with the light rays.  8)

Edit
This should look better
(http://www.ektophase.com/TG16/XanZ1.png)
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on June 07, 2016, 01:08:44 AM
GORGEOUS LOGO looks great in the game.

:)
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on June 07, 2016, 02:44:21 AM
As promised. Oversized pics incoming.

This looks nice.
(http://pic.photobucket.com/bwe.png)

Try to ignore the handsome man in his pajamas. Also, spot the PC-FX for bonus points.
(http://i171.photobucket.com/albums/u305/sirsinnes/DSC01792b_zpsz29gofjk.jpg)

However, this does not look good. It appears right before the fade-in starts.
(http://i171.photobucket.com/albums/u305/sirsinnes/DSC01790b_zpsermuqega.jpg)

This is also troubling. It looks this way during the fade-in.
(http://i171.photobucket.com/albums/u305/sirsinnes/DSC01791b_zpso3pcvx27.jpg)

What's your diagnosis, Dr. elmer?  :-k
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on June 07, 2016, 02:57:20 AM
Note that the above problem does not happen with a 240x32 image.

EDIT: Also, the problem does not happen with the same ISO in Mednafen.

(http://i171.photobucket.com/albums/u305/sirsinnes/DSC01795B_zpsvh7osp6m.jpg)

(http://i171.photobucket.com/albums/u305/sirsinnes/DSC01796B_zpsvjgvzmt6.jpg)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on June 07, 2016, 04:49:05 AM
This is also troubling. It looks this way during the fade-in.
(http://i171.photobucket.com/albums/u305/sirsinnes/DSC01791b_zpso3pcvx27.jpg)

What's your diagnosis, Dr. elmer?  :-k


Aha! I've been tricked by Mednafen!  #-o

You're just seeing garbage in VRAM left from when the machine is switched on.

Mednafen unhelpfully clears this memory, masking the problem that I need to clear out the area before it is used by the fade-in sprites.

My bad ... I thought that Falcom cleared out VRAM at the start of the game and I totally forgot to check it.

Whoops!  :oops:

It's trivial to fix.
Title: Re: Xanadu II Translation Development Blog
Post by: Burnt Lasagna on June 07, 2016, 05:20:39 AM
(http://c2.staticflickr.com/8/7231/26906653493_0f8faa6d71_o.png)
(http://mrwgifs.com/wp-content/uploads/2013/03/Ninja-Turtle-Michelangelo-Way-Too-Excited-Gif.gif)

Elmer and Sam, this looks amazing! Great job :D
Title: Re: Xanadu II Translation Development Blog
Post by: geise on June 07, 2016, 05:46:47 AM
Sam, those title pics look nice when finally seen on a TV.  I really like the larger logo better.  It's good to know it might be a fairly easy fix for the fade in issue.  Thank you guys for the work going into this. 

BTW nice to see you back Burnt!
Title: Re: Xanadu II Translation Development Blog
Post by: Black Tiger on June 07, 2016, 02:12:22 PM
I was hoping to get to continue experimenting with color and shading on my latest couple of designs, but it looks like time is running out, so here's one in its basic form without shading or fancy coloring.


The end of The Legend of Xanadu:
(http://superpcenginegrafx.net/misc/zxc2.png)(http://superpcenginegrafx.net/misc/zxc1.png)

The title screen of The Legend of Xanadu II:
(http://superpcenginegrafx.net/misc/bvc1.png)(http://superpcenginegrafx.net/misc/bvc2.png)(http://superpcenginegrafx.net/misc/bvc3.png)

(http://superpcenginegrafx.net/misc/cvb1.png)(http://superpcenginegrafx.net/misc/cvb2.png)(http://superpcenginegrafx.net/misc/cvb3.png)
Title: Re: Xanadu II Translation Development Blog
Post by: spenoza on June 07, 2016, 02:29:35 PM
Game title SHOWDOWN!
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on June 07, 2016, 03:07:44 PM
I was hoping to get to continue experimenting with color and shading on my latest couple of designs, but it looks like time is running out, so here's one in its basic form without shading or fancy coloring.

The end of The Legend of Xanadu:
(http://superpcenginegrafx.net/misc/zxc2.png)(http://superpcenginegrafx.net/misc/zxc1.png)


Everything you posted is FANTASTIQUE.

:)
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on June 07, 2016, 03:45:18 PM
We're in no hurry, BT. You and anyone else can make a submission whenever you like.

Now...first of all, as elmer recently pointed out, we probably ought to stick to 192x64 or else we're going to face performance troubles, and that's a big problem in Xanadu 1 in particular (assuming it happens there as well) because the cutscene will de-sync with the audio.

Second of all, even though that looks quite good against the black background, it looks a bit messy in front of the background emblem on the main title screen. It's an awful lot of lines.

Thanks for the submission regardless. If you want to keep tweaking or move on to something else, I'd be interested to see it!  :D
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on June 07, 2016, 05:30:46 PM
Now...first of all, as elmer recently pointed out, we probably ought to stick to 192x64 or else we're going to face performance troubles, and that's a big problem in Xanadu 1 in particular (assuming it happens there as well) because the cutscene will de-sync with the audio.

We're definitely going to have to test a 64-high logo in Xanadu 1 pretty soon.  :-k

As for the 192x64 ... I'm afraid that I'm going to have to let my female side out, and say that what I said before isn't actually what I meant.  :oops:

The actual limits would technically be more like "6KB of graphic data in 8 sprites".

That's 192x64, which makes a lot more sense to most normal folks.

But ... in the case of BT's new logo, which is mainly 160x64 with also 2 short-but-wide bits on the sides ... it may well actually be possible, particularly if one wing is just a mirror of the other.


Quote
Second of all, even though that looks quite good against the black background, it looks a bit messy in front of the background emblem on the main title screen. It's an awful lot of lines.

Now this is my big problem with reusing the Xanadu 1 Credits logo on that screen in Xanadu 2 ... it just doesn't look very good to me (in its current form).

IMHO, the whole screen just looks messy with those thin lines on that background.

Perhaps some anti-aliasing on the outline would help thicken up both the interior and exterior, and also make it all look a little less jagged? What do you think?
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on June 07, 2016, 11:47:29 PM
yeah, I noticed a few goofy spots like the lower left end on the X could be better will try and touch it up some more.


The lower left end of the X is the first and maybe only thing that stands out to me as potentially benefiting from some tweaking. It seems a bit stubby and high. I don't know if that's what you were talking about, but anyway... :-"

This is quick and dirty, but I lengthened the leg a few pixels and squeezed in the curly part slightly. Does it look at all better to you guys just in terms of proportion?

(My mod is on top; Phase's recent one is on the bottom)
(http://pic.photobucket.com/bwe.png)

Part of me likes the longer leg more, and part of me thinks it makes the X a little out of balance. Anyway, I just wanted to bounce this off you guys.
Title: Re: Xanadu II Translation Development Blog
Post by: Black Tiger on June 08, 2016, 12:30:24 AM
I'll continue with some of what I'd planned to try with that logo and another wingless one I'm balancing out.

Before you guys put too much work into polishing off Phase's latest logo, I wanted to point out why I haven't done one with a different font for Legend. By having a tiny "The Legend of" in a very noticeably different font, having it sit on top of a giant "Xanadu II" and contrasting the two by having "The Legend of" in printing and "Xanadu II" in cursive, the title has effectively been changed to "Xanadu II", with a minor subtitle.

It's the reason everyone refers to the first game and the series "Zelda", instead of "The Legend of Zelda". Same with so many other game and non-game titles. Except even more so by using printing for one part and cursive for the other.

Considering how big of a deal it was for Sam to have a "The" on the title logo for a game that everyone calls "Legend of Xanadu", because "Legend" is as defining to the title as "Xanadu", and since Xanadu is a pre-existing game and series of its own, I've made sure to keep the two key words in the same font and so far at least, not made "Legend" proportionately any smaller than it already is in the official cursive logo. In the Japanese logo, Kaze and Densetsu are completely equal.

If you did the same thing to any of the Shining series game titles, it would also break them and people would just call or read them as "Darkness", "Force II" or "The Holy Ark".
Title: Re: Xanadu II Translation Development Blog
Post by: poponon on June 08, 2016, 01:51:32 AM
holy shit the title screen looks sooooo good. especially on your tv there! HYPE
Title: Re: Xanadu II Translation Development Blog
Post by: ginoscope on June 08, 2016, 03:54:24 AM
Damn guys I dunno how I missed this thread yesterday but that title screen looks amazing.  I really like the screen shots from the actual CRT.

Really impressed and the attention to detail blows my mind.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on June 08, 2016, 04:25:21 AM
Before you guys put too much work into polishing off Phase's latest logo, I wanted to point out why I haven't done one with a different font for Legend. By having a tiny "The Legend of" in a very noticeably different font, having it sit on top of a giant "Xanadu II" and contrasting the two by having "The Legend of" in printing and "Xanadu II" in cursive, the title has effectively been changed to "Xanadu II", with a minor subtitle.

I totally agree that it would be ideal to have all the words be more balanced, and that "Xanadu" is perhaps a little overemphasized in Phase's logo. If his has any profound and unfixable flaw, this is it.

I also get the contradiction you feel about your very first submission being disqualified on "Linguistic Faithfulness" or whatever we can agree to call it. Here's the thing: on that criterion, your original gets an F, and his gets a C. Sorry if that's blunt, but I'm trying to be quick and clear.

You can still blame me for not getting on you and elmer earlier about that one, too.

I'm confident that the broad consensus among both casual and hardcore PCE gamers would be that Phase's is simply the best one we have right now, and though it may not get straight A's in every category, it's acceptable enough to ship the game with.

I'm still very interested in seeing your full cursive version, or anything else you have up your sleeve.

Quote
Considering how big of a deal it was for Sam to have a "The" on the title logo for a game that everyone calls "Legend of Xanadu", because "Legend" is as defining to the title as "Xanadu", and since Xanadu is a pre-existing game and series of its own, I've made sure to keep the two key words in the same font and so far at least, not made "Legend" proportionately any smaller than it already is in the official cursive logo. In the Japanese logo, Kaze and Densetsu are completely equal.

風の伝説ザナドゥ

風 = Wind
の = (possessive particle)
伝説 = Legend
ザナドゥ = Xanadu

So, "Xanadu" and "Legend of the Wind" are equal. It's certainly fair to say that "Xanadu" is only half of the title. That's your point, right?

Be that as it may, I think it's also fair to say that "Xanadu" is the single most important word, and that this is even more true in the Japanese title than the English. Furthermore "The Legend of" as it exists in Phase's logo is not so terribly downsized that people are going to ignore it altogether.

This game is also part of the same lineage as Falcom's original Xanadu; The Legend of Xanadu 1's credit roll calls it Dragon Slayer VIII at the very end. Whether these PCE games are sequels or spinoffs or whatever else, it doesn't seem too great an offense to risk them being mentally listed in some gamer's minds as "Xanadu, The Legend of".

---------------------

Food for thought: here are a bunch of criteria that I use to judge these, in no particular order and probably not including everything:

- Is it linguistically faithful?
- Is each letter well formed?
- Is the whole harmonious and visually pleasing?
- Is it easy to read?
- Does it jive with the background?
- Is it stylistically appropriate for the games?
- Does it have logo-like flair?

We've had some very nice submissions indeed, but nothing has really thoroughly aced all of these yet. We'll take the best one we have that doesn't have any D's or F's, is the way I see it.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on June 08, 2016, 05:34:27 AM
I looked into that sparkle effect... I'm totally stealing it! ;>_>

It's a really clever and effective work-around for not being able to fade in the logo from a serarate layer.

Well worth stealing!  :wink:


The lower left end of the X is the first and maybe only thing that stands out to me as potentially benefiting from some tweaking. It seems a bit stubby and high. I don't know if that's what you were talking about, but anyway... :-"

This is quick and dirty, but I lengthened the leg a few pixels and squeezed in the curly part slightly. Does it look at all better to you guys just in terms of proportion?

I don't really mind it either way.

We're latching onto different things.

For me, it is the slight inconsistencies in the shapes and visual height of the letters that is much more noticeable.

That's a side-effect of Phase turning the logo into vector format, and then re-rasterizing it at the new size.

It is to be expected ... it just needs (IMHO) a massively nitpicky cleanup pass to get closer to that "hand drawn" look of Falcom's original.

I'd be tempted to make the "The Legend Of" a pixel or 2 taller and see how it looks, too.


I'll continue with some of what I'd planned to try with that logo and another wingless one I'm balancing out.

IMHO, if you want to keep working on Falcom's logo, one thing that you'll need to do is to make the lines thicker so that it doesn't look so lost on the screen.

Here's a simple doubling of the width. Note that I separated all the letters, then did the doubling, then pasted them back together so that I could control and tweak the spacing.

(http://c2.staticflickr.com/8/7434/27445222652_16c9f5ff92_o.png)
Title: Re: Xanadu II Translation Development Blog
Post by: Phase on June 08, 2016, 11:16:43 AM
Here's my latest from yesterday.
(http://www.ektophase.com/TG16/XanZ2.png)

Maybe I'll try a version where the letters are similar and more font like.
Will take a closer look at SamIAms mod and other input.


Title: Re: Xanadu II Translation Development Blog
Post by: jtucci31 on June 08, 2016, 04:12:43 PM
Man I love the development of these logos, they look FANTASTIC.

The logo Phase made looks really nice, especially with all of those colors in it. But I also think that end screen text would look good too if done properly.

Title: Re: Xanadu II Translation Development Blog
Post by: Phase on June 08, 2016, 05:30:31 PM
Ok here is a version where the letters are cloned with a few slight tweaks
(http://www.ektophase.com/TG16/XanZ4.png)
Then here it is with a pixel taller "The Legend of"
(http://www.ektophase.com/TG16/XanZ3.png)
Title: Re: Xanadu II Translation Development Blog
Post by: Necromancer on June 09, 2016, 02:51:12 AM
I don't have much of an opinion on the various logo options (other than the obviously bad ones that y'all immediately rejected), I'm just happy that it's all coming together and looking so professional.

All this logo chat makes me want a translated title for Motteke Tamago.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on June 09, 2016, 08:20:58 AM
I don't have much of an opinion on the various logo options (other than the obviously bad ones that y'all immediately rejected), I'm just happy that it's all coming together and looking so professional.

All this logo chat makes me want a translated title for Motteke Tamago.

Yep, a good logo is a thing of beauty, and really helps to set the expectations for the attention-to-detail in the game.

The Motteke Tamago logo looks good in Japanese, but it would certainly be nice to see an English one in there to "finish off" the translation!  :wink:


Ok here is a version where the letters are cloned with a few slight tweaks

Hahaha ... that's more than a few "slight tweaks", that's an absolutely beautiful job of cleanup work!

You've fixed all the little areas that were catching my eye, and a changed a few extra little details that just add even more polish.

I really can't exaggerate just how happy I am at the way that this looks.  :dance:

For those that can't immediately see just how much changed, and what an absolutely lovely effect it has on the look of the logo, here is a before-and-after animation.

There are also the 2 sizes for the "The Legend Of" text. I prefer the larger of the 2, because IMHO it makes the letters less squat, and it makes it look more deliberate and less like a subtitle.


(https://c2.staticflickr.com/8/7290/26956956164_1feaa31e7f_o.gif)
Title: Re: Xanadu II Translation Development Blog
Post by: spenoza on June 09, 2016, 02:40:58 PM
What would happen to that logo if the ligatures were connected to make it look even more script-like? Most seem to run into each other OK, but the 'a' and the 'n' and the 'd' and the 'u' don't connect, but they look like they could very easily.
Title: Re: Xanadu II Translation Development Blog
Post by: Necromancer on June 10, 2016, 02:34:49 AM
What would happen to that logo if the ligatures were connected to make it look even more script-like?

It'd no longer match Falcom's original design.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on June 10, 2016, 04:18:12 AM
Looking damn good, Phase. :D

(http://i171.photobucket.com/albums/u305/sirsinnes/DSC01801B_zpsn0fxrdpy.jpg)

Here, you can see what it looks like against the black background up close and at a slight angle. Notice that some green pixels are standing out now, like between in the tails of the a and the d, and between the X and the a.

(http://i171.photobucket.com/albums/u305/sirsinnes/DSC01803B_zpsnotqiinu.jpg)

I see by looking at the raw png that it wouldn't be easy to erase those without making an inconsistency in the outline pattern, but it also looks like you could probably "cheat" a little and get away with blanking a select few of them. Fiddling around on my own, I was able to separate the X and the a and the tails in a way that I think would work fine with just a few clicks.

After that, we have to wonder what to do with the interiors of the a and d, the upper interior of the n, and the lower interior of the u. Against the black, they do look kind of green. However, it's possibly negligible.

This is all RGB, by the way.

EDIT: Here's a head-on shot from a little further away. I cropped the image because my dumb reflection showed up a lot more in this one.

(http://i171.photobucket.com/albums/u305/sirsinnes/DSC01802b_zps1fw6rgda.jpg)

-----------------------

Elmer fixed the sparkle effect. Here is short, effectively sound-free demo of it working. I couldn't be bothered to turn on my speakers, or to edit the video at all before I uploaded it.  :mrgreen:

https://youtu.be/GjQ3id5PGpA
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on June 10, 2016, 04:44:12 AM
What would happen to that logo if the ligatures were connected to make it look even more script-like? Most seem to run into each other OK, but the 'a' and the 'n' and the 'd' and the 'u' don't connect, but they look like they could very easily.

Here's a quick programmer-hack to give a rough idea of what it would look like ...

(http://c2.staticflickr.com/8/7341/26973805843_08bc3af453_o.png)

The answer, IMHO, is "clever, but way too busy on the screen, and making the letters harder to read".


It'd no longer match Falcom's original design.

And there's also that very important aspect, too.  :wink:


Here, you can see what it looks like against the black background up close and at a slight angle. Notice that some green pixels that are standing out now, like between in the tails of the a and the d, and between the X and the a.

Hahaha ... your turn to be nitpicky! :lol:

I'll try to figure out where I can hack in something to change the palette color of those outline pixels when the screen changes to black.

I like the way that they're smoothing out the edges when it's on the green background, so I don't want to remove them ... which is totally unlike me and my regular fetish for putting drop-shadows on everything!

<EDIT>

OK, here's my suggestion for changing the 2 outline colors when on the black background.

I don't know how to achieve it, yet ... but I think that it will look better when I can find out where to do it.

(http://c2.staticflickr.com/8/7451/27510404521_2d8b7d406a_o.png)
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on June 10, 2016, 03:17:38 PM
That would definitely take care of the problem in the cleanest and most well-rounded way.  :D

If a palette shift can't work for whatever reason, the only real problem is the one darker-green edge shade (72, 180, 180). I think it only stands out when there are two of those color pixels next to each other horizontally, and even then, only in certainly places.

Also, like I said, the only spots that really stand out are the X-and-a connection and the a-and-d tails. It might be best to erase those connecting pixels regardless of what the palette is.

Original:
(http://i171.photobucket.com/albums/u305/sirsinnes/XanZ32x_zpsmoglincm.png)

X-and-a and tail connections erased:
(http://i171.photobucket.com/albums/u305/sirsinnes/outlinezap2x_zps1ixo7se9.png)
Title: Re: Xanadu II Translation Development Blog
Post by: spenoza on June 11, 2016, 06:09:24 AM
What would happen to that logo if the ligatures were connected to make it look even more script-like? Most seem to run into each other OK, but the 'a' and the 'n' and the 'd' and the 'u' don't connect, but they look like they could very easily.
The answer, IMHO, is "clever, but way too busy on the screen, and making the letters harder to read".

It'd no longer match Falcom's original design.

And there's also that very important aspect, too.  :wink:

I think the former is a far more compelling reason than the latter. We are already dabbling in the area off artistic license. If it looked better, I'd say a little inconsistency with Falcom's original vision was not an issue (especially for something minor like that). But Elmer is right. It does make it awfully busy and detracts from an otherwise clean logo.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on June 11, 2016, 09:32:26 AM
I'll try to figure out where I can hack in something to change the palette color of those outline pixels when the screen changes to black.

That would definitely take care of the problem in the cleanest and most well-rounded way.  :D

If a palette shift can't work for whatever reason, the only real problem is the one darker-green edge shade (72, 180, 180). I think it only stands out when there are two of those color pixels next to each other horizontally, and even then, only in certainly places.

Well, it is possible to use a different palette for the logo when it is on the black background, that's the good news.

The problem is that there's no way to just fade between the different outline colors when the background fades out.

Now, I can just switch the outline color when the background has finished fading out ... but it looks jarring and horrible.

The only way that I can reasonably do it, is to fade out the logo together with the green background, and then fade it back in with the new outline color when the background with the stars fades in.

That's OK, and doesn't look too bad ... but it is different.

While we're still looking at whether that is worthwhile ... I just went ahead with SamIAm's idea, and just modified the image to avoid the cases where those outline pixels bump together.

That involved moving the entire "X" one pixel to the left, which I think might actually look better anyway.  :-k

Here's the result ...

(http://c2.staticflickr.com/8/7437/26997687063_e0591d5529_o.png)

(http://c2.staticflickr.com/8/7382/27329758060_1195910f0b_o.png)
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on June 11, 2016, 01:51:06 PM
That could definitely work. :D

I'll glady do another TV test anytime.  :wink:
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on June 12, 2016, 04:25:45 AM
This leaves nothing to be desired, really. Great work, Phase.  8)

(http://i171.photobucket.com/albums/u305/sirsinnes/DSC01807B_zpsyea8ebqn.jpg)

(http://i171.photobucket.com/albums/u305/sirsinnes/DSC01805B_zpsiaxpoacc.jpg)
(CRT capture-weirdness on this last one. Sorry.)

I want to emphasize that anyone who wants to can still submit an idea. Even a rough idea is nice to see if it shows any promise. :D
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on June 12, 2016, 04:32:06 AM
This is GORGEOUS

I am weeping

I am

:)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on June 28, 2016, 11:31:17 AM
After much serious effing around, the new logo is working in both the Xanadu 1 and 2 Opening Visuals.

It's going to need to be tested on real hardware, because both games are now having to apply their "sparkle" effects to much more data than before.

They both seem to work fine in Mednafen ... but there's no substitute for a test on real hardware.

I added a drop-shadow on the Xanadu 2 subtitle, and although it really does help to stop it from disappearing into the background, I'm not convinced that I like it, yet.

Maybe it needs more tweaking, or maybe it should just be removed altogether.  :-k

What do you guys think?


(http://c2.staticflickr.com/8/7407/27890118021_3e3bcbab11_o.png)

(http://c2.staticflickr.com/8/7384/27967352275_ec3d7af43b_o.png)

(http://c2.staticflickr.com/8/7511/27947167396_a7f0946a83_o.png)


<EDIT>

Added original Xanadu 2 Japanese logo screengrab without drop-shadow for comparison.

It's interesting to note the huge effect that having the drop-shadow has upon the eye's perception of the colors in the subtitle text.

With the drop-shadow, the orange colors look much darker and more saturated, even though they are exactly the same RGB values as the orange colors in the original Japanese text.

The eye really has a hard time resolving single-pixel-wide text on a similar brightness background.

That's why we went to such lengths to darken the message box backgrounds and add the drop-shadow to the in-game text in Xanadu 2.

But ... in this case, it's not really critical that you can clearly read the subtitle text on this screen, because you get to see it clearly and read it on a black background before the landscape fades in.

In some ways, that makes the subtitle seem to fade away into the background as the landscape fades in, and perhaps that's what Falcom wanted. This is the only time in the game that the subtitle is used. The graphics for it are in the game's Main Menu, but Falcom chose not to actually display them.
Title: Re: Xanadu II Translation Development Blog
Post by: johnnykonami on June 28, 2016, 03:56:21 PM
The top part (logo) looks great.  I agree about the subtitle being a little hard to read, it's acceptable though.  Could you post a quick screenshot of the same in Japanese for comparison's sake?
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on June 28, 2016, 06:49:32 PM
I think we need another CRT test.  :mrgreen:
Title: Re: Xanadu II Translation Development Blog
Post by: _joshuaTurbo on June 29, 2016, 03:05:47 AM
I'm not ashamed to be openly drooling on my PC monitor!  :)

Great work as always!
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on June 29, 2016, 04:43:30 AM
Could you post a quick screenshot of the same in Japanese for comparison's sake?

OK, I've updated the earlier post with the Japanese screenshot.
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on June 30, 2016, 03:20:29 AM
Call me crazy, but the Anglicized Title Screen (ATS) is actually SUPERIOR to the original.

No joke.

ATS > Original

:)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on June 30, 2016, 04:19:26 AM
I'm not ashamed to be openly drooling on my PC monitor!  :)

Call me crazy, but the Anglicized Title Screen (ATS) is actually SUPERIOR to the original.

I agree with both you guys, I think that Phase's logo looks absolutely wonderful on the screen.  :D

I can't think of any professional game artist BITD that would have come up with anything that fits there better.

************

I've done some tweaking to the drop-shadow on the subtitle text to make a little bit easier to read, but more importantly, have changed the color of it so that it's not pure-black anymore and so doesn't look quite so jarring.

I think that this is looking better.

(http://c2.staticflickr.com/8/7344/27387264824_9458b2325e_o.png)

(http://c2.staticflickr.com/8/7511/27947167396_a7f0946a83_o.png)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on June 30, 2016, 07:27:27 AM
Here's a thought, but I'm not sure if it's a good one.

There's definitely no room for the subtitle on the Xanadu 2 Main Menu screen, which would give a nasty inconsistency.


(http://c2.staticflickr.com/8/7312/28003654775_02273453aa_o.png)

(http://c2.staticflickr.com/8/7412/27723671880_bb73487ae6_o.png)
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on June 30, 2016, 05:53:43 PM
It's a nice gesture, but let's think about this in terms of how you would write those full titles in plain text.

The Legend of Xanadu - Legend of the Wind
The Legend of Xanadu - Legend of the Wind II

Pros: That is certainly the original cover-art titles with no modifications other than changing the Japanese bit to English and dropping one "Xanadu".

Cons: We really shouldn't have two "Legends" in a single title. Additionally, if you want to say that one is only a subtitle, then the way I look at it, Legend of the Wind effectively becomes the main title. It would be more appropriate for our graphic, therefore, to put The Legend of Xanadu in small gold letters above a larger graphic that says "Legend of the Wind".

If someone wants to try this, it could actually be nice. I don't know what kind of logistical trouble we would have, however.

--------------------------------

Alternative:

The Legend of Xanadu - Legend of the Wind
The Legend of Xanadu II - Legend of the Wind

Pros: This lets us keep The Legend of Xanadu as the main title.

Cons: It ups the confusion-factor for me. When I start reading the second one, I really expect it to have a different subtitle.

Whichever pair you're looking at, bear in mind that this isn't really part 1 and part 2 of a single adventure or anything; these are two totally separate games in one series. Xanadu 2 is so far removed from the first one, it's practically Xanadu Gaiden.

----------------------

Frankly, I think that Falcom's dual-language naming of these games is not really logical, and any attempt we make to honor it perfectly in one language is going to be inherently flawed. The old keep-it-simple rule says we should either go with The Legend of Xanadu only or Xanadu - Legend of the Wind only.

As mentioned above, this one exception might work:

The Legend of Xanadu
Legend of the Wind II

Again, though, this may not be truly practical.

-----------------------------------

One more option:

The Legend of Xanadu - Legend of the Wind
The Legend of Xanadu II - Legend of the Wind II

Surely this would be silly?
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on June 30, 2016, 09:00:40 PM
Wow, just caught up, skimmed past 7-8 pages and really fantastic work and detail guys! Sorry BT, I had to skim over some of your posts which I feel bad about but there's definitely interesting reads in here for those that care to take the time!

I really dunno where elmer came from, how he landed here, still hard to believe, but it's INCREDIBLY lucky someone with his experience/background wound up taking such an interest in fan translation projects for the PC Engine CD and in particular two Falcom masterpieces!!!

When I started projects in 2001, one of the big reasons was I felt it unjust how NES and SNES had major talent like elmer giving it attention all the time, but yet you couldn't find one project of any significance/excitement over in the PC Engine/TG-16 realm. There were patches for Super Daisenryaku CD and 3-4 HuCards at the time and that was it, games nobody really gave a shit about...

I was a bigger fan of NES/SNES growing up actually, but yeah, I wasn't needed for projects there, they were doing just fine! Getting Neill Corlett to come over from SNES focus to help us for "Ys IV: Dawn of Ys" took his Finish friend and later on me, and we only got him for ROM analysis, script decompression/extraction, then he took off to work on other projects/interests... Anyway, it's still nowhere near the activity/attention that NES/SNES and other consoles get, but it's nice to see some real dents being made towards changing that for our beloved platform...

P.S. I love you guys... :)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on July 01, 2016, 02:47:24 PM
It's a nice gesture, but let's think about this in terms of how you would write those full titles in plain text.

Uncle! Uncle! I give in!  :lol:  :wink:

You are, of course, absolutely right.

I loved the idea, I tried it, and I didn't really like the results.

Even if I were to ignore all your good arguments about the naming ... it just doesn't look good on the screen.

The logo without the "II" at the end of it just doesn't look good with a subtitle that's as long as it is hovering beneath it.

With the large "II" at the end of the logo, it has the extra visual anchor to allow the "THE LAST DRAGON SLAYER" to work well underneath it.

Well ... that's my unprofessional "programmer-not-artist" opinion, anyway.  8-[


I really dunno where elmer came from, how he landed here, still hard to believe, but it's INCREDIBLY lucky someone with his experience/background wound up taking such an interest in fan translation projects for the PC Engine CD and in particular two Falcom masterpieces!!!

Thank you for the kind words!

The SuperGrafx was the first console that I personally chose to buy after working in the industry for a few years.

Folks that don't program, or who haven't programmed on the different 4th-gen consoles, can't understand just quite how revolutionary and how well designed the PCE was, especially in comparison to the later 4th-gen consoles.

Most of the "hacker" community seem to be folks that grew up loving the NES/SNES as kids, and so want to keep that love alive as adults.

I was writing games in those days. I love the PCE because it's the most forward-looking and elegent design of its times.

It deserves more love because it's just that darned good, and IDGAF about whether it sold well in the USA or not.

It heralded the change from ROM into CD, and it did it with a design that is pure-genius. That's something that I wish that more folks could appreciate.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on July 01, 2016, 04:16:01 PM
I loved the idea, I tried it, and I didn't really like the results.

... it just doesn't look good on the screen.

The more you play Xanadu 1 and watch the story unfold, I think the more you'll feel a slight itch of worry that maybe "Legend of the Wind" is something that should be featured in the title.

However, The Legend of Xanadu alone is still completely reasonable, IMHO. Falcom put us in a position where there is no perfect choice, for one thing; for another, "wind" is almost completely gone from the second game as a story element.

Now...if someone wants to make a 192x64 mock-up of "Xanadu - Legend of the Wind", that would be completely reasonable, too.

("Legend of the Wind - Xanadu" kinda sorta works, too, but I think the order is a little funny when you consider how "Xanadu" is supposed to be a series of its own. It's like saying "Rondo of Blood - Castlevania" instead of the other way around.)

P.S. I love you guys... :)

Aww, we love you too, NightWolve.  :mrgreen:

I never imagined when I first saw him posting on the forums that elmer and I would make this partnership. I've said it before, and I'll say it again: I really couldn't have asked for a better person to work with. His skill and work-ethic make me want to do the best that I can, and it's largely because of this motivation and the high-quality results that this project has been the most engaging and enjoyable thing I've ever been lucky enough to work on.

Poor old elmer hasn't even really gotten a chance to play the games yet, so he probably hasn't felt the magic all along quite like I have. I'm hoping that when he finally does get to play them, he'll feel all the more rewarded for his efforts.  :D
Title: Re: Xanadu II Translation Development Blog
Post by: Phase on July 02, 2016, 03:48:51 PM
Now...if someone wants to make a 192x64 mock-up of "Xanadu - Legend of the Wind", that would be completely reasonable, too.

Heres a quick mock up using the same style in the second game.     
(http://www.ektophase.com/TG16/XanW1.png) (http://www.ektophase.com/TG16/XanCc1.png)
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on July 03, 2016, 04:11:10 AM
Now...if someone wants to make a 192x64 mock-up of "Xanadu - Legend of the Wind", that would be completely reasonable, too.

Heres a quick mock up using the same style in the second game.     
(http://www.ektophase.com/TG16/XanW1.png) (http://www.ektophase.com/TG16/XanCc1.png)


HOLY CHRIST
I am
RIP TORN

I really like it.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on July 03, 2016, 07:23:09 AM
I really like it.

It's definitely interesting, isn't it?  :)

I don't love the big "II", but it could work with a "Legend of the Wind II" subtitle.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on July 03, 2016, 01:38:48 PM
I don't love the big "II", but it could work with a "Legend of the Wind II" subtitle.

Here's a small modification of Phase's last mockup, with a few pixels pushed here-and-there.  :wink:

(http://c2.staticflickr.com/8/7441/28036258106_86c85b0de9_o.png)


I specifically moved "Legend of the Wind" over a few pixels so that so can see more of the tail of the X, which IMHO helps it to feel less "detached" from the rest of the X.

As it is now, this could easily work in both Xanadu 2 and Xanadu 1.

Sam, Phase ... over to you guys for the next round of changes!  :)

How do folks feel?

Is this going in the right direction, or were we better off the "The Legend of Xanadu"?
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on July 03, 2016, 02:18:01 PM
I don't love the big "II", but it could work with a "Legend of the Wind II" subtitle.

Here's a small modification of Phase's last mockup, with a few pixels pushed here-and-there.  :wink:

(http://c2.staticflickr.com/8/7441/28036258106_86c85b0de9_o.png)


I specifically moved "Legend of the Wind" over a few pixels so that so can see more of the tail of the X, which IMHO helps it to feel less "detached" from the rest of the X.

As it is now, this could easily work in both Xanadu 2 and Xanadu 1.

Sam, Phase ... over to you guys for the next round of changes!  :)

How do folks feel?

Is this going in the right direction, or were we better off the "The Legend of Xanadu"?

Renaissance man.

Or mangrove, as it were.

IT LOOKS AWESOME.

IT SOLVES OUR SCHIZOID PROBLEMS.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on July 05, 2016, 12:01:49 AM
This is really tough. I like Phase's work a lot, and seeing "Legend of the Wind" makes me feel good in a way that "The Legend of Xanadu" never does.

I think elmer, Phase and I all agree that "The Legend of Xanadu" is probably what we should go with. It seems like it's Falcom's official English title. It's on all the packaging. It's how everyone knows these games.

But dammit, the Japanese title is "Legend of the Wind", and to one extent or another, that's important to the first game.

I think the thing to do is to sit on it for a while, and also to see what elmer thinks after he's previewed the games in full.
Title: Re: Xanadu II Translation Development Blog
Post by: schweaty on July 05, 2016, 12:57:37 AM
Phase's version is amaze-balls
Title: Re: Xanadu II Translation Development Blog
Post by: Vimtoman on July 05, 2016, 01:18:32 AM
I'm not keen on the "Legend of the wind" addition.

It could be mistaken as a reference to Ah hem ....  flatulence.
Title: Re: Xanadu II Translation Development Blog
Post by: spenoza on July 05, 2016, 01:20:34 AM
I'm not keen on the "Legend of the wind" addition.

It could be mistaken as a reference to Ah hem ....  flatulence.

No, that is not a mistake any even remotely reasonable human being would make.
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on July 05, 2016, 01:20:49 AM
I'm not keen on the "Legend of the wind" addition.

It could be mistaken as a reference to Ah hem ....  flatulence.

Hah, that's a good point actually and it didn't occur to me earlier!
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on July 05, 2016, 01:42:51 AM
I'd be just as worried about people confusing this game for the 1968 UK #1 single The Legend of Xanadu by Dave Dee, Dozy, Beaky, Mick & Tich (no, I am not making that name up).


Pew! Pew!

This, by the way, is the first thing that comes up in Google (at least where I am) when I search this title.
Title: Re: Xanadu II Translation Development Blog
Post by: Necromancer on July 05, 2016, 03:24:52 AM
I much prefer "The Legend of Xanadu", as "Legend of the Wind" sounds like a bad, engrishy, literal translation.  Seminon winds and starkblasts are noteworthy, but 'the wind' is generic and commonplace.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on July 05, 2016, 03:50:28 AM
I don't know if I'd go so far as to call "Legend of the Wind" Engrishy. Bland and generic, maybe, but without knowing that it was a foreign title, I wouldn't assume it was one. Plus, having "Xanadu" before it makes it a lot more interesting.

Bear in mind, "legend of the wind" is something that appears in the game script as an actual thing in the story (of the first game). "Xanadu" does not appear at all.

The probability of us going with "The Legend of Xanadu" is still pretty high, though.
Title: Xanadu II Translation Development Blog
Post by: esteban on July 05, 2016, 03:57:57 AM
I have flip-flopped again (and not just because I am at the pool)!

:)

BOTTOM LINE:

I much prefer "The Legend of Xanadu", as "Legend of the Wind" sounds like a bad, engrishy, literal translation.  Seminon winds and starkblasts are noteworthy, but 'the wind' is generic and commonplace.

Exactly.

These two games MUST have an easily-identifiable, unique "identity" (sorry!) for English-speakers.

No matter how faithful "Legend of the Wind" may be, it is simply too generic.

Too hackneyed. Too trite.

It took sincere dedication to consider multiple titles...but the one that seems most enduring (in the grand scheme of the cosmos)....


The wind of fate has blown,
that same wind from a thousand years ago,
and it has raised the veil of mystery...

THE LEGEND OF XANADU


:)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on July 05, 2016, 06:28:18 AM
I'm playing through the 8th level of Xanadu 1 right now, and I can definitely say that Areios being the fullfilment of the "Legend of the Wind" is coming across really strongly in the story.

I've not seen any mention of "Xanadu", or "The Legend of Xanadu" anywhere.  :-k

But, IMHO, that doesn't mean that it's wrong to call the games themselves "The Legend of Xanadu".

I have no problem considering the title to mean something like "The Legends of Xanadu", and this story "Legend of the Wind" is just one of the legends.

I have no problem considering the title to mean something like "The Legend of Xanadu", and this story is just part of the continuing story of Aineas's bloodline's battle with the Evil Dragon.

We're actually looking at two distinctly different uses of the logo in the game.

**************

The first use is in the cutscenes ...

In Xanadu 1, it's shown on screen for approximately 8 seconds at the start of a cutscene that you only see after you've played through three levels of the game, and after you've already had some hints about the "Legend of the Wind" and about Areios's destiny.

At this point, seeing "Xanadu : Legend of the Wind" is going to make some sense, wheras seeing "The Legend of Xanadu" is just a generic use of the game's name in a cutscene in the middle of the game.

In Xanadu 2, it's shown on screen for approximately 20 seconds at the start of the cutscene that shows all of the character portraits, and re-introduces the player to the characters.

When you see it at that point in Xanadu 2, you should already have played Xanadu 1 and be familiar with the concept of the "Legend of the Wind" and Areios's connection to that legend.

It's also got "THE LAST DRAGON SLAYER" subtitle when it's used here, just to complicate things.  #-o

**************

The second use is on the Main Menu screen for Xanadu 2 (it's not on the Main Menu for Xanadu 1).

The screen has the green background for approximately 80 seconds and then fades out to a black background.

The logo is shown for as long as you're sitting on the Main Menu, and it's really got no direct connection to the story itself. It's neutral.

**************

To be honest, Falcom's whole use of naming, and the schizoid split between the large English "The Legend of Xanadu" on the box together with the Japanese "Xanadu : Legend of the Wind" suggests to me that we could easily get away with being just as schizoid.

How about we use the "Xanadu : Legend of the Wind" logo in the 2 cutscenes which refer directly to the story and the characters, and then use "The Legend of Xanadu II" logo on the Main Menu screen where it can be seen to refer more to the series of games?  :-k

You'd be getting the large "Xanadu" as the visual connection between the two.

Heck, if it wasn't seen as over-the-top, then I could hack the Main Menu screen on Xanadu 2 to start with "The Legend of Xanadu II" logo, and then switch to "Xanadu : Legend of the Wind II" when the background goes to black.

Double heck, it would be a huge PITA, but it might be possible to hack the Xanadu 2 cutscene to use both logos as well.

The possibilities are just as crazy as Falcom's original naming scheme!  :lol:

BTW ... visually, I think that Phase's "The Legend of Xanadu II" logo just plain looks the best on the screen when you see if for a long time, as you do on the Xanadu 2 Main Menu.
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on July 05, 2016, 08:18:57 AM
Goddamn.

:)
Title: Re: Xanadu II Translation Development Blog
Post by: EmperorIng on July 05, 2016, 10:49:02 AM
"The Last of Dragon Slayer" (ie "The Final Dragon Slayer") is a great subtitle and it would be a crime if it for some reason edged out (in that scene) for wind-whatever.

It feels right, signifying that this is the last game in a long, winding legacy of games called "Dragon Slayer", building off of one another with experimentation and permutation. Even if the first Xanadu game was technically the "last" Dragon Slayer, it has an impact that tugs at the heartstrings of people who have played through other games under the "Dragon Slayer" banner, and serves to perhaps entice new people to Falcom's other early and seminal titles.

I feel like it's a good idea to have the games' titles consistent as "The Legend of Xanadu" because well, that's what they are called. If it's not outside the realm of impossibility, I like the use of LoX for the title screens and then using the Xanadu: Legend of the Wind in their appropriate cutscenes to give players a better sense of what the adventure is going to be all about. It might be a good workaround to the games' multiple-title-syndromes.
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on July 05, 2016, 11:49:44 AM
FINAL DECISION:

The Winds of Xanadu

AKA:
Xanadu, the Windy City
Title: Re: Xanadu II Translation Development Blog
Post by: Black Tiger on July 05, 2016, 11:58:10 AM
"The Last of Dragon Slayer" (ie "The Final Dragon Slayer") is a great subtitle and it would be a crime if it for some reason edged out (in that scene) for wind-whatever.

It feels right, signifying that this is the last game in a long, winding legacy of games called "Dragon Slayer", building off of one another with experimentation and permutation. Even if the first Xanadu game was technically the "last" Dragon Slayer, it has an impact that tugs at the heartstrings of people who have played through other games under the "Dragon Slayer" banner, and serves to perhaps entice new people to Falcom's other early and seminal titles.

I feel like it's a good idea to have the games' titles consistent as "The Legend of Xanadu" because well, that's what they are called. If it's not outside the realm of impossibility, I like the use of LoX for the title screens and then using the Xanadu: Legend of the Wind in their appropriate cutscenes to give players a better sense of what the adventure is going to be all about. It might be a good workaround to the games' multiple-title-syndromes.

SPOILER ALERT






Dragon Slayer is the legendary weapon used by the hero who chucks it into the ocean at the end of the game, so that it is never used again.

So this isn't one last dragon slayer, it is the last of Dragon Slayer.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on July 05, 2016, 12:30:31 PM
Dragon Slayer is the legendary weapon used by the hero who chucks it into the ocean at the end of the game, so that it is never used again.

So this isn't one last dragon slayer, it is the last of Dragon Slayer.

Hahaha ... brilliant! More fuel to the fire!  :lol:

I thought that I'd asked about that connection many pages back in the thread.

So ... this really is one of those cases where Falcom's English is correct, and it's not just another one of their dubious translations like "The Story is Begining".

I can have it say "THE LAST DRAGON SLAYER", I can have it say "THE FINAL DRAGON SLAYER", I can have it say "THE LAST OF DRAGON SLAYER", and I can even have it say "DON'T BE A COLLECTARD".

I actually like "THE LAST OF DRAGON SLAYER" being a reference to the sword better than it being a reference to the series, because the latter breaks the 4th wall.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on July 05, 2016, 12:52:27 PM
I've taught English in Japan for 10 years, and all of my instinct tells me that that "of" is a mistake.

We talked about this a bit before. I still stand by this notion I posted:

Quote
If the meaning is more along the lines of "the sword's last outing" than "the final game in the series", then there is certainly no problem story-wise. However...and I'm open to discussion on this...I think you would need to say "The Last of the Dragon Slayer". If you leave out "the", then Dragon Slayer becomes a more directly addressed entity like Peter or Mark, and I have to leave out "the" everywhere just as I would never say "The Peter" or "The Mark".

"Hand over Dragon Slayer!"

"We better find Dragon Slayer."

"Only Dragon Slayer can defeat him."

It kind of reminds me of the way Tolkien had weapons with real names in The Lord of the Rings, like Glamdring, and treated them almost like living beings. Here, though, I have to say that I still prefer the sound of the Dragon Slayer. Like I said, I'm open to discussion on this.

Is it referred to as the Dragon Slayer in other games in the series that have already been translated?
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on July 05, 2016, 01:10:30 PM
If the meaning is more along the lines of "the sword's last outing" than "the final game in the series", then there is certainly no problem story-wise. However...and I'm open to discussion on this...I think you would need to say "The Last of the Dragon Slayer". If you leave out "the", then Dragon Slayer becomes a more directly addressed entity like Peter or Mark, and I have to leave out "the" everywhere just as I would never say "The Peter" or "The Mark".

Yep, you're definitely right there.  :)

But, I have no problem with Aineas's legendary sword "Dragon Slayer" being a "named" item.

Perhaps I've been playing for too many hours in a row, or perhaps it's just that that's how I already think of it, but I could swear that you've already been translating it in that way in the last couple of chapters of the game that I've been going through.  :-k

Now ... I could be wrong there, especially after dismissing that "You've played for an hour, now take a break." message too many times in a row because I'm really enjoying the game ... but I definitely do like "The sword Dragon Slayer" much more than "The sword is the Dragon Slayer".  The second usage really shouldn't have capital letters in my understanding of English.

Good point about the other games, though. I guess that my personal preferences don't trump Falcom's actual history of usage if there's a conflict.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on July 05, 2016, 01:37:39 PM
Quote
Perhaps I've been playing for too many hours in a row, or perhaps it's just that that's how I already think of it, but I could swear that you've already been translating it in that way in the last couple of chapters of the game that I've been going through.  :-k

Elmer, my friend, I think you need a break.  :wink:

Run a text search for "Dragon Slayer" in the script set. I cannot find a single instance of it not having "the" when it's in a sentence (you know, and not in the item lists).

I think I leaned toward using "the" initially because "Slayer" sounds like a descriptor as much as a name. We could still go without it, but there would be that initial shock until the player realizes that it's a name only.

Tell you what - when you finish Xanadu 1, run that text search and imagine each sentence without "the", and let me know what you think.  :)
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on July 05, 2016, 03:10:19 PM
Very few games in the Dragon Slayer series were officially localized, so there isn't a lot of precedent. Not to mention, the decision of whether to use "the" may have been made solely by some random white guy in some random office rather than by Falcom themselves.

Articles, aka "a" and "the", don't exist in Japanese, and their proper usage is one of the most difficult subtleties to grasp for language learners here. I doubt that anyone on the original Falcom staff would have been able to quickly understand the difference between "Where is Dragon Slayer?" and "Where is the Dragon Slayer?"

Anyway, I'm at work right now and can't watch youtube to confirm, but based on what FAQs say, it looks like it's "the Dragon Slayer" in Faxanadu and Legacy of the Wizard.

EDIT: According to the manual for Legacy of the Wizard, it's "DragonSlayer" with no space.  ](*,)
See for yourself. (http://mikesrpgcenter.com/manuals/nes/Legacy_of_the_Wizard.pdf) It's in the story paragraphs at the beginning. "Father said 'Don't worry, there is a DragonSlayer.'"

Meanwhile, in the Faxanadu manual, it has the space, but it's never in a sentence, so it doesn't tell us much. Link (http://www.retrogames.cz/manualy/NES/Faxanadu_-_NES.pdf).
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on July 05, 2016, 03:22:49 PM
Elmer, my friend, I think you need a break.  :wink:

But I've just got to the door to the Boss in Ch.7 ... I can't take a break now!!!  :shock:

Maybe soon.   :)


Articles, aka "a" and "the", don't exist in Japanese, and their proper usage is one of the most difficult subtleties to grasp for language learners here. I doubt that anyone on the original Falcom staff would have been able to quickly understand the difference between "Where is Dragon Slayer?" and "Where is the Dragon Slayer?"

Anyway, I'm at work right now and can't watch youtube to confirm, but based on what FAQs say, it looks like it's "the Dragon Slayer" in Faxanadu and Legacy of the Wizard.

"Faxanadu"? That was done by some no-name losers called Hudsun (or something like that), who cares what they think!  :-k  :lol:

...

...


OK ... you got me. But I still prefer "Dragon Slayer" to "the Dragon Slayer".

Perhaps I just read too much Tolkien as a kid.  :roll:
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on July 05, 2016, 03:54:17 PM
Quote
But I've just got to the door to the Boss in Ch.7 ... I can't take a break now!!!  :shock:

Maybe soon.   :)

Congratulations! The next two chapters will be a breeze.

-----------------------------

You should take a gander at the edit I made after you posted your last message. It's very  ](*,) ](*,).

Anyway, if Excalibur had been called King Maker, I think people would have either referred to it as the King Maker, or they would have renamed it to Kingmaker. In that regard, I see where they were going with DragonSlayer.

But basically, you should finish the game, and then we can have a nice long nerdy chat about all of this.  :D

EDIT: It is "the Dragon Slayer" in Faxandu.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on July 05, 2016, 09:13:55 PM
Wait a cotton-picking minute...

Does the Dragon Slayer sword exist in either of the Dragon Slayer - Legend of Heroes games on the PCE-CD? I don't see it in any of the item lists that I can find in either English or Japanese. Is the main character the Dragon Slayer? Or is the sword too special to be listed with the items at all?

In the Super Famicom versions, it exists as an item in the first game, but not in the second.

I've also been investigating the Lord Monarch strategy games, which were only released in Japan and are another Dragon Slayer series offshoot. I can't seem to find the sword there, either.

If the sword itself isn't even in every game, if only in the story, then it makes all the less sense for THE LAST OF DRAGON SLAYER to be talking about the sword over the series.

TBH, I think it's talking about the series anyway. The sword's role in Xanadu 2's story is quite minor, and it would be strange for them to be celebrating it so much in the opening. Falcom may have intended a kind of double-meaning, but FWIW my gut tells me that if they were told that it's got to be either/or, they would put the series over the sword.

----------------------------

EDIT: If you're curious, the word Dragon Slayer appears 79 times in Xanadu 1 and 20 times in Xanadu 2, cutscenes included and item lists discluded. While I'm at it, the word Wind appears 126 times in Xanadu 1 (though about 10% are redundant) and only 10 times in Xanadu 2.

EDIT2: I checked the scans I made of Xanadu 2 from PC Engine Fan magazine (I have everything that magazine published for the game), and otherwise searched around the internet. While I didn't find anything totally conclusive, I did see two interesting things:

- The most common advertisement calls Xanadu 2 "one last trial." To me, this sounds more like one last game for the player than one last outing for the sword. I have yet to encounter mention of the sword.

- The Japanese wikipedia article on the series says that Xanadu 2 "was sold as the final installment of the series." That's the wording they used (シリーズ最終作として発売された). It was not "the last game in the series to be put on sale."

EDIT3: Xanadu 1 took two years to make. During the first year, its working title was ザ・レジェンド・オブ・ザナドゥ~風の物語. This is something like "The Legend of Xanadu - A tale of the wind". Yes, that's Kaze no Monogatari instead of Kaze no Densetsu, and yes, they did write "The Legend of Xanadu" in katakana in front of it.

Take that for what you will, I guess. I better reiterate that from the second year forward, it was only ever mentioned as Kaze no Densetsu Xanadu in all Japanese print (that I can find). Anyway, on one hand, this legitimizes "The Legend of Xanadu" as being a bit more than decorative; on the other, it shows that "wind" has always been a key word.

I would love to see some magazine scans from 1992 when Falcom must have been giving interviews about their concept for this game.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on July 06, 2016, 04:59:28 AM
Wow, that's a lot of good research.  :D

I don't really know where it leaves us, but it's all very good stuff to know.


- The most common advertisement calls Xanadu 2 "one last trial." To me, this sounds more like one last game for the player than one last outing for the sword. I have yet to encounter mention of the sword.

- The Japanese wikipedia article on the series says that Xanadu 2 "was sold as the final installment of the series." That's the wording they used (シリーズ最終作として発売された). It was not "the last game in the series to be put on sale."

This seems to push us more firmly towards using "THE FINAL DRAGON SLAYER" as the subtitle in the Xanadu 2 cutscene.

I guess that since the game is set 1000 years after the original series, it can be seen as the final time that you visit the world in terms of the game-world's chronology, even if it's not the last game that they ever released that was set in that world.

So, are we happy with "THE FINAL DRAGON SLAYER", or is this still under discussion?


EDIT3: Xanadu 1 took two years to make. During the first year, its working title was ザ・レジェンド・オブ・ザナドゥ~風の物語. This is something like "The Legend of Xanadu - A tale of the wind". Yes, that's Kaze no Monogatari instead of Kaze no Densetsu, and yes, they did write "The Legend of Xanadu" in katakana in front of it.

Take that for what you will, I guess. I better reiterate that from the second year forward, it was only ever mentioned as Kaze no Densetsu Xanadu in all Japanese print (that I can find). Anyway, on one hand, this legitimizes "The Legend of Xanadu" as being a bit more than decorative; on the other, it shows that "wind" has always been a key word.

It's good to know that "The Legend of Xanadu" really does have more legitimacy, but we're still left with the question of what logo to use, and where.

Here is where all this information leads me ... (currently, and not neccessarily finally) ...

I think that we should be using "The Legend of Xanadu II" (possibly without the II) on the Xanadu 2 Main Menu.

It's really what all English speakers are going to expect when they first boot up the game, and anything else will be confusing.

I think that we should use the "II", because it's the 2nd game in the series, it's going to be confusing to people without it, and it just darned looks better to me with the "II".

I think that we should use "Xanadu : Legend of the Wind" and "Xanadu : Legend of the Wind II" in the cutscenes because it makes the most sense to the story, and to the second game being a continuation of the lives of the characters, even if the "Legend of the Wind" itself was pretty much fullfilled in the 1st game (I assume ... not got there, yet).

The whole "Wind" theme seems to be such an important part of the story that it would feel a bit wierd to ignore it altogether, and it would be strange to put it in the 1st game, but never mention it in the 2nd game.

But I'm not going to be in a rush to change the cutscenes just yet, in case the decision goes the other way.
Title: Xanadu II Translation Development Blog
Post by: esteban on July 06, 2016, 05:10:03 AM

I think that we should be using "The Legend of Xanadu II" (possibly without the II) on the Xanadu 2 Main Menu.

It's really what all English speakers are going to expect when they first boot up the game, and anything else will be confusing.

I think that we should use the "II", because it's the 2nd game in the series, it's going to be confusing to people without it, and it just darned looks better to me with the "II".

I think that we should use "Xanadu : Legend of the Wind" and "Xanadu : Legend of the Wind II" in the cutscenes because it makes the most sense to the story, and to the second game being a continuation of the lives of the characters, even if the "Legend of the Wind" itself was pretty much fullfilled in the 1st game (I assume ... not got there, yet).

The whole "Wind" theme seems to be such an important part of the story that it would feel a bit wierd to ignore it altogether, and it would be strange to put it in the 1st game, but never mention it in the 2nd game.

Yes.

All of this.

:)
Title: Re: Xanadu II Translation Development Blog
Post by: joobloo on July 06, 2016, 11:46:13 AM
How about:

Xanadu: Legend of the Wind
Xanadu II: The Last Dragon Slayer

Each game would then have a unique title.  I dunno, haven't played through either game, but just an idea from reading through this thread.
Title: Re: Xanadu II Translation Development Blog
Post by: Black Tiger on July 06, 2016, 12:27:48 PM
Games that might feature the sword Dragon Slayer, which have been localized in the past, likely didn't receive extremely faithful translations, as that was rare back then. Maybe it appeared in and was called by name in the Japanese versions of games within the overall series.

The Dragon Slayer in The Legend of Xanadu II is the same one from the Dragon Slayer logo that has existed since the first Dragon Slayer game. TLoXII is tying everything together and that sword didn't have to be in every game which either had it in the title/subtite or was an official member of the overall series.

With TLoXII, they made a point of not only having Arios chuck it at the end and make a big show of it, the final screen of the game, done the same way as the final screens of the PCE Ys games, showcases Dragon Slayer residing at the bottom of the ocean, instead of a girly pic. The last of Dragon Slayer is obviously important to the creative members of the dev team. Many films, books, etc include a title or subtitle that only makes its full or true meaning clear as the story unfolds.

As people unfamiliar with the game have shown with various comments, adding a "THE" to LAST OF DRAGONSLAYER" will only make everyone all the more think that it's refering to someone who slays dragons, instead of what it is actually refering to. The game goes out of its way to not feature any dragon slaying. Even when one boss rides a dragon while attacking you, the heroes make a point of freeing the dragon instead of slaying it, become buddies and go for a ride on it. So if it's not going to reference DRAGONSLAYER itself, then a more appropriate title would be "SOME DRAGONFRIENDERS".
Title: Re: Xanadu II Translation Development Blog
Post by: joobloo on July 06, 2016, 01:09:29 PM
Ah, so something like:

Xanadu II: End of Dragonslayer

would be more faithful/make more sense.  "Last of..." just sounds kinda weird to me.  But obviously I don't know much about the history of these games, so...yeah.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on July 06, 2016, 01:51:46 PM
If we call the sword "the Dragon Slayer" and the tagline "The Last/Final Dragon Slayer", everything works out just fine IMHO. After all, the series takes place in different worlds, and there is more than one incarnation of the sword itself.

More later.
Title: Re: Xanadu II Translation Development Blog
Post by: dshadoff on July 06, 2016, 03:30:42 PM
If the sword itself isn't even in every game, if only in the story, then it makes all the less sense for THE LAST OF DRAGON SLAYER to be talking about the sword over the series.

Based on other things which have been said, who's to say that they didn't MEAN "The End of DragonSlayer", or "Dragonslayer's demise" or "Dragonslayer's Last Stand" ?

-Dave
Title: Re: Xanadu II Translation Development Blog
Post by: Vimtoman on July 06, 2016, 09:25:32 PM
What about
Legends of the wind
A Dragonslayer saga
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on July 07, 2016, 12:04:06 AM
- There are eight games in the original Dragon Slayer series, some of which have their own sub-series games. None of these main eight take place in the same world or have any of the same characters, including gods. Unless there is a magic black-hole teleporting it between each game, Areios is not using the sword from 1984's Dragon Slayer. It's more like there are different incarnations of it.

- Deleting the space between Dragon and Slayer is one thing, but I really don't think dropping "the" from before it is a good idea. Faxanadu, Legacy of the Wizard, and the fan translation of Xanadu Next alike all referred to the Dragon Slayer with an article, and I think quasi-medieval Tolkien-style sword naming is a mismatch for the Kaze no Densetsu games in terms of thematic tone, character speaking style, and pure sound for this particular weapon. Therefore, THE LAST OF DRAGONSLAYER as-is does not work.

The rest is complicated, and I'll admit that I don't have a comfortable position on the whole thing, but this is one point I'm going to be fairly adamant about.

- Should there be a space between Dragon and Slayer? I honestly don't know. I see the fan translation of Xanadu Next made them one word. I need to investigate more. I don't see confusion over whether it's a sword or a human as a real problem either way, though. The first time the player sees the word Dragon Slayer is going to be in context during the opening cutscenes. I'm more interested in precedent set by Falcom themselves or official localizations.

- If we do put a space in the sword's name, I think THE LAST DRAGON SLAYER pays adequate lip service to the fact that we aren't going to see any more Dragon Slayer swords. I also think that since it allows for a double meaning (the series and the sword), it makes for a better "click" at the end. Instead of us saying at the beginning "This is the last time you're going to see the sword. (later) See? There it goes." it's more like we make the player say at the end "Oh, how nice. The series was named after the sword, and look, the sword itself is going away. I guess it really was the last Dragon Slayer."

- If we make the sword's name Dragonslayer, I have pretty mixed feelings about telling players so clearly that the sword is going away right from the beginning. I don't think it was that clear for Japanese players. As I said before, this "sword's last outing" concept doesn't seem to appear anywhere in Japanese. Show me that it does, and you'll sway me right away.

- I know Dave was just giving examples, but if we do say that this is the last we'll see of the Dragon Slayer, the tone has to be more like "The Last Adventure of the Dragon Slayer". Nothing negative like "last stand" or "demise". The game ending and the sword discarding all happen on a very positive and optimistic note.

LAST OF THE DRAGONSLAYER is not bad, with or without the space. I still think THE LAST DRAGON SLAYER is better if we put a space between the words, though.
Title: Re: Xanadu II Translation Development Blog
Post by: dshadoff on July 07, 2016, 11:45:49 AM
I'm more interested in precedent set by Falcom themselves or official localizations.

Falcom does not have a stellar track record on consistency when it comes to translated names.

Quote
- If we do put a space in the sword's name, I think THE LAST DRAGON SLAYER pays adequate lip service to the fact that we aren't going to see any more Dragon Slayer swords.

Interesting thought; I hadn't considered that.

Quote
Instead of us saying at the beginning "This is the last time you're going to see the sword. (later) See? There it goes." it's more like we make the player say at the end "Oh, how nice. The series was named after the sword, and look, the sword itself is going away. I guess it really was the last Dragon Slayer."

- If we make the sword's name Dragonslayer, I have pretty mixed feelings about telling players so clearly that the sword is going away right from the beginning. I don't think it was that clear for Japanese players. As I said before, this "sword's last outing" concept doesn't seem to appear anywhere in Japanese. Show me that it does, and you'll sway me right away.

- I know Dave was just giving examples, but if we do say that this is the last we'll see of the Dragon Slayer, the tone has to be more like "The Last Adventure of the Dragon Slayer". Nothing negative like "last stand" or "demise". The game ending and the sword discarding all happen on a very positive and optimistic note.

I was trying to do a very Western thing with my examples - I wasn't trying to make it negative, but rather a subtitle which may make the reader sit up and take notice, thinking "WHAT ?  How can that be ?!?!"   (and be drawn into the game to find out the answer to their own rhetorical question).

-Dave
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on July 07, 2016, 01:15:07 PM
I never did consider "canon" Falcom's strong point. And if they ever do remake any of the Xanadu series, like they have the Ys series, they'll definitely change and add things.

 This detail about Dragon Slayer thing seems so minute, that it's rather silly to really stress over this or give it that much importance. In the grand scheme of things, and playing through this translation, does it even matter?
Title: Re: Xanadu II Translation Development Blog
Post by: joobloo on July 07, 2016, 01:17:52 PM
"The Last Dragon Slayer" sounds like we're talking about a person who slays dragons, as was mentioned above.  "The End of Dragon Slayer" sounds more like we're talking about the series, possibly a person, but then we find out it's a reference to the sword.  I like them both, but I feel the latter is closer to what was meant.  But they both work on multiple levels, which is cool.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on July 07, 2016, 02:35:56 PM
I never did consider "canon" Falcom's strong point. And if they ever do remake any of the Xanadu series, like they have the Ys series, they'll definitely change and add things.

 This detail about Dragon Slayer thing seems so minute, that it's rather silly to really stress over this or give it that much importance. In the grand scheme of things, and playing through this translation, does it even matter?

I think it would be much less of an issue if it didn't affect how we're going to call the sword. In Xanadu 1 especially, that sword plays a major role in the story and is talked about very often.

"The Last Dragon Slayer" sounds like we're talking about a person who slays dragons, as was mentioned above.  "The End of Dragon Slayer" sounds more like we're talking about the series, possibly a person, but then we find out it's a reference to the sword.  I like them both, but I feel the latter is closer to what was meant.  But they both work on multiple levels, which is cool.

I like The End of Dragon Slayer better than The Last of, but we run into the same grammatical problem where strictly speaking, in order to be talking about the sword, it has to be The End of the Dragon Slayer.

You're right, The Last Dragon Slayer isn't perfect. However, I think it's the best option we have right now.


SPOILER ALERT


The main character of Xanadu 2 is also the main character of Xanadu 1. Although there is no dragon that is slain in Xanadu 2, there is in Xanadu 1. Technically, the main character of Xanadu 2 is...you know...the last dragon slayer.

At best, The Last Dragon Slayer as a tagline is triple layered and clever. At worst, it's an inelegant stretch. Either way, I'll take it for now.

One more thing: This tagline message isn't part of the title. It's not in the manual whatsoever, nor is it in any of the promotional materials or even on the main title screen; it literally doesn't appear anywhere but this one secondary screen.

Before this screen is an intro cutscene, and in that cutscene, we meet the Dragon Slayer sword. So really, it's not that confusing, and if we make the player ask himself what it's really talking about, that's actually not a bad thing.
Title: Re: Xanadu II Translation Development Blog
Post by: dshadoff on July 07, 2016, 03:31:18 PM

One more thing: This tagline message isn't part of the title. It's not in the manual whatsoever, nor is it in any of the promotional materials or even on the main title screen; it literally doesn't appear anywhere but this one secondary screen.


...Or, based on the above, this tagline could be removed to avoid confusion (and all this angst).

-Dave
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on July 07, 2016, 03:35:50 PM
There are eight games in the original Dragon Slayer series, some of which have their own sub-series games. None of these main eight take place in the same world or have any of the same characters, including gods. Unless there is a magic black-hole teleporting it between each game, Areios is not using the sword from 1984's Dragon Slayer. It's more like there are different incarnations of it.

? ... ?? ... ??? ... Really???  :shock:  ](*,)  :lol:

This all just shows how little I really know about the history of these games after spending so much time working on these two.  :oops:


This detail about Dragon Slayer thing seems so minute, that it's rather silly to really stress over this or give it that much importance. In the grand scheme of things, and playing through this translation, does it even matter?

Hahaha ... I wouldn't totally disagree, we are taking this perhaps a bit too seriously ... but it's still fun to think about these things, and I'm enjoying the discussion!


You're right, The Last Dragon Slayer isn't perfect. However, I think it's the best option we have right now.

OK, this works for me.

It is in all-upper-case, so there's no distinction about that letters should be capitalized to worry about.

I'm happy enough to leave the space in there.

With all the new stuff that I've learned in the last couple of days, I'm also more-than-happy to trust your judgement and stick with "the Dragon Slayer" in the text in the way that you've been doing it.

It certainly hasn't ever seemed to look wrong or read wrong when I've been seeing the text in the message boxes.

**************

Now, there's just the whole logo issue left to obsess about!  :wink:
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on July 07, 2016, 03:39:17 PM
...Or, based on the above, this tagline could be removed to avoid confusion (and all this angst).

-Dave

Ha ha ha ha...Yes!

With Xanadu Next, the tagline isn't even true anymore!

I'd like to give keeping the tagline a shot so that we can feel good about being faithful to the source material, but if it's causing serious dysfunction, then I definitely consider cutting it an option.

That might ruffle some feathers, but one of the first rules in translation is that you can't please everybody.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on July 07, 2016, 04:32:21 PM
There are eight games in the original Dragon Slayer series, some of which have their own sub-series games. None of these main eight take place in the same world or have any of the same characters, including gods. Unless there is a magic black-hole teleporting it between each game, Areios is not using the sword from 1984's Dragon Slayer. It's more like there are different incarnations of it.

? ... ?? ... ??? ... Really???  :shock:  ](*,)  :lol:

This all just shows how little I really know about the history of these games after spending so much time working on these two.  :oops:

The first two of the main eight, Dragon Slayer and Xanadu, had very little story to speak of. The main characters didn't even have names.

However, one of Falcom's own employees drew and released an official manga for Xanadu in 1987. The main character is called Feig, and he is a 21st century sci-fi soldier who warps (time travels?) into the world of Xanadu. Needless to say, this has zilch to do with our Legend of the Wind-Xanadu's story.

--------------

joobloo, just in case you don't know, we shorten The Legend of Xanadu to just Xanadu around here, but this is misleading. There is another game in the Dragon Slayer series called Xanadu. Here is a list of the eight main games, including the number of sub-series games for each one.

1. Dragon Slayer (1)
2. Xanadu (2)
3. Romancia (1)
4. Drasle Family / Legacy of the Wizard (1)
5. Sorcerian (5)
6. Dragon Slayer - Legend of Heroes (2)
7. Lord Monarch (2)
8. The Legend of Xanadu / Legend of the Wind (2)

As I have read, the decision to put "Xanadu" in #8's title was based on the fact that it would include both overhead and side-scrolling sections like its predecessor, and nothing else. Apparently, a couple of the music tracks are similar, too. I need to look into that.

Storywise, however, The Legend of Xanadu starts over completely.
Title: Re: Xanadu II Translation Development Blog
Post by: Vimtoman on July 07, 2016, 11:25:23 PM
What about
The Legend of Xanadu
Dragon Slayer VIII
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on July 08, 2016, 03:20:37 AM
What about
The Legend of Xanadu
Dragon Slayer VIII

That is actually what Xanadu 1 is called in the credits. The thing is, that game doesn't have a tagline/message under the title graphic anywhere in it. It's just this one screen in Xanadu 2. Or is that what you meant?

Phase reminded me that the real tagline on the back of the case and in a lot of the advertisements is something like "The Legendary Wind Returns/Rises Again" (伝説の風再び), which would look fine other than maybe not being able to fit. There are a lot of things we could come up with that would work well enough in the role that THE LAST OF DRAGONSLAYER presently plays.

The thing is, I'd like to stick close to what the original says, and if that doesn't work, I'd say just cut it. I feel like I could look Falcom in the eye and tell them why I think THE LAST DRAGON SLAYER is close in spirit to what they had in the original and a smarter choice for native English speaking audiences. If need be, I could tell them why I thought it just had to go. But telling them that I felt entitled to put whatever I wanted in such a prominent place (well, sort of prominent) would be a very different thing.

There are times in story translation when you have to make up a small something on your own just to fill in a crack left by something untranslatable. This doesn't strike me as one of them, though.

Really, unless elmer finishes the games and tells me he objects, I think THE LAST DRAGON SLAYER works fine.
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on July 08, 2016, 05:01:49 AM
What about Faxanadu (Fa(micom) Xanadu)?
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on July 08, 2016, 12:44:42 PM
Hudson developed that one under license from Falcom, so it doesn't usually make the list of official Dragon Slayer series games. The story is completely unique, too.
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on July 08, 2016, 01:17:33 PM
How do you know Falcom wasn't involved in it? Falcom have worked with Hudson on quite a few projects.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on July 08, 2016, 03:04:23 PM
I didn't know, so I just looked it up.

Hiromasa Iwasaki was a very prolific and prominent Hudson programmer. He contributed lots of articles and reviews to PC Engine magazines, and even showed up on TV a few times. One of the more impressive things he did was port Ys I&II.

Unlike a lot of Japanese developers who are quiet and private, he's always been very forthcoming with stories. Here, he tells a very long story about how the Ys port came to be, and it's pretty good. I'd translate it if I weren't so dang busy already.

http://peke.ojaru.jp/ys/

About Faxanadu and Ys...

Apparently, Hudson was supposed to do a fairly straight port of the original Xanadu to the Famicom. However, Iwasaki's colleague who was tasked with the job, a guy named Okuno, thought that the game stunk, so he changed it.

Wikipedia confirms that Famicom Xanadu was advertised as the original Xanadu right up until the release. When it came out, a lot of gamers were angry and disappointed, and reviews panned it on the point of being different alone.

According to Iwasaki, Falcom was pissed, too.

Some months later, Iwasaki was playing Ys on PC and thought it was great, so he approached Falcom together with Bomberman creator and then Hudson executive Shinichi Nakamoto about doing a port. They literally went to Falcom's office together to make their case, and Falcom's president sat across from them scoffing and otherwise looking none-too-friendly.

Iwasaki supposes that Falcom didn't want Hudson to port it, but also wanted to maintain a business relationship, and so didn't want to turn Hudson down outright. Instead, he thinks that the Falcom president offered them a price for the license that he was expecting to be too high. Nakamoto agreed to it immediately.

Back at headquarters, when asked how the hell they were ever going to make a profit, Nakamoto said "We're going to sell CD systems with this, that's how."
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on July 08, 2016, 03:45:08 PM
I didn't know, so I just looked it up.

Hiromasa Iwasaki was a very prolific and prominent Hudson programmer. He contributed lots of articles and reviews to PC Engine magazines, and even showed up on TV a few times. One of the more impressive things he did was port Ys I&II.

I can't find it ATM, and I know I've seen it before translated somewhere, but he shared that it was his idea to put both Ys I & II together to make it a more fuller/complete game. That was a condition he put forth, only wanting to port it if he could put them both together, something like that. Falcom later copied the idea with the limited edition of Ys I & II Complete back over for the Windows PC platform, putting them together and allowing for the launching of Ys II right after beating Ys I.

I thought it was here, http://shmuplations.com/ys/, but maybe it was in crazy John's Kickstarter book ? Darnet, I can't find where that interview was... I'm sure someone here must remember it, might've got linked here somewhere.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on July 08, 2016, 03:53:08 PM
That's right. That's exactly what it says on that page.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on July 08, 2016, 04:02:50 PM
I didn't know, so I just looked it up.

I'm reasonably good at what I do ... but your ability to be in a position to say things like that just puts me to shame at times.  :oops:


Quote
Apparently, Hudson was supposed to do a fairly straight port of the original Xanadu to the Famicom. However, Iwasaki's colleague who was tasked with the job, a guy named Okuno, thought that the game stunk, so he changed it.

Wikipedia confirms that Famicom Xanadu was advertised as the original Xanadu right up until the release. When it came out, a lot of gamers were angry and disappointed, and reviews panned it on the point of being different alone.

According to Iwasaki, Falcom was pissed, too.

That's not exactly unusual for the time period.

For anyone that's worked in an modern job that's had to deal with licensed properties, such as TV, movies, books, or sports, it'll probably seem like a very strange concept.

Modern companies protect their IP, and their "brand" vigorously.

It just wasn't like that in the 1980s and 1990s for Arcade Games and Video Games.

They just weren't seen as long-term investments in a "brand" that could make more money from marketing than from the original idea itself.

I never had to deal with, or consider, the wishes of the original creators, nor even talk to them, in anything that I did in the 1980s or early 1990s ... and that consists of a number of high-profile (at the time) properties.

It wasn't until later on that I dealt with Disney and Nickelodean that I really learned just how carefully some folks protect their IP, and how much control they insist on having over the final product (by which I mean "game", unfortunately ... the distinction between "entertainment" and "fun" and "joy",  and just plain "product" is one of the first things that you lose when you go "pro").


Quote
Back at headquarters, when asked how the hell they were ever going to make a profit, Nakamoto said "We're going to sell CD systems with this, that's how."

He wasn't exactly wrong, was he! A smart business-guy.
Title: Re: Xanadu II Translation Development Blog
Post by: joobloo on July 08, 2016, 06:35:27 PM
How about:

The Legend of Xanadu: Tale of the Wind
The Legend of Xanadu II: The Last Dragon Slayer

Those are some pretty badass sounding games.  Also avoids the double "Legend" in the first game's title.  "Story of the Wind" could maybe work too?
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on July 08, 2016, 06:53:27 PM
I'm reasonably good at what I do ... but your ability to be in a position to say things like that just puts me to shame at times.  :oops:

Well, you're probably a better programmer than I am a translator.  :wink:

Anyway, it's nice to have access to this info when it's out there.

Actually, because the Japanese internet world is a little stunted compared the to English internet world, there is a lot less effort put into archiving information. Many pages full of interesting info put up 10-15 years ago by people in the industry or people typing up what they found in old magazines are gone now, like so many dinky little geocities pages.

I ought to see if I can find some Falcom retrospectives. They might even have something interesting to say about Faxanadu...it was, after all, a pretty cool creation on its own.

Quote
That's not exactly unusual for the time period.

For anyone that's worked in an modern job that's had to deal with licensed properties, such as TV, movies, books, or sports, it'll probably seem like a very strange concept.

Modern companies protect their IP, and their "brand" vigorously.

It just wasn't like that in the 1980s and 1990s for Arcade Games and Video Games.

They just weren't seen as long-term investments in a "brand" that could make more money from marketing than from the original idea itself.

I never had to deal with, or consider, the wishes of the original creators, nor even talk to them, in anything that I did in the 1980s or early 1990s ... and that consists of a number of high-profile (at the time) properties.

It wasn't until later on that I dealt with Disney and Nickelodean that I really learned just how carefully some folks protect their IP, and how much control they insist on having over the final product (by which I mean "game", unfortunately ... the distinction between "entertainment" and "fun" and "joy",  and just plain "product" is one of the first things that you lose when you go "pro").

Interesting. Would you say it was the mid-late 90s when that finally seemed to change and IP defensiveness became more universal in games?
Title: Re: Xanadu II Translation Development Blog
Post by: dshadoff on July 09, 2016, 01:15:05 AM
Quote
Apparently, Hudson was supposed to do a fairly straight port of the original Xanadu to the Famicom. However, Iwasaki's colleague who was tasked with the job, a guy named Okuno, thought that the game stunk, so he changed it.

Wikipedia confirms that Famicom Xanadu was advertised as the original Xanadu right up until the release. When it came out, a lot of gamers were angry and disappointed, and reviews panned it on the point of being different alone.

According to Iwasaki, Falcom was pissed, too.

That's not exactly unusual for the time period.

I remember going to an intellectual property rights seminar as a teenager in the mid-80's, and the subject was the then-newish concept of moral rights.

In Canada at least, the Berne Convention (old law, predating computers) was the prevailing set of laws governing all works until the early '80's when they were refined - mostly based on the American updates made in the Copyright Act of 1976.  The Berne Convention had a lot of gaps in it, as compared to today's copyright laws.

There was a particular case which made headlines around that time. however: Snow v Eaton Center.
https://en.wikipedia.org/wiki/Snow_v_Eaton_Centre_Ltd

The summary is that Eaton Centre (a mall) had bought a work of art - a set of sculptures of geese in flight, intended to displayed in a particular way.  During the Christmas season of 1981, somebody got the smart idea of tying red ribbons around the necks of the goose sculptures.

The artist sued and eventually won.  His point was that they had effectively defaced the sculpture and (in his opinion) caused damage to his reputation.  So by extending that logic, the originator of a work has moral rights of how a work is to be used, beyond ownership of the work itself.

Of course, this was all new stuff in law (which tends to move slowly), and was certainly not part of any multi-country signatory treaty yet... but I understood at the time that there were a few similar cases occurring in other countries too.

Now, For Faxanadu to be blatantly changed dramatically would probably not pass muster under this law (but this was new stuff, and as I said... didn't apply everywhere yet).  But I still would have expected it to happen differently than described in two key ways:

1) I would have thought that Falcom would have been smart enough to put a clause into the contract that they would have a right of approval over the final work.  But I guess this period was still early days and they were green.  And this was Japan.

2) I would have expected the decision to change the game to have been made by a team, a team lead, or a manager of some sort, rather than an individual programmer.  That's what surprised me most about this story.


Quote from: SamIam
Interesting. Would you say it was the mid-late 90s when that finally seemed to change and IP defensiveness became more universal in games?

Well... in North America, I think that the Atari/"E.T. The Extra-Terrestrial" debacle was probably the point at which people started to think "maybe I should take an active role in what the game looks like".  there was likely a counterpart in the NES timeframe too.

-Dave
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on July 09, 2016, 03:29:30 AM
2) I would have expected the decision to change the game to have been made by a team, a team lead, or a manager of some sort, rather than an individual programmer.  That's what surprised me most about this story.


A couple of quick notes.

Mr. Okuno is listed as a programmer in many games, but he is also described as the "core developer" of the first Power League games. He might have been programmer and leader of the Faxanadu project.

Curiously, the only credits I can find for Faxanadu list two people: Okuno and the music composer.

Also, Takahashi Meijin's ephemeral blog, captured here in archive (http://archive.fo/BJSoT) (I'm telling you, there are tons of dead links out there to really interesting looking stuff), makes it sound like it might have been more of a group decision. Without saying who thought it, he says it was thought that the puzzle elements of Xanadu would be too difficult for elementary school students, and that was a strong impetus for changing the game.
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on July 09, 2016, 05:50:35 AM
So Hudson went on to do Popful Mail, Ys 3, the two Legend of Heroes games - all ports. But non of these Legend of Xanadu games are ports. If Falcom and Hudson didn't have this cozy relationship, then what exactly are these games if they aren't ports? Ys IV is an odd one out here as well (which Falcom claims isn't the official version). Because Falcom only did computer stuff.
Title: Re: Xanadu II Translation Development Blog
Post by: Black Tiger on July 09, 2016, 06:42:44 AM
So Hudson went on to do Popful Mail, Ys 3, the two Legend of Heroes games - all ports. But non of these Legend of Xanadu games are ports. If Falcom and Hudson didn't have this cozy relationship, then what exactly are these games if they aren't ports? Ys IV is an odd one out here as well (which Falcom claims isn't the official version). Because Falcom only did computer stuff.

The first The Legend of Xanadu was published by NEC.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on July 09, 2016, 08:01:56 AM
But non of these Legend of Xanadu games are ports. If Falcom and Hudson didn't have this cozy relationship, then what exactly are these games if they aren't ports? Ys IV is an odd one out here as well (which Falcom claims isn't the official version). Because Falcom only did computer stuff.

This is the whole point with the Legend of Xanadu games ... they're unique games created specifically for the PC Engine by Falcom themselves. There's no Hudson involvement.

Legend of Xanadu 1 is the very first console game that Falcom ever did themselves.

Legend of Xanadu 2 is the 3rd console game that Falcom ever did themselves (SNES Popful Mail is the  2nd, and hardly counts because it was just an upgraded port of their own earlier game).
Title: Re: Xanadu II Translation Development Blog
Post by: Black Tiger on July 09, 2016, 08:14:23 AM
But non of these Legend of Xanadu games are ports. If Falcom and Hudson didn't have this cozy relationship, then what exactly are these games if they aren't ports? Ys IV is an odd one out here as well (which Falcom claims isn't the official version). Because Falcom only did computer stuff.

This is the whole point with the Legend of Xanadu games ... they're unique games created specifically for the PC Engine by Falcom themselves. There's no Hudson involvement.

Legend of Xanadu 1 is the very first console game that Falcom ever did themselves.

Legend of Xanadu 2 is the 3rd console game that Falcom ever did themselves (SNES Popful Mail is the  2nd, and hardly counts because it was just an upgraded port of their own earlier game).


The only thing that Popful Mail for SFC and Mega-CD share with their earlier game is characters, and misc events and items. Only the PC Engine version is an upgraded console port of the original.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on July 09, 2016, 02:21:03 PM
So Hudson went on to do Popful Mail, Ys 3, the two Legend of Heroes games - all ports. But non of these Legend of Xanadu games are ports. If Falcom and Hudson didn't have this cozy relationship, then what exactly are these games if they aren't ports? Ys IV is an odd one out here as well (which Falcom claims isn't the official version). Because Falcom only did computer stuff.

Faxanadu came out in November 1987, while The Legend of Xanadu 1 was announced in the spring of 1992.

When the port of Ys 1&2 came out in December 1989, it was received as the best version of the game(s) and a general triumph for reasons we all know, and I'm sure this success helped thaw any cold feelings between the companies. Ys 3 and the Dragon Slayer - Legend of Heroes games, all ported by Hudson, were basically well received, too. I think Falcom was justifiably excited by the CD platform and the Falcom fans that had congregated to it when they decided to make The Legend of Xanadu.

Ys 4 was a unique experiment. Falcom made the game only as far as the design document and musical score, then handed it out to three developers working on three different platforms to actually create - Hudson for the PCE, Tonkin House for the Super Famicom, and Sega for the Mega CD.

I'm sure I'm not the only one who knows this, but there was indeed supposed to be a Mega CD version of Ys 4. Sega and Falcom were buddy-buddy because a couple of the executives were friends on a private basis. The whole story about Popful Mail being originally slated to come to the Mega CD as Sister Sonic is true - I have an article from a period magazine that describes all of this. Anyway, we all know which ideas they decided to go with and which they didn't.

It appears, by the way, that Ys 4 on Super Famicom was accepted as canon because it stuck to Falcom's design document more closely.

But yes, the Legend of Xanadu games on PCE were both the first Falcom games on PCE that weren't ports, and also the very first console games that Falcom actually made themselves. Until they started making games for the PSP in 2006, they only made four console games in-house total: Legend of Xanadu 1 and 2 for PCE, and Popful Mail and Ys 5 for Super Famicom. All four came out in 1994 and 1995.

If you're interested, I actually attempted a "Let's Read" of the PC Engine Fan magazine issue where Ys 4 and The Legend of Xanadu were announced. At the time, there were no details given about The Legend of Xanadu, even the title. Still, Hudson described it as being as important as Squaresoft deciding to make games for Nintendo.

http://www.pcenginefx.com/forums/index.php?topic=18877.msg401745#msg401745

The first The Legend of Xanadu was published by NEC.

Yes, but only published. It was created entirely by Falcom themselves.

Also, according to the Japanese wikipedia article, NEC paid for a roughly $3,000,000 TV ad campaign for Legend of Xanadu 1. I wouldn't be surprised if that had been promised at the beginning to help get Falcom aboard.

Quote
The only thing that Popful Mail for SFC and Mega-CD share with their earlier game is characters, and misc events and items. Only the PC Engine version is an upgraded console port of the original.

The point is, it was made in-house by Falcom, unlike the Mega CD version that was made by Sega or the PCE version that was made by NEC Home Electronics.  That, and the SFC game isn't unique enough to be as outstanding on a timeline as a completely new game.

Although it seems Falcom didn't seem to have their best people working on the Super Famicom, because Popful Mail SFC and Ys 5 aren't very good.

EDIT: I'll be damned. The same guy who programmed the PC original also did the SFC version.

As a Popful Mail fan, I have to add, it wouldn't be fair to say that the SFC and Mega CD versions of Popful Mail are equally removed from the original. The SFC version is a pretty drastic reimagining, but the Mega CD version's game progression, map layout, and even script are based heavily on the original.

PS: One of my favorite things about The Legend of Xanadu 1 is that it has some Popful Mail in its blood. Yoshio Kiya directed them both. Popful Mail is much goofier, and Xanadu 1 has a much more developed story, but the games share the same kind of Falcom-esque goofiness.
Title: Re: Xanadu II Translation Development Blog
Post by: ParanoiaDragon on July 09, 2016, 08:26:52 PM
I thought I heard Falcom originally considered DoY cannon. Though that might've been based on the fact that when they were shopping around for someone to do an anime, it was based on the DoY art style, rather than MotS?
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on July 09, 2016, 10:31:54 PM
I'm not sure about that one. If you're really interested, I could try to track it down in Japanese.

----------------

A couple things I've read about Yoshio Kiya, director of the Dragon Slayer series who quit after The Legend of Xanadu 1.

- He's from the same part of Japan where I live now!

- Became a certified auto mechanic out of high school.

- Loves motorcycles. The president of Falcom bought him multiple cars in exchange for making him promise not to ride motorcycles because of how dangerous they are. Started riding again after quitting Falcom.

- Got his first PC, an NEC PC-6001, at 20 years old, which should be in 1980.

- Developed the original Dragon Slayer on his own over the course of about six months before actually joining Falcom (not sure if he got help with the art, though). It went on sale right after he was hired, which would be in 1984. He had apparently sold a few of his other home-developed games to Falcom before that.

- Was director and main programmer of all the games in the old Dragon Slayer series, except The Legend of Xanadu 2, which was made after he quit.

- As director, was a self-professed dictator. Got personally involved as much as he could, but stayed away from the music side of things. He is listed as a scenario writer in some games.

- Was only the director of Popful Mail, not the main programmer. Same goes for Brandish.

- After leaving Falcom, joined the company Nihon Application, now called Creansmaerd. He still works there today, and his job doesn't seem to be related to games, at least directly. Creansmaerd seems to be a digital payment system company. Wikipedia says he's he's involved in some kind of games division, though.

- Post Falcom, he was closely involved in only five games. Four are in an obscure PC series called Gekirin. Here's one.

- The other and last, very sadly, was Last Imperial Prince on PC-FX. He was the producer. I say sadly because this game sucks. I wonder if he was burnt out at this point. I at least like to imagine that the low quality of LIP was do to resource constraints and other staff problems...
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on July 10, 2016, 08:57:21 AM
- Became a certified auto mechanic out of high school.

- Loves motorcycles. The president of Falcom bought him multiple cars in exchange for making him promise not to ride motorcycles because of how dangerous they are. Started riding again after quitting Falcom.

Hah, cool dude!
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on July 17, 2016, 02:36:37 PM
I didn't know, so I just looked it up.

Hiromasa Iwasaki was a very prolific and prominent Hudson programmer. He contributed lots of articles and reviews to PC Engine magazines, and even showed up on TV a few times. One of the more impressive things he did was port Ys I&II.

I can't find it ATM, and I know I've seen it before translated somewhere, but he shared that it was his idea to put both Ys I & II together to make it a more fuller/complete game. That was a condition he put forth, only wanting to port it if he could put them both together, something like that. Falcom later copied the idea with the limited edition of Ys I & II Complete back over for the Windows PC platform, putting them together and allowing for the launching of Ys II right after beating Ys I.

I thought it was here, http://shmuplations.com/ys/, but maybe it was in crazy John's Kickstarter book ? Darnet, I can't find where that interview was... I'm sure someone here must remember it, might've got linked here somewhere.
That's right. That's exactly what it says on that page.

Alright, more Ys history tangent time. Yep, it was our good pal crazy John in an issue of GamesTM!

(https://postimg.cc/image/xylmumyn7/)
(https://postimg.cc/image/hovgrqnz7/)

Quote
Speaking to main programmer Hiromasa Iwasaki, who was a freelancer for Hudson at the time, reveals amazing things. "In winter 1988, I loved to play Ys II for PC, and when I played, Shinichi Nakamoto [executive producer at Hudson] came to my place and he said: 'Do you want to transplant it to PC Engine?' I replied to him: 'Mr. Nakamoto, I wanna do it if you can accept my condition. Ys is one story made from two parts of a game. I want to transplant two games into one CD. If we do so, we can promote how the capacity of CDs is bigger than ROM cartridges.' Nakamtoto soon replied: 'Okay, we will do this.' So we visited Tokyo, went to Falcom and made a deal."

And that ladies and gentlemen is how history was made: Ys Book I & II. :)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on August 04, 2016, 02:52:23 PM
You posted that a while ago now ... but I just wanted to say "Thanks!" ... that's an interesting read.  :)
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on August 04, 2016, 06:08:02 PM
You're welcome! I had help for that too, SkyeWelse, who offered to scan the mag into readable form. My biggest donor (a friend who works at Intel) actually donated a copy of that GamesTM magazine to me, so I also own it and could've done it, but SkyeWelse saved me the trouble/grunt work. Anyway, it is some legendary history-making of how "Ys Book I & II" came to be merged proper ever since and it's great that behind the scenes stuff like that got captured to cherish the industry that much more! :)
Title: Re: Xanadu II Translation Development Blog
Post by: geise on August 05, 2016, 06:13:27 AM
I love Ys Book I & II so much!  Thanks for the Ys history lesson.
Title: Re: Xanadu II Translation Development Blog
Post by: ashrion on August 06, 2016, 07:23:15 AM
You know when we will have the xanadu one available?

You can not talk to the pc engine works, to create a beautiful edition?

Only able to reach the 5 level without knowing any Japanese.

thanks for yor work ^^

Title: Re: Xanadu II Translation Development Blog
Post by: elmer on August 06, 2016, 05:11:01 PM
You know when we will have the xanadu one available?

When both it and Xanadu 2 are done. Unfortunately, there's no exact way to figure out when that will be.


Quote
You can not talk to the pc engine works, to create a beautiful edition?

<sigh> Again? <sigh>  ](*,)

Nope.


Quote
Only able to reach the 5 level without knowing any Japanese.

Then I think that you're going to be in for a real treat when we're finally finished, and you can play through the game and understand it.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on August 06, 2016, 05:15:35 PM
You know when we will have the xanadu one available?

You can not talk to the pc engine works, to create a beautiful edition?

Only able to reach the 5 level without knowing any Japanese.

thanks for yor work ^^

We appreciate your interest.

Elmer and I don't know exactly when we will be finished. Both games will be released at the same time. It is likely that we can do it before the end of the year, but we cannot promise anything.

Basically, we don't want to see any reproduction-editions. There are too many legal and ethical problems with them.

We especially don't want to see PCE Works make reproductions. The person behind PCE Works, a guy named Tobias, has a history of lying and stealing. He tried to sell his reproduction of Sapphire as the original version, and he has used many translations without permission.

I understand your desire to have a nice physical copy, but please understand that we want to be respectful to the original developers. We also want translators like us to be safe from legal trouble, and not to feel like their translations may be stolen.
Title: Re: Xanadu II Translation Development Blog
Post by: jtucci31 on August 06, 2016, 05:46:13 PM
Xanadu 1 comes in a nice double case that has space for a burned cdr of the translated game for when the time comes :wink:
Title: Re: Xanadu II Translation Development Blog
Post by: ashrion on August 08, 2016, 07:54:58 AM
thanks reply, only one clarification.
i today 440 original pcengine games and all complete fx, incluide fxga- fx board and pc9821 from use boards, all spine cards

440 games, all expensive games original, falle all game to sport, mahong, pachinko, all shooting games,
all games whit spine card, all games in greath condition.
My fisrt shappire buy in 1997, suruga shop 54500y, buy in japan akihabara dead of the brain 1&2 in end 1999.

Yes item of tobias i don t like only copys shappires, faussette, or kazekiri is a shit, buy others stile twin bee or force gear of tokimeki is fantastic idea.

Many more new games, made by fans, who did not reach the quality of official 1987
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 14, 2016, 07:09:11 PM
It's been a long time since I updated this thread, but I'm glad to say that I'm finally playtesting Xanadu 2 and finally getting to see and enjoy the differences between Xanadu 1 and Xanadu 2.

Of course, it's also and opportunity to help find and fix the (hopefully few) bugs in my translation coding, and in SamIAm's actual translation.

So far, the game is beautiful ... but it's pointing out a few areas that I put-off polishing, or even really looking at too deeply

Xanadu 1 is a massively-complex game, but it runs through a fairly straight-forward game engine.

In Xanadu 2, Falcom took the opportunity to refine and tweak a whole bunch of things.

That makes the game look and play a lot more "polished" than Xanadu 1 ... but it also means that there are a lot more "edge" cases and one-time-use code that needs to be fixed.

When playing yesterday, I found the first "big" screw-up in the translation.

I was playing, and moved to a different area and suddenly this text box popped-up that was full of garbage characters.

(http://c1.staticflickr.com/9/8269/29654912196_234050bd37_o.png)


Well, after hours of tracking down, it turned out to be the "You've played for an hour, now take a break." message.

But that message is a part of the Game Code overlay ... and that overlay is full, so there's no room left to fix things.

What followed is the entire day spent reorganizing memory and testing the results in order to free up enough space to put in the proper message in the proper place.

While I was at it, it annoyed me that that message was displayed in white (actor speech color) text instead of cyan (game narration color) text, and so I tried to fix that at the same time.

Here's the result ...

(http://c1.staticflickr.com/9/8374/29399660120_1f7c5bf973_o.png)


Now ... I really need to get rid of that annoying half-space before the flashing cursor ... but perhaps I can put that off for another few days.

Tomorrow it's back to playing the game again!  :wink:
Title: Re: Xanadu II Translation Development Blog
Post by: technozombie on September 14, 2016, 09:41:25 PM
It's been a long time since I updated this thread, but I'm glad to say that I'm finally playtesting Xanadu 2 and finally getting to see and enjoy the differences between Xanadu 1 and Xanadu 2.

Of course, it's also and opportunity to help find and fix the (hopefully few) bugs in my translation coding, and in SamIAm's actual translation.

So far, the game is beautiful ... but it's pointing out a few areas that I put-off polishing, or even really looking at too deeply

Xanadu 1 is a massively-complex game, but it runs through a fairly straight-forward game engine.

In Xanadu 2, Falcom took the opportunity to refine and tweak a whole bunch of things.

That makes the game look and play a lot more "polished" than Xanadu 1 ... but it also means that there are a lot more "edge" cases and one-time-use code that needs to be fixed.

When playing yesterday, I found the first "big" screw-up in the translation.

I was playing, and moved to a different area and suddenly this text box popped-up that was full of garbage characters.

(http://c1.staticflickr.com/9/8269/29654912196_234050bd37_o.png)


Well, after hours of tracking down, it turned out to be the "You've played for an hour, now take a break." message.

But that message is a part of the Game Code overlay ... and that overlay is full, so there's no room left to fix things.

What followed is the entire day spent reorganizing memory and testing the results in order to free up enough space to put in the proper message in the proper place.

While I was at it, it annoyed me that that message was displayed in white (actor speech color) text instead of cyan (game narration color) text, and so I tried to fix that at the same time.

Here's the result ...

(http://c1.staticflickr.com/9/8374/29399660120_1f7c5bf973_o.png)


Now ... I really need to get rid of that annoying half-space before the flashing cursor ... but perhaps I can put that off for another few days.

Tomorrow it's back to playing the game again!  :wink:
Today I learned my mom has something in common with Japanese game developers. I never listened to her and took breaks, and I sure as hell am not putting this game down when I get my dirty paws on it.
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on September 15, 2016, 08:43:27 PM
Nice work, elmer! Things are coming right along for both of us again!

While I was at it, it annoyed me that that message was displayed in white (actor speech color) text instead of cyan (game narration color) text, and so I tried to fix that at the same time.

Here's the result ...

(http://c1.staticflickr.com/9/8374/29399660120_1f7c5bf973_o.png)

That looks good! I might like to get rid of the line-break after the first sentence, but we'll just see. That's the kind of minor detail we can settle on during a later phase.  :D
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 17, 2016, 01:17:50 PM
That looks good! I might like to get rid of the line-break after the first sentence, but we'll just see. That's the kind of minor detail we can settle on during a later phase.  :D

Yep, it fits better with your other translations when it doesn't have the line break.

I was also using the wrong blue/cyan tint.

Here's the updated version ...

(http://c1.staticflickr.com/9/8232/29750444025_afd07512f2_o.png)
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on September 17, 2016, 02:40:49 PM
That's it. :D
Title: Re: Xanadu II Translation Development Blog
Post by: spenoza on September 17, 2016, 02:55:27 PM
Does it do that every hour or only after the first?
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on September 17, 2016, 03:03:39 PM
I think it does it every hour.

You can turn it off in the menu if you'd prefer not to see it.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 17, 2016, 05:03:12 PM
I think it does it every hour.

Yep, I'm seeing it every hour-or-so of gameplay, and didn't know that you could disable it in the menu.

This is a beautiful game! Really, really professionally done.

I just finished Chapter 3, so I'm about halfway done on my 1st play-through.

There are only a very, very few text boxes that might need a little tweaking.

SamIAm has done an amazing job on this translation!  :D

It's going to be really, really interesting to hear everyone's thoughts and preferences about the 2 games when we're finally finished and release them. They're very, very different in style.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 18, 2016, 04:51:50 PM
OK! I'm on the last level now, working my way through the Citadel to the Really Big Baddie (tm).  :wink:

No problems so far ... once the voice-over is recorded, processed and inserted, it shouldn't be too long before we can release these (well, that means *hopefully* this year from my POV).

Sometime things that you didn't anticipate, actually still work out well.

I had no idea that Xanadu 2 had a couple of "flashback" story sequences that are signified by having no background text box, and using a sepia-tone color palette.

I'm really amazed (and pleased) by how the drop-shadow on the text helps those to be readable.

Here's an example (without giving away the story) ...

(http://c1.staticflickr.com/9/8541/29666842882_8fe25d2759_o.png)
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on September 18, 2016, 06:00:33 PM
Holy cow, that was fast.  :shock:

Yep, the last big thing is the cutscenes. I'm doing work on that now!  :mrgreen:
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 18, 2016, 07:24:56 PM
Holy cow, that was fast.  :shock:

To paraphrase ... I came to chew bubblegum, and kick ass; and I was all out of bubblegum!  :wink:

(http://c1.staticflickr.com/9/8401/29157347483_800524277a_o.png)

So now Falcom go all French on us???  :-k

*************

Anyway ... the credits roll is all screwed-up, so that's another thing to fix, and then there are still the chapter title graphics and a few other things still to do, so I've got plenty to keep me busy while SamIAm deals with the incredibly difficult job of herding the voice-over talent into a semblance of order, and then whipping them into giving good performances to honor Falcom's original source-material.

But, "practically", if I got hit by the proverbial bus tomorrow, then these games would still get finished and released.

Now that I've (finally) played through both games, I'm really looking forward to seeing the cutscenes in English and understanding the part of the story that I missed.

It's definitely going to be good to talk to folks after this is done.

There's such a huge difference in style between Xanadu 1 and Xanadu 2.

I wouldn't say that one is "better" than the other ... they seemed aimed at different audiences.

They're both stunningly-good examples of 1990s RPG at its best, and of developers exploring the limits/freedom of the 1st generation of CD-ROM hardware.
Title: Re: Xanadu II Translation Development Blog
Post by: mj9123456 on September 18, 2016, 10:24:18 PM
Really excited to play this, thanks for all the updates. :D
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on September 19, 2016, 10:21:54 AM
Really great work, guys! It brings a tear to my eye to have witnessed a great team come together like this and have gotten so far, so fast, and already so close to the finish line evidently! Seems to also be true with Old Rover and Sarumaru!

(http://c1.staticflickr.com/9/8401/29157347483_800524277a_o.png)

So now Falcom go all French on us???  :-k

They did use a French female narrator for the opening of Ys Origin. And while "fin" is technically Latin and also applies to Spanish (and "le fine" for Italian), it is a good bet the folks at Falcom are Francophiles. ;)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 24, 2016, 11:22:29 AM
Really great work, guys! It brings a tear to my eye to have witnessed a great team come together like this and have gotten so far, so fast, and already so close to the finish line evidently!

Thanks for the kind words!  :)

Both games are fully playable in English, so it's just cleanup and polishing that are left on my plate.

Like normal ... I'm sure that those jobs will expand to take up whatever time is available while SamIAm works on the dub.


Anyway ... the credits roll is all screwed-up, so that's another thing to fix, and then there are still the chapter title graphics and a few other things still to do, so I've got plenty to keep me busy.

Well, the whole credits sequence turned out to be a bit of a PITA, with it using its own customized script-interpreter, and an embedded script within the code-overlay itself that hadn't been extracted before.

On top of which, it's using yet-another custom text-printing routine (1bpp black-and-white) that needed to be hacked.

That's been done now, and I've put in a 2bpp VWF text-printing routine so that we can use our regular fonts with a drop-shadow.

The script-interpreter has also been modified to handle new commands to switch between the condensed and normal fonts, and also to "tab" out the printing to allow for columns of VWF text.

Now it just needs translations for all of the credits.

***************

I've also finally done the remaining (fairly major) hacks to the Xanadu 2 Opening cutscene to change the character portraits into English.

This turned-out to be a severe PITA too, since once-again, it was originally designed to only "sparkle/fade" in a 1bpp (white-or-transparent) bitmap overlay with the name onto the underlying portrait sprites, and there was never any thought put in to allowing a palette entry for a drop-shadow.

Luckily, all the portraits included "black" in them (except for one), so it was mainly a case of extracting the original graphics and then remapping the images and color palettes so that black was always color 14, and white was always color 15.

Then a set of modifications to the "sparkle/fade" code to handle 2 bitplanes, and a set of new graphics for the text overlay, and Bob's-your-Uncle!

Here's the result, together with the latest (and probably final) revision to the subtitle to say "The Last Dragon Slayer".

The font for the character names isn't set-in-stone, and may change if someone with artistic skills wants to give it a try and comes up with something that looks better, but I'm not unhappy with it as it is.

(http://c1.staticflickr.com/9/8117/29789478822_8e5bd79bde_o.png)

(http://c1.staticflickr.com/9/8317/29789478922_f142f57ff2_o.png)

(http://c1.staticflickr.com/9/8705/29276990473_9436431a93_o.png)

(http://c1.staticflickr.com/9/8247/29609184110_1dd28333ff_o.png)

(http://c2.staticflickr.com/6/5653/29609184170_08c35701f2_o.png)

(http://c1.staticflickr.com/9/8080/29609184270_2ebdefd8be_o.png)

(http://c1.staticflickr.com/9/8644/29609184300_53046c11cc_o.png)

(http://c1.staticflickr.com/9/8117/29789478692_d5e4025dca_o.png)
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on September 24, 2016, 12:31:35 PM
GORGEOUS!  :)
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on September 24, 2016, 02:03:58 PM
That is some exciting stuff! Well done!
Title: Re: Xanadu II Translation Development Blog
Post by: SuperPlay on September 25, 2016, 03:40:00 AM
phenomenal stuff :-)
Title: Re: Xanadu II Translation Development Blog
Post by: ashrion on September 25, 2016, 05:06:16 AM
fantastic news  :dance:
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 25, 2016, 05:54:02 AM
Here's an interesting glitch in the Xanadu 2 opening cutscene.

Perhaps it's just the ISO image that I'm using for development, but I can also see how it could have slipped through Falcom's testing.

If you look at these 2 frames of the animation from Areios's introduction, then you can see a couple of stray black pixels on the right hand edge of the screen.

(http://c1.staticflickr.com/9/8834/29626875500_3b6648389e_o.png)

(http://c1.staticflickr.com/9/8247/29294458503_603f49bdf4_o.png)

These are probably cut off by the overscan at the edge of the screen on a normal TV and may not have been visible to Falcom's testers.

Or perhaps they were ... I'm developing in Mednafen, and not on a real PCE, so it's not too easy for me to check it out on a real system.

Someone with a Sony PVM or BVM could toggle the underscan mode on the monitor and see the entire frame to check if these show up on the shipped Xanadu 2 CD.

Anyway ... it annoyed me enough that I've tracked down where those frames are located in the cutscene data, and I'm now clearing the bad data during script-insertion so that the stray pixels are gone.  :)


If someone has really good eyes, they may also be able to see a 1/60th second glitch on screen when the cutscene transitions to display the Dragon Slayer sword scrolling across the screen, but only on the 2nd and 3rd time it is displayed during the cutscene, and not the 1st time.

(http://c1.staticflickr.com/9/8196/29294981553_9f2abac5f0_o.png)

This one would be a huge pain to track down and fix because it's a timing problem, and not a data problem.

I think that this is one glitch may just have to stay the way that Falcom left it when they shipped the game.
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on September 25, 2016, 06:54:15 AM
Elmer: Sadly, this glitch may have beaten us all. Even the best of us. :)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 25, 2016, 03:15:29 PM
Elmer: Sadly, this glitch may have beaten us all. Even the best of us. :)

Hahaha ... you're not going to "psych" me into working on it that easily!  :wink:

*************

After months of specifically avoiding the horrors of the Save Slot screen, the extra familiarity with the code from so many months of working with it, actually made it not-too-bad to tackle this time around ...

(http://c1.staticflickr.com/9/8186/29304974354_bc439a27f7_o.png)

But it shows that this is another one of those screens that actually cries-out for some modification to the background graphics in order to put a drop-shadow on the other text-in-graphic elements on the screen.  #-o
Title: Re: Xanadu II Translation Development Blog
Post by: Necromancer on September 26, 2016, 03:41:00 AM
Lookin' sexy as hell!

(http://c1.staticflickr.com/9/8117/29789478692_d5e4025dca_o.png)

His armor looks different.  Is it even better than the mighty earth armor?  :mrgreen:
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on September 26, 2016, 06:33:14 AM
(http://c1.staticflickr.com/9/8117/29789478822_8e5bd79bde_o.png)

(http://c1.staticflickr.com/9/8317/29789478922_f142f57ff2_o.png)

(http://c1.staticflickr.com/9/8705/29276990473_9436431a93_o.png)

(http://c1.staticflickr.com/9/8247/29609184110_1dd28333ff_o.png)

(http://c2.staticflickr.com/6/5653/29609184170_08c35701f2_o.png)

(http://c1.staticflickr.com/9/8080/29609184270_2ebdefd8be_o.png)

(http://c1.staticflickr.com/9/8644/29609184300_53046c11cc_o.png)

(http://c1.staticflickr.com/9/8117/29789478692_d5e4025dca_o.png)

Lovely, yeah, that's the thing I always loved about the system and its games, these colorful portraits.

Anyway ... it annoyed me enough that I've tracked down where those frames are located in the cutscene data, and I'm now clearing the bad data during script-insertion so that the stray pixels are gone.  :)

Awesome that you're actually able and willing to fix such issues! We finally have our own Neill Corlett (among too-numerous-to-count talented SNES hackers) in elmer for our PCE platform!! :)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 26, 2016, 01:55:43 PM
Elmer: Sadly, this glitch may have beaten us all. Even the best of us. :)

While tongue-in-cheek humor may not always work (although it is always appreciated) ...


Awesome that you're actually able and willing to fix such issues! We finally have our own Neill Corlett (among too-numerous-to-count talented SNES hackers) in elmer for our PCE platform!! :)

Sometimes outright flattery does the trick!  :wink:

Well, either that, of it's been a stupidly hot here today, much too hot to do new stuff, but just hot-enough to niggle my guilt for not fixing an annoying problem.

Anyway ... the 1/60th second screen-glitch during the transition from Daimos and Landis to the scrolling sword is now fixed.  :D

Falcom were doing things in the wrong order, leading to a small window where the screen could display tile data as if it were BAT data.

Or to put it another way ... they changed the screen size from 32x32 to 64x32 and THEN turned the screen off, rather than doing it the other way around.

This could be an issue with Mednafen's emulation ... but I believe that Rypheca has got the VDC processing right here (in terms of which registers can be modified during the frame, and which are only read once-per-frame during the vblank).

I'm sure that Bonknuts knows the answer.

Since I've not said it for a few weeks now ... it's time to repeat that this whole translation wouldn't have been done (by me) without the existence, and sheer superb quality and usefulness of Mednafen.
Title: Re: Xanadu II Translation Development Blog
Post by: Arjak on September 27, 2016, 04:50:28 AM
Outstanding work, Elmer! Those character portraits look great! The one thing that bothers me is that on the title card, the part that says "The Legend of" doesn't quite match the part that says "Xanadu II." There's a bit of an art style clash. I think it's because of one having a black outline and the other not having one. That's just a minor nitpick, though.

Lookin' sexy as hell!

(http://c1.staticflickr.com/9/8117/29789478692_d5e4025dca_o.png)

His armor looks different.  Is it even better than the mighty earth armor?  :mrgreen:

Pfft, Water Armor for life! :wink:
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on September 28, 2016, 03:44:35 PM
The one thing that bothers me is that on the title card, the part that says "The Legend of" doesn't quite match the part that says "Xanadu II." There's a bit of an art style clash. I think it's because of one having a black outline and the other not having one. That's just a minor nitpick, though.

You are, of course, entirely right ... ... ... but.  :-k

To misquote Ralph Waldo Emerson ... "Consistency is the hobgoblin of small minds".

The correct quote is actually closer to the truth here ... “A foolish consistency is the hobgoblin of little minds, adored by little statesmen and philosophers and divines."

In this case, we've got a problem that's in the "foolish consistency" category, and is actually caused by the limits of the logo's implementation in the game (i.e. you're right, but there's a good reason it's that way).

We've only got 7 colors (+ transparency) to draw the entire logo.

We're already using the 1 free color that we had in order to anti-alias the outside of "Xanadu" so that it looks nice.

The text that says "The Legend Of" is only 1 pixel wide.

That means that it needs to either have a drop-shadow, or an outline, in order to stop it from merging into the background too much and becoming difficult to read.

A drop-shadow on that text would look very strange when the main "Xanadu" doesn't have one ... and even then, there would still be spots like the overlap between the "T" and the "X" that would still look strange.

Another alternative would be to drop the anti-aliasing on the "Xanadu" and use a drop-shadow on both lines of text.

It's certainly an option, but to me, the anti-aliasing on the edge of the Xanadu does such a lovely job of smoothing out the stair-stepping of the edges of the "X" that I'd really hate to lose it.

By using an outline on "The Legend Of", together with the anti-aliasing on the "Xanadu", we've placed both lines of text on the background layer of the image, rather than raising either of them above it.

Now, none of this was actually discussed when Phase drew the logo ... but I think that he was right, and I can use the argument above to explain/justify his choices.

I could be entirely full-of-shit, but I still think that given the limitations that we've got, there's nothing about "The Legend Of" having an outline that offends me ... and I'm a very picky so-and-so.  :wink:

<EDIT>

Arjak: After a night's sleep I realized that it's possible to see the "small minds" part of the Emerson's quote as an insult aimed at you ... please know that it wasn't meant that way.

The quote is there to give me an opportunity to comment upon when it's OK to throw "consistency" out of the window.
Title: Re: Xanadu II Translation Development Blog
Post by: Arjak on September 29, 2016, 07:52:07 AM
No worries; I understood what you were saying. It was a nitpick, and fixing the issue would likely be more trouble than it's worth. :)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 05, 2016, 01:47:10 PM
Cleanup continues, and this time I've been looking at the Pause Menu.

I've been trying to figure out how to edit the graphics on the screen to add drop-shadows to the text so that it's consistent with the drop-shadow on the main text (and so is easier to read).

There are lots of small changes, and so I thought that it would be interesting to show the same screen in its different versions.

All the screengrabs are from one of my savestates before I fight the last boss in the game, so I've got pretty-much-everything maxed-out, and have just-enough Elixirs to keep me safe!  :wink:


Here's how the screen looks when loaded with Falcom's original ISO ...

(http://c1.staticflickr.com/9/8548/30057593151_afb3a38892_o.png)


And here's how it looked a coupple of days ago, with the high-contrast palette and the VFW for the descriptions, but with none of the graphics actually edited ...

(http://c2.staticflickr.com/6/5592/29846370840_03f37d46d6_o.png)


And here's how it looks now, with bunch of small cleanups ...

(http://c1.staticflickr.com/9/8570/29846371540_580d18a6e8_o.png)
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on October 05, 2016, 06:53:18 PM
Nice work! I can't wait to give this the old CRT test.  :D
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 09, 2016, 08:21:09 AM
Nice work! I can't wait to give this the old CRT test.  :D

It took a while to send to you ... but I look forward to hearing what you think.  :wink:

***********************

I've now applied the high-contrast palette and the same kind of graphic cleanup to the Save Slot selection menu that you see when you start the game.

There's not much still left to do, now (graphically speaking)!  :D

(http://c2.staticflickr.com/6/5813/29589563244_3a963f607a_o.png)


Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 09, 2016, 09:38:43 AM
Hmmm ... I haven't mentioned this before ... so it's probably time to tell everyone that the visual cutscenes in both Xanadu 1 and Xanadu 2 have been investigated/deconstructed/poked/prodded and generally abused to the point that I'm pretty confident that we'll be able to modify the lip-sync and transition timings so that everything matches (within reason) the English dub, when it's done.  :D

It also opens up the faint possibility that we could add subtitles to a SuperGrafx CD-ROM version of the translation!  :-k

But realistically ... there are so few of us SuperGrafx & SuperCDROM owners still out there, that I can't see it being worth the time-and-effort, since most people would prefer a dub anyway.
Title: Re: Xanadu II Translation Development Blog
Post by: Vimtoman on October 16, 2016, 08:41:44 AM
Would the SuperGrafx version work on mednafen?
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 16, 2016, 09:35:26 AM
At the moment, Mednafen appears to be disabling the emulated SuperGrafx hardware when you run an ISO image ... so "no".

That makes perfect sense, since there never was a SuperGrafx/SCD game released.

But I imagine that it wouldn't be hard to re-enable the emulated SuperGrafx hardware.

I'll build a custom version of Mednafen, and see what happens.  :-k
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 16, 2016, 10:46:27 AM
I'll build a custom version of Mednafen, and see what happens.  :-k

Ah ... it doesn't need a custom version, just set "pce.forcesgx" to 1 in the config file.

I'm getting some interesting artifacts in the background colors of both Xanadu 1 and Xanadu 2 when I do so, though.

Hmmmm ... are people seeing these on a real SuperGrafx/SuperCDROM???

It looks like the first palette entry of each palette (and thus the background color) isn't getting faded to zero (black) properly. It doesn't happen all of the time, but it's pretty consistent *when* it happens.

Curious ... I'll have to find out what's going on.  :-k

<EDIT>

It happens on the original ISO rips, so it's not something that we've broken in the translation.

It's either a bug in Falcom's code that only surfaces on the SGX, or it's a problem with Mednafen (either in the original, or in my build of it).  :?

<EDIT2>

It's Falcom, and not Mednafen.

They're leaving garbage colors in the background color register (palette 0, color 0), which is OK on the PCE because it displays the overscan color register (palette 16, color 0) in offscreen areas.

On the SuperGrafx, the background color register is always displayed, even in offscreen areas, which means that the screen border color in the Xanadu games keeps on changing.

Cr*p!  ](*,)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 17, 2016, 03:24:38 PM
It also opens up the faint possibility that we could add subtitles to a SuperGrafx CD-ROM version of the translation!  :-k

But realistically ... there are so few of us SuperGrafx & SuperCDROM owners still out there, that I can't see it being worth the time-and-effort, since most people would prefer a dub anyway.

They're leaving garbage colors in the background color register (palette 0, color 0), which is OK on the PCE because it displays the overscan color register (palette 16, color 0) in offscreen areas.

On the SuperGrafx, the background color register is always displayed, even in offscreen areas, which means that the screen border color in the Xanadu games keeps on changing.

Ahhhhhhh ... after more research, it looks like Falcom are actually sometimes relying on the way that the PCE uses color 0 of palette 0 for the background of the displayed screen, and color 0 of palette 16 for the overscan areas.

Since the SuperGrafx (in SuperGrafx mode) operates differently, this means that I can't even remotely contemplate the idea of SuperGrafx subtitles because they'd actually mess up Falcom's use of the background color.

Darn!  #-o
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 18, 2016, 11:14:56 AM
The Weapon Shop screens have been a bit of a nightmare when it comes to graphics cleanup, so I've taken a little break and have fixed Falcom's spelling mistake when you start the Prologue.

It's gone from ...

(http://c2.staticflickr.com/6/5825/30415305495_3df1bd9bc6_o.png)


To ...

(http://c2.staticflickr.com/6/5501/30298549792_8b9aa6fd23_o.png)


It's nice to finally get that done!  :D

*******************

BTW ... while doing the reseach into where those graphics are, and how to fix them, I found a soft-lock bug in game ... and "yes", it is in the original Japanese version!  :shock:

If you press the START button to break out of the Prologue, and also press the START button to break out of the Opening Visual, then, if you get the timing right, when you actually get to the game itself, with Areios and Daimos on the Rolandia, then game doesn't display Daimos's first message box, and you're totally stuck while the game sits there playing the music and moving the sailors and birds  around as normal.

Falcom!  [-X
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on October 18, 2016, 01:42:13 PM

Ahhhhhhh ... after more research, it looks like Falcom are actually sometimes relying on the way that the PCE uses color 0 of palette 0 for the background of the displayed screen, and color 0 of palette 16 for the overscan areas.

 So sprite color #0, overscan color, is showing on the SGX plane? This is the problem? Color #0, of palette #0, is its own plane regardless of either VDC (it shows behind both not matter what), so I don't see how that's an issue.

 If it's sprite color #0 (palette #16, color 0) - they why not leave sprite plane on VDC2 enabled at all times? As long as the SAT is clear, it shouldn't obstruct anything. And since it's always on, it shouldn't show as a solid color plane. If all else fails, you could always use the SGX window plane regs - but I don't think you'd need even to go that far.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 18, 2016, 06:12:44 PM
So sprite color #0, overscan color, is showing on the SGX plane? This is the problem? Color #0, of palette #0, is its own plane regardless of either VDC (it shows behind both not matter what), so I don't see how that's an issue.

I'd be happy to hear of a solution if you can think of one that can be applied relatively cleanly.

I could just be having a brain-fart and not be thinking clearly.  :-k

Here are just a few examples from Xanadu 2.


Some things that Falcom did are a little bit sloppy, such as leaving a garbage value in palette 0 color 0, like these ...

SGX:

(http://c2.staticflickr.com/6/5701/30421069885_c021b06be0_o.png)

(http://c2.staticflickr.com/6/5568/30304291032_dd3336be64_o.png)

(http://c2.staticflickr.com/6/5757/30421069995_68cd2304be_o.png)


PCE:

(http://c1.staticflickr.com/9/8610/30421069715_f28eff4aac_o.png)


Now, in that case, I can just clear palette 0, color 0 to "black", and everything should look OK (if I can track down where the palettes are stored on the CD).

********************

But take a look at these ...

SGX:

(http://c2.staticflickr.com/6/5329/29789336603_f96652dd00_o.png)

(http://c2.staticflickr.com/6/5551/29789336753_a6e4784c29_o.png)


PCE:

(http://c1.staticflickr.com/9/8642/30304291062_2fb55058ea_o.png)

(http://c1.staticflickr.com/9/8624/30421069805_d645f8b7ac_o.png)


In these cases, Falcom are actually relying on the difference between the background color (palette 0, color 0), and the overscan color (palette 16, color 0) in order to provide the correct border color.


********************

I can't think of any automated (and therefore "practical") method of hacking the game so that I can fix the background colors in the top cases, without also destroying the background colors in the bottom cases.

I'm guessing that pretty-much-every case could be "manually" fixed ... but that would take months of work, and all for almost no end-user-benefit ... which seems crazy.
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on October 19, 2016, 05:22:03 AM
In the both batch of pics, that's actually quite ingenious of Falcom. I never thought of that, for doing image that clipped regions. The border can be whatever sprite color #0, allowing a much more useful color to be applied to color #0 (pal#0) for background usage (it's in all the BG subpalettes). I'm gonna have to remember that trick!

 I see what you mean. You could minimize the damage by using Patty's window regs and two hsync calls; making the second VDC visible only on a 32px height window somewhere in the fame instead of the whole thing. But that might get messy if the game uses hsync calls during the cinemas.

 EDIT: Is the border color always black??? (in the cinemas, not the regs themselves)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 19, 2016, 06:20:07 AM
EDIT: Is the border color always black??? (in the cinemas, not the regs themselves)

Yes, the border is always black.


Quote
I see what you mean. You could minimize the damage by using Patty's window regs and two hsync calls; making the second VDC visible only on a 32px height window somewhere in the fame instead of the whole thing. But that might get messy if the game uses hsync calls during the cinemas.

I can't (sensibly) do anything that would need an interrupt hook, or that would change the height of the screen that VDC #1 sees (because that would change the sprite coordinates).

Falcom uses various different screen heights depending upon where you are, for instance the Opening Video changes the height at the end, and the Boss fights use a different screen height to the Top-Down game levels.

Falcom also relies on the difference between the border and background colors in the game itself occasionally (most noticably for the Waepon Shops, but maybe elsewhere, too).

I haven't even looked at the Boss Levels to see if they rely on the difference.

And this is all just Xanadu 2 ... I've not looked at Xanadu 1 on the SGX to see what it does.
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on October 19, 2016, 11:39:52 AM
Are all the sprite palettes used in the cinema code? Is there at least one free one, or one static one that contains the color black?
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 20, 2016, 04:12:56 AM
Are all the sprite palettes used in the cinema code? Is there at least one free one, or one static one that contains the color black?

I expect that there's at-least-one free ... but it may not always be the same one.

There are also all of the cutscenes in the game to consider, and the deliberate use of the background color in some (but not all) of the top-down game areas.
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on October 20, 2016, 09:51:10 AM
So, this is what I had in mind: Set VDC2 to disable BG layer but enable sprite layer. Normally this would show the BG color in the border areas, which we don't want because Falcom using sprite color #0 for out of bounds region areas. So setup VDC2 SAT to show sprites across the whole screen, but using black as a visible pixel color. Set VDC2 window reg to show sprites above VDC1 (all layers) and behind VDC 2 BG layer. Initially, set all sprites filling the whole screen to appear low priority (behind BG layer), which will set them behind all layers and keep VDC2 from showing BG color #0.
 
 Now, pick a region of the display area (whole thing, not just the clipped part of VDC 1) and setup a sprite of sprites in this region to point to a buffer in memory where you can blit to. When showing a message, switch the priority to above VDC1, else clear the buffer and set the this specific sprite block to low BG priority.

 Does that make sense?
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 21, 2016, 05:51:14 AM
Does that make sense?

If I'm understanding you correctly, you're basically suggesting using a 256-wide display of VDC#2 sprites to create the top and bottom black borders, with some nice use of the SGX hardware so that the VDC#2 SAT doesn't need to be continually updated every frame, or every size-transition.

But the technique would rely on there being a constant black value somewhere in one of the 16 sprite palettes, which isn't certain, or even particularly likely.

I guess that the big question that I have, since I'm not familiar with the intricate details of the SGX's extra hardware, is .... is it really OK to have VDC#1 and VDC#2 set to different horizontal and vertical display widths/heights?
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on October 21, 2016, 04:05:31 PM
Does that make sense?

If I'm understanding you correctly, you're basically suggesting using a 256-wide display of VDC#2 sprites to create the top and bottom black borders, with some nice use of the SGX hardware so that the VDC#2 SAT doesn't need to be continually updated every frame, or every size-transition.

But the technique would rely on there being a constant black value somewhere in one of the 16 sprite palettes, which isn't certain, or even particularly likely.
Have fifteen sets of grouped sprite cells (forming 32x32 or 32x64), each color responding to color 1 to 15. Then you can assign whatever palette you want. You could even prebuild multiple configured SATs for this, so you don't have to assign any palettes, and just VDMA them during vblank to change which one to use (no cpu power to shift things around). I mean, you have a lot of vram in SGX to mess around with. Especially since you won't be using the BG layer, so the BG map area is free game.

Quote
I guess that the big question that I have, since I'm not familiar with the intricate details of the SGX's extra hardware, is .... is it really OK to have VDC#1 and VDC#2 set to different horizontal and vertical display widths/heights?
Patty (video priority controller) doesn't care. Pixels are still sent by the VDC to Patty, and the VCE still sends hsync and vsync to both VDCs. So if one VDC is "clipped" compared to the other VDC, it'll just show sprite color #0 to Patty.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 23, 2016, 06:25:55 AM
Patty (video priority controller) doesn't care. Pixels are still sent by the VDC to Patty, and the VCE still sends hsync and vsync to both VDCs. So if one VDC is "clipped" compared to the other VDC, it'll just show sprite color #0 to Patty.

Excellent, thanks for the info!  :D

I've really got a lot to learn about the extra hardware in the SuperGrafx.

The thing is ... after all of that work (if it's even practical), what do I get?

AFAIK we've already decided not to do SuperGrafx-only subtitles, and concentrate on making the dub as-good-as-possible.

Can't SuperGrafx owners run the Xanadu games correctly just by switching the system into "compatibility" mode (single VDC)?
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on October 23, 2016, 07:28:13 AM
Ahh, ok.

Pretty sure the switch isn't even necessary except for a couple of games that write outside the traditional VDC address range (games that expect the ports to be mirrored and use mirrored addresses instead of the original ones). The second VDC is disabled from mixing by default, because the Patty window regs are always initialized on power on state (internally; not from code). I've had the switch set to SGX mode for year and don't recall having a problem.

 Fun fact: Patty can also control which VDC receives the STx opcodes too. I was surprised they went the extra mile with this.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on October 23, 2016, 08:15:20 AM
As I said a few days ago, the Weapon Shop and Status Bar have been a real PITA to do a graphics cleanup pass on.

It's finally done, and I thought that it might be good to explain the technique used, since it's not one that's been commonly seen since the 4th-generation development days, and someone might want to use it in another translation, or a homebrew game.

Here are the original Japanese Status Bar and the Weapon Shop's Gems Box ...

(http://c2.staticflickr.com/6/5628/30220680810_f25d137540_o.png)

(http://c2.staticflickr.com/6/5780/30432007431_bfe54e6077_o.png)


If you look carefully, you'll see that the background of each of the boxes is actually made up of a repeating 8x16 texture ...

(http://c2.staticflickr.com/6/5711/30220680970_f894bae3db_o.png)

(http://c2.staticflickr.com/6/5718/30220688250_a36efee1b7_o.png)


The regular English text that is displayed in the Message Boxes is drawn by first decompressing a copy of the blank Message Box graphic, and then copying that to VRAM before finally drawing the text pixels on top of that clean background.

That's fine for the Message Boxes, where the game itself is stopped, but it's too slow a process for the numbers that are displayed on the Status Bar.

For the Status Bar, where the numbers change on a constant basis as you kill the monsters, Falcom are using a different technique.

What they're doing is to store a copy of that 8x16 background texture permanently in memory, and then just figure out what part of the texture corresponds to the pixels underneath the digit that they want to display.

Here is something to show how that actually works in practice, with the numbers that are displayed on different lines for the top and bottom of the Status Bar, and the middle of the Current Gems Box.

(http://c1.staticflickr.com/9/8639/30220680660_920f7c7e9a_o.png)


Then, as Falcom are writing the digit, line-by-line, into the box sprite, they can use that texture data to replace the pixels that were overwritten by the previous digit that was displayed in that location.

That's a pretty fast way of updating the numbers that are displayed on the Status Bar and Weapon Shop, and it's very efficient in terms of the memory used.


****************************


But ... it's a bit of a PITA when it comes to trying to add a drop-shadow to the numbers in order to make them pop off the background and be easier to read, and more consistent with the other shadowed text that's in the game now.

I couldn't just draw a separate drop-shadow, the way that I'm doing on the Message Boxes, because that would be too slow, and effect the game's frame rate.

There isn't enough free memory to store pre-drawn copies of each digit, in each location, with a real drop shadow baked into the texure.

What I've done is to dredge up a really old technique that's not perfect, but it gives the illusion that there's a drop-shadow on the digit, but without causing any runtime overhead, and with only minimal extra memory usage.

For this to work, you just keep a 2nd copy of the background texture, and then use the original "clean" version if you're displaying a "space" character, but use the new background texture whenever you're writing a digit.

The new background texture has a drop-shadow baked into it that works well-enough to look good for each and every different digit that can be drawn at each of the 3 different positions in the texture.

Creating the new texture is a bit of an "art", and requires a lot of compromise between what a real drop-shadow should look like, and what is good-enough to create the right impression without making the entire box too dark for numbers like "1" and "7" that contain lots of blank space in them.

Here's what that looks like, with the original texture on the left, and then the new shadow texture next to it, together with a before-and-after for the 3 different lines that the numbers are displayed on ...

(http://c2.staticflickr.com/6/5482/30220688090_807145538b_o.png)


It definitely darkens the outline of the digits, but you'll probably think that it looks pretty horrible.

That's because you're seeing the whole 8x16 texture at once.

In reality, the game code only writes the 7 lines of each digit that are displayed, and leaves the rest of the texture untouched. That's what makes this technique work ... you only use the new drop-shadow background texture on the lines that it is needed on.

Here's my test example of how it actually looks in practice, with the new fake-shadowed text on top, and the original non-shadowed text on the bottom.

(http://c2.staticflickr.com/6/5501/30482511636_4b131b1647_o.png)


The effect is pretty subtle, but it does manage to look like there is a drop-shadow on the numbers, and it definitely lifts them visually off the background and makes them more readable, at least IMHO. It's not pixel-perfect, but it's good-enough to fool the eye.


So, after all of that messing around, and after modifying the boxes themselves to add a drop-shadow to the icons and the "GEMS", this is the final result (with the high-contrast palette) ...

(http://c1.staticflickr.com/9/8410/30220680850_48772fa1eb_o.png)

(http://c2.staticflickr.com/6/5508/30220688050_86beaa2a0f_o.png)


If you can't immediately see difference between those and the Japanese originals ... then that's the point. The idea is to add just-enough change to help the text pop out more, but without screwing up the look of Falcom's game.  :wink:
Title: Re: Xanadu II Translation Development Blog
Post by: megatron-uk on October 23, 2016, 09:53:16 AM
The work on cleaning up the menu and UI elements is fantastic. They look so much better than the original images posted several pages back. Top work!  :clap:
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on October 23, 2016, 01:04:06 PM
The work on cleaning up the menu and UI elements is fantastic. They look so much better than the original images posted several pages back. Top work!  :clap:


I can't put it any better.

Elmer, you crazy bastard, we love you for all the effort you put into the fine points.

Finesse.

Pure finesse, comrade.

:)
Title: Re: Xanadu II Translation Development Blog
Post by: Bonknuts on October 23, 2016, 01:10:48 PM
I like the drop shadow. It subtle but effective. Nice.
Title: Re: Xanadu II Translation Development Blog
Post by: TailChao on October 24, 2016, 04:06:06 AM
It's finally done, and I thought that it might be good to explain the technique used, since it's not one that's been commonly seen since the 4th-generation development days, and someone might want to use it in another translation, or a homebrew game.
Thanks for doing this, it's very appreciated.

I like the drop shadow. It subtle but effective. Nice.
It'll probably look very clear over composite, too.
Title: Re: Xanadu II Translation Development Blog
Post by: Michirin9801 on December 19, 2016, 11:31:19 AM
Hello there! I really appreciate the work you're doing and I'm really looking forward to playing this gorgeous game with its just as gorgeous PSG soundtrack! Keep it up!
Title: Re: Xanadu II Translation Development Blog
Post by: technozombie on December 20, 2016, 10:37:35 AM
+1 Elmer, you are insane in the absolute most awesome way possible.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on February 11, 2017, 03:08:08 PM
+1 Elmer, you are insane in the absolute most awesome way possible.

Well ... I'll agree with the "insane" bit, anyway!  :wink:

**************************

We're still putting together all of the last-minute details for the dub, and getting together screenshots to attract folks with voice-talent into wanting to be a part of it, and ...

... I thought folks might like this screenshot.

It's what you can see by disabling Falcom's sparkle fade-out of the Xanadu 1 logo.

Looks kinda nice, to me.

Thanks to Phase for the logo!  :D

(http://c2.staticflickr.com/4/3949/32850039865_002d676be1_o.png)
Title: Re: Xanadu II Translation Development Blog
Post by: Michirin9801 on February 11, 2017, 03:46:45 PM
... I thought folks might like this screenshot.

It's what you can see by disabling Falcom's sparkle fade-out of the Xanadu 1 logo.

Looks kinda nice, to me.

Thanks to Phase for the logo!  :D

(http://c2.staticflickr.com/4/3949/32850039865_002d676be1_o.png)
♥~So pretty~♥
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on February 11, 2017, 04:20:22 PM
Man, I love these games.
Title: Re: Xanadu II Translation Development Blog
Post by: Dicer on February 11, 2017, 04:29:09 PM
Such amazing work from anyone and everyone involved...

I just hope that we get to experience this before the end of days.


Title: Re: Xanadu II Translation Development Blog
Post by: elmer on February 11, 2017, 04:56:02 PM
I just hope that we get to experience this before the end of days.

Yeah, when I was a kid, being forcefed Religious Education ...

... "the sound of the last Trump" had something to do with the Angel Gabriel, IIRC.

Ain't life just so funny!  :shock:  :roll:
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on February 11, 2017, 05:04:38 PM
Man, I love these games.

Me, too.  :D

Thanks for introducing me to them.

I have no idea how they ever got made ... they just don't seem to fit the "commerical" mold of the time.  :shock:
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on February 21, 2017, 04:23:11 PM
We're still putting together all of the last-minute details for the dub, and getting together screenshots to attract folks with voice-talent into wanting to be a part of it, and ...

... I thought folks might like this screenshot.

It's what you can see by disabling Falcom's sparkle fade-out of the Xanadu 1 logo.

SamIAm wanted to see what Falcom's original Japanese logo looked like in the same setting, so I disabled the fade-out, and took another screenshot.

Dang ... Phase's logo looks really, really good in comparison!  :dance:


(http://c1.staticflickr.com/1/285/32195860484_5d66977a6a_o.png)

(http://c2.staticflickr.com/4/3949/32850039865_002d676be1_o.png)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on February 25, 2017, 11:18:21 AM
The replacement English level-name screens are going in now, and Phase's new font is looking great!  :dance:


Falcom's original screen ...

(http://c1.staticflickr.com/3/2781/32960066202_b908039475_o.png)


Translation screen ...

(http://c1.staticflickr.com/3/2829/32960066232_90411917e0_o.png)
Title: Re: Xanadu II Translation Development Blog
Post by: Michirin9801 on February 25, 2017, 12:08:23 PM
(http://c1.staticflickr.com/3/2829/32960066232_90411917e0_o.png)
Holy crap that looks amazing!!
Great job ^^
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on February 25, 2017, 01:28:05 PM
Wait until you see the chapter titles. It's the same font, of course, but they just look really nice. I'm 100% satisfied with the way they're turning out.

A CRT test is pending. :)
Title: Re: Xanadu II Translation Development Blog
Post by: ashrion on February 25, 2017, 06:57:48 PM
Great
Title: Re: Xanadu II Translation Development Blog
Post by: LentFilms on February 26, 2017, 05:09:02 AM
Wow, that new font looks incredibly nice! Awesome work guys!
Title: Re: Xanadu II Translation Development Blog
Post by: Dicer on February 26, 2017, 05:28:34 AM
Wait until you see the chapter titles. It's the same font, of course, but they just look really nice. I'm 100% satisfied with the way they're turning out.

A CRT test is pending. :)

I have a crt, I'll test :)

Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on February 27, 2017, 02:29:09 AM
Just checked them.

They look amazing.  :D
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on February 27, 2017, 02:33:44 AM
Just checked them.

They look amazing.  :D

Ahhhh ... not too dark, then? Phase's anti-aliasing *should* look really nice on a blurry composite signal.  :wink:
Title: Re: Xanadu II Translation Development Blog
Post by: fragmare on February 27, 2017, 02:37:37 AM
I dunno who Phase is, but good pixel art is good!

Hate doing fonts, but loooove doing title logos.  :)

Just checked them.

They look amazing.  :D

Ahhhh ... not too dark, then? Phase's anti-aliasing *should* look really nice on a blurry composite signal.  :wink:

AA to save the day!  I think the edges will look great on a CRT.  Want to see an absolutely flawless example of pixel art aa?  Go check out Gaiares title logo, specifically the edges of it... good god.  so lovely.  :)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on February 27, 2017, 04:02:35 AM
I dunno who Phase is, but good pixel art is good!

It sure is!  :D


Quote
Hate doing fonts, but loooove doing title logos.  :)

Hahaha ... yep, it's always been tough to find someone that actually enjoys putting in the mind-crushing effort that it takes to make a low-resolution font look good.


AA to save the day!  I think the edges will look great on a CRT.  Want to see an absolutely flawless example of pixel art aa?  Go check out Gaiares title logo, specifically the edges of it... good god.  so lovely.  :)

Yes, that looks really good ... but, to be honest, it's actually easier to do that on a large graphical logo than it is to do it on a small font, without causing the font to look horribly blurry.

We had a limited number of spare palette entries to play with on the LoX logo, but even the single color that we could afford to use really helps the outside-edge of the logo look nicer.

Unfortunately, we couldn't bump the logo from 8 -> 16 colors and free-up some entries to anti-alias the interior at all.

Either way ... Phase's font shows (I think) that even though we didn't get much in the way of great-looking English translations back-in-the-day, the basic PCE hardware can push some good-looking screens that look as-good-as or better-than a lot of SNES games managed.


Anyway, here's the Chapter title from the game's 2nd level ... IIRC SamIAm wanted to include this one in the screenshots that the dub-folks are going to see ...

(http://c1.staticflickr.com/1/402/32960066102_08ab68fb41_o.png)
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on February 27, 2017, 11:27:18 AM
Ahhhh ... not too dark, then? Phase's anti-aliasing *should* look really nice on a blurry composite signal.  :wink:

Definitely not too dark. It's basically fine as it is, but if we wanted to, we could probably get away with bumping down the brightness one step.

I was using RGB, by the way, and the letters were still totally smooth. I suppose I can check it on an HD-CRT just to see if anything really stands out, but I bet it will be fine.

EDIT: Yep, totally fine.  :)
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on March 07, 2017, 11:15:45 PM
This is shaping up to be BETTER than the original presentation.

Insane.

:)
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on March 20, 2017, 04:47:43 PM
We thought that all traces of this CD had been lost in the mists-of-time, but ...

The Legend of Xanadu II - Someday with my Love
Title: Re: Xanadu II Translation Development Blog
Post by: pixeljunkie on March 21, 2017, 08:51:35 AM
We thought that all traces of this CD had been lost in the mists-of-time, but ...

The Legend of Xanadu II - Someday with my Love

sweet! thanks for posting this!
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on March 27, 2017, 02:06:44 PM
We thought that all traces of this CD had been lost in the mists-of-time, but ...

The Legend of Xanadu II - Someday with my Love

sweet! thanks for posting this!

Ditto!
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on April 08, 2017, 05:55:46 PM
One final (hopefully) "blog" post on the terminally-dull subject of data compression.

As we're rapidly approaching the end of the project, it's time to concentrate on a few of the little details that I've been ignoring for some time.

That includes the following warning message that both SamIAm and I see every time we run the script-insterter to convert the English scripts for LoX2.

  META_BLOCK "ZAD", was   76KB, now   78KB.
  META_BLOCK is bigger than original! Aborting!



Whoops ... that's a "fatal" error that can't be recovered from, and should abort the whole conversion process.

That's what the message is for.

It's a problem ... that's why I put the test in there and made it print a scary message.

Then, because it was the only file in the two games with the problem, and it's not a huge show-stopper, I just disabled the "abort", and let the English conversion continue anyway.

I still have no idea what long-term bug we're creating by having that one file overwrite the start of the next file in the game ... but we've lived with it for over a year now.

No user-visible bug, no problem, right?  8-[

Well ... not really.  [-X

It's time to finally fix things properly before the release.


This all goes back to a whole bunch of blog posts from a long, long time ago.

We've talked here, and in many other threads, about how CD-based translations are a huge PITA because of the limited amount of free-memory available to change things (like the language), and how a Super-Duper System Card would make life a lot easier for translators.

In the case of the LoX games, I got around the need for that by figuring-out exactly where Falcom loaded every single asset in the game from, and then re-compressing every single graphic element or text script or code with a different and more-efficient compression algorithm, that made everything smaller in memory, and so freed-up the extra space that I needed to fit in SamIAm's wonderful-but-larger English translations.

Which was great ... a significant amount of work, but great ... except that I had a problem re-compressing a few files with my not-quite-as-brilliant-as-I'd-like compression algorithm.

Anyway ... we messed-around with this, messed-around with that, and eventually got to the point where there was only one file causing a problem, and we couldn't actually see that problem on-screen ... so we ignored it.  :-"


The problem comes from the statistical-encoding. Let me explain in real English ...

Hudson, and Falcom, and everyone else in the 16-bit console era used some form of LZSS compression (except for the SNES's SDD-1 chip in Star Ocean).

My not-quite-as-brilliant-as-I'd-like compression algorithm is just a variant of that (like Falcom's enhanced "Falcom2" compression), that takes advantage of the fact that shorter repeat-lengths occur more-often than longer ones, and that "repeat" sequences are more-often closer to the current decompression-pointer than farther away.

I'm sorry if that sounds like gobbledygook ... but it's just-about as simply as I can explain it.


The huge stupid-problem with my compression tools was that they weren't originally designed to search for both of those cases, because the code that does the search-for-a-match was originally copied from the LZSS compressor in Mark Nelson's Data Compression book.

You'd always get the longest-possible match for a repeat ... but you had no idea if it was the longest-and-closest-possible match.

That threw away a number of opportunities for data compression ... and made that one file larger than it had been when Falcom compressed it.


I finally (after approx 20 years) fixed that, and now the compression code checks for both the longest match, and when it finds that, checks for the closest match of that exact size (no, it's not as trivial as it sounds).


I've avoided making that change for approx 20 years, because I was afraid of how it was going to slow-down the compressor, and make it unusable. At the end-of-the-day, I figured-out a reasonable way of doing it, and it only adds a few % to the compression time. Silly me.  :oops:


Anyway ... where does that leave us?  :-k


Well, that one bad file ...

  META_BLOCK "ZAD", was   76KB, now   78KB.
  META_BLOCK is bigger than original! Aborting!



Now shows ...

  META_BLOCK "ZAD", was   76KB, now   74KB.


That's much better!  8)


And when it comes to the level data, which includes the scripts, which include the English text ...


// LoX1 GAME META-BLOCKS 176KB (22 8KB banks)

META_BLOCK "Z10",  Falcom 160KB,  simple 142KB,  optimal 136KB.
META_BLOCK "Z11",  Falcom 148KB,  simple 132KB,  optimal 128KB.
META_BLOCK "Z12",  Falcom 176KB,  simple 156KB,  optimal 150KB.
META_BLOCK "Z13",  Falcom 174KB,  simple 154KB,  optimal 150KB.
META_BLOCK "Z14",  Falcom 166KB,  simple 150KB,  optimal 146KB.
META_BLOCK "Z15",  Falcom 172KB,  simple 156KB,  optimal 152KB.
META_BLOCK "Z16",  Falcom 168KB,  simple 152KB,  optimal 146KB.
META_BLOCK "Z17",  Falcom 176KB,  simple 156KB,  optimal 150KB.
META_BLOCK "Z18",  Falcom 158KB,  simple 142KB,  optimal 138KB.
META_BLOCK "Z19",  Falcom 176KB,  simple 154KB,  optimal 150KB.
META_BLOCK "Z1A",  Falcom 132KB,  simple 116KB,  optimal 112KB.
META_BLOCK "Z1B",  Falcom 174KB,  simple 142KB,  optimal 136KB.


// LoX2 GAME META-BLOCKS 128KB (16 8KB banks) (only the largest blocks are shown)

META_BLOCK "Z25", Falcom  128KB, simple  124KB, optimal  122KB.
META_BLOCK "Z63", Falcom  128KB, simple  124KB, optimal  120KB.
META_BLOCK "Z22", Falcom  128KB, simple  122KB, optimal  118KB.
META_BLOCK "Z10", Falcom  128KB, simple  118KB, optimal  116KB.
META_BLOCK "Z40", Falcom  128KB, simple  118KB, optimal  116KB.
META_BLOCK "Z41", Falcom  128KB, simple  118KB, optimal  114KB.
META_BLOCK "Z42", Falcom  126KB, simple  120KB, optimal  116KB.
META_BLOCK "Z54", Falcom  126KB, simple  120KB, optimal  116KB.
META_BLOCK "Z84", Falcom  126KB, simple  120KB, optimal  116KB.
META_BLOCK "Z51", Falcom  124KB, simple  118KB, optimal  114KB.
META_BLOCK "Z74", Falcom  122KB, simple  118KB, optimal  114KB.
META_BLOCK "Z73", Falcom  120KB, simple  114KB, optimal  112KB.



In summary ...

// LoX1 Summary

Uncompressed 49 files, 12562926 bytes.
Falcom       49 files,  6062815 bytes.
SWD5 simple  49 files,  5235179 bytes.
SWD5 optimal 49 files,  5057690 bytes.

// LoX2 Summary

Uncompressed 103 files, 23278006 bytes.
Falcom       103 files,  9026275 bytes.
SWD5 simple  103 files,  8381998 bytes.
SWD5 optimal 103 files,  8140408 bytes.



So, again, we got a huge "win" with Lox1 ... but jeez ... we only-just won enough space in LoX2 in order to add the English translations.  :roll:

We were really, really close to needing one of those Super-Duper System Cards that we've talked about for a while!

Title: Re: Xanadu II Translation Development Blog
Post by: seieienbu on April 09, 2017, 09:47:31 AM
So the translation patches for both games work (presumably) bug free now?  The only thing that's left ( :lol: only) is the voice acting?
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on April 09, 2017, 10:17:20 AM
So the translation patches for both games work (presumably) bug free now?  The only thing that's left ( :lol: only) is the voice acting?

Whatever was going on with that one file, it didn't cause any visible on-screen problems, and certainly won't now.

Both games have been completely played-through with no known bugs or glitches.

The only thing left undone on my side is the credits screens for both games (LoX2 has been hacked and is waiting for the final text, LoX1 hasn't been touched yet). They both waiting for the names of the English VO actors.

After the actual VO-insertion, I'll still have to fix up the lip-sync. It's hacked, and I know what to do, but it's going to be a huge, slow PITA to actually do it.

Then there's re-syncing the LoX2 introduction after we've got the new VO in there (that's one of SamIAm's jobs, since that's all in script-code).

Then a final play-through to make sure that it's all working ... either before or during a formal beta-test involving a few volunteers.

Then it's a case of putting together the final patch package.

Then it gets released!

So, lots of little "details" left to do, but both games could basically be released in a week or two if it wasn't for the VO and credits.
Title: Re: Xanadu II Translation Development Blog
Post by: seieienbu on April 09, 2017, 10:34:01 AM
I hadn't even thought of matching voices up with the character animations.  That sounds quite tedious.  Will you include credits for the voice actors?
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on April 09, 2017, 12:03:56 PM
I hadn't even thought of matching voices up with the character animations.  That sounds quite tedious.

Hopefully the VO actors will hit the mark on their timings, which will significantly reduce the work, but there are also quite a few cases where we've deliberately focused on the quality of the dialog in the knowledge that the timings *can* be fixed.

It's not like the Japanese original is perfect, but I really want to do that best that I can.  :wink:


Quote
Will you include credits for the voice actors?

That's still up for discussion.

We've tried to avoid intruding ourselves as much as possible into Falcom's game, and there will be the technical problems if we try to extend the credits passed the end of the music ... but I'm sure that we can come up with some happy-compromise.
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on April 12, 2017, 05:15:19 PM
Impressive work on the codec. David S. also mentioned that he found an optimization for the LZ codec Ys IV and Emerald Dragon use (the decompression algorithm differs by 1 line of code, technically), and gained slightly a little more compression power than the version Hudson used in development.

I actually used his Hudson exact matching version because of a bug I introduced and initially blamed on his optimization work, so he made another version to behave exactly the same as Hudson's, which is what the Ys IV English patch ultimately went live with.

I never had to trim anything AFAIK, all text blocks fit by the end of it, so I didn't bother using it until Emerald Dragon. The needed trimming solution here is to stop repeating the name of the character in subsequent messages (like you have done for the Xanadus I noticed), and that hopefully satisfies the needs for most text blocks, if not minor rewrites to shorten things here and there worst case. Ys IV never printed the name of a character per text box, so guess that made fitting things easier too versus ED.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on April 14, 2017, 06:39:27 AM
David S. also mentioned that he found an optimization for the LZ codec Ys IV and Emerald Dragon use (the decompression algorithm differs by 1 line of code, technically), and gained slightly a little more compression power than the version Hudson used in development.

I actually used his Hudson exact matching version because of a bug I introduced and initially blamed on his optimization work, so he made another version to behave exactly the same as Hudson's, which is what the Ys IV English patch ultimately went live with.

Yep, we talked about this a while back!  :wink:

http://www.pcenginefx.com/forums/index.php?topic=19674.msg425790#msg425790

Unless you've fixed the search-window offsets since then, or switched to the code that I posted, then you're going to be throwing-away some compression opportunities in ED!  :-"

Actually, when I was looking at the fast-CD-read routines in the Anearth Fantasy Stories code that bonknuts was talking about, I had a look at their AFS compression codec.

It looks like it's the same one that he talked about from Gate of Thunder with some weird pre-loading of the compression window.

Jeez ... it's one of the slowest decompressors that I've seen in ages!  :shock:

It would be amusing to code-up compressors for the Ys IV, ED & AFS methods and let them loose on the LoX data and see how they do.

I'm definitely curious to see if Hudson's pre-loading has any noticeable effect on real-world data.


Quote
The needed trimming solution here is to stop repeating the name of the character in subsequent messages (like you have done for the Xanadus I noticed), and that hopefully satisfies the needs for most text blocks, if not minor rewrites to shorten things here and there worst case.

That wasn't us ... that was in the original game. No memory savings for us in LoX by omitting those names, I'm afraid.
Title: Re: Xanadu II Translation Development Blog
Post by: NightWolve on April 14, 2017, 08:59:54 AM
Yep, we talked about this a while back!  :wink:

http://www.pcenginefx.com/forums/index.php?topic=19674.msg425790#msg425790

Unless you've fixed the search-window offsets since then, or switched to the code that I posted, then you're going to be throwing-away some compression opportunities in ED!  :-"

Ah yeah, I shared our YsIV/ED text codec there. Yeah, maybe I should look at your alternate code and give it a whirl some time. My past inclinations were more to wanna upgrade, improve, mess around even when it isn't broken which got me in trouble in real jobs and fan projects... So I'm hesitant in older age to do so, you know how it is. ;) When I was in my late 20's and could still pull all nighter debugging sessions, I was more eager... Can't do that anymore, heh.

Quote from: NightWolve
The needed trimming solution here is to stop repeating the name of the character in subsequent messages (like you have done for the Xanadus I noticed), and that hopefully satisfies the needs for most text blocks, if not minor rewrites to shorten things here and there worst case.
That wasn't us ... that was in the original game. No memory savings for us in LoX by omitting those names, I'm afraid.

Ah, so you gained nothing as I will by copying that style for ED.

(https://postimg.cc/image/4a5l94j7r/) (https://postimg.cc/image/tt86r42cj/)

David was pretty sure this [above] represented the biggest text block, and the elimination of repetition of character names is how I got it to fit! My system has a check as well, the size of the original Japanese text block is known, and if a new English compressed text block exceeds it, insertion is aborted. Same as I had worked out for Ys IV. I pre-null the whole block as well, don't want trailing bytes leftover from when it was Japanese. But yeah, that's what did it, I didn't edit anything away of Sam's (if memory serves).
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on April 16, 2017, 08:13:57 AM
My past inclinations were more to wanna upgrade, improve, mess around even when it isn't broken which got me in trouble in real jobs and fan projects... So I'm hesitant in older age to do so, you know how it is. ;)

Absolutely! If it ain't broken, then there's no need to change.  :)

What I'm worried by, after looking at the code that you posted, is not really that you're missing out on a small amount of compression, especially when you don't seem to need it.

It's that it looks like you've got a bug in there.  8-[

From what I'm seeing in your code, it looks like the only difference between the YsIV compression and Emerald Dragon compression, is that minimum offset/distance for a match has changed from "-1" to "-18".

The thing is ... as far as I can see ... you haven't actually stopped check_match() from returning matches that are closer than -18 away.

If so, when you're inserting more of the scripts, that's going to blow-up on you at some point, .


(http://s23.postimg.org/5cfrro217/Emerald_Dragon_J_2015_02_28_21_02_34.png) (http://s5.postimg.org/z4n3btofb/Emerald_Dragon_J_2015_03_08_16_58_33.png)

David was pretty sure this [above] represented the biggest text block, and the elimination of repetition of character names is how I got it to fit!

Those are looking really good!  :D

Just sayin' ... this 30th Anniversary Year would be a great time to release the translation.   :-"  :wink:


***********************

It would be amusing to code-up compressors for the Ys IV, ED & AFS methods and let them loose on the LoX data and see how they do.

I'm definitely curious to see if Hudson's pre-loading has any noticeable effect on real-world data.

OK, curiosity got the better of me, so I tested the different compressors on the LoX2 data ...

Total uncompressed data size             : 23,278,006
Total YsIV compression                   : 10,347,187
Total Emerald Dragon compression         : 10,280,860
Total Anearth compression (with preload) :  9,716,445
Total Anearth compression (no preload)   :  9,706,570
Total Legend of Xanadu 1 compression     :  8,937,897
Total Legend of Xanadu 2 compression     :  8,324,785
Total Elmer's SWD4 compression           :  8,114,319
Total Elmer's SWD5 compression           :  8,035,016


Looking at that, I'm pretty unimpressed with the Hudson's "preload" trick ... it costs a bunch of extra time to set up, it forces the use of a slow window-buffer during decompression, and it doesn't seem to save much space (in this case it actually increases the size by a tiny amount).
Title: Re: Xanadu II Translation Development Blog
Post by: dshadoff on April 16, 2017, 11:14:33 AM

It's that it looks like you've got a bug in there.  8-[

From what I'm seeing in your code, it looks like the only difference between the YsIV compression and Emerald Dragon compression, is that minimum offset/distance for a match has changed from "-1" to "-18".

The thing is ... as far as I can see ... you haven't actually stopped check_match() from returning matches that are closer than -18 away.

If so, when you're inserting more of the scripts, that's going to blow-up on you at some point, .

As I recall, this was just the difference in how the algorithm worked - same algorithm as Ys IV, but with a different offset.  0x12 also sounds familiar.  It's a circular buffer, so doing an "overflow" into the back end of the buffer should also be valid, in the extremely remote chance that a match is actually found.

But the best proof of not blowing up is to encode and decode and verify that the strings match 100%.  As I recall, we also did that.

...I just hope that my memory isn't playing tricks on me as I grow older.  And you might indeed have found a bug, but it likely wouldn't yield a measurably different compression rate (just the chance of garble as you mention)

Anyway, if we didn't encode/decode/validate back then, it's easy enough to do now.

Quote
Just sayin' ... this 30th Anniversary Year would be a great time to release the translation.   :-"  :wink:

Yes it would.
NightWolve, have you decided to start taking another look at digging into this ?

-Dave
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on April 16, 2017, 12:16:29 PM
As I recall, this was just the difference in how the algorithm worked - same algorithm as Ys IV, but with a different offset.  0x12 also sounds familiar.  It's a circular buffer, so doing an "overflow" into the back end of the buffer should also be valid, in the extremely remote chance that a match is actually found.

But the best proof of not blowing up is to encode and decode and verify that the strings match 100%.  As I recall, we also did that.

...I just hope that my memory isn't playing tricks on me as I grow older.  And you might indeed have found a bug, but it likely wouldn't yield a measurably different compression rate (just the chance of garble as you mention)

Yep, no chance of a crash, just the possibility of garbled data on decompression, depending upon how the ED code actually works on the PCE.

If they're using a 256-byte window buffer, just like you are in the compression, then it probably wouldn't make any difference ... but if they're doing that, then there would be little point in using the 18-minimum-offset in the first place.

The devil-is-in-the-details, and I don't know ... I have no idea where the decompression code is located in ED.

It's just a worry, and not a certainty. As you say, more tests might be a good idea if you're not 100% sure.


Quote
Quote
Just sayin' ... this 30th Anniversary Year would be a great time to release the translation.   :-"  :wink:

Yes it would.
NightWolve, have you decided to start taking another look at digging into this ?

Now's your time to get into the Sam's queue.  :wink:

When/while the dub is recorded, he's likely to have some downtime while waiting for things to happen, particularly when I get to the stage of fixing the lipsync.

I know that he'd like to get the Spriggan2 dub luanched, but there may be limits on how far that can go if bonknuts continues to be MIA.

This is a perfect time to push ED forward and get all of his current-finished work inserted and tested and verified so that he'll want to finish-off the rest of the translation.

If other-folks don't keep him busy finishing off these old projects, then I'll have to find some way to keep him busy so that he doesn't get bored!  :wink:

BTW ... it was interesting to see that person on the NeoGaf forum wax lyrical on some of the PCE RPGs, including Emerald Dragon, and "Angel's Poem".

I had absolutely no idea that that was the English translation of "Tenshi No Uta"! :-k
Title: Re: Xanadu II Translation Development Blog
Post by: dshadoff on April 16, 2017, 01:49:36 PM
BTW ... it was interesting to see that person on the NeoGaf forum wax lyrical on some of the PCE RPGs, including Emerald Dragon, and "Angel's Poem".

I had absolutely no idea that that was the English translation of "Tenshi No Uta"! :-k

Actually, I've always thought of it as "(The) Song(s) of (the) Angel(s)" - "Uta" could mean poem or song, depending on context.  I don't know which is more correct in this particular case (because I haven't played enough of the game), but I personally would associate angles with music rather than poetry...
Title: Re: Xanadu II Translation Development Blog
Post by: ccovell on April 18, 2017, 01:27:22 PM
Euclid and Pythagoras are what come to mind for me, but whatever floats your boat, Dave.  ;D
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on April 18, 2017, 02:35:32 PM
Euclid and Pythagoras are what come to mind for me, but whatever floats your boat, Dave.  ;D

I'd read right past the typo ... hahaha ... good catch!  :lol:  :clap:
Title: Re: Xanadu II Translation Development Blog
Post by: Mathius on April 20, 2017, 12:37:15 PM
I can't tell you guys how excited I am! I've owned this game twice attempting to muddle my way through to no avail. Now that may become a reality. Thank you all how are/will be involved.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on April 20, 2017, 12:57:41 PM
I can't tell you guys how excited I am! I've owned this game twice attempting to muddle my way through to no avail. Now that may become a reality. Thank you all how are/will be involved.

I think you might have meant to post that in the "auditions" thread ... this one only gets the "boring" posts!  :lol:

I find it hard to fathom that some folks have actually played though LoX1 without understanding Japanese, even with a walkthrough.

But it was pretty-amazing when I played it in English!  :-"  :wink:
Title: Re: Xanadu II Translation Development Blog
Post by: Mathius on April 20, 2017, 01:38:14 PM
I can't tell you guys how excited I am! I've owned this game twice attempting to muddle my way through to no avail. Now that may become a reality. Thank you all how are/will be involved.

I think you might have meant to post that in the "auditions" thread ... this one only gets the "boring" posts!  :lol:

I find it hard to fathom that some folks have actually played though LoX1 without understanding Japanese, even with a walkthrough.

But it was pretty-amazing when I played it in English!  :-"  :wink:

No I meant it for here though I almost did post it over there.:)

 If I had the equipment I'd definitely give a performance a good attempt.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on April 24, 2017, 09:11:47 AM
While I've enjoyed improving my compression code, it's always humbling to be reminded that you're not the smartest cookie on the block!  :wink:

Here's how 3 other popular (and free) compression algorithms do with the LoX2 data ...

Total uncompressed data size             : 23,278,006
Total YsIV compression                   : 10,347,187
Total Emerald Dragon compression         : 10,280,860
Total Anearth compression (with preload) :  9,716,445
Total Anearth compression (no preload)   :  9,706,570
Total Legend of Xanadu 1 compression     :  8,937,897
Total Legend of Xanadu 2 compression     :  8,324,785
Total Elmer's SWD4 compression           :  8,114,319
Total Elmer's SWD5 compression           :  8,035,016
Total Jørgen Ibsen's aPLib compression   :  7,782,457
Total Pasi Ojala's puCrunch compression  :  7,780,261
Total Magnus Lind's Exomizer             :  7,377,469

Title: Re: Xanadu II Translation Development Blog
Post by: ccovell on April 24, 2017, 01:08:04 PM
If you don't count the continentals, you win!!  :D
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on April 25, 2017, 04:15:25 AM
If you don't count the continentals, you win!!  :D

Haha ... those darned Nordic programmers with too-much-time-indoors during their long Winter!  :lol:

Exomizer and puCrunch have too much decompression overhead for my comfort, and we're generally not *that* desperate for space on the PCE, IMHO.

But aPLib is fascinating to me ... it's a pure, fast, LZSS-variant, just like my SWD code ... but Jørgen Ibsen came up with a better encoding scheme than mine.  8)

<edit>

I can foresee an SWD6 in the near future!

I came, I saw, Jørgen conquered!  :lol:

It's not just the encoding, which I can recreate, I think that he's also doing some output-optimization of the emitted codes.

He's beaten me!  :wink:

So, if I need a good compressor in the future, I'll probably end up using aPLib!
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on June 26, 2017, 11:35:49 AM
Well ... whoops! We forgot to translate the maps that you pick up in LoX2!  [-X

They've been extracted now, and we're looking at getting the text translated, and maybe see about improving the contrast and color choices at the same time.

Falcom were using some very strange colors in those maps that just don't make a lot of sense.

When they're done, it'll be time to share another pretty picture and keep this thread alive!  :wink:


***************************

In other news, a post on romhacking (http://www.romhacking.net/forum/index.php?topic=24419.msg338950#msg338950) by Tengai-Makyou-translator Tom made me think about the text printing in the LoX games, and why the "slow" text speed seems like such a waste-of-time, and I always immediately switch to the "fast" text speed.

He's got a good point, and looking at the text printing in the LoX games, it doesn't flow like speech, it just gets printed out, one character after another.

So, there's no reason to look at it in "slow" mode, and I always change it to "fast" instead.

I took a look at Anearth for comparison, and they're definitely adding pauses in their printing, especially when you get both text and voice at once. It looks a lot better.


So ... I've added a couple of script-codes to Falcom's script language, and made some changes to my script-compiler, and now both LoX games actually feature natural speech delays at the end of sentences and for other punctuation.

The message boxes just look a whole lot nicer now, IMHO, and I actually prefer the "slow" text mode, with the delays. It just "reads" better.  :dance:

The delays are removed when you select "fast" text mode, so anyone that just wants to button-through stuff can still get the same quick response as before.
Title: Re: Xanadu II Translation Development Blog
Post by: ccovell on June 26, 2017, 01:15:26 PM
Wow, that's attention to detail.  :clap:
Title: Re: Xanadu II Translation Development Blog
Post by: incrediblehark on June 28, 2017, 03:32:32 AM
I really appreciate this addition! While I am a fairly quick reader, I prefer the text to scroll as i'm reading it as opposed to quickly appearing on screen. I find the dialogue sounds better in my head as I read it and the pauses in speech are a nice touch.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on June 28, 2017, 09:31:25 AM
While I am a fairly quick reader, I prefer the text to scroll as i'm reading it as opposed to quickly appearing on screen. I find the dialogue sounds better in my head as I read it and the pauses in speech are a nice touch.

It's definitely a big help in making the text interesting to read, IMHO. You can actually imagine someone speaking it as you read.

It also adds that immediate extra "perception-of-quality" when you first start playing the games, even if you turn it off later on.

I can't remember how common an effect it was BITD, but IIRC I don't really remembering it being used until later on in the 4th generation, or maybe even early on in the 5th generation.

But it's not always a good idea, and it doesn't suit every game. It would have driven you mad in the Ys games, with their bump-into-someone-to-talk, because you'd be constantly waiting for text to appear as you accidentally run into people.


Wow, that's attention to detail.  :clap:

Thanks!  :oops:

Yeah, part of the idea here is to show just how darned-good the PCE is, which means putting in all the UI tricks that you wouldn't normally see on the TG-16, because neither NEC nor TTi nor Working Designs could afford to spend the time & money to change the original Japanese game too much.


The question is ... when to stop messing around with stuff?

I could probably backport LoX2's nice textured message boxes back into LoX1 ... but is that a step too far?

LoX1 doesn't display text in as many colors as LoX2 does, but it has most of them available.

That's another possible change that we could make to the scripts. But should we?


Now that we might be in the position, amazingly enough, to have a small fighting-chance of actually putting together a dub that could rival, or even beat, Ys I & II ... where should these little "upgrades" stop?  :-k
Title: Re: Xanadu II Translation Development Blog
Post by: Michirin9801 on June 28, 2017, 10:21:28 AM
I can't remember how common an effect it was BITD, but IIRC I don't really remembering it being used until later on in the 4th generation, or maybe even early on in the 5th generation.
EarthBound did that on the SNES! It had a fairly robust text display system where some words or phrases would appear slower or faster than normal depending on not only who was talking but what they were saying, sometimes they'd also space out the characters in a word in order to 'make a big deal' of it, the small pauses between phrases were also a thing in that game and they made the game's text feel much better paced than usual for 16 bit RPGs, and that's not to mention the Mr. Saturns who had their own font...
I don't like reading a whole lot in video games, but I always found that reading was a lot more fun in EarthBound than in most other games!
Title: Re: Xanadu II Translation Development Blog
Post by: Gredler on June 28, 2017, 10:44:31 AM
was a lot more fun in EarthBound than in most other games!

SMMMMAASSHHHHH
Title: Re: Xanadu II Translation Development Blog
Post by: Michirin9801 on June 28, 2017, 11:52:53 AM
was a lot more fun in EarthBound than in most other games!

SMMMMAASSHHHHH

I've actually played EarthBound before Smash, so when I unlocked Ness I knew exactly where he was from ;3
Title: Re: Xanadu II Translation Development Blog
Post by: Gredler on June 28, 2017, 01:05:55 PM
I've actually played EarthBound before Smash, so when I unlocked Ness I knew exactly where he was from ;3

I played it at launch, loved it and kept my copy since then. It's a great game, and does great stuff with the way text is displayed - I agree - and figured the Smaaash during the battles when you get a critical is a great simple example.

I was referring to the way that when you get a critical hit a special font with a special text-reveal displaying the text SMMMAAAASSHHHH occurs, which I thought was the most apparent example of the way they create emotion in the player with how the text is displayed and revealed/animated.

The screen flashing helps (I feel like there was screen shake too), but I always got excited when I got a critical hit more than any other text/turnbased rpg because of that SMAAASSHHH. I cant find a youtube video of what I am talking about

I've never played a whole lot of smash brothers, that's after my time in the local multiplayer age range hahah
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on June 28, 2017, 01:32:37 PM
EarthBound did that on the SNES!
...
I don't like reading a whole lot in video games, but I always found that reading was a lot more fun in EarthBound than in most other games!

Hmmmm ... I just took a look at a YouTube video of Earthbound.

So they using a small (5 pixel wide) VWF font on a solid background, and they're printing the text pretty darned fast, but with pauses, sometimes.

Both LoX games print a lot slower than that, at a much more comfortable reading speed.

SamIAm posted this pcefx-forum private teaser (i.e. please do not share this) a long time ago that shows the game's slow text speed (with the beeps), and its fast text speed later on (no beeps).

A lot has changed since this was made, but the printing speeds are the same.




*************

Here's an animated mockup to see what LoX1 would look like with the LoX2 textured background and drop-shadow.

Remember ... LoX1 lets you select whether to use a transparent box and outlined bold text, or a solid box and narrow text (like LoX2).

(https://c1.staticflickr.com/5/4142/35430259812_b297627688_o.gif)


Does anyone have an opinion?
Title: Re: Xanadu II Translation Development Blog
Post by: Michirin9801 on June 28, 2017, 01:45:58 PM
Transparent boxes? How are they printing transparent dialogue boxes?
Also, I can't stress enough how beautiful LoX2 looks~
The text speed seems fine too...

Oh and, the textured BG for text in LoX1 would be a pretty damn good addition! I think it makes the dialogue boxes less boring-looking (not that they look boring or anything)

I've actually played EarthBound before Smash, so when I unlocked Ness I knew exactly where he was from ;3

I played it at launch, loved it and kept my copy since then. It's a great game, and does great stuff with the way text is displayed - I agree - and figured the Smaaash during the battles when you get a critical is a great simple example.

I was referring to the way that when you get a critical hit a special font with a special text-reveal displaying the text SMMMAAAASSHHHH occurs, which I thought was the most apparent example of the way they create emotion in the player with how the text is displayed and revealed/animated.

The screen flashing helps (I feel like there was screen shake too), but I always got excited when I got a critical hit more than any other text/turnbased rpg because of that SMAAASSHHH. I cant find a youtube video of what I am talking about

I've never played a whole lot of smash brothers, that's after my time in the local multiplayer age range hahah
Oh yeah, I had kinda forgotten that... I mean most people I talk to only know EarthBound because of Smash Bros, and when they say "Smash" they're more often than not referring to Smash Bros, so I kinda just went with it...
You're right about the "SMAAAASH" critical hits btw...

I played a LOT of Super Smash Bros. on the N64 as well as Melee, but the main driving force of my enjoyment of the series had been the "Nintendo Fangasm" you know what I mean? And by the time I played Brawl that feeling had already died down, so I just played the Subspace Emissary story mode and then pretty much never again... Smash just isn't my kind of fighting game, it sure is fun, but it's no Street Fighter...
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on June 28, 2017, 05:34:20 PM
Transparent boxes? How are they printing transparent dialogue boxes?

As you might guess ... the dialogue boxes are actually sprites.


Quote
Also, I can't stress enough how beautiful LoX2 looks~
The text speed seems fine too...

Thanks! We haven't made any changes to the game window itself ... Falcom's graphics are beautiful.

All the "improvements" that we've made (since that video) have been purely in the UI side of things.

The slow text speed is a nice "reading" speed for conversations that you haven't seen. But I could certainly understand some people wanting to switch to fast text if they're less interested in the dialog.


Quote
Oh and, the textured BG for text in LoX1 would be a pretty damn good addition! I think it makes the dialogue boxes less boring-looking (not that they look boring or anything)

I know what you mean. Large single-color boxes often just look dull and rather 8-bit (IMHO).

But ... it was still pretty common in the 16-bit era.
Title: Re: Xanadu II Translation Development Blog
Post by: ParanoiaDragon on June 28, 2017, 06:25:14 PM
I definitely like the textured boxes more, looks nicer that way!
Title: Re: Xanadu II Translation Development Blog
Post by: Michirin9801 on June 28, 2017, 07:01:31 PM
Transparent boxes? How are they printing transparent dialogue boxes?

As you might guess ... the dialogue boxes are actually sprites.
Actually, that makes it even more mind-boggling to me, I mean, I'd think they'd use part of the BG layer to render them and the text due to how much easier I think that would be, I mean, that way they could just swap out the empty tiles for the tiles with letters and numbers, but they're doing that with sprites? Are they changing parts of the sprite on-the-fly with code or what? Each letter can't possibly be its own sprite, that would cause a whole lot of flickering...
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on June 30, 2017, 06:13:44 AM
Actually, that makes it even more mind-boggling to me, I mean, I'd think they'd use part of the BG layer to render them and the text due to how much easier I think that would be, I mean, that way they could just swap out the empty tiles for the tiles with letters and numbers, but they're doing that with sprites? Are they changing parts of the sprite on-the-fly with code or what? Each letter can't possibly be its own sprite, that would cause a whole lot of flickering...

It's just a design-choice.  :wink:

When you're dealing with 12x12 kanji text, instead of simple 8x8 or 8x16 English/Katakana/Hiragana, then you've got to deal with packing 2 glyphs into 3 tiles-wide.

You can either do that with dynamic-drawn 8x8 tiles, or dynamically-drawn 16x16 sprites.

Either way is a PITA, and neither is that much more difficult than the other.

With the LoX games, they're basically creating a 256x64 bitmapped sprite that they can draw the text into.

Other games may use a 256x64 bitmapped set of tiles to draw into ... or one of the many little variations on that.


Generally, the Japanese code will deal with text coordinates as either on 4-pixel boundaries, or on 8-pixel tile boundaries plus an even/odd flag.

Both of those are easy(ish) to hack in a bi-width English font, since there's minimal changes to the underlying Japanese code. But you need spare RAM for the English font, and the table of character widths.

Going to a full VWF is a much more tricky proposition, because you've got to change the game's whole text coordinate system to 1-pixel boundaries.


But, whatever you do, you still end up dynamically uploading text glyphs into sprites/tiles as the message box is drawn.

It's not really any different to uploading new data for animated backgrounds or animated sprites.


In some ways, the big & huge sprite-based text box is easier to deal with, because you don't have to make sure that the screen scroll is always tile-aligned, you don't have to worry about masking out any other sprites that may be underneath the message box, and you don't have to fixup the background data after the box is removed.
Title: Re: Xanadu II Translation Development Blog
Post by: Michirin9801 on June 30, 2017, 02:04:19 PM
It's just a design-choice.  :wink:

When you're dealing with 12x12 kanji text, instead of simple 8x8 or 8x16 English/Katakana/Hiragana, then you've got to deal with packing 2 glyphs into 3 tiles-wide.

You can either do that with dynamic-drawn 8x8 tiles, or dynamically-drawn 16x16 sprites.

Either way is a PITA, and neither is that much more difficult than the other.

With the LoX games, they're basically creating a 256x64 bitmapped sprite that they can draw the text into.

Other games may use a 256x64 bitmapped set of tiles to draw into ... or one of the many little variations on that.


Generally, the Japanese code will deal with text coordinates as either on 4-pixel boundaries, or on 8-pixel tile boundaries plus an even/odd flag.

Both of those are easy(ish) to hack in a bi-width English font, since there's minimal changes to the underlying Japanese code. But you need spare RAM for the English font, and the table of character widths.

Going to a full VWF is a much more tricky proposition, because you've got to change the game's whole text coordinate system to 1-pixel boundaries.


But, whatever you do, you still end up dynamically uploading text glyphs into sprites/tiles as the message box is drawn.

It's not really any different to uploading new data for animated backgrounds or animated sprites.


In some ways, the big & huge sprite-based text box is easier to deal with, because you don't have to make sure that the screen scroll is always tile-aligned, you don't have to worry about masking out any other sprites that may be underneath the message box, and you don't have to fixup the background data after the box is removed.

I see... This is all some pretty complicated stuff, but I think I can better get the picture now...
I always thought that drawing dialogue boxes was better with the BG layer than tiles because then you'd free up sprites that you can use to do something else and prevent flickering, and also because I wasn't exactly aware that you could update a sprite's data dynamically other than animating it replacing it in its entirety with another sprite that you have to have stored either in ROM or in RAM, but apparently sprites are more flexible than I thought...
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on July 01, 2017, 08:48:10 AM
I always thought that drawing dialogue boxes was better with the BG layer than tiles because then you'd free up sprites that you can use to do something else and prevent flickering, and also because I wasn't exactly aware that you could update a sprite's data dynamically other than animating it replacing it in its entirety with another sprite that you have to have stored either in ROM or in RAM, but apparently sprites are more flexible than I thought...

Overlap and flickering are always things to be concerned about.

It's one good reason to use a fullscreen wide solid box if you're going to use sprites.

If you look at LoX1, you'll see that they never bring up a text box when there are huge amounts of enemy sprites on the screen.

But they wanted the transparent status bar on the side (which has to be sprites), so they were already allowing VRAM for a large set of status-bar sprites.

Other games like to draw multiple cascaded text boxes on the screen. That pretty-much has to be done in BG layer on the PCE.

It's all about making a careful decision between the tradeoffs. Everything has a cost.

And yep, you can modify sprite data on the fly, just like you can background tiles ... it's all just VRAM.

The only thing that you can't change during the frame is the sprite-attributes themselves.


The question is ... when to stop messing around with stuff?

I could probably backport LoX2's nice textured message boxes back into LoX1 ... but is that a step too far?

LoX1 doesn't display text in as many colors as LoX2 does, but it has most of them available.

That's another possible change that we could make to the scripts. But should we?

Hmmmm ... even though using LoX2's textured message box backgrounds in LoX1 looks like it's probably technically possible, and it looks quite pretty ... there are other concerns that make it look like it really is a "step too far".

In particular, the changes snowball down to the Weapon Shop text boxes, and then the Weapon Shop status bar as well.

You can't really do one box without doing them all, and doing them all would be making too many graphical change changes to the LoX1 game. Neither SamIAm nor I feel that it is our job to just override Falcom's original game in that way.

I'm OK with tweaking palettes so that stuff looks a little better on modern output devices; and anything to do with dialog text itself is fair-game, but we really don't want to make major changes to the in-game graphics.
Title: Re: Xanadu II Translation Development Blog
Post by: Michirin9801 on July 01, 2017, 09:25:24 AM
The only thing that you can't change during the frame is the sprite-attributes themselves.
Umm, what attributes? >w>

The question is ... when to stop messing around with stuff?

I could probably backport LoX2's nice textured message boxes back into LoX1 ... but is that a step too far?

LoX1 doesn't display text in as many colors as LoX2 does, but it has most of them available.

That's another possible change that we could make to the scripts. But should we?

Hmmmm ... even though using LoX2's textured message box backgrounds in LoX1 looks like it's probably technically possible, and it looks quite pretty ... there are other concerns that make it look like it really is a "step too far".

In particular, the changes snowball down to the Weapon Shop text boxes, and then the Weapon Shop status bar as well.

You can't really do one box without doing them all, and doing them all would be making too many graphical change changes to the LoX1 game. Neither SamIAm nor I feel that it is our job to just override Falcom's original game in that way.

I'm OK with tweaking palettes so that stuff looks a little better on modern output devices; and anything to do with dialog text itself is fair-game, but we really don't want to make major changes to the in-game graphics.

That's fair, if you don't feel like you should be altering the game's graphics like that then don't! The flat text boxes look fine as they are...
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on July 02, 2017, 07:13:58 AM
The only thing that you can't change during the frame is the sprite-attributes themselves.
Umm, what attributes? >w>

The "sprites" that you see on the screen are made up of two parts ... the graphical data that sits in VRAM, and makes up the different pixel values, and the attribute data that is internal to the VDC chip, that says where to put the sprite on the screen, how big it is, what palette to use, and where in VRAM to read the pixel data from.

You can change the graphics data in VRAM at any time, but you can't modify the attribute data directly.

You've got to upload copies of the attribute data into VRAM (which you can do at any time), and then tell the VDC chip to load up a new set of attribute data from VRAM at the start of the next display frame.

That's pretty-much how sprites work on nearly-all of the 4th-generation and earlier machines.

There's usually a very clear separation between the sprite graphics and the sprite attributes.
Title: Re: Xanadu II Translation Development Blog
Post by: Michirin9801 on July 02, 2017, 01:14:36 PM
The only thing that you can't change during the frame is the sprite-attributes themselves.
Umm, what attributes? >w>

The "sprites" that you see on the screen are made up of two parts ... the graphical data that sits in VRAM, and makes up the different pixel values, and the attribute data that is internal to the VDC chip, that says where to put the sprite on the screen, how big it is, what palette to use, and where in VRAM to read the pixel data from.

You can change the graphics data in VRAM at any time, but you can't modify the attribute data directly.

You've got to upload copies of the attribute data into VRAM (which you can do at any time), and then tell the VDC chip to load up a new set of attribute data from VRAM at the start of the next display frame.

That's pretty-much how sprites work on nearly-all of the 4th-generation and earlier machines.

There's usually a very clear separation between the sprite graphics and the sprite attributes.

Oh I see... I didn't know that, that explains a lot!
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on July 19, 2017, 12:39:53 PM
This is shaping up to be BETTER than the original presentation.

Insane.

:)

Well ... we are certainly trying to polish some of the UI elements that deal with English text so that they're both a bit clearer and also work better on modern display technologies (without compromising their display on an old TV).

The maps are a case-in-point of that.

They're also a great example of trying to figure out just where the line is in terms of what we're willing to change, and what is us taking that "step too far".


In LoX2, you get given a map for the current level at some point, and you can look at it from the Inventory section of the Pause Menu.

Now, it's easy to miss that Inventory section itself, because there's no graphical hint that you can scroll in that direction on the Pause Menu, but that's a battle for a different day.  :wink:

Here's what it looks like on the first level, with me about to select the icon for the classic rolled-up crinkly old faded parchment map ...

(http://farm5.staticflickr.com/4306/35861741512_70504e9c08_o.png)


And here's what you see next ...

(http://farm5.staticflickr.com/4323/35222283093_a61ebe7077_o.png)


Eeek! That looks a bit strange!  :-k

We've still got the dark grey border from the previous screen, but now there is a razor-sharp (not crinkly) scanline transition to a brown map, with an interior crinkly border, and some strange-looking pinky-purple hues for "fading", plus some even stranger-looking green hues for the "fading" on the town name.

Not only that, but you've got blue-stippled shading on the inland part of the island that looks perilously close to the color of the rivers and ocean.


Hmmm ... well, after some thought, I guess that the pinky-purple and green bits are probably an attempt to take advantage of the limited color bandwidth of a composite TV signal, and produce more of a subtle brightness change. I've seen that trick used a few times before ... but mostly in the 8-bit era.

But these days, when using a modern high-resolution display with an RGB-modded PCE, or when running on an LCD display with an emulator, those color choices just look, errrr ... "not good" (IMHO).


So, with only some palette changes, and without changing Falcom's main map graphics (except for the English names), here is a version that still tries to keep the faded-out and yellowing look, but fix both the strange color-changes, and the inland vegetation color.

(http://farm5.staticflickr.com/4310/35222283143_635fd564e5_o.png)


Now, there is still the question of whether this is too much of a change from the original graphics, but I currently believe that this both honors Falcom's original intent and style, and also gives us something that will look good on both old composite tube TVs, and modern high-resolution displays.
Title: Re: Xanadu II Translation Development Blog
Post by: Black Tiger on July 19, 2017, 01:18:59 PM
That map looks great and doesn't feel out of place. After seeing the original next to it, only the original feels like it's from another game.
Title: Re: Xanadu II Translation Development Blog
Post by: Michirin9801 on July 19, 2017, 02:35:36 PM
The map looks perfectly fine to me!
Title: Re: Xanadu II Translation Development Blog
Post by: Gredler on July 19, 2017, 05:22:15 PM
Ship it!
Title: Re: Xanadu II Translation Development Blog
Post by: ParanoiaDragon on July 19, 2017, 08:49:35 PM
Wow, offhand, I don't recall ever knowing there was a map, though, it's been, maybe 10 years or so since I beat LoX2?
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on July 20, 2017, 12:28:23 AM

Now, there is still the question of whether this is too much of a change from the original graphics, but I currently believe that this both honors Falcom's original intent and style, and also gives us something that will look good on both old composite tube TVs, and modern high-resolution displays.


There are some art techniques that are directly tied to the medium, and it is crazy that we are at point where we can decide whether "purity" of experience should be in (1) original canvas CRT or (2) modern canvas.

This modified map (which looks fantastic, by the way), really is appropriate in 2017, since it is true to the *original intentions* of the designers (they, obviously, wanted it to look nice on the displays mainstream consumers would be using).

Preserving every pixel for historical accuracy is one thing (and should be done).

But the current LoX project is about MOAR than that :)


DISCLAIMER:
**There will always be debate about how to interpret the original intentions/aspirations of the original designers**
Title: Re: Xanadu II Translation Development Blog
Post by: SamIAm on July 20, 2017, 03:23:46 AM
Time to play devil's advocate.

Some of the coloring principles you see in the original maps that are on the chopping block now are applied elsewhere in the game and might be worth saving.

For example, the pink/purple shading you see on the dark lines. It turns out that if you look around, you can find many examples throughout the game of purple being used to shade brown.

You'll probably have to save and enlarge these images to see it.

(http://i.imgur.com/SAWUoks.png)

On the ship, in the very first screen where the player takes control.

(http://i.imgur.com/KXxCayj.png)

The wood on the floors in the first village.

(http://i.imgur.com/KaIpbfK.png)

Here, it's very subtle. You'll have to look at the shadow on the rocks on the right.

(http://i.imgur.com/KNBDbKl.png)

Another similar case, on the left.

(http://i.imgur.com/pwIATL3.png)

Here, it's not so subtle. Zoom in, and you'll see purple all over the place.

(http://farm5.staticflickr.com/4323/35222283093_a61ebe7077_o.png)

The original map again, just for reference.

Purple isn't the only shading color that's ever used with brown, don't get me wrong, but it's in there a lot.

In the case of the maps, changing this purple to grey, along with changing the blue vegetation to green and upping the contrast a little, probably isn't going to cause a disruption in the visual style. It could be that it would fool everyone. If it helps things look not-stupid on an LCD, then cool, we can go for it.

However, I think we really need a CRT test to say for sure.

The updated map again, for comparison:

(http://farm5.staticflickr.com/4310/35222283143_635fd564e5_o.png)
Title: Re: Xanadu II Translation Development Blog
Post by: geise on July 20, 2017, 03:55:25 AM
I dig the black behind the map. Makes a nice contrast. Awesome work!
Title: Re: Xanadu II Translation Development Blog
Post by: Black Tiger on July 20, 2017, 04:32:25 AM
I've always wanted to try to fix the color in LoXII's overworld backgrounds, even though I appreciate the stylistic choice they made. The problem is that some of the funky colors are shared between radically different assets. So you could probably make small improvements within scenes here and there, but it will still be tricky striking the right balance.

Purples, greens and browns actually work well together when done right.

https://m.imgur.com/YqH1ILK?r
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on July 20, 2017, 04:42:37 AM
TRICKY KICK: Since palettes are shared.... it seems like an awfully complex puzzle to make things work in all the different scenes/screens across the entire game.



Title: Re: Xanadu II Translation Development Blog
Post by: elmer on July 20, 2017, 06:49:11 AM
Wow, offhand, I don't recall ever knowing there was a map, though, it's been, maybe 10 years or so since I beat LoX2?

Hahaha ... yep, that Inventory screen is pretty hidden. I only found out about it when I accidentally pressed "right" when the cursor was at the edge of one of the upper boxes.

That's pretty poor UI design on Falcom's part, and there really should be an arrow icon on the border of the box.

You never really need to look at the Inventory, ever, in the game itself, so it's easy to just miss it.

The only thing that you can actually do on that screen is to look at a map, and the maps are a just a help, and aren't really needed in order to play the game.


Ship it!

Don't I wish!!!  #-o

We're now rapidly approaching one year since I finished playing through both of the LoX games in English.

Now ... that time has given me the opportunity to do a whole bunch of little cleanups and polishing ... and we really did need to do the dub for these games, because it's the only way that players can see the whole story, but it's been a bit frustrating to be sitting on all of this for so long.


It's another reason why I want to do Anearth next.

We can get it all finished and done and released in a decent time frame ... and then afterwards someone can come along and organize a dub, if they wish to do so. There isn't even any lip-synching in that game that would need to be fixed.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on July 20, 2017, 07:04:55 AM
I've always wanted to try to fix the color in LoXII's overworld backgrounds, even though I appreciate the stylistic choice they made. The problem is that some of the funky colors are shared between radically different assets. So you could probably make small improvements within scenes here and there, but it will still be tricky striking the right balance.

I understand where you're coming from, and that it's a personal preference for each player, but I actually like Falcom's color choices in the LoX2 worlds themselves!

They've gone for a low-contrast and subtle look to everything that seems to hint at the directions that artists would begin to take in the 32-bit era (IMHO).

It's a distinct change from the classic high-contrast colorful-and-saturated 16-bit look of LoX1 (and Anearth).

Honestly, I think that it's wonderful what they did, and I personally prefer it to Anearth's graphics on the PCE (now that I've been able to use that game's Debug Mode to see all of the levels).
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on July 20, 2017, 07:47:32 AM
Time to play devil's advocate.

OK!  :lol:  :twisted:


Quote
Some of the coloring principles you see in the original maps that are on the chopping block now are applied elsewhere in the game and might be worth saving.

For example, the pink/purple shading you see on the dark lines. It turns out that if you look around, you can find many examples throughout the game of purple being used to shade brown.

Absolutely. With the PCE's limited 512-color range, those shading colors are often the best choice.

And Falcom used them masterfully in the game itself, IMHO.

I certainly don't mind that pinkish shade being used on rocks and wood. You only have to go out into nature to see those reds in a lots of rocks and types of wood.

They make it look like a deliberate choice in their main graphics, and not just a limitation.


Quote
The original map again, just for reference.

Purple isn't the only shading color that's ever used with brown, don't get me wrong, but it's in there a lot.

Absolutely ... and where it works well as a stylistic choice, it's really great.

But, IMHO, it just doesn't work in the maps.

Take a look at what I've done to the actual colors that are used ...

  ORIGINAL                          MODIFIED
  R   G   B                         R   G   B
108  72  72 pink   (contour)       72  72  72 grey   (contour)
 72  72  72 grey   (contour)       72  72  36 brown  (contour)
 72  72  36 brown  (contour)       72  72   0 brown  (contour)

 72 108 108 blue   (river)         72 108 108 blue   (river)

 72 108 108 blue   (vegetation)    36 108  36 green  (vegetation)
 72 108  72 green  (vegetation)    72 108  36 green  (vegetation)
108 108  36 yellow (vegetation)   108 108  36 yellow (vegetation)



That's an absolutely minimal change to those contour lines.

I've just taken Falcom's colors, and I've moved them one partial-step down in brightness to create a little more contrast, and remove the pink chroma-shift from what is supposed to be a hand-drawn map, and where it looks inappropriate.

Two of the 3 colors are identical ... just shifted onto other parts of the shaded line.

You couldn't make a smaller change, and yet it makes a distinctly visible improvement to the map.

The blue river color hasn't changed at all, but it has been removed from the vegetation, and replaced with a  green.


Now ... looking at those green values side-by-side, yep I went a bit too far with those. There is now an extra step down in the shades which gives a bit too much contrast and saturation in the vegetation that doesn't quite fit with Falcom's faded-out look.


So, it's been well worth this exercise in justification, and I've changed the vegetation to now use just one new color, and to make the green more subtle.

It gives the same impression, but it definitely does fit in better with Falcom's look.

  ORIGINAL                          MODIFIED                          BETTER
  R   G   B                         R   G   B
 72 108 108 blue   (vegetation)    36 108  36 green  (vegetation)    72 108  36 green
 72 108  72 green  (vegetation)    72 108  36 green  (vegetation)    72 108  72 green
108 108  36 yellow (vegetation)   108 108  36 yellow (vegetation)   108 108  36 yellow


Quote
In the case of the maps, changing this purple to grey, along with changing the blue vegetation to green and upping the contrast a little, probably isn't going to cause a disruption in the visual style. It could be that it would fool everyone. If it helps things look not-stupid on an LCD, then cool, we can go for it.

However, I think we really need a CRT test to say for sure.

It will definitely help people with an LCD, and it's a minimal change.

I have no doubt at all that you'll find that it looks fine on a CRT.  :wink:
Title: Re: Xanadu II Translation Development Blog
Post by: ParanoiaDragon on July 21, 2017, 08:11:06 PM
Not trying to derail a thread here, but, with me been listening to Dragon Slayer: Legend of Heroes in my care lately, it's made me think of 2 things.  One, I wish Falcom would make a (2D) remake of LoH 1&2 for consoles, as I just plain loved the first game! One of my top games in all creation!  Two, have you ever looked at the code for the LOH 2?  It'd be fantastic to have it translated, & quite frankly, as far as dubbing goes, would be stupidly easy to dub any returning char's to sound like the originals from the first game! :D  Either way, love the first game, I assume I'll love the second!
Title: Re: Xanadu II Translation Development Blog
Post by: Mathius on July 22, 2017, 12:27:17 PM
Not sure if anyone has mentioned this but I have to give you guys extra love and respect. As the fans of these games that you obviously are you could've just sat in the background and waited for someone else to translate/dub these games so you could've enjoyed the experience as if they were a new release (like the rest of us get to do). It really is a sacrifice on your parts.

Thank you. Truly and from the heart.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on July 23, 2017, 11:25:42 AM
Two, have you ever looked at the code for the LOH 2?  It'd be fantastic to have it translated, & quite frankly, as far as dubbing goes, would be stupidly easy to dub any returning char's to sound like the originals from the first game!

Nope, not in any serious way.

I just took a quick look at the English version of Dragon Slayer LOH1, and (from the CD) it looks like they've got a mix of sting tables and LZSS-compressed script strings.

It looks like the script strings contain some simple formatting code, but it's not a full script language.

So ... probably pretty much what Dave Shadoff was talking about in Ys IV and ED.

And it looks like the string/script blocks occur at the end of decompressed chunks, and that there may be free space.

I can't imagine LOH2 being much different. Sequels are usually based on the same engine as the 1st game, but with some improvements.


But ... I don't think that I'll be looking at it any further.

Translations involve an enormous amount of detailed and often boring work, and I just don't have any great personal interest in the game.

You need to hope that someone who really adores the game will come along ... or learn how to hack games yourself.

It doesn't look like NEC-US/TTi really did anything too complicated or impressive with the UI work on LOH1, so really all that you'd need to do is to do the same kind of string-swap that they did, and you should be fine.

You wouldn't want to do anything more than that, or it would stand out too much from the first game.


As the fans of these games that you obviously are you could've just sat in the background and waited for someone else to translate/dub these games so you could've enjoyed the experience as if they were a new release (like the rest of us get to do).

Thanks ... but remember, I'd never played either LoX game before working on the translations.

I did it so that I could get to see what all of the fuss was about!  :wink:
Title: Re: Xanadu II Translation Development Blog
Post by: ParanoiaDragon on July 23, 2017, 06:09:44 PM
Ah, twas' just curious.  I have no time or brain power for coding/hacking, so, I shall await the random possibility of someone tackling it someday.  I'd really like all the Falcom TGCD games in english ....besides a multitude of other RPG's, like Anearth & the Cosmic Fantasy's. The 2 LoX games are at the top o' me list, so what you're doing already makes me do a happy dance, you may continue! :)
Title: Re: Xanadu II Translation Development Blog
Post by: Mathius on July 23, 2017, 06:53:19 PM
What I mean is we get to experience the final product of all your team's labor: the improvements, voice acting, etc. I'm really very thankful.  :)
Title: Re: Xanadu II Translation Development Blog
Post by: ParanoiaDragon on July 24, 2017, 06:58:11 PM
As am I, if I've never said it before, thank you Elmer & Sam!
Title: Re: Xanadu II Translation Development Blog
Post by: IvanBeavkov on August 01, 2017, 11:49:27 PM
Falcom just posted this old artwork from Xanadu on twitter.

Old illustration (original size) 1994, like legendary Xanadu PC engine SUPER CD-ROM2
(@nihonfalcom) August 2, 2017

(http://i64.tinypic.com/208eczn.jpg)
Title: Re: Xanadu II Translation Development Blog
Post by: Vimtoman on August 02, 2017, 04:01:18 AM
Maybe they are doing an English conversion :) or anticipating this release......
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on August 02, 2017, 08:02:32 AM
Falcom just posted this old artwork from Xanadu on twitter.

As NightWolve kindly pointed out at the time, they posted it back in March as well ...

http://mobile.twitter.com/nihonfalcom/status/846260726649929728

They must really like that picture ... I know that I certainly do! :D

I like the comment from the person that saw that picture BITD and thought the game was about the girl in the middle, Sophia (which, in a way, it kinda is).


Maybe they are doing an English conversion :) or anticipating this release......

 :wink:
Title: Re: Xanadu II Translation Development Blog
Post by: deubeul on August 02, 2017, 10:14:22 PM


Maybe they are doing an English conversion :) or anticipating this release......
:wink:


That smiley could mean a lot of things...
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on August 02, 2017, 11:12:51 PM
THAT Xanadu illustration, tho...

 (http://junk.tg-16.com/images/pcg0.html) 
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on August 04, 2017, 04:26:45 AM
That smiley could mean a lot of things...

 :wink:

.
.
.

or just nothing. It would be very cool of them if they were actually interested in, and looking forward to, the translation.
Title: Re: Xanadu II Translation Development Blog
Post by: Vimtoman on August 04, 2017, 07:25:28 AM
Thought it was funny as I couldn't see them making a better conversion than Elmer's and SamIam's.

Whens the expected release date? Christmas?

Title: Re: Xanadu II Translation Development Blog
Post by: elmer on August 05, 2017, 05:00:18 AM
Whens the expected release date? Christmas?

I have no idea.

Recording has been going a lot slower than we'd hoped, and we temporarily lost a couple of actors to summer vacations.

Good post-production and lip-sync will take time after all of the recordings are done.

Then there's final-testing to catch typos or mistakes that we've made.

I'll be really, really sad if we miss this year but, at this point, I just can't be sure.
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on August 05, 2017, 05:29:03 AM
Hahaha ... yep, that Inventory screen is pretty hidden. I only found out about it when I accidentally pressed "right" when the cursor was at the edge of one of the upper boxes.

That's pretty poor UI design on Falcom's part, and there really should be an arrow icon on the border of the box.

And so, now there is an arrow!  :dance:

But the next question comes, what color should the arrow be?

There are 2 potential choices in Falcom's color palette ... white, or orange.

SamIAm and I look at these screens, and have pretty-much the same reasoning for our personal preference ... but then come to opposite conclusions.

So, just for fun ... what do you guys think, and more importantly, can you justify/explain your preference in relation to Falcom's other use of colors on the screen?  :-k


(http://farm5.staticflickr.com/4323/35278585544_6f5c94e34f_o.png)

(http://farm5.staticflickr.com/4322/35986052741_873cb545b9_o.png)
Title: Re: Xanadu II Translation Development Blog
Post by: Black Tiger on August 05, 2017, 05:51:17 AM
White looks better and more natural, but could still be missed by some people.

Orange can't be missed.
Title: Re: Xanadu II Translation Development Blog
Post by: Michirin9801 on August 05, 2017, 07:33:33 AM
Can you make it change between white and orange every half second or so? I think that would be better than a static colour arrow...
Title: Re: Xanadu II Translation Development Blog
Post by: Mathius on August 05, 2017, 12:50:36 PM
Can you make it change between white and orange every half second or so? I think that would be better than a static colour arrow...

This would be nice.

If that would be a troublesome addition than I second the Orange Vote. It's easier to see, and for whatever reason I like its "Vibe" better.
Title: Re: Xanadu II Translation Development Blog
Post by: ParanoiaDragon on August 05, 2017, 04:33:45 PM
Yeah, Orange is not missable.  Maybe a slow blinking white/orange arrow as mentioned by Michirin!
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on August 05, 2017, 04:54:45 PM
Folks ...

1) Blinking isn't technically possible.

2) For gawd's sake, that would be lousy UI design! You're thinking of a modern UI with a mouse ... game UI designs with a joypad only flash/pulse/blink the current selection, especially in the mid 1990s when this game was made. Whatever happens, the color chosen has to fit in with the existing game, you can't go crazy!

So ... solid white or solid orange.

Nobody has yet actually advanced an argument as to how their choice would fit in with the existing color choices of the other on-screen elements, or why that color choice is preferable to the other.

C'mon folks ... this is an essay question, and not a multiple-choice!  :wink:


<edit>

In any translation project (or development project) that involves more than one person, there will eventually be a disagreement on some issue or another. How the people involved resolve that issue is going to be a great factor in determining how well they work together, and whether they will continue to work together.

So ... it's import that you can make an argument for the things that you believe in, and that you also know when you *don't* believe in something strongly enough to argue about it.

If you haven't noticed, SamIAm and I don't always agree on stuff. But we have managed to form a relationship where we can disagree, have a logical argument, and then come to a consensus and move on.

The color choice here is an example of something where you guys can consider a fairly small design/translation choice, and then figure out how you'd argue with your partner to put forward your personal preference.
Title: Re: Xanadu II Translation Development Blog
Post by: Michirin9801 on August 06, 2017, 06:38:06 AM
1) Blinking isn't technically possible.

2) For gawd's sake, that would be lousy UI design! You're thinking of a modern UI with a mouse ... game UI designs with a joypad only flash/pulse/blink the current selection, especially in the mid 1990s when this game was made. Whatever happens, the color chosen has to fit in with the existing game, you can't go crazy!

So ... solid white or solid orange.
If you say so...

In that case, while I like the look of the white arrow better, I'd say go for the orange one because, as it was said by more than one people before, it can't be missed, but not only that, there's already another orange arrow elsewhere on the screen, having this particular arrow also be orange would make the UI look more consistent you know what I mean?
Title: Re: Xanadu II Translation Development Blog
Post by: turboswimbz on August 06, 2017, 07:19:34 AM
So here is my "deep but not that deep" take:

Falcom clearly expected the gamer to be familiar with the RPGs of the day (I'm guessing why no arrow at all).  As such it appears to me that they set up the menu screen to be intuitive that type of player. Health and resource information up top and other complex actions and menu items at the bottom.  Going with the blue background and white letters led them to use the complimentary Orange against the background to make anything they wanted to stand out do so.   

So the question becomes to me what is it that you and sam want the arrow to do.  stand back in the background as a reminder or is it to be a more obvious marker to the player to another screen.  there are merits to both.  As you want the player to be able to find it, but you also don't need attention called to every time after they know it's there.

I'm going to lean towards the Orange based both on its location on the screen and the fact that it donates an action the player can take.  and it just feels more intuitive to the design, almost like I don't have to think about it being an arrow, in the same way, you don't think hey there is a stop sign you just instantly stop.  that being said I find the white also appropriate and could be swayed perhaps to change my stance.

hope that helps. and clarifies my thought process.

 
Title: Xanadu II Translation Development Blog
Post by: esteban on August 06, 2017, 07:41:12 AM
L'arrow l'orange....

....because folks will have a 13% chance of noticing l'orange and 3% likelihood discerning its purpose (n=21).

The white arrow has a 4% chance of being noticed and a 0.000001% chance of inducing someone to manipulate it/figure out its raison d'etre (n=25).

METHODOLOGY: I showed these images to dozens of strangers in a public restroom at a local park. I recorded the results by keeping tally on a steamy mirror. At one point, I had to recreate the tally from memory (a patron inadvertently wiped away the data when he used the mirror to pluck some errant hairs from his eyebrows). Performing a linear regression analysis, I am 95% confident I recreated the data accurately without any errors (+/- 30% margin of error).

:)
Title: Re: Xanadu II Translation Development Blog
Post by: Vimtoman on August 06, 2017, 09:59:07 AM
Is an Orange arrow with a white surround possible?
Title: Re: Xanadu II Translation Development Blog
Post by: elmer on August 06, 2017, 10:29:52 AM
Is an Orange arrow with a white surround possible?

Hahaha ... good try!  :wink:

Nope, there aren't enough pixels.
Title: Re: Xanadu II Translation Development Blog
Post by: turboswimbz on August 06, 2017, 01:42:24 PM
L'arrow l'orange....

....because folks will have a 13% chance of noticing l'orange and 3% likelihood discerning its purpose (n=21).

The white arrow has a 4% chance of being noticed and a 0.000001% chance of inducing someone to manipulate it/figure out its raison d'etre (n=25).

METHODOLOGY: I showed these images to dozens of strangers in a public restroom at a local park. I recorded the results by keeping tally on a steamy mirror. At one point, I had to recreate the tally from memory (a patron inadvertently wiped away the data when he used the mirror to pluck some errant hairs from his eyebrows). Performing a linear regression analysis, I am 95% confident I recreated the data accurately without any errors (+/- 30% margin of error).

:)

What was your slope value?
Title: Xanadu II Translation Development Blog
Post by: esteban on August 06, 2017, 02:09:59 PM
Let me see....

y=(m)x+blodia....
Title: Re: Xanadu II Translation Development Blog
Post by: Necromancer on August 07, 2017, 03:22:05 AM
I think it should be white because it's just a little hint that there's more to the menu.  You can play the entire game and never need to access the inventory, so a glaring orange billboard seems a bit much.
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on August 07, 2017, 03:37:43 AM
I think it should be white because it's just a little hint that there's more to the menu.  You can play the entire game and never need to access the inventory, so a glaring orange billboard seems a bit much.

SADLY, it's still very easy to miss the tiny orange triangle.

So, ORANGE IT IS.

Thank you.
Title: Re: Xanadu II Translation Development Blog
Post by: Necromancer on August 07, 2017, 03:39:18 AM
Orange shouldn't be used because it's associated with Trump.

If I press right on the d-pad, will he grab me by the pussy?  I can't take that chance.
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on August 07, 2017, 03:50:12 AM
Orange shouldn't be used because it's associated with Trump.

If I press right on the d-pad, will he grab me by the pussy?  I can't take that chance.

Dammit. I cannot provide a counter-argument.

Title: Re: Xanadu II Translation Development Blog
Post by: elmer on August 07, 2017, 05:23:52 AM
Going with the blue background and white letters led them to use the complimentary Orange against the background to make anything they wanted to stand out do so.   

So the question becomes to me what is it that you and sam want the arrow to do.  stand back in the background as a reminder or is it to be a more obvious marker to the player to another screen.  there are merits to both.  As you want the player to be able to find it, but you also don't need attention called to every time after they know it's there.

I'm going to lean towards the Orange based both on its location on the screen and the fact that it donates an action the player can take.  and it just feels more intuitive to the design, almost like I don't have to think about it being an arrow, in the same way, you don't think hey there is a stop sign you just instantly stop.  that being said I find the white also appropriate and could be swayed perhaps to change my stance.

I think that's an excellent summary of the situation and the choices!  8)


I think it should be white because it's just a little hint that there's more to the menu.  You can play the entire game and never need to access the inventory, so a glaring orange billboard seems a bit much.

And this is basically the argument for using the white arrow.

It's the smallest change that we can make that *might* give the player a clue that there's more to see if they press right on the joypad when they're at the edge of that part of the menu.


In that case, while I like the look of the white arrow better, I'd say go for the orange one because, as it was said by more than one people before, it can't be missed, but not only that, there's already another orange arrow elsewhere on the screen, having this particular arrow also be orange would make the UI look more consistent you know what I mean?

And this is the argument for using the orange arrow.

Falcom are using the color white for "status/information/deselected", and orange for "current-selection/selected/press-this".

They are already using the same orange arrow on the switch that changes between the ICON and CFG buttons (i.e. the menu changes when you press that button).

So an orange arrow already has a defined meaning in Falcom's UI design, and putting another orange arrow on the border is consistent usage.


A white arrow is never used anywhere else in the game to signify anything. It has no defined meaning. But perhaps you could consider the white "deselected" buttons as giving enough of a clue.


I do understand the idea of making the smallest *visible* change in order to give the player a clue, especially when, as Necromancer says, you can play through the whole game without ever going to the Inventory screen.

The problem is (from my POV), that a white arrow is actually a *bigger* change to Falcom's UI, because it has no meaning, and doesn't fit in with their design scheme, wheras the orange arrow looks like it could have been a part of the original screen.


At the end of the day, I don't think that it really matters which color we use; but I strongly favor consistency in meaning and operation, and so lean towards the orange arrow. It's just (IMHO) clearer what it means.

And now that I've said that ... the white arrow is what is currently implemented in the game!  :wink:
Title: Re: Xanadu II Translation Development Blog
Post by: turboswimbz on August 07, 2017, 09:43:27 AM


They are already using the same orange arrow on the switch that changes between the ICON and CFG buttons (i.e. the menu changes when you press that button).

So an orange arrow already has a defined meaning in Falcom's UI design, and putting another orange arrow on the border is consistent usage.A white arrow is never used anywhere else in the game to signify anything. It has no defined meaning. But perhaps you could consider the white "deselected" buttons as giving enough of a clue.The problem is (from my POV), that a white arrow is actually a *bigger* change to Falcom's UI, because it has no meaning, and doesn't fit in with their design scheme, whereas the orange arrow looks like it could have been a part of the original screen.

This is what I Meant by it seems more intuitive.  But the white is nice too.  I appreciate both yours and Sams attention to detail. can't wait to play.
Title: Re: Xanadu II Translation Development Blog
Post by: Bardoly on August 07, 2017, 03:16:09 PM
I think that I have to fall on the "Orange seems to fit the menu color scheme better,and be much more visable." camp.  I can see the argument for white, but I just think orange is better here.
Title: Re: Xanadu II Translation Development Blog
Post by: seieienbu on August 09, 2017, 06:43:38 AM
I like the orange arrow both for consistency with the second arrow down below and for the fact that it really pops against the white and blue.  I don't feel that either looks out of place however and also don't feel so strongly about my opinion that either decision is problematic. 
Title: Re: Xanadu II Translation Development Blog
Post by: spenoza on August 09, 2017, 09:34:49 AM
I think the way to approach this is to imagine that you have a Falcom style guide in front of you. Which would be most consistent with this hypothetical style guide?
Title: Re: Xanadu II Translation Development Blog
Post by: haightc on August 09, 2017, 12:03:59 PM
It seems like orange to me is the most logical choice, text/items in default state are white(ish).   The is intended to something and make it active/select the cursor should be the same color as the active color state, similar to a highlighter.
Title: Re: Xanadu II Translation Development Blog
Post by: esteban on August 14, 2017, 02:11:08 AM
Excellent, it is settled then: Orange.

Thank you, all.

:)