snes-disassembler
Version:
A Super Nintendo (SNES) ROM disassembler for 65816 assembly
99 lines • 2.93 kB
TypeScript
/**
* 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