David Hunter
5d9d315749
epochtv1: Make overscan mask user-configurable
2025-09-06 19:17:32 -07:00
David Hunter
847dbfff6e
epochtv1: More accurate VRAM address bus computation
2025-09-02 23:34:32 -07:00
David Hunter
258442b68c
epochtv1: CPU ownership of VRAM bus is tied to RDB/WRB
...
- Fix WAITB timing to be 1 cycle on writes
- Fix effect of RDB posedge on WAITB
- Cycle timing now verified to match HW for block instruction VRAM copies
2025-08-30 21:32:29 -07:00
David Hunter
13db5a90e4
epochtv1: Re-observe WAITB and implement address-based state machine
2025-08-28 21:49:38 -07:00
David Hunter
91715ed880
epochtv1: Fix OAM copy timing and CPU access during
...
Improved HW testing reveals much simpler behavior than formerly documented.
2025-08-24 22:59:59 -07:00
David Hunter
e4bb5e5960
epochtv1: Add control register shadow copy
2025-08-17 20:50:50 -07:00
David Hunter
9bb4bdee77
epochtv1: Fix shadow terminology
2025-08-17 20:50:50 -07:00
David Hunter
8be787aec3
epochtv1: Registers are write-only
2025-08-17 20:50:50 -07:00
David Hunter
1f848e9070
epochtv1: More accurate BGM / OAM / VRAM access
...
- Don't copy BGM to a shadow copy
- CPU access to BGM and rendering can occur concurrently
- VRAM bus cycle rate is 1/2 pixel clock rate
- CPU access to VRAM zeroes concurrent sprite data read
- WAITB asserts on CSB, de-asserts on VRAM cycle
2025-08-17 20:50:45 -07:00
David Hunter
7f147e954d
epochtv1: render sprites two rows at a time
...
- change the VRAM memory bus interface to match HW
- render background live, mix with OLB scanout
2025-04-11 22:40:34 -07:00
David Hunter
3c2282bd95
epochtv1: Tweak docs
2025-04-06 13:19:52 -07:00
David Hunter
0e2651042e
epochtv1: Document background rendering details
2025-03-23 22:31:36 -07:00
David Hunter
aeac73c482
epochtv1: More sprite rendering
2025-03-23 22:31:35 -07:00
David Hunter
a17d728916
Fix row numbers
2025-02-17 22:23:23 -08:00
David Hunter
cfa1d96faa
epochtv1: Sprite rendering
2025-02-17 20:07:28 -08:00
David Hunter
b3953734e6
epochtv1: Align background and sprites to render window
...
Window alignment now matches real HW.
2025-01-20 21:54:10 -08:00
David Hunter
0fc325cb88
epochtv1: Document screen size, char/sprite render coordinates
2025-01-20 14:13:59 -08:00
David Hunter
01a25d0385
Document uPD1771C pinout
2024-12-29 18:57:59 -08:00
David Hunter
c7086e691c
upd7800: Implement \WAIT input
...
Probing the SCV reveals that the TV-1 asserts \WAIT when accessed,
extending T2 by one T-cycle. This includes uPD1771C accesses (for
which the TV-1 decodes address).
2024-12-27 22:27:47 -08:00
David Hunter
53962b75bc
Document Epoch TV-1 pinout
2024-12-27 21:54:09 -08:00
David Hunter
d87a7e2f1e
epochtv1: Match video timing to actual HW
...
I probed actual HW to learn its video timing. Findings documented in doc/epochtv1.txt.
A visible window is now defined, smaller than the full render window,
preserving the current screen size / aspect ratio.
2024-12-16 22:18:08 -08:00
David Hunter
0656691b8b
epochtv1: Implement ioreg0 bit 2: hides sprites 64-127
...
Two games -- Kung Fu Road and Super Golf -- set this bit to hide half
of the sprites.
2024-09-07 19:49:00 -07:00
David Hunter
4b2b4bf510
scv: Implement cartridge ID and automatic mapper selection
2024-09-02 23:42:59 -07:00
David Hunter
f9846ca5f8
scv: Support 32K ROM + 8K RAM cart
2024-08-31 22:58:44 -07:00
David Hunter
3a2b0f3232
doc: Add developer notes
2024-08-29 22:33:17 -07:00