Files
yaze/docs/internal/research/gigaleak-integration.md

116 lines
3.8 KiB
Markdown

# YAZE Gigaleak Integration Plan
How to leverage `~/Code/alttp-gigaleak/` resources to improve YAZE.
## Symbol Database Integration
### Source Files
| File | Contents | Priority |
|------|----------|----------|
| `DISASM/jpdasm/symbols_wram.asm` | Work RAM definitions ($7E0000-$7FFFFF) | HIGH |
| `DISASM/jpdasm/symbols_sram.asm` | Save RAM definitions ($700000-$70FFFF) | HIGH |
| `DISASM/jpdasm/symbols_apu.asm` | Audio processor definitions | MEDIUM |
| `alttp_labels.mlb` | Memory location label database | HIGH |
| `DISASM/jpdasm/registers.asm` | SNES hardware register names | MEDIUM |
### Implementation Ideas
1. **Label Database Feature**
- Parse symbol ASM files into internal label map
- Display official names in hex editor alongside addresses
- Add search-by-label functionality
- Export/import label sets
2. **Memory Viewer Enhancement**
- Color-code RAM regions by purpose (player, enemies, dungeon, etc.)
- Show symbol name tooltips on hover
- Add "Go to symbol" command
3. **Disassembly View**
- Use official labels when displaying ASM
- Cross-reference jumps/calls with symbol names
- Show data structure boundaries
## Graphics Format Research
### Source Files
| File | Contents | Priority |
|------|----------|----------|
| `Good_NEWS_v002/` | Categorized CGX/COL assets | HIGH |
| `CGXViewer/` | C# CGX viewer (reference impl) | HIGH |
| `NEWS_11_hino/NEW-CHR/` | 247 subdirs of original graphics | MEDIUM |
| `tools/yychr20210606/` | Reference sprite editor | LOW |
### Implementation Ideas
1. **CGX Format Support**
- Study CGXViewer.exe source for format spec
- Add CGX import/export to graphics editor
- Support COL palette files alongside CGX
2. **Sprite Sheet Improvements**
- Use Good_NEWS_v002 categorization as template
- Add sprite preview with correct palettes
- Show animation sequences
## Map Format Research
### Source Files
| File | Contents | Priority |
|------|----------|----------|
| `Overworld/Reconstructing_zel_munt_Overworld_in_Tiled.zip` | Tiled project | HIGH |
| `Overworld/*.png` | Annotated world maps | MEDIUM |
| `super donkey/ALTTP_RoomsDate.txt` | Room ID reference | MEDIUM |
| `super donkey/ALTTPProto_RomMap.txt` | ROM address map | HIGH |
### Implementation Ideas
1. **Tiled Integration**
- Study Tiled project structure for map format
- Consider Tiled export/import support
- Use map square IDs from annotated PNGs
2. **Room Editor Enhancement**
- Reference RoomsDate.txt for room metadata
- Use RomMap.txt for address validation
- Add prototype room comparison view
## Japanese Source Terminology
### Key Naming Conventions (from source)
| Japanese | English | Used For |
|----------|---------|----------|
| zel_char | character | Player/NPC sprites |
| zel_mut0 | mutation | State changes |
| zel_ram | RAM | Memory definitions |
| zel_munt | mount/map | Overworld |
| ongen | sound | Audio data |
### Implementation Ideas
1. **Documentation Enhancement**
- Add glossary of Japanese terms to YAZE docs
- Show both English and Japanese names where known
- Reference original source file names in comments
## Roadmap
### Phase 1: Symbol Integration
- [ ] Parse symbols_wram.asm format
- [ ] Create internal label database structure
- [ ] Add label display to hex editor
- [ ] Implement label search
### Phase 2: Graphics Research
- [ ] Reverse engineer CGX format from viewer source
- [ ] Document format in YAZE wiki/docs
- [ ] Prototype CGX import
### Phase 3: Map Research
- [ ] Extract and study Tiled project
- [ ] Document room format findings
- [ ] Consider Tiled compatibility layer
## References
- Gigaleak location: `~/Code/alttp-gigaleak/`
- Main disassembly: `~/Code/alttp-gigaleak/DISASM/jpdasm/`
- Graphics assets: `~/Code/alttp-gigaleak/Good_NEWS_v002/`
- Research notes: `~/Code/alttp-gigaleak/glitter_references.txt`