Example #1
0
 static TextUtilities()
 {
     PSXMap = new PSXCharMap();
     PSPMap = new PSPCharMap();
     BuildVersion1Charmap( PSXMap, PSPMap );
     BuildVersion2Charmap( PSXMap, PSPMap );
     BuildVersion3Charmap( PSXMap, PSPMap );
 }
Example #2
0
        static TextUtilities()
        {
            //PSXMap = new PSXCharMap();
            //PSPMap = new PSPCharMap();
            var psx = new Dictionary<int, string>();
            var psp = new Dictionary<int, string>();
            BuildVersion1Charmap( psx, psp );
            BuildVersion2Charmap( psx, psp );
            BuildVersion3Charmap( psx, psp );

            PSXMap = new PSXCharMap( psx );
            PSPMap = new PSPCharMap( psp );

            // Extract the DLL to the temp folder
            string dir = Path.Combine( Path.GetTempPath(), Path.GetRandomFileName() );
            Directory.CreateDirectory( dir );

            string path = Path.Combine( dir, "FFTTextCompression.dll" );
            File.WriteAllBytes( path, Resources.FFTTextCompression );

            IntPtr h = LoadLibrary( path );
            System.Diagnostics.Debug.Assert( h != IntPtr.Zero, "Unable to load library " + path );

            Application.ApplicationExit +=
                delegate( object sender, EventArgs args )
                {
                    if (FreeLibrary( h ) && File.Exists( path ) && Directory.Exists( dir ))
                    {
                        try
                        {
                            File.Delete( path );
                            Directory.Delete( dir );
                        }
                        catch { }
                    }
                };
        }
