forked from DrKylstein/nes-caves
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtodo.txt
108 lines (94 loc) · 2.68 KB
/
todo.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
12 bytes left in page $000
163 bytes left for copy buffer
32 bytes left for stack
20 sprites left in upper table
107 bytes left in pages $300-$700
PRGROM Bank 0 left: 587
PRGROM Bank 1 left: 18
PRGROM Bank 2 left: 1081
PRGROM Bank 3 left: 3525
PRGROM Bank 4 left: 11645
PRGROM Bank 5 left: 16384
PRGROM Bank 6 left: 16384
PRGROM Bank 7 left: 2155
2111*D2116#D
fix twibble stacking
separate farm palette?
powershot pickup sound
gravity pickup sound
stop pickup sound
strength mushroom sound
bullet hit solid wall sound
block explode sound
enemy death sound
enemy not hurt sound
flame sound
pellet shot sound
web shot sound
egg shot sound
egg crack sound
enter level sound
all crystals sound
ball sleep time still too long? randomized?
fix: narrow switch collision changes level 14 dynamic
add twibble animation
add scenery to farm?
long shot:
condense faucet into one entity - it doesn't drip if the player is above,
-which is the most likely case for when it could fall offscreen.
add attenuation command?
re-enable cheats for debug builds?
convert most player variables to entity variables, move player code to player entity?
delete entity speeds table
delete entity initial anim table
store size and shared offset instead of individual offsets in frames?
-faster? denser, can re-use y coordinate on horizontal runs
enter animation
shoot/just fired animation
variable length notes - patch loop point, external decay?
different note volumes
double up channels so that long notes can resume after very short ones
fix: eyemonster walks partially inside walls, can push left eye into negative x
-----------------------------
Alternative entity storage
ROM:
-index to initialization routine ;1*Stored*Levels
-initial tile (x,y) ;2*Stored*Levels
RAM:
for all entities:
-latest tile (x,y) (some null value for dead or uninitialized?) ;2xMax
-index to active entity fields, or null ;1xMax
for active entities:
-sub-tile and? sub-pixel coords? 4.4 ;2xActive
-current routine ptr ;2xActive
-velocity 4.4 x and y ;2xActive
-variables ;2xActive (external physics, so can't reuse velocity, so count+velocity's worth)
-animation index ;1xActive
-frame counter ;1xActive
3xStoredxLevels
3xMax + 10xActive
30 max, 10 active: 90+100 = 190
30 fixed, current (x8) fields: 240
50 saved
save > 1.6 per max entity
[don't! would have to iterate either way, just check for null pointers]use bitmap to track usage of active fields (8 active or 16 active)
32 max, 8 active: 96+80 = 176
32 fixed: 256
80 saved
save 2.5 per entity
break even at 16 active
262v272 for 16/34 vs fixed
mini:
tile x,y, fixed routine index
--
tile x,y 2x
active index 1x
3x
--
fine x,y 2x
x/y velocity 8.0 1x
count 1x
anim 1x
frame 1x
6x
198v272 for 16/34 (-74)