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); } } } } } }
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; } } }
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); }