-
Notifications
You must be signed in to change notification settings - Fork 0
/
_dksnes.txt
157 lines (118 loc) · 2.48 KB
/
_dksnes.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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
To do
-----
Fix HUD in two-player mode
Misc
----
The first attract mode (as well as presumably all others) acts different, no doubt due to the RNG pulling different numbers. It seems to act OK, though.
Consider adding high score preservation as an extra feature.
Possible sound tools/engines:
* snesmod
* xm2snes (I think there's a tool by this name)
* SNES GSS
List of NES hardware register writes according to the logger
------------------------------------------------------------
We've logged only writes, not reads!
[sorted by address]
PC for each of these is after the write.
reset
PC: C7A5
PC: C7DF
init video
PC: C7EC
PC: C7F3
PC: C7FA
PC: C7FF
NMI
PC: C867
PC: C86E
PC: C873
PC: C890
PC: C8EF
routine at C8F3 (writes $4015, both times)
PC: C8FB
PC: C911
routine at C9AD (writes $4015)
PC: CA22
routine at CE7C (writes $4015)
PC: CE88
routine at D19A (writes PPUMASK)
PC: D1A1
VRAM clear routine
PC: F1BE
PC: F1C3
PC: F1C8
PC: F1D1
PC: F1DC
PC: F1E1
PC: F1E8
VRAM copy/fill routine at F1EC
PC: F1EF
PC: F1F5
PC: F205
PC: F219
PC: F236
PC: F23B
strobe controllers
PC: F513
PC: F51A
routine at FA48 (called in NMI)
PC: FA4D
routine at FA8F (sound)
PC: FA98
PC: FA9B
routine at FA9C (sound)
PC: FAAA
PC: FAB2
routine at FAB3 (sound)
PC: FAB6
PC: FABD
routine at FAE0 (sound)
PC: FAE5
routine at FB7E (sound)
PC: FBAA
PC: FBB2
routine at FBB7 (sound)
PC: FBE0
PC: FBE4
PC: FBF0
routine at FC19 (sound)
PC: FC5D
PC: FC62
PC: FC8E
PC: FCD9
PC: FCE9
PC: FCEE
PC: FD05
routine at FD62 (sound)
PC: FE03
PC: FE08
routine at FE09 (sound)
PC: FE31
These should cover almost the entire game.
Things I probably didn't test:
* Time running out (plays sound)
* Pausing (plays sound)
* Two-player mode ("PLAYER I" and "PLAYER II" screens)
* Game over message
Writes to PPUCTRL
-----------------
These are the actual addresses of STA PPUCTRL instructions:
C7A2 [in init code; bypassed by our init routine]
C7DC
C7E9
C864
C8EC [at end of vblank; we should skip this]
F1BB
F202
Writes to PPUMASK
-----------------
These are the actual addresses of STA PPUMASK instructions:
C7F0
C88D
D19E
Reads from PPUSTATUS
--------------------
These are the actual addresses of instructions:
C7A8 (read into A; in init code; bypassed by our init routine)
F1B4 (read into A)
F228 (read into X)