-
Notifications
You must be signed in to change notification settings - Fork 9
/
plans.txt
85 lines (75 loc) · 3.08 KB
/
plans.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
Architecture ideas:
- Data layout should be more intentional, to understand how things
are colliding, e.g.:
* Jump tables shouldn't be embedded in code, or should be organized
as jumps instead of addresses (as in the opcode table).
* The most important things could be in memory that never gets evicted
(besides the register file). The biggest issue is dealing with the
random access pattern of the NES ROM. It might be possible to spread
that out to leave gaps in physical address space.
* Note: I did some experiments with moving data and cold code away to
better fit hot code in 16K ICache (earlier I'd believed it was 32K, oops),
but this seemed to have zero or a small negative effect, so I abandoned it.
To understand this better I will need to e.g. modify cen64 to profile
cache misses.
- Rework the scheduler so the CPU can run more than 1 instruction ahead,
without having to yield constantly to allow other tasks to set interrupts.
- dlists should be generated on the RSP to send to the RDP. This will
make some mid-frame effects easier.
- If I want expansion audio, the RSP scheduler needs to swap ucode, and/or
I have to optimize for space.
- The RSP ought to handle translating the palette to RGB, and it can do
deemphasis and greyscale at the same time.
Missing features needed for better accuracy:
- Mid-frame palette changes
- Mid-scanline fine X changes
- BG-accurate SP0 hit
- Bug-accurate Sprite overflow
- Read of PPU activity
- Palette deemphasis, greyscale
- Proper screen size for PAL
- Video signal parameters (slightly too narrow? starts too late?)
Desired features:
- Gameshark version
- 4 player via Four Score
- Control remapping
- Arkanoid paddle
- Zapper
- Reset, power cycle
- PAL N64 mode
- Screenshots
- Famicom Disk System
- More mappers
- NSF player (with mapper 31 this is pretty close)
- Save to Controller Pak
- Savestate (Expansion Pak, persistent)
- Unlock framerate, fast-forward
- Some NES 2.0 support? (submapper, CHRRAM size, etc)
Desired mappers:
- 111 (homebrew, memblers)
- 5 (MMC5 beyond Castlevania 3, e.g. Uncharted Waters, SimCity)
- 24 (VRC6a, Akumajou Densetsu)
- 25 (VRC6b, Madara etc)
- 64 (Tengen Rambo-1)
- 68 (After Burner)
- 69 (Sunsoft FME-7, Gimmick!, etc)
Known bugs:
* Profiling is wonky in PAL mode
* Audio
- Pop when shooting sword in Zelda is irritatingly loud
- Some glitching in Mega Man 2 intro (check hw?)
- No Namco 163 extra channels
* Crashes
- Wally Bear and the No! Gang hangs on boot
* Mid-frame palette change
- Bill & Ted - dialog boxes
- Wizards & Warriors - status bar
* Timing
- Delaying all interrupts by one instruction is not particularly
well-motivated, might cause some of these issues below.
- DPCM Letterbox - First line is scrolled wrong (need separate Y inc and X reset? IRQ timing?)
- Battletoads - Small screen bounce as the walkers phase in
- Battletoads - Flicker at bottom of status bar
- Wizards & Warriors III - Wrong line on title screen
- Wizards & Warriors III - Screen split bounce at intro castle scene
- Big Nose Freaks Out - "Select Game Type" screen bounce