Example #3
0
        private static void BuildVersion1Charmap( PSXCharMap psx, PSPCharMap psp )
        {
            for( int i = (int)'a'; i <= (int)'z'; i++ )
            {
                psx.Add( i - (ushort)'a' + 0x24, ((char)i).ToString() );
                psx.Add( i - (ushort)'a' + 0x24 + 0xD000, ((char)i).ToString() );
            }
            psx.Add( 0x40, "?" );
            psx.Add( 0xD040, "?" );
            psx.Add( 0xD9C9, "?" );
            psx.Add( 0xB2, "\u266A" );
            psx.Add( 0xD0B2, "\u266A" );
            psx.Add( 0xD117, "\u2014" );
            psx.Add( 0xD118, "\u300C" );
            psx.Add( 0xD11B, "\u22EF" );
            psx.Add( 0xD11F, "\xD7" );
            psx.Add( 0xD120, "\xF7" );
            psx.Add( 0xD121, "\u2229" );
            psx.Add( 0xD122, "\u222A" );
            psx.Add( 0xD123, "=" );
            psx.Add( 0xDA70, "=" );
            psx.Add( 0xD124, "\u2260" );
            psx.Add( 0xD9B5, "\u221E" );
            psx.Add( 0xD9B7, "&" );
            psx.Add( 0xD9B8, "%" );
            psx.Add( 0xD9B9, "\u25CB" );
            psx.Add( 0xD9BA, "\u2190" );
            psx.Add( 0xD9BB, "\u2192" );
            psx.Add( 0xD9C2, "\u300E" );
            psx.Add( 0xD9C3, "\u300F" );
            psx.Add( 0xD9C4, "\u300D" );
            psx.Add( 0xD9C5, "\uFF5E" );
            psx.Add( 0xD9C7, "\u25B3" );
            psx.Add( 0xD9C8, "\u25A1" );
            psx.Add( 0xD9CA, "\u2665" );
            psx.Add( 0xD9CB, "\u2160" );
            psx.Add( 0xD9CC, "\u2161" );
            psx.Add( 0xD9CD, "\u2162" );
            psx.Add( 0xD9CE, "\u2163" );
            psx.Add( 0xD9CF, "\u2164" );
            psx.Add( 0xDA00, "\u2648" );
            psx.Add( 0xDA01, "\u2649" );
            psx.Add( 0xDA02, "\u264A" );
            psx.Add( 0xDA03, "\u264B" );
            psx.Add( 0xDA04, "\u264C" );
            psx.Add( 0xDA05, "\u264D" );
            psx.Add( 0xDA06, "\u264E" );
            psx.Add( 0xDA07, "\u264F" );
            psx.Add( 0xDA08, "\u2650" );
            psx.Add( 0xDA09, "\u2651" );
            psx.Add( 0xDA0A, "\u2652" );
            psx.Add( 0xDA0B, "\u2653" );
            psx.Add( 0xDA0C, "{Serpentarius}" );
            psx.Add( 0xDA71, "$" );
            psx.Add( 0xDA72, "\xA5" );
            psx.Add( 0xDA74, "," );
            psx.Add( 0xDA75, ";" );

            psx.Add( 0xD11D, "-" );

            psx.Add( 0x42, "+" );
            psx.Add( 0xD042, "+" );
            psx.Add( 0xD11E, "+" );

            psx.Add( 0x46, ":" );
            psx.Add( 0xD046, ":" );
            psx.Add( 0xD9BD, ":" );

            psx.Add( 0x8D, "(" );
            psx.Add( 0xD08D, "(" );
            psx.Add( 0xD9BE, "(" );

            psx.Add( 0x8E, ")" );
            psx.Add( 0xD08E, ")" );
            psx.Add( 0xD9BF, ")" );

            psx.Add( 0x91, "\"" );
            psx.Add( 0xD091, "\"" );
            psx.Add( 0xD9C0, "\"" );
            psx.Add( 0xDA77, "\"" );

            psx.Add( 0x93, "'" );
            psx.Add( 0xD093, "'" );
            psx.Add( 0xD9C1, "'" );
            psx.Add( 0xDA76, "'" );

            psx.Add( 0x8B, "\xB7" );
            psx.Add( 0xD08B, "\xB7" );
            psx.Add( 0xD9BC, "\xB7" );

            psx.Add( 0x44, "/" );
            psx.Add( 0xD044, "/" );
            psx.Add( 0xD9C6, "/" );

            psx.Add( 0xD125, ">" );

            psx.Add( 0xD126, "<" );

            psx.Add( 0xD127, "\u2267" );

            psx.Add( 0xD128, "\u2266" );

            psx.Add( 0xFA, " " );
            psx.Add( 0xD12A, " " );
            psx.Add( 0xDA73, " " );

            psx.Add( 0x5F, "." );
            psx.Add( 0xD05F, "." );
            psx.Add( 0xD119, "." );
            psx.Add( 0xD11C, "." );
            psx.Add( 0xD9B6, "." );

            psx.Add( 0x3E, "!" );
            psx.Add( 0xD03E, "!" );
            psx.Add( 0xD11A, "!" );

            psx.Add( 0xB5, "*" );
            psx.Add( 0xD0B5, "*" );
            psx.Add( 0xD111, "*" );
            psx.Add( 0xD129, "*" );
            psx.Add( 0xD12B, "*" );
            psx.Add( 0xD12C, "*" );
            psx.Add( 0xD12D, "*" );
            psx.Add( 0xD12E, "*" );
            psx.Add( 0xD12F, "*" );
            psx.Add( 0xD130, "*" );
            psx.Add( 0xD131, "*" );
            psx.Add( 0xD132, "*" );
            psx.Add( 0xE0, "{Ramza}" );
            psx.Add( 0xF8, "{Newline}" );
            psx.Add( 0xFB, "{Begin List}" );
            psx.Add( 0xFC, "{End List}" );
            psx.Add( 0xFF, "{Close}" );

            for( int i = 0; i < 10; i++ )
            {
                psx.Add( i, i.ToString() );
                psx.Add( i + 0xD000, i.ToString() );
            }
            for( int i = (int)'A'; i <= (int)'Z'; i++ )
            {
                psx.Add( i - (ushort)'A' + 0x0A, ((char)i).ToString() );
                psx.Add( i - (ushort)'A' + 0x0A + 0xD000, ((char)i).ToString() );
            }

            for( int i = 0; i < 256; i++ )
            {
                // HACK
                psx.Add( 0xE200 + i, string.Format( "{{Delay {0:X2}", i ) + @"}" );
                psx.Add( 0xE300 + i, string.Format( "{{Color {0:X2}", i ) + @"}" );
            }

            psx.Add( 0x3F, "\u3042" );
            psx.Add( 0x41, "\u3044" );
            psx.Add( 0x43, "\u3046" );
            psx.Add( 0x45, "\u3048" );
            psx.Add( 0xD03F, "\u3042" );
            psx.Add( 0xD041, "\u3044" );
            psx.Add( 0xD043, "\u3046" );
            psx.Add( 0xD045, "\u3048" );

            for( int i = 0x47; i <= 0x5E; i++ )
            {
                psx.Add( i, ((char)(i - 0x47 + 0x304A)).ToString() );
                psx.Add( i + 0xD000, ((char)(i - 0x47 + 0x304A)).ToString() );
            }
            for( int i = 0x60; i <= 0x8A; i++ )
            {
                psx.Add( i, ((char)(i - 0x60 + 0x3063)).ToString() );
                psx.Add( i + 0xD000, ((char)(i - 0x60 + 0x3063)).ToString() );
            }

            psx.Add( 0x8C, "\u308F" );
            psx.Add( 0xD08C, "\u308F" );
            psx.Add( 0x8F, "\u3092" );
            psx.Add( 0xD08F, "\u3092" );
            psx.Add( 0x90, "\u3093" );
            psx.Add( 0xD090, "\u3093" );
            psx.Add( 0x92, "\u30A2" );
            psx.Add( 0xD092, "\u30A2" );

            for( int i = 0x94; i <= 0xB1; i++ )
            {
                psx.Add( i, ((char)(i - 0x94 + 0x30A4)).ToString() );
                psx.Add( i + 0xD000, ((char)(i - 0x94 + 0x30A4)).ToString() );
            }

            psx.Add( 0xB3, "\u30C3" );
            psx.Add( 0xD0B3, "\u30C3" );
            psx.Add( 0xB4, "\u30C4" );
            psx.Add( 0xD0B4, "\u30C4" );

            for( int i = 0xB6; i <= 0xCF; i++ )
            {
                psx.Add( i, ((char)(i - 0xB6 + 0x30C6)).ToString() );
                psx.Add( i + 0xD000, ((char)(i - 0xB6 + 0x30C6)).ToString() );
            }

            for( int i = 0xD0; i <= 0xDB; i++ )
            {
                psx.Add( i - 0xD0 + 0xD100, ((char)(i - 0xD0 + 0x30E0)).ToString() );
            }

            psx.Add( 0xD10C, "\u30EC" );
            psx.Add( 0xD10D, "\u30ED" );
            psx.Add( 0xD10E, "\u30EE" );
            psx.Add( 0xD10F, "\u30EF" );

            for( int i = 0xE2; i <= 0xE6; i++ )
            {
                psx.Add( i - 0xE2 + 0xD112, ((char)(i - 0xE2 + 0x30F2)).ToString() );
            }

            foreach( KeyValuePair<int, string> kvp in psx )
            {
                psp.Add( kvp.Key, kvp.Value );
            }

            for (int i = 0; i < 256; i++)
            {
                psp.Add( 0xEE00 + i, string.Format( "{{Tab {0:X2}", i ) + @"}" );
            }


            psp[0x95] = " ";
            psp[0xfa] = "{SP2}";
            psp.Add( 0xDA60, "\xE1" );
            psp.Add( 0xDA61, "\xE0" );
            psp.Add( 0xDA62, "\xE9" );
            psp.Add( 0xDA63, "\xE8" );
            psp.Add( 0xDA64, "\xED" );
            psp.Add( 0xDA65, "\xFA" );
            psp.Add( 0xDA66, "\xF9" );
        }
