Ejemplo n.º 1
0
        public RageAudioMetadata5()
        {
            foreach (var file in Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory +
                                                    "strings",
                                                    "*.txt",
                                                    SearchOption.AllDirectories))
            {
                using (var reader = File.OpenText(file))
                {
                    string line;

                    while ((line = reader.ReadLine()) != null)
                    {
                        if (!string.IsNullOrEmpty(line))
                        {
                            if (!Nametable.ContainsValue(line))
                            {
                                Nametable.Add(line.HashKey(), line);
                            }

                            else
                            {
                                MessageBox.Show("Ignoring duplicate entry \"" + line + "\" in \"" + file);
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        private void MapNametable(IMemorySegment memorySegment)
        {
            var nametable = (memorySegment as Nametable);

            if (nametable == null)
            {
                throw new InvalidOperationException("NROM was given a non-Nametable memory segment in the range of a Nametable to map: " + memorySegment);
            }

            if (this.cartridge.MirroringMode == MirroringMode.SingleScreen)
            {
                this.nametable2000 = nametable;
                this.nametable2400 = nametable;
                this.nametable2800 = nametable;
                this.nametable2C00 = nametable;
            }
            else if (this.cartridge.MirroringMode == MirroringMode.Horizontal)
            {
                switch (nametable.Range.Min)
                {
                case 0x2000:
                    this.nametable2000 = nametable;
                    break;

                case 0x2400:
                    this.nametable2400 = this.nametable2000;
                    break;

                case 0x2800:
                    this.nametable2800 = nametable;
                    break;

                case 0x2C00:
                    this.nametable2C00 = this.nametable2800;
                    break;
                }
            }
            else if (this.cartridge.MirroringMode == MirroringMode.Vertical)
            {
                switch (nametable.Range.Min)
                {
                case 0x2000:
                    this.nametable2000 = nametable;
                    break;

                case 0x2800:
                    this.nametable2800 = this.nametable2000;
                    break;

                case 0x2400:
                    this.nametable2400 = nametable;
                    break;

                case 0x2C00:
                    this.nametable2C00 = this.nametable2400;
                    break;
                }
            }
        }
Ejemplo n.º 3
0
        public BackgroundHandler(
            IPPUMemoryMap ppuMemoryMap,
            PPURegisters registers,
            PPUInternalRegisters internalRegisters,
            ScrollHandler scrollHandler,
            PaletteHandler paletteHandler)
        {
            this.registers         = registers;
            this.ppuMemoryMap      = ppuMemoryMap;
            this.scrollHandler     = scrollHandler;
            this.paletteHandler    = paletteHandler;
            this.internalRegisters = internalRegisters;

            foreach (var patternTable in this.ppuMemoryMap.GetMemorySegments <PatternTable>())
            {
                if (patternTable.Range.Min == 0x0000)
                {
                    this.patternTable0 = patternTable;
                }
                else if (patternTable.Range.Min == 0x1000)
                {
                    this.patternTable1 = patternTable;
                }
            }

            foreach (var nameTable in this.ppuMemoryMap.GetMemorySegments <Nametable>())
            {
                if (nameTable.Range.Min == 0x2000)
                {
                    this.nameTable0 = nameTable;
                }
                else if (nameTable.Range.Min == 0x2400)
                {
                    this.nameTable1 = nameTable;
                }
                else if (nameTable.Range.Min == 0x2800)
                {
                    this.nameTable2 = nameTable;
                }
                else if (nameTable.Range.Min == 0x2C00)
                {
                    this.nameTable3 = nameTable;
                }
            }
        }
        //////////////////////////////////////////////////////////////////////

        /// <summary>initializes the name table for use with atom parsing. This is the
        /// only place where strings are defined for parsing</summary>
        //////////////////////////////////////////////////////////////////////
        public override void InitAtomParserNameTable()
        {
            // create the nametable object by calling the base
            base.InitAtomParserNameTable();

            Tracing.TraceCall("Initializing atom nametable support");
            // <summary>add the keywords for the Feed</summary>
            _feed    = Nametable.Add(AtomParserNameTable.XmlFeedElement);
            _version = Nametable.Add(AtomParserNameTable.XmlAttributeVersion);
            _source  = Nametable.Add(AtomParserNameTable.XmlSourceElement);
            _entry   = Nametable.Add(AtomParserNameTable.XmlAtomEntryElement);
            _title   = Nametable.Add(AtomParserNameTable.XmlTitleElement);
            _link    = Nametable.Add(AtomParserNameTable.XmlLinkElement);
            _id      = Nametable.Add(AtomParserNameTable.XmlIdElement);
            _href    = Nametable.Add(AtomParserNameTable.XmlAttributeHRef);

            _rel         = Nametable.Add(AtomParserNameTable.XmlAttributeRel);
            _hreflang    = Nametable.Add(AtomParserNameTable.XmlAttributeHRefLang);
            _length      = Nametable.Add(AtomParserNameTable.XmlAttributeLength);
            _updated     = Nametable.Add(AtomParserNameTable.XmlUpdatedElement);
            _published   = Nametable.Add(AtomParserNameTable.XmlPublishedElement);
            _author      = Nametable.Add(AtomParserNameTable.XmlAuthorElement);
            _contributor = Nametable.Add(AtomParserNameTable.XmlContributorElement);
            _rights      = Nametable.Add(AtomParserNameTable.XmlRightsElement);
            _category    = Nametable.Add(AtomParserNameTable.XmlCategoryElement);
            _term        = Nametable.Add(AtomParserNameTable.XmlAttributeTerm);
            _scheme      = Nametable.Add(AtomParserNameTable.XmlAttributeScheme);
            _label       = Nametable.Add(AtomParserNameTable.XmlAttributeLabel);
            _summary     = Nametable.Add(AtomParserNameTable.XmlSummaryElement);
            _content     = Nametable.Add(AtomParserNameTable.XmlContentElement);
            _src         = Nametable.Add(AtomParserNameTable.XmlAttributeSrc);

            _uri       = Nametable.Add(AtomParserNameTable.XmlUriElement);
            _generator = Nametable.Add(AtomParserNameTable.XmlGeneratorElement);
            _email     = Nametable.Add(AtomParserNameTable.XmlEmailElement);
            _icon      = Nametable.Add(AtomParserNameTable.XmlIconElement);
            _logo      = Nametable.Add(AtomParserNameTable.XmlLogoElement);
            _subTitle  = Nametable.Add(AtomParserNameTable.XmlSubtitleElement);

            _categories = Nametable.Add(AtomParserNameTable.XmlCategoriesElement);
        }