矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
查看: 1444|回复: 18

详细解析俄罗斯方块崩溃细节

[复制链接]
     
发表于 2024-1-6 17:04:25 来自手机 | 显示全部楼层 |阅读模式
最近,一位少年通过40分钟鏖战,终于让俄罗斯方块程序崩溃,实现了人类通关俄罗斯方块的成就。
NES版本俄罗斯方块的崩溃很够意思,呈现以下特点:①只有打到155关才有可能触发bug,②bug出现与否,只与关卡层数有关,与其他因素无关,③bug触发不是必然的,有概率触发也有概率不触发。这个奇妙的bug十分复杂,现在解释原理。
先科普一些基础知识:首先,NES中,代码和数据存放在一起,很容易混淆;其次,有些代码需要正确的数据才能运行,有些则不需要,例如JUMP指令,不需要任何数据,只要代码正确就能完成,而一些指令,例如JNZ,需要正确的数据才能运行。
NES俄罗斯方块崩溃的bug,过程如下:①玩家消去了太多行方块,导致6502CPU计算玩家得分需要进行大量乘除法,而6502计算乘法的效率非常非常低下这消耗了太多的时间,②NES的PPU,也就是图像处理器向CPU发送信号,提示CPU赶快处理图像,③CPU不得不放下手里的工作,转而处理图形,而俄罗斯方块程序设计存在缺陷,没有保护之前的数据,④图形处理工作导致之前的数据被覆盖,⑤图形处理工作结束后,代码失去了正确的数据,无法运行,引起连锁反应,最终导致CPU误把数据当代码,⑥CPU读到代码中的F7或者07字节,程序崩溃。
由此可见,崩溃BUG的触发需要满足条件①,这需要玩家进行消去方块,而俄罗斯方块速度是越来越快的,这就是最大的难点,其余条件的满足,需要满足某种“周期性”,否则也无法触发bug。
下图是166关左右,触发BUG的概率以及条件。
Screenshot_20240106_162250_tv.danmaku.bili.jpg

评分

1

查看全部评分

     
发表于 2024-1-6 17:34:45 | 显示全部楼层
牛人啊,竟然将俄罗斯方块程序给整崩溃
回复 支持 反对

使用道具 举报

     
发表于 2024-1-6 17:59:42 | 显示全部楼层
这个游戏和俄罗斯有什么关系?
回复 支持 反对

使用道具 举报

发表于 2024-1-6 19:19:24 | 显示全部楼层
通过俄罗斯方块这个游戏,我知道了身体的极限。
我的眼睛紧盯着屏幕最多12个小时,一般10个多小时就开始流泪了,12个小时后,眼睛已经分辨不出啥东西了。
所以每次玩这个游戏都是考验眼睛的疲劳程度。
回复 支持 反对

使用道具 举报

     
发表于 2024-1-6 19:38:59 | 显示全部楼层
小花猫长高了 发表于 2024-1-6 19:19
通过俄罗斯方块这个游戏,我知道了身体的极限。
我的眼睛紧盯着屏幕最多12个小时,一般10个多小时就开始流 ...

太废眼力,影响视力的。看手机时间久也就如此。
回复 支持 反对

使用道具 举报

     
发表于 2024-1-6 19:40:56 | 显示全部楼层
qie 发表于 2024-1-6 17:59
这个游戏和俄罗斯有什么关系?

开始我以为是谈政治,原来人家是说方块,俄罗斯人发明的一种游戏。
回复 支持 反对

使用道具 举报

     
发表于 2024-1-6 19:43:51 | 显示全部楼层
俄罗斯方块我也玩过,玩到后面越来越快,根本来不及。要说能破解,那真不是一般人而是高手。
回复 支持 反对

使用道具 举报

发表于 2024-1-6 19:49:00 来自手机 | 显示全部楼层
只是听说过,从来没玩过…感觉太小了,看着费劲
回复 支持 反对

使用道具 举报

     
发表于 2024-1-6 19:52:03 | 显示全部楼层
用电脑来打或用智能机器人来打这个游戏,分分钟搞蹦它
回复 支持 反对

使用道具 举报

     
发表于 2024-1-6 21:07:42 | 显示全部楼层
qie 发表于 2024-1-6 17:59
这个游戏和俄罗斯有什么关系?

俄罗斯方块是前苏联苏维埃计算机中心的阿列克谢·列奥尼多维奇·帕基特诺夫编写的,为前苏联首个在美国发布的电子游戏,其原名 Тетрис 可理解为“四个网球”,但还是让华人很懵逼,所以华人干脆将其意译为俄罗斯方块

btw. 前苏联解体后阿列克谢·列奥尼多维奇·帕基特诺夫跑去微软公司继续做游戏去了...

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
发表于 2024-1-6 21:31:13 | 显示全部楼层
以前在创维电视机自带的功能玩过 电视台的信号检修 准备了新电池 开始玩 消灭一层记10分 电视机默认的高分榜是9万分 自己玩了4个小时 把电池按没电 玩到128960分  编出名字遥控器彻底没电
回复 支持 反对

使用道具 举报

     
发表于 2024-1-6 22:11:53 | 显示全部楼层
刚刚在电脑网页上玩了几回,都在110关前封顶。鼠标玩没有按键来的灵活。
回复 支持 反对

使用道具 举报

     
发表于 2024-1-7 00:52:39 来自手机 | 显示全部楼层
楼主说的是在苹果2台式机上玩吗?要不怎么会是6502CPU?苹果2上有个打怪的游戏,一辆车在街道上四面游走,四面开炮。这游戏当年在pc上玩不好,当年pc键盘是串行的,速度没苹果的并行键盘快。流行的就是这个打怪和警察抓小偷。楼主让我想起30多年前的往事。
回复 支持 反对

使用道具 举报

     
发表于 2024-1-7 08:50:49 | 显示全部楼层
NES是任天堂红白机的,就是国内仿制的小霸王游戏机的原型机。
回复 支持 反对

使用道具 举报

     
发表于 2024-1-7 09:13:10 | 显示全部楼层
上大一时见到这个游戏机,当时谁要有一个这个游戏机,太牛掰了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2024-5-3 07:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表