public static bool TryMapRamToRom(this IRomMapper mapper, int ramAddress, out int value) { ulong i = (uint)ramAddress; ulong o; bool b = mapper.TryMapRamToRom(i, out o); value = (int)(uint)(o & 0xffffffffu); return(b); }
public static bool TryMapRamToRom(this IRomMapper mapper, long ramAddress, out long value) { ulong i = (ulong)ramAddress; ulong o; bool b = mapper.TryMapRamToRom(i, out o); value = (long)o; return(b); }
public static long MapRamToRom(this IRomMapper mapper, long ramAddress) { long v; if (mapper.TryMapRamToRom(ramAddress, out v)) { return(v); } throw new Exception("Address not mappable."); }
public static void ReadStrings(List <MainDolString> output, IRomMapper dol, Stream stream, long start, long bytecount) { stream.Position = start; while (stream.Position < start + bytecount) { long p = stream.Position; uint a = stream.ReadUInt32().FromEndian(EndianUtils.Endianness.BigEndian); if (a != 0) { uint rom; if (dol.TryMapRamToRom(a, out rom)) { long tmp = stream.Position; stream.Position = rom; string s = stream.ReadNulltermString(TextUtils.GameTextEncoding.ShiftJIS); uint bytesRead = (uint)(stream.Position - rom); stream.Position = tmp; output.Add(new MainDolString((uint)p, rom, s, bytesRead)); } } } }