Example #4
0
        private static void BuildVersion3Charmap( PSXCharMap PSXMap, PSPCharMap PSPMap )
        {
            IList<string> psxChars = PatcherLib.PSXResources.CharacterSet;
            IList<string> pspChars = PatcherLib.PSPResources.CharacterSet;

            for ( int i = 0; i < 0xD0; i++ )
            {
                PSXMap[i] = psxChars[i];
                PSPMap[i] = pspChars[i];
                PSXMap[i + 0xD000] = psxChars[i];
                PSPMap[i + 0xD000] = pspChars[i];
            }
            for ( int i = 0xD0; i < pspChars.Count; i++ )
            {
                PSXMap[( i - 0xD0 ) % 0xD0 + 0xD100 + 0x100 * ( ( i - 0xD0 ) / 0xD0 )] = psxChars[i];
                PSPMap[( i - 0xD0 ) % 0xD0 + 0xD100 + 0x100 * ( ( i - 0xD0 ) / 0xD0 )] = pspChars[i];
            }
        }
Example #5
0
 private static void BuildVersion2Charmap( PSXCharMap psx, PSPCharMap psp )
 {
     foreach( GenericCharMap map in new GenericCharMap[] { psx, psp } )
     {
         map.Add( 0xD133, "\u5263" );
         map.Add( 0xD134, "\u4E00" );
         map.Add( 0xD135, "\u4E59" );
         map.Add( 0xD136, "\u4E03" );
         map.Add( 0xD137, "\u4E01" );
         map.Add( 0xD138, "\u4E5D" );
         map.Add( 0xD139, "\u4E86" );
         map.Add( 0xD13A, "\u61E8" );
         map.Add( 0xD13B, "\u4EBA" );
         map.Add( 0xD13C, "\u5165" );
         map.Add( 0xD13D, "\u516B" );
         map.Add( 0xD13E, "\u5200" );
         map.Add( 0xD13F, "\u529B" );
         map.Add( 0xD140, "\u5341" );
         map.Add( 0xD141, "\u4E0B" );
         map.Add( 0xD142, "\u4E09" );
         map.Add( 0xD143, "\u4E0A" );
         map.Add( 0xD144, "\u4E08" );
         map.Add( 0xD145, "\u4E07" );
         map.Add( 0xD146, "\u4E0E" );
         map.Add( 0xD147, "\u4E45" );
         map.Add( 0xD148, "\u4E38" );
         map.Add( 0xD149, "\u4E5E" );
         map.Add( 0xD14A, "\u4E5F" );
         map.Add( 0xD14B, "\u4EA1" );
         map.Add( 0xD14C, "\u51E1" );
         map.Add( 0xD14D, "\u5203" );
         map.Add( 0xD14E, "\u5343" );
         map.Add( 0xD14F, "\u98EF" );
         map.Add( 0xD150, "\u571F" );
         map.Add( 0xD151, "\u58EB" );
         map.Add( 0xD152, "\u5915" );
         map.Add( 0xD153, "\u5927" );
         map.Add( 0xD154, "\u5973" );
         map.Add( 0xD155, "\u5B50" );
         map.Add( 0xD156, "\u5BF8" );
         map.Add( 0xD157, "\u5C0F" );
         map.Add( 0xD158, "\u5C71" );
         map.Add( 0xD159, "\u5DDD" );
         map.Add( 0xD15A, "\u5DE5" );
         map.Add( 0xD15B, "\u5DF1" );
         map.Add( 0xD15C, "\u5E72" );
         map.Add( 0xD15D, "\u5F13" );
         map.Add( 0xD15E, "\u3005" );
         map.Add( 0xD15F, "\u6CB9" );
         map.Add( 0xD160, "\u796D" );
         map.Add( 0xD161, "\u5947" );
         map.Add( 0xD162, "\u8DE1" );
         map.Add( 0xD164, "\u4E0D" );
         map.Add( 0xD165, "\u4E2D" );
         map.Add( 0xD166, "\u4E88" );
         map.Add( 0xD167, "\u4E94" );
         map.Add( 0xD168, "\u4E92" );
         map.Add( 0xD169, "\u4E95" );
         map.Add( 0xD16A, "\u4ECB" );
         map.Add( 0xD16B, "\u4EC7" );
         map.Add( 0xD16C, "\u4ECA" );
         map.Add( 0xD16D, "\u4EC1" );
         map.Add( 0xD16E, "\u5185" );
         map.Add( 0xD16F, "\u5143" );
         map.Add( 0xD170, "\u516C" );
         map.Add( 0xD171, "\u516D" );
         map.Add( 0xD172, "\u5186" );
         map.Add( 0xD173, "\u5197" );
         map.Add( 0xD174, "\u51F6" );
         map.Add( 0xD175, "\u5207" );
         map.Add( 0xD176, "\u5206" );
         map.Add( 0xD177, "\u5302" );
         map.Add( 0xD178, "\u5316" );
         map.Add( 0xD179, "\u5DE8" );
         map.Add( 0xD17A, "\u5339" );
         map.Add( 0xD17B, "\u725B" );
         map.Add( 0xD17C, "\u5384" );
         map.Add( 0xD17D, "\u53CC" );
         map.Add( 0xD17E, "\u53CD" );
         map.Add( 0xD17F, "\u53CB" );
         map.Add( 0xD180, "\u592A" );
         map.Add( 0xD181, "\u5929" );
         map.Add( 0xD182, "\u5C11" );
         map.Add( 0xD183, "\u5E7B" );
         map.Add( 0xD184, "\u5F15" );
         map.Add( 0xD185, "\u5FC3" );
         map.Add( 0xD186, "\u6238" );
         map.Add( 0xD187, "\u624B" );
         map.Add( 0xD188, "\u652F" );
         map.Add( 0xD189, "\u6587" );
         map.Add( 0xD18A, "\u6597" );
         map.Add( 0xD18B, "\u65B9" );
         map.Add( 0xD18C, "\u65E5" );
         map.Add( 0xD18D, "\u6708" );
         map.Add( 0xD18E, "\u6728" );
         map.Add( 0xD18F, "\u6B20" );
         map.Add( 0xD190, "\u6B62" );
         map.Add( 0xD191, "\u6BD4" );
         map.Add( 0xD192, "\u6BDB" );
         map.Add( 0xD193, "\u6C34" );
         map.Add( 0xD194, "\u706B" );
         map.Add( 0xD195, "\u722A" );
         map.Add( 0xD196, "\u7236" );
         map.Add( 0xD197, "\u7247" );
         map.Add( 0xD198, "\u725B" );
         map.Add( 0xD199, "\u72AC" );
         map.Add( 0xD19A, "\u738B" );
         map.Add( 0xD19C, "\u5EB7" );
         map.Add( 0xD19D, "\u808C" );
         map.Add( 0xD19E, "\u72AF" );
         map.Add( 0xD19F, "\u5C4D" );
         map.Add( 0xD1A0, "\u6557" );
         map.Add( 0xD1A1, "\u6211" );
         map.Add( 0xD1A2, "\u767B" );
         map.Add( 0xD1A3, "\u9332" );
         map.Add( 0xD1A4, "\u4E18" );
         map.Add( 0xD1A5, "\u4E16" );
         map.Add( 0xD1A6, "\u4E3B" );
         map.Add( 0xD1A7, "\u4EE5" );
         map.Add( 0xD1A8, "\u4ED5" );
         map.Add( 0xD1A9, "\u4ED9" );
         map.Add( 0xD1AA, "\u4ED6" );
         map.Add( 0xD1AB, "\u4EE3" );
         map.Add( 0xD1AC, "\u4ED8" );
         map.Add( 0xD1AD, "\u4EE4" );
         map.Add( 0xD1AE, "\u5144" );
         map.Add( 0xD1AF, "\u5199" );
         map.Add( 0xD1B1, "\u51FA" );
         map.Add( 0xD1B2, "\u52A0" );
         map.Add( 0xD1B3, "\u5305" );
         map.Add( 0xD1B4, "\u5317" );
         map.Add( 0xD1B5, "\u534A" );
         map.Add( 0xD1B6, "\u5360" );
         map.Add( 0xD1B7, "\u53BB" );
         map.Add( 0xD1B8, "\u53CE" );
         map.Add( 0xD1B9, "\u53EF" );
         map.Add( 0xD1BA, "\u529F" );
         map.Add( 0xD1BB, "\u53E5" );
         map.Add( 0xD1BC, "\u53E4" );
         map.Add( 0xD1BD, "\u53F7" );
         map.Add( 0xD1BE, "\u53F2" );
         map.Add( 0xD1BF, "\u53F8" );
         map.Add( 0xD1C0, "\u53EC" );
         map.Add( 0xD1C1, "\u53F0" );
         map.Add( 0xD1C2, "\u53F3" );
         map.Add( 0xD1C3, "\u56DB" );
         map.Add( 0xD1C4, "\u56DA" );
         map.Add( 0xD1C5, "\u5727" );
         map.Add( 0xD1C6, "\u51AC" );
         map.Add( 0xD1C7, "\u5916" );
         map.Add( 0xD1C8, "\u592E" );
         map.Add( 0xD1C9, "\u5931" );
         map.Add( 0xD1CA, "\u5974" );
         map.Add( 0xD1CB, "\u5C3B" );
         map.Add( 0xD1CC, "\u5DE6" );
         map.Add( 0xD1CD, "\u5E02" );
         map.Add( 0xD1CE, "\u5E03" );
         map.Add( 0xD1CF, "\u5E73" );
         map.Add( 0xD200, "\u5E7C" );
         map.Add( 0xD201, "\u5E83" );
     }
 }