UNPKG

snes-disassembler

Version:

A Super Nintendo (SNES) ROM disassembler for 65816 assembly

131 lines 4.65 kB
/** * AI-Powered Pattern Recognition for SNES Asset Extraction * * This module provides GenAI-enhanced pattern recognition capabilities * to make asset extraction generic across all SNES games, avoiding * game-specific implementations. */ export interface PatternConfidence { type: string; confidence: number; metadata?: any; } export interface GraphicsClassification { type: 'sprite' | 'tile' | 'background' | 'ui' | 'font' | 'palette'; confidence: number; dimensions?: { width: number; height: number; }; format?: '2bpp' | '4bpp' | '8bpp'; } export interface AudioClassification { type: 'brr_sample' | 'sequence' | 'spc_code' | 'instrument' | 'sfx' | 'voice' | 'percussion'; confidence: number; sampleRate?: number; channels?: number; encoding?: 'brr' | 'raw' | 'compressed'; category?: 'instrument' | 'sfx' | 'voice' | 'percussion' | 'ambient'; instrumentType?: 'piano' | 'strings' | 'brass' | 'woodwind' | 'synth' | 'drum' | 'unknown'; voiceType?: 'male' | 'female' | 'child' | 'narrator' | 'unknown'; sfxType?: 'impact' | 'environment' | 'ui' | 'magic' | 'mechanical' | 'unknown'; loopDetected?: boolean; boundaryQuality?: number; musicPattern?: { melodyComplexity: number; rhythmPattern: string; keySignature?: string; tempo?: number; }; } export interface TextClassification { type: 'dialogue' | 'menu' | 'item_name' | 'credits' | 'code_comment'; confidence: number; encoding: 'ascii' | 'shift-jis' | 'custom' | 'compressed'; compression?: 'dte' | 'dictionary' | 'rle' | 'lz77' | 'none'; } export interface CompressionInfo { type: 'RLE' | 'LZ77' | 'LZSS' | 'DTE' | 'dictionary' | 'huffman' | 'none'; confidence: number; blockSize?: number; dictionarySize?: number; decompressHint?: string; } /** * AI-Enhanced Pattern Recognition Engine * Uses multiple machine learning approaches for robust pattern detection */ export declare class AIPatternRecognizer { private modelPath?; private graphicsClassifier?; private sequenceClassifier?; private compressionDetector?; constructor(modelPath?: string | undefined); /** * Classify graphics data using Vision Transformer approach */ classifyGraphicsData(data: Uint8Array, format: '2bpp' | '4bpp' | '8bpp'): Promise<GraphicsClassification>; /** * Classify audio data using sequence-based transformers with enhanced BRR sample analysis */ classifyAudioData(data: Uint8Array, offset?: number): Promise<AudioClassification>; /** * Classify text data and detect encoding/compression */ classifyTextData(data: Uint8Array, offset?: number): Promise<TextClassification>; /** * Detect compression patterns in binary data */ detectCompression(data: Uint8Array): Promise<CompressionInfo>; /** * Comprehensive data classification combining all AI approaches */ classifyDataRegion(data: Uint8Array, offset: number, length: number): Promise<{ graphics?: GraphicsClassification; audio?: AudioClassification; text?: TextClassification; compression?: CompressionInfo; mostLikely: 'graphics' | 'audio' | 'text' | 'code' | 'unknown'; confidence: number; }>; private initializeModels; private convertTileDataToPatches; private heuristicGraphicsClassification; /** * Enhanced heuristic audio classification with detailed sample type detection */ private enhancedHeuristicAudioClassification; /** * Enhance AI classification results with additional pattern analysis */ private enhanceAudioClassification; private heuristicTextClassification; private statisticalCompressionDetection; private calculateEntropy; private calculateRepetitionScore; private detectCommonPatterns; private detectSpritePatterns; private detectCharacterPatterns; private detectTexturePatterns; private calculateVariation; private hasEdgePattern; private hasCharacterLikePattern; private detectBRRPattern; private detectSPCCodePattern; private detectSequencePattern; private detectDictionaryCompression; private detectDTECompression; /** * Detect sample type characteristics for audio classification */ private detectSampleType; /** * Analyze audio boundaries for quality assessment */ private heuristicAudioBoundaries; /** * Detect music pattern characteristics */ private detectMusicPattern; } //# sourceMappingURL=ai-pattern-recognition.d.ts.map