Video service (SNES backend) and field vblank video ports #48
Loading…
Reference in a new issue
No description provided.
Delete branch "video-service"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Video platform service with SNES backend, and the first ports that touch the hardware (#33).
core/platform/video.h:vid_set_brightness,vid_upload_colors,vid_upload_sprites; contracts documented in the header. Design and the planned operations for the next leaves are indocs/platform.md.core/hw/hw_video.c: performs the original register writes and DMA in the same order with the same values. A per-module upload style record covers the SNES encoding details; only the field style exists. A started DMA completes before the call returns.core/port/port.c): VRAM, CGRAM and OAM mismatches now give the exact word. Ports that declarePORT_WRITES_PPUorPORT_WRITES_DMAalso get their PPU and DMA channel registers compared. Writes a port did not declare are reported as mismatches.kind = "hardware_buffer"entries get*_buffer(g)pointer accessors (sprite_table,field_palettes). The fade direction meaning is fixed (bit 7 = fade out).field_update_brightness,field_upload_palettes,field_upload_sprites(core/game/field/field_screen.c).Evidence (release build, routes = the five committed movies, all ports in shadow):
field/UpdateBrightness,field/TfrPal,field/TfrSprites: shadow 0 mismatch, 0 skipped, 0 fallback; US 74 738 calls each, JP 68 636 each. The shadow now also compares PPU and DMA channel registers for these ports.DMA channel 0 indirect byte 0: 01/00; an undeclared PPU write is reported aswrites PPU registers not declared PORT_WRITES_PPU.0649296): the style record covers every per-module choice, undeclared hardware writes and unreachable upload sources are reported, video contracts moved to the header; plus casts, thefield_base_palettesrename and the JP check on rSpritesHi.Fixes #33. Follow-up: #47 (LakeSnes brightness global).
🤖 Generated with Claude Code