UNPKG

snes-disassembler

Version:

A Super Nintendo (SNES) ROM disassembler for 65816 assembly

89 lines 2.74 kB
import { CartridgeInfo, MemoryRegion } from './cartridge-types'; export interface SNESHeader { title: string; mapMode: number; cartridgeType: number; romSize: number; ramSize: number; countryCode: number; licenseCode: number; versionNumber: number; checksum: number; complement: number; nativeVectors: { cop: number; brk: number; abort: number; nmi: number; reset: number; irq: number; }; emulationVectors: { cop: number; brk: number; abort: number; nmi: number; reset: number; irq: number; }; } export interface SNESRom { header: SNESHeader; data: Buffer; isHiRom: boolean; hasHeader: boolean; cartridgeInfo: CartridgeInfo; memoryRegions: MemoryRegion[]; isInterleaved?: boolean; isSplitRom?: boolean; isOverdumped?: boolean; originalSize?: number; } export declare class RomParser { static parse(filePath: string): SNESRom; private static scoreHeader; private static parseHeader; private static getROMSize; private static getSpecialChipName; static getRomOffset(address: number, cartridgeInfo: CartridgeInfo, romSize?: number): number; private static getRomOffsetWithWrapping; private static calculateHiROMOffset; private static calculateLoROMOffset; static getRomOffsetLegacy(address: number, isHiRom: boolean): number; static getPhysicalAddress(romOffset: number, isHiRom: boolean): number; /** * Detect and handle split ROM files (multi-part dumps) * Based on file naming conventions and size analysis */ static detectSplitRom(filePath: string): string[]; /** * Combine split ROM parts into single buffer */ static combineSplitRom(splitParts: string[]): Buffer; /** * Detect interleaved ROM format * Common in older ROM dumps where odd/even bytes are swapped */ static detectInterleavedFormat(data: Buffer): boolean; /** * De-interleave ROM data (swap odd/even bytes) */ static deInterleaveRom(data: Buffer): Buffer; /** * Detect overdumped ROMs (ROMs with extra data beyond the actual ROM size) * Common in older dumps where ROMs were padded to standard sizes */ static detectOverdump(data: Buffer, expectedSize: number): { isOverdumped: boolean; originalSize: number; }; /** * Remove overdump padding from ROM data */ static removeOverdump(data: Buffer, originalSize: number): Buffer; /** * Enhanced ROM parsing with support for special formats */ static parseAdvanced(filePath: string): SNESRom; } //# sourceMappingURL=rom-parser.d.ts.map