Submission #7428: Mars608 & aiqiyou's NES Contra "2 players" in 08:36.57

Nintendo Entertainment System
2 players
(Submitted: 2 players)
(Submitted: Contra(J).nes JPN)
FCEUX 2.2.2
31045
60.0988138974405
22222
PowerOn
Submitted by Mars608 on 4/8/2022 1:13 PM
Submission Comments
We improved our previous TAS by 58 frames. Mainly by new revive place in LV3, better Y subpixel control in lv3 and better s weapon control. (下方有中文发布信息,有需要的观众可以拉至下方观看。)
看不了youtube的国人可以观看bilibili投稿:https://www.bilibili.com/video/BV1VF411G7JK/

Level by level comments:

stage 1

2 frames faster at the boss fight by better S control.

stage 2

No improvement.

stage 3

1.With the new revive place, we made one more special jump glitch at the bridge ( use 2p to make 1p jump higher) and seve 33 frames.
2.After 2P revive we use the same way and save 3 frames.
3.For there is a new place let 2P die, we make a jump lower as we did in pacifist runs at the beginning of the stage and save 6 frames.
4.With the better subpixel control, we make the lowest jump in this level one frame faster. For there are three lowest jumps in this stage, we save 3 frames. And we also save 1 frame at the last moving platform.
Up to now we get 48 frames in lv1-lv3, and it is 6 frame rules.
stage3 Y subpixel control
( Mars608: my English is not good so maybe it is hard to understand. If you can understand Chinese you can see the description below. )
When jump to left, Y screen will be Y screen( one frame earlier) + Y speed. Y supixel will be Y subpixel( one frame earlier) + Y speed subpixel. If Y subpixel >=256, then Y subpixel - 256 and Y screen - 1.
When jump to right, Y screen will be Y screen( one frame earlier) + Y speed.Y supixel will be Y subpixel( one frame earlier) + Y speed subpixel * 2. If Y subpixel >=256, then Y subpixel - 256. If Y subpixel( one frame earlier) >= Y speed subpixel and Y subpixel( one frame earlier) < Y speed subpixel, Y screen - 1.
But even we know how it works, it is still hard to control jumps in lv3. So it takes very long to control jumps in this stage.

stage 4

As we mentioned here, there is one more frame in the boss fight and we get the frame this time.

stage 5

One fewer jump as 1P TAS did. So we get a frame rule of the first tank ( 2 frames ).

stage 6 and 7

Better luck , use fewer pauses, 6 frames saved. And 1 frame faster at the lv7 boss fight by better S control.

stage 8

One fewer jump before the first boss, 1 frame saved.

中文发布信息:

我们改进了这个项目58帧,主要改进点来自第三关新的复活点、第三关更好的Y小值操纵以及更好的S弹操纵。

第一关

BOSS战利用更好的子弹操纵快2帧

第二关

没有改进

第三关

1、由于找到了新的自杀点,我们在桥的地方使用了一次特殊的超级跳技巧(利用2P拉高1P位置),节约33帧。
2、2P新的复活点后利用同样的技巧节约3帧
3、由于2P有了新的自杀点,这个项目的命不会太多了,因此在开头做了一次和和平主义TAS一样的拉低跳跃的操作,节约6帧。
4、利用更好的Y小值操纵,最低高度差平台的跳跃可以快一帧落地。因为总共有三个这样的跳跃,因此节约了3帧。并且利用这个技巧,我们在最后一个平台处也节约了1帧。
前三关我们一共节约了48帧,正好是6个8帧规则。
第三关Y小值操纵(即超级跳技巧)
1、向右的跳跃在拉屏幕的第一帧会出现屏幕Y坐标和人物Y坐标一起变化的现象,于是人物会获得两倍的Y值变化。
2、当人物有向左的X速度或者没有X速度时,Y坐标的变化量就是简单地等于Y速度的值(即大值减去大值,小值减去小值,不够的进位。其中拉屏时大值变化的是屏幕位置大值,小值为人物位置小值)
3、当人物有向右的X速度时,如果人物不在可拉屏的范围内,那么Y坐标的变化量和向左时是一样的,若人物在可拉屏范围内,则情况较为复杂:
屏幕Y的变化量基础值=256-Y速度大值-1
人物Y小值变化量=Y小值×2,若超过256,则直接减去256且不进位
若前一帧人物的Y位置小值在这一帧Y速度小值的一倍到两倍之间(若两倍的值超过256,则减去256,且范围变为Y速度小值-256,0-Y速度小值×2),则屏幕Y变化量+1,否则屏幕Y变化量不变。
正是由于向右跳跃时Y位置变化的不确定性,跳跃才能操纵出非常大的高度差。而且可以发现,虽然已经完全了解了计算公式,但是由于不确定性较大,除了穷举依然没有很好的方法可以操纵出理想的情况。但是既然知道了原理,至少我们可以进行有目的的穷举并且找到相对合适的目标。

第四关

我们在这个发布信息里提到过,第四关BOSS处有一帧理论上的改进。这次我们拿到了这一帧改进。

第五关

和单人TAS一样,少用一次跳跃,节约一帧,算上第四关的一帧正好进入一个炮车的2帧规则。

第六关和第七关

由于这次运气更好,使用的暂停更少,总共节约了6帧。7BOSS利用更好的子弹操纵快1帧。

第八关

之前一直疏忽了在小BOSS前可以少一次跳跃,于是节约了1帧。

ThunderAxe31: Claiming for judging.
ThunderAxe31: Accepting as improvement over the current publication.

despoa: Processing...
Last Edited by despoa on 6/25/2022 7:05 PM
Page History Latest diff List referrers