Submission #6761: aiqiyou's NES Ufouria: The Saga in 23:41.98

Nintendo Entertainment System
baseline
(Submitted: U-four-ia - The Saga (E) [!] Europe)
FCEUX 2.2.3
71109
50.0069789081886
57216
Unknown
Submitted by aiqiyou on 5/24/2020 5:38 AM
Submission Comments

中文简介在最下方,B站视频:https://www.bilibili.com/video/BV1kv411z7yy

This TAS has improved 531 frames on the basis of the published videos. In the final boss battle, in order to achieve faster in-game time, aglar's TAS input 7 more frames. In my TAS, I reduce this 7 frames operations to achieve faster input time, but in-game time becomes longer. So the actual improvement is only 531-7=524 frames. The details are as follows:

Technique:

1.Global time control

Most of the enemy's actions in the game are related to the global time, and the frame rules of each boss battle are also controlled by the global time. In the game, you can control the global time through the spring, changing person and switching maps. The memory value of global time is always odd in the lags process of changing person and switching the continuous of map screen and being spring up. If the global time is odd at these times, the memory address will remain unchanged; if the global time is even, the memory address that controls the global time will continue to run for one frame, becoming odd. The global time will be fixed to an even number after the dialogue is dismissed before the fight with friends begins. These techniques can effectively control the global time and reduce the number of frames lost due to frame rules.

2. Frame rule

In the fight to save the other three friends, there are eight frame rules; in the fight with other boss, there are four frame rules. Frame rules affect the character's moveable time after the end of the fight. When I first ended the fight with Gil, because the frame rule slowed me by 5 frames, then I compared my WIP with agrar's TAS, and found that the difference between the actual number of frames improved minus lags was not equal to the difference between the global time, so I suspected that some factors affected the change of the global time, and finally found the skills to control it. This means that each segment of this TAS needs to be done twice. The fastest speed is determined for the first time. After winning the boss fight, the frame rules are checked, and then reworked for a while to control the global time to make up for the loss caused by the frame rules. When Gil uses the bomb, the power storage process (keep B key pressed) always ends when the global time is even. At the end of the power storage process, release the B key and press the B key again to spit out the bomb. The explosion time after spitting out the bomb is a fixed value, which is not affected by the frame rule. Release and then press the B key should interval one frame at least, so the fastest global time to spit out the bomb is even. In the process of continuous brick blasting, if the global time is even when the first bomb is spat out , then the global time will be odd when the next bomb is started to store power, so that one frame will be wasted in the second power storage process because of the frame rule. Therefore, when using the bomb for the first time, continue to move forward to approach the brick after the storage is completed at a far place, and spit out the bomb when the global time is odd, which can save one frame for the next storage. At the same time, in the subsequent continuous bombing, the bomb can be deliberately spit out one frame later, which does not affect the next storage time, but it can be used to control different explosion time to obtain different lag values.

3. Lag control

The continuous lags of changing person and switching map screen is not fixed. The continuous lags is generally 7 or 8 frames, and the lags of changing person in boss room may be more. The length of the continuous lag can be controlled by controlling whether to kill the enemy or not, by killing the falling objects behind the enemy, and by changing the position of changing person. The total number of character changes in this TAS is the same as that in Agrar's TAS, but in the end, my TAS is 13 lags less.

4. Down + jump

Hold down the down key and the jump key at the same frame, and the character will jump in a creeping position. Using this technique, you can generate a landing decision on the wall on the right side of the character and perform a wall jump. When jumping to a platform with a relatively close horizontal distance, use down + jump to make the character jump to a height slightly lower than the platform, and then press and hold the forward key to be squeezed onto the platform when the character falls. Compared with the common jump, it can land on the platform 2 frames in advance and provide the initial speed of 16 for the next jump. Using down + jump will affect the horizontal speed value, so when the horizontal distance is far, down + jump will waste time.

Improvements:

ContinuesImprovementTotal
1453453
211464
337501
45506
518524
67531

First continue:

Used the new wall jump to get a lot of improvement. After being bounced by the first spring, the character in Agrar's TAS is bounced three pixels to the left by the wall, while I keep these three pixels in my TAS. A new route was used in the tree scene. In the fight with Freeon, two pauses are used, the first one prevents Freeon from turning and the second one prevents Freeon from jumping. When Freeon is last hit, if Freeon's position is in the air, it will extend customs clearance time. Fortunately, after using two pauses, the frame rule is just met. In the battle with boss, I used wall jump with the help of the wall on the right to step on the boss at the high point, which can save once up and down cycle of the boss. I can kill the boss faster, but this will make the character position to the right, so I have to walk to the left of the boss room at a maximum speed of 1.5 pixels per frame after killing the boss. So I killed the first form of boss deliberately later, and let it walk a little more distance at the speed of 2 pixels per frame, which is faster.

Second continue:

Some details have been optimized and a few improvements have been made in the process. Save 1 frame when stepping on boulders. Flying saucer boss saved 2 frames.

Third continue:

In the tree scene, Gil is used to pass through a narrow gap. In the underwater boss war, I got a bigger X coordinate after the boss died, which made me get props two frames in advance.

Fourth continue:

The details have been improved a little. The fighting against the armored cat is less fortunate, with more lags.

Fifth continue:

When the bricks are blasted before entering the light off area, the position of the mouth enemy is controlled by controlling the time of holding the screen, so as to ensure the first time to kill it after blasting. Better control of lag and get some improvement.

Sixth continue:

Actually I didn’t get any improvement here. I removed 7 frame operations to achieve faster input time, but in game time got longer.

Special thanks:

Aglar, zyr2288, klmz, mzscla. Aglar's TAS has helped me a lot. Many places have been done impeccably. I admire many places, which makes my TAS easier to do. Zyr2288 helped me to analyze the speed mechanism, also thanks to klmz and mzscla for their support and help.

Screenshot:

There doesn't seem to be a particularly good screenshot. I prefer frame 50254, but it doesn't look good either. I want to refer to other people's choices.

本TAS在已经发布的视频基础上提升了531帧,Aglar的作品在最终BOSS的战斗中,为了达到更快的in-game time,多输入了7帧操作。而我在TAS中减少了7帧操作,来达到更快的input time,但是in-game time变得更长。所以本次TAS实际的提升只有531-7=524帧。具体如下:

技巧:

1.全局时间控制

游戏中大多数敌人的动作与全局时间有关系,同时各个BOSS战斗的帧规则也受到全局时间的控制。游戏中可以通过弹簧、换人和切换地图时来控制全局时间。换人和切换地图画面的连续lag以及被弹簧弹起的过程中,全局时间的内存值总是奇数。如果在这些时刻,全局时间是奇数,内存地址将保持不变;如果全局时间是偶数,控制全局时间的内存地址会继续运行一帧,变成奇数。在与小伙伴的战斗开始之前,解除对话之后全局时间会被修正为偶数。通过这些技巧,可以有效控制全局时间,减少因为帧规则而丢失帧数。

2.帧规则

在拯救其他三位小伙伴的战斗中,有8帧规则;在与其他BOSS的战斗中,有4帧规则。帧规则影响战斗结束后角色可移动时间。我在第一次结束与Gil的战斗时,因为帧规则让我慢了5帧,然后我用我的WIP和Aglar的TAS作比较,发现实际提升的帧数减去lag的差值并不等于全局时间的差值,所以我怀疑某种因素影响了全局时间的变化,最终发现了控制全局时间的技巧。这也就意味着这个TAS的每一段都要做两遍,第一遍确定最快速度,在赢得BOSS战之后检查帧规则,然后往前返工一段,重新控制全局时间,把帧规则的影响降到最低。 Gil在使用炸弹时,蓄力过程(要一直按住B键)总是在全局时间为偶数时结束。蓄力过程结束后,松开B按键后再按一次B键吐出炸弹,吐出炸弹后的爆炸时间为定值,不受帧规则影响。松开然后再按下B键中间要间隔至少一帧,所以最快的吐出炸弹时也是全局时间为偶数。在连续炸开砖块的过程中,如果第一次吐出炸弹时全局时间为偶数,那么下一次开始蓄力炸弹时全局时间将会是奇数,这样就会在第二次蓄力过程因为帧规则浪费一帧。所以,在第一次使用炸弹时,在较远的地方蓄力完成后继续往前走接近砖块,在全局时间为奇数时吐出炸弹,这样可以为下一次蓄力节约一帧。同时,在后面的连续轰炸中,可以故意晚一帧吐出炸弹,这样不影响下一次蓄力时间,但是可以借此来控制不同的爆炸时机以获得不同的lag值。

3.lag控制

换人和切换地图画面的连续lag并不是固定的,连续lag一般为7帧或者8帧,在BOSS 房间内换人lag可能会更多。可以通过控制是否杀敌,杀敌后掉落物品以及换人位置等方式控制连续lag的长度。本次TAS中的总换人次数和Aglar的TAS一样,但是最终我的TAS少了13帧lag。

4.下+跳

在同一帧内同时按住下和跳跃键,角色会以一种匍匐的姿势跳起来。使用这一技巧可以在角色右侧的墙壁上产生着陆判定,并可以进行二段跳。在跳上横向距离较近的平台时,使用下+跳使角色跳跃到略低于平台的高度然后按住前进键,可以在角色下落时被挤上平台。相比较普通跳跃,这样可以提前2帧在平台上着陆,并为下一次跳跃提供速度值为16的初速度。使用下+跳跃时会影响横向的速度值,所以当横向距离较远时,下+跳跃反而会浪费时间。  

提升点:

接关次数提升量总量
1453453
211464
337501
45506
518524
67531

第一次接关:

使用新的二段跳方式来获得大量提升。在被第一个弹簧弹起后,Aglar的TAS中角色被墙壁往左弹开了3个像素,而我在TAS中保留了这3个像素。在大树的场景使用了一个新路线。在与Freeon的战斗中使用了2次暂停,第一次暂停防止Freeon转身,第二次暂停防止Freeon跳跃。在最后一次命中Freeon时,如果Freeon的位置是在空中,就会延长结算动画的时间。幸运的是使用了2次暂停之后,刚好满足帧规则。在与BOSS的战斗中,我借助右侧的墙壁使用二段跳,在高点踩到BOSS,这样可以节省一个BOSS上下的周期。我可以更快击杀BOSS,但是这会使得角色位置靠右,这样我就不得不在杀死BOSS后以最大1.5像素每帧的速度走到BOSS房间的左侧。所以我在BOSS第一个形态时故意晚一些打死它,让它以2像素每帧的速度多走一些距离,这样反而更快。

第二次接关:

优化了一些细节,在流程上获得少量提升。在踩巨石的时候节约1帧。飞碟BOSS节约2帧。

第三次接关:

在大树的场景中使用Gil穿过一个狭小的缝隙,在水下的BOSS战中,我在BOSS死亡后获得了更大的X坐标,使我提前两帧拿到道具。

第四次接关:

细节上提升了一些,与装甲猫的战斗中运气较差,多了一些lag。

第五次接关:

在进入关灯区域之前炸开砖块时,通过控制托屏时机,控制嘴巴敌人的位置,保证炸开砖块后第一时间杀死它。更好的控制lag,获得一些提升。

第六次接关:

这一段其实是0提升。我删除了7帧操作来达到更快的input time,但是in-game time变长了。

特别感谢:

Aglar, zyr2288, klmz, mzscla. Aglar的TAS给我提供了极大的帮助,许多地方都做得无可挑剔,很多地方令我感到佩服,这也使得我的TAS做起来更简单。zyr2288帮助我解析了速度机制,同时也要感谢klmz和mzscla对我的支持与帮助。

Replaced the file with 1 frame quick. Advance the jump of frame 60546 in the previous file to obtain 1 frame quick. userfiles/info/63605226015955543


feos: Judging...
feos: Replacing with a 1-frame improvement linked above.
fsvgm777: Processing.
Last Edited by adelikat on 11/4/2023 2:05 PM
Page History Latest diff List referrers