Do some stuff

This commit is contained in:
2025-02-18 14:44:08 +01:00
parent 4d3755e2ce
commit 8f46a76fd4
21 changed files with 649 additions and 150 deletions

53
docs/memory.md Normal file
View File

@@ -0,0 +1,53 @@
# Memory Map Documentation
#### PCM Buffer
| Function | Address |
|----------------------------------|----------|
| **PCM Voice Buffer (High Byte)** | `0xDF00` |
| **PCM Voice Buffer (Low Byte)** | `0xDF01` |
If you want to write to both, write low byte first
#### Voice Generators
| Voice | Volume | Waveform | Phase | Frequency (High Byte, write last) | Frequency (Low Byte) |
|-------------|----------|----------|----------|-----------------------------------|----------------------|
| **Voice 0** | `0xDF02` | `0xDF03` | `0xDF04` | `0xDF05` | `0xDF06` |
| **Voice 1** | `0xDF07` | `0xDF08` | `0xDF09` | `0xDF0A` | `0xDF0B` |
| **Voice 2** | `0xDF0C` | `0xDF0D` | `0xDF0E` | `0xDF0F` | `0xDF10` |
#### Display Controls
| Display | Address |
|---------------|----------|
| **Display A** | `0xDF12` |
| **Display B** | `0xDF13` |
| **Display C** | `0xDF14` |
| **Display D** | `0xDF15` |
| **Display E** | `0xDF16` |
| **Display F** | `0xDF17` |
| **Display G** | `0xDF18` |
| **Display H** | `0xDF19` |
#### Switch Inputs
| Switch Bank | First 2 rows Address | Last 2 rows Address |
|----------------|----------------------|---------------------|
| **Switches A** | `0xDF20` | `0xDF21` |
| **Switches B** | `0xDF22` | `0xDF23` |
| **Switches C** | `0xDF24` | `0xDF25` |
| **Switches D** | `0xDF26` | `0xDF27` |
### GPU Memory
- **Base Address:** `0xEF00`
- **Size:** `160 × 160` pixels
- **End Address:** `0xEF00 + (160 × 160) = GPU_END`
- **Color Encoding:**
- Red: Bits `[7:5]` scaled (0-7 → 0-255)
- Green: Bits `[4:2]` scaled (0-7 → 0-255)
- Blue: Bits `[1:0]` scaled (0-3 → 0-255)
- Pixels are stored in a texture-compatible `RGBA8888` format.
## Memory Operations