fix(video): read BG maps and tiles through the 128 KiB VRAM mirror window
This commit is contained in:
parent
8a69e837cf
commit
d7de5f7121
6 changed files with 60 additions and 50 deletions
|
|
@ -66,7 +66,8 @@ Mode 0 supports all four text backgrounds, with these features:
|
|||
- Uncovered pixels use palette entry zero. Green swap runs after composition.
|
||||
|
||||
Mode 0 supports mosaic independently on each background. Rendering errors leave the output buffer unchanged.
|
||||
Background tile or map fetches outside the first 64 KiB return diagnostics.
|
||||
Background tile or map fetches use the 128 KiB VRAM window; offsets `0x18000..0x1ffff`
|
||||
mirror `0x10000..0x17fff`. Addresses at or beyond `0x20000` return diagnostics.
|
||||
This is not a complete picture processing unit (PPU).
|
||||
|
||||
Affine background snapshots support these configurations:
|
||||
|
|
@ -94,7 +95,7 @@ Map sizes are 128×128, 256×256, 512×512, or 1024×1024 pixels.
|
|||
BGCNT bit 13 selects wrapping or transparent edges in Modes 1 and 2. All bitmap modes ignore this bit.
|
||||
Palette index zero is transparent in tiled backgrounds and Mode 4. Mode 3/5 black bitmap pixels remain opaque.
|
||||
Background priorities, sprite composition, and green swap apply after sampling.
|
||||
Map fetches beyond the supported 64 KiB background area still return diagnostics.
|
||||
Map fetches use the same 128 KiB VRAM mirror. Addresses at or beyond `0x20000` return diagnostics.
|
||||
|
||||
**Timing limit:** debug snapshots use one set of programmed registers for the whole image.
|
||||
Row capture instead samples from separate internal X/Y origins.
|
||||
|
|
|
|||
|
|
@ -199,7 +199,7 @@ The replacement BIOS now returns for that empty stream. Full starter-selection p
|
|||
A later [visible-progress probe](research/emerald-visible-progress.md) renders the title screen, logo, NEW GAME/OPTION menu, Prof. Birch scene, and legible dialogue in attract mode.
|
||||
Sparse A/Start taps reach the gender prompt by 4,000 frames and the in-game start menu over the overworld by 12,000 frames without a diagnostic.
|
||||
A 40,000-frame tapped run passed the reported 37,101-frame trap point without a diagnostic; blind taps take a different menu path, so the identical scene is not confirmed visited.
|
||||
A local second-game ROM faults in boot init on a halfword store to ROM mirror `0x09fe2ffe` past its 16 MiB EOF; without save hardware it faults earlier on a Flash unlock write. Both are recorded, not fixed.
|
||||
Text/affine background map and tile fetches now follow the 128 KiB VRAM mirror window instead of faulting past 64 KiB; this fixes a user-reported window diagnostic at map address `0x10d00` after 23,024 captured frames.
|
||||
See [the startup result](research/emerald-reset.md) for the bounded run and next investigation.
|
||||
See [cartridge loading](hardware/cartridge.md) for file limits, step budgets, and exit status.
|
||||
The [ROM suite runner](rom-tests.md) has original regressions and a [pinned public ARM baseline](public-arm-tests.md).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue