Joined: 10/29/2014
Posts: 176
Location: Bavaria, Germany
Here is a Test-TAS of Bugs Bunny, The - Crazy Castle (for Gameboy, made with Bizhawk's version 1.12.1.1, and the same holds for the other movie files):
http://tasvideos.org/userfiles/info/47805327914991989
- - -
About the game:
The game has 80 stages (and there exist a few speedruns of the game on speedrun.com, but they didn't seem to be so insightful, at least Bugs Bunny in the current WR run dies about 30 to 40 times). After finishing a stage (which gives you 1 extra life every time a stage is finished (possibly only if it is done with the 1st attempt); and one starts with 5 lifes), one can choose to view a replay of how one finished the last stage (unless maybe if the stage took too long).
Some list of different objects that exist in the game (and states in which they can be):
Player character:
* Bugs Bunny (obtained score points from enemy kills: 100 via elixir, 500 using the glove, 1000 via bucket or 10 tons weight or rolling strongbox or wooden box)
(can be
- stationary,
- walking sideways,
- going up or down stairs,
- entering and exiting door stairs or pipes,
- dying from enemy contact,
- falling,
- in victory animation by picking up the last carrot,
- blinking due to an elixir,
- pushing an object,
- turning around)
Other characters:
* Sylvester (cat),
* Yosemite Sam (cowboy),
* Daffy Duck (duck),
* Wile E. Coyote (coyote),
(can be
- waiting,
- walking (including against a wall),
- going up or down stairs or using pipes or door stairs,
- dying from getting hit by a glove or moving object or by touching an invulnerable Bugs Bunny (with explosion animation),
- falling and can turn around)
Pickups (the collections trigger specific short sounds):
* elixirs (for temporary invulnerability and killing any enemy upon body contact; its effect starts at collection),
* carrot (gives 100 score points each; all of them per stage are meant to be collected in order to advance),
* gloves/flying punches (of which multiple can be collected to have more than 1 simultaneously, and they can be thrown to fly sideways and then either hit an enemy or some wall from where they'd fall straight down and can be recollected)
Weapon objects:
* buckets,
* wooden box,
* rolling strongbox,
* 10 tons weight
(which can be
- stationary,
- moving sideways,
- falling straight down,
- hitting an enemy or a wall or the ground)
Environmental objects (which have different graphics in different stage types):
* stairs,
* door stairs,
* pipes,
* walls,
* floors and ceilings
- - -
Optimization aspects:
In some cases if one moves Bugs Bunny to the bottom end of some stairs, one is forced to first walk away from the stairs before one can approach/use them. But if one approaches the bottom of some stairs from beneath them, one can warp up onto the first part without having to move away from it first.
The most important part of the optimization seems to lie in the order in which one collects the carrots together with which paths one uses to do so (basically a Travelling Salesman Problem with enemies chasing Bugs Bunny).
Micro-optimization & finetuning that can still be done and tested out:
- some other routes can still be tested and optimized and compared with each other in the stages where the best route isn't as obvious (especially at the early easier stages, I didn't pay so much close attention to all the options one would have to progress through them, and wasn't aware yet that enemy movement could be manipulated with own directional inputs at certain frames)
- maybe dfferent directions should be pressed in some cases to make Bugs Bunny move forwards to reduce lag/change the lag pattern (since Up, Down, and Forwards make Bugs Bunny move forwards, with Up and Down also making Bugs Bunny move/transition up or down whenever possible); or one could also leave some directional inputs out since not all of them are needed for movement
- maybe triggering diag. upwards stairs as early as possible when Bugs Bunny is approaching those stairs isn't the best option when moving onto stairs without a turnaround (since there's multiple frames in which one can trigger the use of stairs to make Bugs Bunny go up)
- in some cases when enemies generally don't need to be manipulated to be out of the way, one could anyways mess around and test different manipulations of their movement, since this most usually leads to lag differences
- maybe some strange effects could be achieved by using left+right or up+down; or maybe lag differences could be induced by adding more new button presses to the usual ones (like select or holding multiple directions at once); or holding some buttons instead of releasing them could reduce lag
- it probably would also be useful to figure out the general AI that the enemy types use (and there seems to be at least either 2 types of cat AIs or they behave differently in groups than solo), and memory addresses for the frames in which they check for inputs could be useful (aswell as further memory addresses for all kinds of other aspects)
- maybe there'd be ways to climb up walls or keep the falling state or prevent falling to hover over gaps or to prevent death when running into an enemy, or maybe there'd be methods to interact with an item that is further away (above or right below Bugs Bunny for example) to collect them from different places
- one can also play around with the flying punches and their timings and influences on lag, or maybe it could be possible to kill multiple enemies with the same weapon/attack
- maybe some glitches with different events happening simultaneously could be possible (by combining elements of the list of objects and states from above)
- - -
Some (ordered by stage) route & strategy comparison movie material (I didn't test many different routes yet and almost always just took a look on what the stages were like and estimated which route would be best if there were no enemies around):
1. In the following ''stage 30 not shooting glove is slower'' movie,
https://cdn.discordapp.com/attachments/218520158963105792/459024423182401536/Bugs_Bunny_The_-_Crazy_Castle_USA_Europe_WIP_TAS_6_stage_30_not_shooting_glove_is_slower.bk2
there is gloves on the way but they aren't needed to get enemies out of the way, and in here I tested the option in which I'd just not use the glove(s) rather than optionally getting rid of 1 enemy anyways, which though turned out to be slower than killing it.
2. In the following ''stage 40 slow safe option'' movie,
https://cdn.discordapp.com/attachments/218520158963105792/459030692148412436/Bugs_Bunny_The_-_Crazy_Castle_USA_Europe_WIP_TAS_7_stage_40_slow_safe_option.bk2
the stage's structure is almost symmetrical and Bugs Bunny starts barely closer to 1 side of the 2, but on the other side right next to him one can get an elixir for temporary invulnerability which I took in this route test for safety, but it turned out to be slower.
3. In the following ''stage 43 normal route slower'' movie,
https://cdn.discordapp.com/attachments/218520158963105792/459032489592225802/Bugs_Bunny_The_-_Crazy_Castle_USA_Europe_WIP_TAS_7_stage_43_normal_route_slower.bk2
I took a carrot route that (neglecting enemies on the way) seemed to result in the shortest path connecting all carrots (by picking up the central top carrot early on to afterwards clean up all remaining lower carrots on the way to the left without having to go back far to the right). However, in order to so, I had to wait a few times due to enemies, and this route unexpectedly ended up being slower than the one from the WIP (in which I go and take the bottom left carrot early with an elixir on the way, to then go back to the right for the previously skipped carrots).
4. In the following ''stage 48 2nd route'' movie,
https://cdn.discordapp.com/attachments/218520158963105792/459038505222406157/Bugs_Bunny_The_-_Crazy_Castle_USA_Europe_WIP_TAS_7_stage_48_2nd_route.bk2
on the way down I collected the bottom right carrots first and went back up and left for the last carrot, which ended up being slower than getting it earlier on the way down and taking the remaining lower placed carrots afterwards.
5. In the following ''stage 49 2nd route'' movie,
https://cdn.discordapp.com/attachments/218520158963105792/459039961765773362/Bugs_Bunny_The_-_Crazy_Castle_USA_Europe_WIP_TAS_7_stage_49_2nd_route.bk2
I went to the right at the beginning to collect all carrots on the way left afterwards, but the enemies ended up being in my way a few times if I wouldn't manipulate their movement, which costed too much time compared to what is done in the WIP.
6. In the following ''stage 50 test'' movie,
https://cdn.discordapp.com/attachments/218520158963105792/459042616697290793/Bugs_Bunny_The_-_Crazy_Castle_USA_Europe_WIP_TAS_7_stage_50_test.bk2
I just checked for the very last carrot which of the 2 stairs was faster to get up to the carrot, and took the right stairs in this test which ended up being slower.
7. In the following ''stage 54 2nd route equally fast'' movie,
https://cdn.discordapp.com/attachments/218520158963105792/459044665275187212/Bugs_Bunny_The_-_Crazy_Castle_USA_Europe_WIP_TAS_7_stage_54_2nd_route_equally_fast.bk2
I took the carrot to the right of the wooden box right away on the way up when I pass it, instead of delaying its collection until the end, which turned out to be on the frame exactly as fast as taking it at the end which is done in the WIP.
8. In the following ''stage 56 equal speed'' movie,
https://cdn.discordapp.com/attachments/218520158963105792/459046745452707871/Bugs_Bunny_The_-_Crazy_Castle_USA_Europe_WIP_TAS_7_stage_56_equal_speed.bk2
I didn't kill the upper cat at the end (which isn't in my way), which appeared to be equally fast as throwing a glove at it to get rid of it alongside the rest.
9. In the following ''stage 56 early attacks test'' movie,
https://cdn.discordapp.com/attachments/218520158963105792/456938873243697153/Bugs_Bunny_The_-_Crazy_Castle_USA_Europe_WIP_TAS_7_stage_56_early_attacks_test.bk2
I tested at the end of the stage how the early use of flying punches influence the lag in the game, and it turns out (as expected) that it does add some lag for the time-span in which the additional sprite is drawn, compared to the case in which the flying punches connect to enemies as soon as possible after having been fired.
10. In the following ''stage 68 impossible top carrot first, test'' movie,
https://cdn.discordapp.com/attachments/218520158963105792/456938601373237269/Bugs_Bunny_The_-_Crazy_Castle_USA_Europe_WIP_TAS_7_stage_68_impossible_top_carrot_first_test.bk2
I went to the top right away (and then continued further for the remaining carrots), but at this point already it seemed unavoidable that 1 specific cat among the lower two enters the bottom right pipe. And once this happens, the cat will be stuck in there and prevent the collection of the final carrot (unless getting there with invincibility which however would cost too much time already).
11. In the following ''stage 68 2nd test, cat gets stuck'' movie,
https://cdn.discordapp.com/attachments/218520158963105792/456938721313554453/Bugs_Bunny_The_-_Crazy_Castle_USA_Europe_WIP_TAS_7_stage_68_2nd_test_cat_gets_stuck.bk2
I proceed to the right immediately (without hesitating slightly), which also got the cat stuck there and prevented fast progress.
12. In the following ''stage 74 right pipe is faster'' movie,
https://cdn.discordapp.com/attachments/218520158963105792/459053365381431307/Bugs_Bunny_The_-_Crazy_Castle_USA_Europe_WIP_TAS_7_stage_74_right_pipe_is_faster.bk2
on the way down after collecting the carrot at the top left corner, in this test I took the left pipes instead of the single long pipe to the right, which turned out to be slower.
13. In the following ''early left carrot route for the stage 77'' movie,
https://cdn.discordapp.com/attachments/218520158963105792/456938428005875726/Bugs_Bunny_The_-_Crazy_Castle_USA_Europe_WIP_TAS_7_stage_77_early_left_carrot_route.bk2
according to this rough draft of the stage's structure which consists of 5 separated blocks only connected via pipes,
--------------
|1|2|3|4|5|
--------------
corresponding to
--------------------------------------------------------------------------------------------------------------
|Yosemite Sam (cowboy)|Daffy (duck)|Wile E. (coyote)|Sylvester (cat1)|Sylvester (cat2)|
--------------------------------------------------------------------------------------------------------------
the route (2->3->1->3->4->5) I used was as follows: I take the carrot and the flying punch item at the bottom of block 2 (the one with the duck from which there is no pipe connection to block 1), take a pipe back up, and take a pipe to the bottom of block 3 for the carrot there, and then continue back to block 1 to snatch the carrot there and go back to block 3 to continue towards the right for the remaining carrots, instead of having to go all the way back for that carrot in block 1 at the end. But unexpectedly it turns out that the latter option (namely leaving out the single far left carrot in block 1 out until the end even though one starts in block 2 among 5 blocks) turned out to save more time.
In stage 78 it seems that (provided one moves to the right at beginning) taking the lowest carrot first and then going right instead of up is faster (instead of going up).
14. In the following ''slower stage 80'' movie,
https://cdn.discordapp.com/attachments/218520158963105792/456939038054547456/Bugs_Bunny_The_-_Crazy_Castle_USA_Europe_Test-TAS_3_test_slower_stage_80.bk2
I did the final stage differently (and as it turned out slower), by taking the carrot to the left of Bugs Bunny before the one to his right and then waiting on the next higher floor for the cat to go out of my way (so I could take the carrot on this floor to the far right before progressing to the left).
- - -
Observations (partially with corresponding movies):
1. Bugs Bunny standing offset midair next to stairs (at the end of the following movie):
https://cdn.discordapp.com/attachments/218520158963105792/456882593036763146/Bugs_Bunny_The_-_Crazy_Castle_USA_Europe_WIP_TAS3_Test1_floating_at_stair_with_normal_approach.tasproj
The situation from the movie looks like this:
2. Bugs Bunny falling onto ground and hovering above it at the beginning of stairs (at the end of the following movie):
https://cdn.discordapp.com/attachments/218520158963105792/456926708914978818/Bugs_Bunny_The_-_Crazy_Castle_USA_Europe_standing_midair_falling_onto_stairs_beginning.tasproj
The situation from the movie looks like this (and is similar as above, but not quite the same due to Bugs Bunny not walking from the left onto it but falling to this height):
3. In the following ''select inputs can change lag pattern'' movie,
https://cdn.discordapp.com/attachments/218520158963105792/459025809445879812/Bugs_Bunny_The_-_Crazy_Castle_USA_Europe_WIP_TAS_7_select_inputs_can_change_lag_pattern.bk2
I observed in stage 31 that even a single Select press can heavily change/increase the amount of lag that is happening throughout further parts of a stage (compared to if one would take the Select press out in the movie).
4. In the following ''stage 48, cat surviving glove shot'' movie,
https://cdn.discordapp.com/attachments/218520158963105792/459037357736198146/Bugs_Bunny_The_-_Crazy_Castle_USA_Europe_WIP_TAS_7_stage_48_cat_surviving_glove_shot.bk2
I fired a glove against a wall and then (as usual) the glove would fall straight down, and it did so by going straight through an enemy without hitting it, even though in a similar situation it can still hit it. And it seems that the difference is caused by the enemy at the time of contact yet still being on ground walking (so it can get hit) or already falling midair (in which case it can dodge it).
5. In the following ''stage 38 interrupting stair climb'' movie,
https://cdn.discordapp.com/attachments/218520158963105792/459027850683482113/Bugs_Bunny_The_-_Crazy_Castle_USA_Europe_WIP_TAS_7_stage_38_interrupting_stair_climb.bk2
I observed (near the end of it) that in some cases in which one is approaching stairs, it is possible to barely walk onto them and then turn around and go off the stairs again (without being forced to go all the way up automatically).
6. In the following ''stage 73 pipe ledge grab bug'' movie,
https://cdn.discordapp.com/attachments/218520158963105792/459051362122989578/Bugs_Bunny_The_-_Crazy_Castle_USA_Europe_WIP_TAS_7_stage_73_pipe_ledge_grab_bug.bk2
likely due to the walking pattern with which the pipe was entered, after the pipe spits out Bugs Bunny downwards, one can ''finish up the final step'' that Bugs Bunny did before entering the pipe, and can do so midair while falling, in order to land elsewhere.
7. In the following ''2 consecutive non-lag frames at 40426'' movie,
https://cdn.discordapp.com/attachments/218520158963105792/459056704701726721/Bugs_Bunny_The_-_Crazy_Castle_USA_Europe_WIP_TAS3_2_consecutive_nonlag_frames_at_40426.bk2
there (as the title says) occur 2 non-lag frames during a stage in a row without any apparent reason for this happening (since it seems to have only happened once here or at most very rarely if at all, outside of pressing Select).
8. In the following ''double K.O. at 45102'' movie,
https://cdn.discordapp.com/attachments/218520158963105792/459055842046640148/Bugs_Bunny_The_-_Crazy_Castle_USA_Europe_WIP_TAS4_double_K.O._at_45102.bk2
I stumbled over a case where I killed a duck with a bucket at the same time as when it killed Bugs Bunny.
Apparently, buckets can be kicked differently far (only by Bugs Bunny), and the distance seems to be depending on the movement speed of Bugs Bunny or positioning/walking pattern. If an enemy character falls onto a bucket, then it will not automatically die to the bucket (so that it matters if Bugs Bunny interacted with such an obstacle or not). For most enemy types (if not all) it seems that one can manipulate them to turn around and walk the other way using the bunny's own movement (with the last direction, left or right or none, that one pressed at some specific frame), and more precisely: By moving 1 full tile to the other direction (or pressing directions where they have no influence on Bugs Bunny's movement, e.g. while walking on stairs or using door stairs or falling or using pipes) it can happen that an enemy turns around (even if the enemy is far off-screen and those enemies seem to always exist move around aswell), except that this seems to not work at just any time and might have some cooldown time until it can work again after an enemy turned around. It seems that select presses aswell can influence the lag frame pattern (regarding inputs and when the game doesn't accept them), and they seem in general cases to add another non-lag frame right after the current non-lag frame (in which Select was used), however apparently without this allowing to speed up the gameplay progresses (by doubling non-lag frames using Select every 2nd frame). There also seem to be (at least) 2 different types of behavior that cats can use (i.e. there's basically at least 2 types of cats that look the same but behave differently). It seems that ducks camp at door stairs instead of taking them to get to Bugs Bunny (when Bugs Bunny is near the other side of the door stairs). It seems that the coyote cannot use stairs or door stairs. If one's going up or down a pipe/stairs/door stairs, then one in general can already hold the opposite direction before the vertical input (for triggering the use of pipe/stairs/door stairs) happens (and the transition can still work out, since not all input-accepting frames contribute to Bug Bunny's movement). Apparently if one moves through a carrot while Bugs Bunny is in a pipe, the carrot will still be collected. Apparently if Bugs Bunny is in the right kind of walking animation when he enters a pipe and gets spit out downwards by the pipe and falls long enough, then he can walk midair 1 step sideways (to finish up the previous movement) which can allow Bugs Bunny to land on ledges of platforms that end next to the pipe exit beneath it (instead of falling past them). Within pipes or door stairs, enemies don't interact with Bugs Bunny (and the same holds for the entering and exiting animations). It seems that sometimes when Bugs Bunny falls onto a pipe leading downwards that one wants to enter right away, his movement is fluid and continuous and at other times there's a short stop before the pipe is entered.
(There's probably many more enemy<->object interaction observations or observations on the AI/behavior of the different enemy types that one could make, which I didn't investigate as much as of yet.)
- - -
Game elements for which one probably can find corresponding memory addresses:
- current stage number
- number of Bugs Bunny's remaining lifes
- total number of still existing enemies in the current stage (and their x and y positions and the direction they are facing and if they are midair falling or dying or using stairs or door stairs)
- number of currently existing enemies per type
- x and y position of Bugs Bunny (and all pickups and weapon objects)
- number of invulnerability frames left for Bugs Bunny
- number of remaining carrots to be collected
- game frame timer (globally and per stage)
- current score points
- game mode (if game is running in a stage or e.g. paused)
(...)
- - -
Here's a video of the Test-TAS:
Link to video
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)
Joined: 10/29/2014
Posts: 176
Location: Bavaria, Germany
[quote ViGadeomes]There is a NES/FDS version, is there any difference? Which one is better to TAS ?[/quote]
Oh sorry, it seems like I totally overlooked this post. But I only have looked into the NES version, so I have no idea if there may be any differences in level count, order or structure, or mechanics, enemy and item distribution (especially carrots), or lag behavior or enemy AI. I think the most relevant part that one would want to look into would be lag differences, because lag frames make up most of the TAS in the NES case, and it's optimization probably would take the longest time, whereas different routes and some sporadic inputs at single frames throughout some levels to manipulate how enemies walk should be rather quick to test.
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)
Oh sorry, it seems like I totally overlooked this post. But I only have looked into the NES version, so I have no idea if there may be any differences in level count, order or structure, or mechanics, enemy and item distribution (especially carrots), or lag behavior or enemy AI. I think the most relevant part that one would want to look into would be lag differences, because lag frames make up most of the TAS in the NES case, and it's optimization probably would take the longest time, whereas different routes and some sporadic inputs at single frames throughout some levels to manipulate how enemies walk should be rather quick to test.[/quote]
Ok thanks. I don't know if I'll look into the game btw because I have too much projects at the moment.