Joined: 10/29/2014
Posts: 176
Location: Bavaria, Germany
Some general information about the game (for the U.S. version, but some things might carry over to the J. version):
(Note that everything here is subject to suspicion until sufficient variation of experiments and tests involving different objects, events, states or combinations of these have happened.)
- - -
It seems the only buttons that have any effect are Left, Right, Up, Down, A, B, Start. Or in other words, Select, X, Y, L, R (so far) seem to not have any influence on anything within the game, which might greatly reduce the size of the relevant state space of possible input patterns.
Other than this, it seems that in general, every 2nd frame is a lag frame (making this essentially a (roughly) 30 fps game, considering that it technically runs at (roughly) 60 fps, which might be the reason for why the stability of this game for keeping input future input script parts synchronizing upon changing earlier parts is very high, and seems to allow to optimize every stage separately and then just chain those partial scripts together.
On top of this, the game apparently shows no ''RNG behavior'', which makes it seem like an ideal (since still not too simple) game to get practiced in lsnes TASing a platformer game ^_^.
- - -
Passwords for Level Warps:
000 -> 1-1
732 -> 2-1
354 -> 3-1
116 -> 4-1
988 -> 5-1
470 -> 6-1
- - -
Spanky's attacks:
Blue Bubble - Baseball
Green Bubble - Soccer Ball
Yellow Bubble - Volley Ball
Orange Bubble - Basket Ball
- - -
In the following there are listed: The number of ''naturally'' existing (visible) keys per stage (outside of bonus stages), and the number of exits (which apparently is always either 1 or 2, depending on if there is an exit leading to a bonus stage or not) together with how many keys that they individually, apparently unavoidably cost (and their costs seem to be fixed, as opposed to the bonus stages' key costs), for all the 50 required stages.
Bonus stage exits cost 0 keys if one has 0 or 1 keys at the point of entering a bonus stage, and costs 1 key if one has 2 or 3 keys (which should cover most scenarios, but the general rule is to cut your key count in half and round downwards to determine the key costs). So mostly, one either might want to take 0 keys and has 0 afterwards, or one takes 1 key and has 1 afterwards (since taking 2 keys would lead to 1 key afterwards aswell, but should take longer), or takes 3 keys and has 2 afterwards.
I currently assume there exist no invisible or otherwise hard to detect (bonus) exits triggerable somewhere within stages (it seems an out of bounds area of stages either doesn't exist or hasn't been found to be accessible as of yet), and that every exit carries the player over to either the very next stage or next bonus stage (provided such exists), instead of ''wrong-warping'' the player to another place. The nomenclature for the bonus stages is something that I just made up for consistency and a way to refer to them individually.
1-1: 2 keys, 2-key exit, -
1-2: 3 keys, 3-key exit, 1 bonus exit
(Optional bonus stage 1-2.5)
1-3: 1 key, 1-key exit, -
1-4: 1 key, 1-key exit, -
1-5: 2 keys, 2-key exit, -
1-6: 1 key, 1-key exit, -
1-7: 2 keys, 2-key exit, -
1-8: 2 keys, 2-key exit, 1 bonus exit
(Optional bonus stage 1-8.5)
1-9: 1 key, 1-key exit, 1 bonus exit
(Optional bonus stage 1-9.5)
1-10: 2 keys, 2-key exit, -
Apple boss stage. [17 keys in total, and 17 forced key costs in total, for this section.]
2-1: 2 keys, 2-key exit, -
2-2: 1 key, 1-key exit, -
2-3: 3 keys, 2-key exit, - [first stage (among 8 stages) to have a different number (i.e. 1 more) of keys than needed for its regular exit]
2-4: 3 keys, 3-key exit, 1 bonus exit
(Optional bonus stage 2-4.5)
2-5: 4 keys, 4-key exit, 1 bonus exit
(Optional bonus stage 2-5.5)
2-6: 3 keys, 3-key exit, -
2-7: 3 keys, 3-key exit, -
2-8: 3 keys, 3-key exit, -
2-9: 4 keys, 3-key exit, 1 bonus exit
(Optional bonus stage 2-9.5)
2-10: 5 keys, 5-key exit, -
Pineapple boss stage. [31 keys in total, and 29 forced key costs in total, for this section.]
3-1: 3 keys, 3-key exit, -
3-2: 3 keys, 3-key exit, 1 bonus exit
(Optional bonus stage 3-2.5)
3-3: 4 keys, 4-key exit, -
3-4: 4 keys, 4-key exit, -
3-5: 4 keys, 4-key exit, -
3-6: 3 keys, 3-key exit, -
3-7: 4 keys, 3-key exit, 1 bonus exit
(Optional bonus stage 3-7.5)
3-8: 3 keys, 3-key exit, -
3-9: 4 keys, 4-key exit, 1 bonus exit
(Optional bonus stage 3-9.5)
3-10: 3 keys, 3-key exit, -
Melon boss stage. [35 keys in total, and 34 forced key costs in total, for this section.]
4-1: 2 keys, 2-key exit, -
4-2: 3 keys, 3-key exit, -
4-3: 3 keys, 3-key exit, -
4-4: 4 keys, 3-key exit, -
4-5: 6 keys, 5-key exit, -
4-6: 2 keys, 2-key exit, -
4-7: 3 keys, 2-key exit, 1 bonus exit
(Optional bonus stage 4-7.5)
4-8: 4 keys, 4-key exit, 1 bonus exit
(Optional bonus stage 4-8.5)
4-9: 3 keys, 3-key exit, -
4-10: 4 keys, 3-key exit, 1 bonus exit
(Optional bonus stage 4-10.5)
Peach boss stage. [34 keys in total, and 30 forced key costs in total, for this section.]
5-1: 4 keys, 4-key exit, -
5-2: 2 keys, 2-key exit, -
5-3: 3 keys, 3-key exit, -
5-4: 3 keys, 3-key exit, -
5-5: 3 keys, 3-key exit, -
5-6: 4 keys, 3-key exit, 1 bonus exit
(Optional bonus stage 5-6.5)
5-7: 5 keys, 5-key exit, -
5-8: 3 keys, 3-key exit, 1 bonus exit
(Optional bonus stage 5-8.5)
5-9: 4 keys, 4-key exit, 1 bonus exit
(Optional bonus stage 5-9.5)
5-10: 3 keys, 3-key exit, -
Grape boss stage. [34 keys in total, and 33 forced key costs in total, for this section.]
Apple boss stage.
Pineapple boss stage.
Melon boss stage.
Peach boss stage.
Grape boss stage.
Witch boss stage.
Credits. [151 available keys in total, and 143 forced key costs in total.]
- - -
Somewhat structured (and more or less ordered by an expected relevance in each section) memory address information (in few cases, there possibly might maybe have happened an incorrect interpretation of what memory addresses' behaviors represent) with notes, and my current RAM Watch: (Thanks to Lioran for introducing me into the memory search process, and feos (and possible other, previous editors) for further information on this page: http://tasvideos.org/MemorySearch.html )
(Values below mostly refer to the hexadecimal expression, the parts with an initial ''!'' are added to the RAM Watch.)
*Spanky's stats:
!7E1129 is Spanky's screen position dependent X position.
-> It seems that during free sideways movement, Spanky's X speed when walking is constantly 3 while it is constantly 2 during jumps or when falling.
!7E10A9 is Spanky's screen-position dependent Y position.
-> Spanky's Y position (screen-dependent) seems to develope during (full) jumps like this: -(6,5,5,5,4,5,3,4,3,3,2,3,2,1,2,1,0,1,0), +(1,0,1,1,2,...)
!7E1029 keeps track of the direction Spanky is facing (it is 01 if Spanky faces left, and 02 if Spanky faces right).
*Projectiles:
!7E1022, 7E1023, 7E1024, 7E1025, 7E1026 keep track of Spanky's projectile existences, from the first to the 5th. Their values are 00 if the corresponding projectile doesn't exit, and are 03 if it exists. The 1st memory address keeps track of bubbles, and when bubbles burst, all 5 memory addresses will be 03 and keep track of their respective projectile in the soccerball attack and basketball attack case, and in the volleyball attack's case, only the 1st to 4th memory addresses are used and are 03 if they exist.
-> If a baseball exists, then the 2nd memory address will slowly switch between the values 03 and 18 to keep track of its existence.
!7E1122, 7E1123, 7E1124, 7E1125, 7E1126 are the screen-position dependent X positions of Spanky's 5 projectiles (the 1st keeps track of bubbles, the 2nd keeps track of the baseball).
!7E1122 is the bubble's screen-position dependent X position (and when a bubble leaves the screen and vanishes, the value gets stuck at its last value before vanishing, and the value jumps/gets updated when a new bubble is created).
!7E10A2 is the bubble's (or rather 1st projectile's) screen-position dependent Y position (the lower in the screen, the higher the value, and when it leaves the screen through the bottom, the value wraps around from FF to 00), and when Spanky gets hit while a bubble is out, or when a bubble bursts or when it leaves the screen, its last Y position value stays in the memory address.
!7E10A3 keeps track of the baseball's (or rather 2nd projectile's) screen-position dependent Y position the same way.
!7E10A4, 7E10A5, 7E10A6 keep track of the screen-position dependent Y positions for the 3rd to 5th Spanky projectiles the same way (for soccerballs, volleyballs and basketballs).
!7E10A0 is 00 and updates to the screen-dependent Y position at which a bubble bursts (and is then stuck at that value unless it updates again due to another bursting bubble).
*Enemies:
!7E1138, 7E1139, 7E113A, 7E113B, 7E113C and 7E113D are definitely the X positions of enemies relative to the screen position (range is in hexadecimal from 00 at the left end of the screen to FF at the right end of the screen, if enemies go beyond that, there will be jumps between 00 and FF), and they work as 1 byte each.
-> Memory addresses near these might not be used in the first level but might be X positions of other enemies.
-> Once an enemy dies, the corresponding memory address value gets stuck at its last value before the enemy died (and probably is updated again once a new level is loaded).
-> It seems the apple boss (consisting of the eyes possibly tracked by 7E1138 and the fruit tracked by 7E1139) and pineapple boss (consisting of the glasses possibly tracked by 7E1138 and the fruit possibly tracked by 7E1139) use the first 2 of these memory addresses aswell (and hence, the bosses probably consist of multiple enemies).
-> The small Witch uses the memory address 7E113D for its X position aswell.
!7E113E is the screen-position dependent X position of the Witch (for at least her 1st form) and the Melon, Peach and Grape (and here, 7E113D seems to keep track of the Peach aswell but apparently updates only during phases when it gets hurt), and it seems the first small peach's X position is being kept track of by 7E1138, and the 2nd one's by 7E1139 (and it might go on like this).
!7E10B8, 7E10B9, 7E10BA, 7E10BB, 7E10BC, 7E10BD keep track of the screen-position dependent Y positions of the top left, top right, center left, center right, bottom left, and bottom right enemy (respectively, and in this order) in 1-1.
-> Memory addresses nearby might keep track of Y positions of other/more enemies.
-> It seems the apple boss (consisting of the eyes tracked by 7E10B8 and the fruit tracked by 7E10B9) and pineapple boss (consisting of the glasses possibly tracked by 7E10B8 and the fruit possibly tracked by 7E10B9) use the first 2 of these memory addresses aswell (and hence, the bosses probably consist of multiple enemies).
-> The small Witch uses the memory address 7E10BD for its Y position aswell.
!7E10BE is the screen-position dependent Y position of the Witch (for at least her 1st form) and the Melon, Peach and Grape (and here, 7E10BD seems to keep track of the Peach aswell but apparently updates only during phases when it gets hurt), and it seems the first small peach's Y position is being kept track of by 7E10B8, and the 2nd one's by 7E10B9 (and it might go on like this).
!7E100B seems to be 04 at the beginning of a level, and increases by 01 each time an enemy is killed and its death animation finished.
-> Its behavior is not quite understood yet, and it seems 7E100A keeps track of the same or something related/similar, or the highscore is actually being kept track of?
7E11B0 and 7E11B5 (which also probably correspond to the enemy numbers, so it should work the same way for 7E11B1, 7E11B2, 7E11B3, 7E11B4) have the value 00 until the top left or bottom right enemy grabs a key (or maybe also other objects), and reset when a new level loads.
-> Nearby memory addresses probably have similar function.
7E1030 and 7E1035 jump from 00 to 31 when the top or bottom enemy in 1-1 grab a key, and jump back to 00 the moment they die and lose the key.
-> For other enemy numbers the memory addresses nearby probably keep track of the same.
-> Maybe there is different values for different things that enemies can carry, aswell.
7E1038, 7E1039, 7E103A, 7E103B, 7E103C, 7E103D seem to keep track of enemy behavior, for the 6 enemies in 1-1, and if the corresponding enemy dies, the value jumps back to 00.
The 1st value corresponds to the enemy that is initially at the top left, the 2nd value corresponds to the enemy that is initially at the top right.
The 3rd value corresponds to the enemy that is initially at the center left, the 4th value corresponds to the enemy that is initially at the center right.
The 5th value corresponds to the enemy that is initially at the bottom left, the 6th value corresponds to the enemy that is initially at the bottom right.
-> When an enemy walks to the right, the values slowly switch from 71 to 6D then to 6F, then to 6D and then loop back to 71 where it repeats; for enemies walking to the left, the same happens, except with the values 70, then 6C, then 6E, then 6C, and then looping back to 70 and repeating.
-> At the beginning of 1-1, the left facing enemies have the value 7A, and the right facing ones 7B during their pose with the closed eyes, which is the same animation as when they land after falling.
-> When the top enemy grabs the key, the value jumps to 73 then 7D for the key grab animation (while facing right).
-> Memory addresses nearby might have similar functions assigned to them for more/other enemies.
-> When a left facing enemy falls, the value is 78, and for right facing enemies it is 79.
7E10AA changes when a lot of enemies are killed (with e.g. basketballs), and might be related to the score or multi-kill bonus stuff?
*Bosses:
!7E1AB9 (1 byte) seems to show all bosses' health except for the boss rush part.
For the boss rush part, the health of the bosses seem to be given by the following memory addresses:
!1st boss (Apple): 7E1AB9
!2nd boss (Pineapple): 7E1ABA
!3rd boss (Melon): 7E1ABB
!4th boss (Peach): 7E1ABC
!5th boss (Grape): 7E1ABD
!6th boss (Witch): 7E1ABE
The memory address 8263775 seems to be a delay timer whose value jumps from 0 to 160 (or A0 in hexadecimal) as soon as a boss' X and Y positions stop being updated (which is also close to the time when the boss coins start appearing) after it was killed, and then counts down to 0 with stepsize of 1 every 2 frames, and as soon as it reaches 0, Spanky's victory dance animation starts.
*Other objects:
!7E115F is the exit's screen-position dependent X position.
!7E1015 seems to be 04 at the beginning of a level, and increases by 01 each time Spanky touches/collects a key, and the value resets back to 00 when a new level is loaded and then jumps to a new value (it probably reduces the amount of keys depending on the previous level's exit key costs).
7E1160 and 7E1161 are the screen-position dependent X positions of the bottom and top key (and further memory addresses probably correspond to further keys/items) when such is flying towards Spanky in 1-1.
7E1130, 7E1135 are the screen position dependent X position values of the upper and the lower key in 1-1, and their values stay at their corresponding screen-position dependent x positions 90 and 00 until an enemy picks them up from which point on their X position is kept track of (including when the enemy is stunned) until the enemy that carries it is killed, from where on the value gets stuck at the last value it had before the enemy was killed.
7E1060, and 7E1061 have the value 31 as long as the upper and lower key (respectively) in 1-1 are neither collected by Spanky nor carried by enemies, otherwise their value is 00.
The memory addresses from 7E1081 to 7E1086 are 00 at the beginning of a level and all jump to 60 (and stay there until the end of a level) as soon as the game is paused.
7E10DF, 7E10E0, 7E10E1 keep track of (in this order:) the screen-position dependent Y positions of the exit, the upper key, and the lower key in 1-5 (and further memory addresses probably have similar functions for other/more objects).
-> Nearby memory addresses might keep track of similar objects' Y positions.
-> It seems when a level starts, the keys bounce a bit up and down at the beginning when they are placed.
The memory addresses from 7E1101 to 7E1106 are always 00 at the beginning of a level, until the game is paused, which lets them jump to 70, 78, 80, 88, 90, and 98, respectively.
7E117D is 00, but jumps to 58 for a short while as soon as an exit is entered.
7E1194 is usually at 04, but starts cycling from 00 through 0E with step-size 02 once the number of keys required for a level are collected, until the next level starts.
The memory address 8257649 seems to be some kind of game time frame counter since it increases from 0 by 1 every 2 frames of which 1 frame is a lag frame and loops back to 0 after reaching 255, and because it seems to not count up during load times.
- - -
Resources:
A guide on GameFAQs:
https://www.gamefaqs.com/snes/588677-spankys-quest/faqs/10178
The currently published TAS with its submission text and discussion:
http://tasvideos.org/1798M.htmlhttp://tasvideos.org/3122S.htmlhttp://tasvideos.org/forum/viewtopic.php?t=11120
(VGMaps, http://www.vgmaps.com/ , seems to not have maps for the stages of this game.)
The current speedrun WR by Lioran, who's Spanky's Quest runs introduced me into this game. His boss fight strategies (which basically consist of spamming baseballs due to their high damage output per second rather than slowly charging up bubbles for ''stronger'' attacks) and route differences turned out to be far superior to what the TAS does.
https://www.twitch.tv/lioran/v/43444409
If one adapts the timing methods to each other (Lioran's run with the clock starting when inputs start being capable of moving Spanky around in 1-1, and cutting off this time with the usual TAS-timing method determined by the last input, one arrives at roughly 20:47.7, and adding the initial time from power on to when the clock starts, i.e. roughly 1:40, makes it 22:27.7, which is roughly 1 minute and 5 seconds faster than 23:32.78, which is the time of the currently published TAS. And of course, this discrepancy screams for a change.
Benchmarks (in frame counts, together with the relevant inputs at those frames, and frame count differences in brackets between them) from the currently published TAS:
[Start-up phase and title screen]
(336)
337: Start [title screen updating]
(4)
341: Start [triggering the intro]
(5842)
6183: Up [1-1 ends]
(859)
7042: Up [1-2 ends]
(418)
7460: Up [bonus stage 1-2.5 ends]
(629)
8089: Up [1-3 ends]
(755)
8844: Up [1-4 ends]
(369)
9213: Up [1-5 ends]
(530)
9743: Up [1-6 ends]
(634)
10377: Up [1-7 ends]
(655)
11032: Up [1-8 ends]
(510)
11542: Up [1-9 ends]
(804)
12346: Up [1-10 ends]
(2623)
14969: [Spanky's 1st frame of the victory dance]
(982)
15951: Up [2-1 ends]
(686)
16637: Up [2-2 ends]
(1649)
18286: Up [2-3 ends]
(764)
19050: Up [2-4 ends]
(829)
19879: Up [2-5 ends]
(428)
20307: Up [bonus stage 2-5.5 ends]
(785)
21092: Up [2-6 ends]
(1121)
22213: Up [2-7 ends]
(732)
22945: Up [2-8 ends]
(718)
23663: Up [2-9 ends]
(427)
24090: Up [bonus stage 2-9.5 ends]
(1050)
25140: Up [2-10 ends]
(2653)
27793: [Spanky's 1st frame of the victory dance]
(1065)
28858: Up [3-1 ends]
(584)
29442: Up [3-2 ends]
(429)
29871: Up [bonus stage 3-2.5 ends]
(773)
30644: Up [3-3 ends]
(769)
31413: Up [3-4 ends]
(790)
32203: Up [3-5 ends]
(1110)
33313: Up [3-6 ends]
(597)
33910: Up [3-7 ends]
(429)
34339: Up [bonus stage 3-7.5 ends]
(784)
35123: Up [3-8 ends]
(889)
36012: Up [3-9 ends]
(428)
36440: Up [bonus stage 3-9.5 ends]
(1378)
37818: Up [3-10 ends]
(2642)
40460: [Spanky's 1st frame of the victory dance]
(1071)
41531: Up [4-1 ends]
(1020)
42551: Up [4-2 ends]
(445)
42996: Up [4-3 ends]
(1129)
44125: Up [4-4 ends]
(1257)
45382: Up [4-5 ends]
(697)
46079: Up [4-6 ends]
(634)
46713: Up [4-7 ends]
(997)
47710: Up [4-8 ends]
(427)
48137: Up [bonus stage 4-8.5 ends]
(1047)
49184: Up [4-9 ends]
(1026)
50210: Up [4-10 ends]
(2774)
52984: [Spanky's 1st frame of the victory dance]
(1659)
54643: Up [5-1 ends]
(400)
55043: Up [5-2 ends]
(1234)
56277: Up [5-3 ends]
(769)
57046: Up [5-4 ends]
(656)
57702: Up [5-5 ends]
(1154)
58856: Up [5-6 ends]
(423)
59279: Up [bonus stage 5-6.5 ends]
(1011)
60290: Up [5-7 ends]
(832)
61122: Up [5-8 ends]
(423)
61545: Up [bonus stage 5-8.5 ends]
(725)
62270: Up [5-9 ends]
(423)
62693: Up [bonus stage 5-9.5 ends]
(899)
63592: Up [5-10 ends]
(2661)
66253: [Spanky's 1st frame of the victory dance]
(2904)
69157: [Spanky's 1st frame of the victory dance]
(2765)
71922: [Spanky's 1st frame of the victory dance]
(2876)
74798: [Spanky's 1st frame of the victory dance]
(3027)
77825: [Spanky's 1st frame of the victory dance]
(2921)
80746: [Spanky's 1st frame of the victory dance
(4019)
84765: [frame of last input]
- - -
About the any% branch TASing process:
- - -
Bosses:
I made separate lsnes movies (provided below) to somewhat optimized boss fights (of which I assume that mostly a few frames can be further shaved off, provided one keeps a similar strategy, but it still remains to look into different approaches entirely) using the input editor, and the following is the current results:
Every boss except the Witch is fought (at least) twice during the progress towards the credits, and the exact same input segments should work out for both boss battles in all of the 5 cases.
(Note that the corresponding boss fight optimization movies only are optimized for the corresponding boss but nothing that comes before that, in each case.)
Apple boss fight optimization movie:
First frame of Spanky appearing in the room: 13242
First frame of apple boss visually entering death animation: 14050
Time difference in frames: 808
Pineapple boss fight optimization movie:
First frame of Spanky appearing in the room: 25838
First frame of pineapple boss visually entering death animation: 26562
Time difference in frames: 724
Melon boss fight optimization movie:
First frame of Spanky appearing in the room: 38167
First frame of melon boss visually entering death animation: 38933
Time difference in frames: 766
Peach boss fight optimization movie:
First frame of Spanky appearing in the room: 50681
First frame of peach boss viually entering death animation: 51565
Time difference in frames: 884
-> As soon as the Peach reached a certain low height, the ''static'' (currently) fastest baseball macro can be applied against it, so (outside of possibly a faster initiation and final-hit procedure) one wants it to sink down as soon as possible (at some corner in the room).
Grape boss fight optimization movie:
First frame of Spanky appearing in the room: 64601
First frame of grape boss visually entering death animation: 65431
Time difference in frames: 830
Witch boss fight optimization movie:
First frame of Spanky appearing in the room: 78265
Last frame with input: 79644
Time difference in frames: 1479
- - -
Comparison of corresponding benchmarks (from the current state of my Test-TAS and the currently published TAS):
Benchmarks (in frame counts, together with the relevant inputs at those frames, and frame count differences in brackets between them, in which the right component displays the local frame difference between the 2 TASes, where negative integers correspond to the Test-TAS locally being faster) from my current Test-TAS:
[Start-up phase and title screen]
(338|+1)
338: Start [title screen updating]
(4|+0)
342: Start [intro triggering] [Intro]
(5823|-19)
6165: Up [1-1 ends]
(836|-23)
7001: Up [1-2 ends]
(414|-4)
7415: Up [bonus stage 1-2.5 ends]
(622|-7)
8037: Up [1-3 ends]
(751|-4)
8788: Up [1-4 ends]
(366|-3)
9154: Up [1-5 ends]
(522|-8)
9676: Up [1-6 ends]
(594|-40)
10270: Up [1-7 ends]
(634|-21)
10904: Up [1-8 ends]
(527|-1)
11431: Up [1-9 ends]
(478|-326)
11891: Up [1-10 ends]
(1543|-1080)
13434: [Spanky's 1st frame of the victory dance]
(1131|+149)
14565: Up [2-1 ends]
(667|-19)
15232: Up [2-2 ends]
(1615|-34)
16847: Up [2-3 ends]
(691|-73)
17538: Up [2-4 ends]
(825|-4)
18363: Up [2-5 ends]
(425|-3)
18788: Up [bonus stage 2-5.5 ends]
(692|-93)
19480: Up [2-6 ends]
(1100|-21)
20580: Up [2-7 ends]
(637|-95)
21217: Up [2-8 ends]
(676|-42)
21893: Up [2-9 ends]
(425|-2)
22318: Up [bonus stage 2-9.5 ends]
(1129|+79)
23447: Up [2-10 ends]
(1449|-1204)
24896: [Spanky's 1st frame of the victory dance]
(806|-259)
25702: Up [3-1 ends]
(499|-85)
26201: Up [3-2 ends]
(430|+1)
26631: Up [bonus stage 3-2.5 ends]
(639|-134)
27270: Up [3-3 ends]
(895|+126)
28165: Up [3-4 ends]
(628|-162)
28793: Up [3-5 ends]
(1025|-85)
29818: Up [3-6 ends]
(565|-32)
30383: Up [3-7 ends]
(429|-0)
30812: Up [bonus stage 3-7.5 ends]
(741|-43)
31553: Up [3-8 ends]
(821|-68)
32374: Up [3-9 ends]
(429|+1)
32803: Up [bonus stage 3-9.5 ends]
(1015|-363)
33818: Up [3-10 ends]
(1406|-1236)
35224: [Spanky's 1st frame of the victory dance]
(1055|-16)
36279: Up [4-1 ends]
(877|-143)
37156: Up [4-2 ends]
(446|+1)
37602: Up [4-3 ends]
(1014|-115)
38616: Up [4-4 ends]
(1422|+165)
40038: Up [4-5 ends]
(669|-28)
40707: Up [4-6 ends]
(735|+101)
41442: Up [4-7 ends]
(428|+428)
41870: Up [bonus stage 4-7.5 ends]
(746|-251)
42616: Up [4-8 ends]
(966|-427-81)
43582: Up [4-9 ends]
(917|-109)
44499: Up [4-10 ends]
(428|+428)
44927: Up [bonus stage 4-10.5 ends]
(1627|-1147)
46554: [Spanky's 1st frame of the victory dance]
(1619|-40)
48173: Up [5-1 ends]
(395|-5)
48568: Up [5-2 ends]
(1119|-35)
49767: Up [5-3 ends]
(760|-9)
50527: Up [5-4 ends]
(618|-38)
51145: Up [5-5 ends]
(1110|-44)
52255: Up [5-6 ends]
(424|+1)
52679: Up [bonus stage 5-6.5 ends]
(726|-285)
53405: Up [5-7 ends]
(525|-307)
53930: Up [5-8 ends]
(423|-0)
54353: Up [bonus stage 5-8.5 ends]
(622|-103)
54975: Up [5-9 ends]
(424|+1)
55399: Up [bonus stage 5-9.5 ends]
(968|+69)
56367: Up [5-10 ends]
(1571|-1090)
57938: [Spanky's 1st frame of the victory dance]
(1801|-1103)
59739: [Spanky's 1st frame of the victory dance]
(1626|-1139)
61365: [Spanky's 1st frame of the victory dance]
(1653|-1223)
63018: [Spanky's 1st frame of the victory dance]
(1870|-1157)
64888: [Spanky's 1st frame of the victory dance]
(1846|-1075)
66734: [Spanky's 1st frame of the victory dance]
(1825|-2194)
68559: [frame of last input]
- - -
Optional additional inputs (paired with numbers representing frame counts) for turning off the HUD (of which Lioran mentioned that it seems to reduce lag in a few late game stages, but might not reduce enough lag to be worth it):
340: Up [switching to enter the Options screen]
474: Down
476: Select
478: Down
480: Left
482: Down
484: Select
486: Start
629: Start [triggering the intro]
-> Thus, locally, turning off the HUD currently costs 629-342=287 frames, so the first input for 1-1 starts at 5999+287=6286.
-> Turning off the HUD and adding 287 frames into the input script before the 1-1 inputs seems to not desynchronize any future parts, and apparently keeps the same amount of lag, and hence doesn't save any frames so far.
- - -
Optional additional inputs for skipping the intro via 000 password:
340: Down [switching to enter the Password screen]
480: Start [confirmation of the password 000 and start 1-1, skipping the intro]
-> The first 1-1 input starts at 717 instead of 5999, and hence the password would save 5999-717=5282 frames, and the inputs for 1-1 and further on synchronize so far.
- - -
Material (the movies should be the correct ones):
Savestated Spanky's Quest (U.S. version) run: http://tasvideos.org/userfiles/info/36266088235562113
Spanky's Quest (U.S. version), Apple boss fight optimization: http://tasvideos.org/userfiles/info/36266122172548833
Spanky's Quest (U.S. version), Pineapple boss fight optimization: http://tasvideos.org/userfiles/info/36266137101013976
Spanky's Quest (U.S. version), Melon boss fight optimization: http://tasvideos.org/userfiles/info/36266145904011077
Spanky's Quest (U.S. version), Peach boss fight optimization: http://tasvideos.org/userfiles/info/36266161116260242
Spanky's Quest (U.S. version), Grape boss fight optimization: http://tasvideos.org/userfiles/info/36266177438302231
Spanky's Quest (U.S. version), Witch boss fight optimization: http://tasvideos.org/userfiles/info/36266186296103550
Spanky's Quest (U.S. version), incomplete Test-TAS: http://tasvideos.org/userfiles/info/36266203994152062
Spanky's Quest (U.S. version), finished Test-TAS: http://tasvideos.org/userfiles/info/38388593543282053
Spanky's Quest (U.S. version), Test-TAS #3 http://tasvideos.org/userfiles/info/38612040279654834
Spanky's Quest (U.S. version), HUD off alternative: http://tasvideos.org/userfiles/info/36266278694828075
Spanky's Quest (U.S. version), intro skip alternative with password: http://tasvideos.org/userfiles/info/36266295272162044
Spanky's Quest (U.S. version), TAS that uses the password to the last area: http://tasvideos.org/userfiles/info/38612178302913449
My updated RAM Watch: https://cdn.discordapp.com/attachments/218520158963105792/306902246795378689/lsnes_ram_watch.lwch
Currently, 84765-68559=16206 frames (which is around 4 minutes and 30 seconds) are saved over the published TAS.
Here is a video of the test TAS:
Link to video
Any kind of help from interested people is of course appreciated. I don't have much of a schedule for this TASing progress, but rather slow/calm progress is to be expected (I did just carry most things into this post that accumulated over time, since I thought it'd be a good start).
Edit: I searched for an already existing Spanky's Quest thread, but couldn't find such among all pages under the SNES Games topic.
collect, analyse, categorise.
"Mathematics - When tool-assisted skills are just not enough" ;)
Don't want to be taking up so much space adding to posts, but might be worth mentioning and letting others know for what games 1) already some TAS work has been done (ordered in decreasing amount, relative to a game completion) by me and 2) I am (in decreasing order) planning/considering to TAS them. Those would majorly be SNES games (if not, it will be indicated in the list) I'm focusing on.
1) Spanky's Quest; On the Ball/Cameltry; Musya; Super R-Type; Plok; Sutte Hakkun; The Wizard of Oz; Battletoads Doubledragon; Super Ghouls'n Ghosts; Firepower 2000; Brain Lord; Warios Woods; Super Turrican; The Humans.
2) Secret Command (SEGA); Star Force (NES); Hyperzone; Aladdin; R-Type 3; Power Blade 2 (NES); Super Turrican 2; First Samurai.
(last updated: 18.03.2018)