UNPKG

snes-disassembler

Version:

A Super Nintendo (SNES) ROM disassembler for 65816 assembly

99 lines 2.93 kB
/** * Enhanced SNES Disassembly Engine * * Implements enhanced disassembly algorithms using MCP server insights * for improved bank-aware addressing, function detection, and pattern recognition. */ import { SNESDisassembler } from './disassembler'; import { SNESRom } from './rom-parser'; export interface EnhancedDisassemblyOptions { bankAware: boolean; detectFunctions: boolean; generateLabels: boolean; extractVectors: boolean; } export interface AnalysisOptions { controlFlowAnalysis: boolean; functionDetection: boolean; dataStructureRecognition: boolean; crossReferenceGeneration: boolean; gamePatternRecognition: boolean; } export interface ROMAnalysis { vectors: Array<{ name: string; address: number; target?: number; }>; functions: Array<{ name: string; address: number; size: number; type: string; description?: string; }>; dataRegions: Array<{ start: number; end: number; size: number; type: string; }>; bankLayout: Array<{ bank: number; start: number; end: number; type: string; }>; } export interface DisassemblyStats { functionsDetected: number; crossReferences: number; labelsGenerated: number; bankTransitions: number; } export declare class EnhancedDisassemblyEngine extends SNESDisassembler { private options; private analysisOptions; private bankHandler; private analysis; private stats; private enhancedCache; private cachedRomInfo; constructor(romFile: string, options: EnhancedDisassemblyOptions); setAnalysisOptions(options: AnalysisOptions): void; getRomInfo(): SNESRom; analyze(): { functions: number[]; data: number[]; }; private performEnhancedAnalysis; private extractInterruptVectors; private extractVectorsFallback; private analyzeBankLayout; private classifyBankContent; private isLikelyInstruction; private detectFunctions; private findFunctionsInChunk; private isLikelyFunctionEntry; private estimateFunctionSize; private estimateInstructionSize; private generateFunctionLabels; private analyzeFunctionContent; private analyzeDataStructures; private isLikelyPointerTable; private getPointerTableSize; private findGraphicsDataRegions; private isLikelyGraphicsData; private findGraphicsRegionEnd; private recognizeGamePatterns; private recognizeCommonPatterns; private findDMAPatterns; private findPPUPatterns; private findRegisterAccess; private findGameLoopPatterns; performROMAnalysis(): ROMAnalysis; getDisassemblyStats(): DisassemblyStats; disassemble(startAddress?: number, endAddress?: number): any[]; private enhanceWithBankInfo; } //# sourceMappingURL=enhanced-disassembly-engine.d.ts.map