全球中文玩家俱乐部 Chinese players club of the Global .

侠外游戏论坛

 找回密码
 立即注册
快捷导航
搜索
视听
视听
图片
图片
段子
段子
小说
小说
查看: 949|回复: 2
打印 上一主题 下一主题
收起左侧

[闲聊单机] 太空入侵者(1978经典街机游戏《太空侵略者》C语言精准复现)

[复制链接]

3045

主题

6664

帖子

4万

积分

ミ侠外护法ミ

Rank: 7Rank: 7Rank: 7

  • 威望
    0 点
    银子
    19403 两
    武功
    14714 阶
    元宝
    0 锭
    精华
    0
  • 跳转到指定楼层
    俺是撸主
    发表于 2021-3-14 04:22:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    马上注册,结交更多侠客,享用更多功能,让你轻松玩转侠外论坛。

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    太空入侵者(1978经典街机游戏《太空侵略者》C语言精准复现),今天达达兔游戏网给大家整理了详细的太空入侵者(1978经典街机游戏《太空侵略者》C语言精准复现)介绍,希望这篇文章对你有参考价值,我们一起关注一下太空入侵者(1978经典街机游戏《太空侵略者》C语言精准复现)。
            ​开源项目si78c,用C语言精准复现1978年经典街机游戏《太空侵略者》。





    该项目从原始游戏的ROM中加载各种样式的小精灵和其他数据,但是没有使用原始游戏的逻辑代码。
    si78c用C语言重新复现了游戏逻辑,可以让你更容易的理解原始系统内部的工作原理。
    它不是对《太空侵略者》的模仿,而是一种恢复。
    项目的规模
    这是一个相当大的任务,需要在几个月的时间内进行多次迭代,保守地估计到目前为止,项目已经投入了大约200个小时的工作。
    原来的ROM是大约2000行8080的汇编程序,全部是游戏代码。最终发布的si78c版本大约有1500行游戏代码、500行支持代码和800行注释。
    在后台还有大约2万多行未发布的代码太空入侵者,包括以前的迭代和其他支持脚本以及完成工作所需编写的工具。
    精准度
    在运行时,si78c的内存状态与原始版本相同堆栈除外。所以与原始版本相比si78c的精准度达到了像素级。
    循环计时并不是特别准确,但是游戏代码对此并不特别敏感,因为它使用中断来为大多数事情计时,而不是时钟周期。
    目标受众
    目标受众是黑客、爱好者、学者、学生、历史学家和任何从事数字考古的人。
    si78c为他们提供了一个很好的向导,来帮助他们更好的理解最初的游戏。
    si78c项目的限制
    没有声音,因为没有模拟声音硬件。
    如前所述,循环计时不是特别准确,但在这种情况下它不是很重要。代码目前只能在小端系统上工作太空入侵者,因为原来的系统8080是小端系统,我们按原样使用ROM数据。
    编译运行
    获取si78c项目源码,然后编译si78c项目。
    $ git clone loadzero/si78c && cd si78c
    $ make
    如前所述,原始街机游戏的ROM是必须的,《太空入侵者》游戏的原始ROM可以在这里玩法攻略:

    然后将invader.zip解压到si78c项目的根目录下的inv1文件夹下。执行如下命令:
    # 进入si78c项目根目录
    $ cd si78c

    # 解压invader.zip中的内容到si78c/inv1目录
    $ unzip /path/to/invader.zip -d ./inv1

    # 进行md5校验
    $ md5sum inv1/*

    7d3b201f3e84af3b4fcb8ce8619ec9c6  inv1/invaders.e
    7709a2576adb6fedcdfe175759e5c17a  inv1/invaders.f
    9ec2dc89315a0d50c5e166f664f64a48  inv1/invaders.g
    e87815985f5208bfa25d567c3fb52418  inv1/invaders.h
    安装SDL2依赖,在Ubuntu上执行下面的指令:
    $ sudo apt-get install libsdl2-dev
    运行si78c项目:
    $ ./bin/si78c
    键盘控制键:
    a   LEFT(左移)
    d   RIGHT(右移)
    1   1P(单人)
    2   2P(双人)
    j   FIRE(射击)
    5   COIN(投币)
    t   TILT(结束游戏)
    游戏操作说明
    好,到了打游戏的时间了!





    体验一下这上古的游戏吧!
    游戏运行后会自动开始演示,此时按下数字5键投币退出自动演示(就相当于真实游戏机中的投币,有币才能玩),然后再按数字1键(单人游戏)或者数字2键(双人游戏,轮转),然后游戏就开始了。
    通过字母A键和D键,操作左右移动,通过字母J键发射子弹太空入侵者,消灭敌人。愉快的游戏吧!

    以上内容就是太空入侵者(1978经典街机游戏《太空侵略者》C语言精准复现)的相关内容介绍,喜欢侠外游戏论坛的朋友可以关注我们。
    这里是你的个性签名位置,可在“设置”-“个人信息”-“个人签名”处修改。
    沙花按摩
    发表于 2021-3-14 07:01:16 | 只看该作者
    谁能明白谁的深爱,谁又能理解谁的离开...
    这里是你的个性签名位置,可在“设置”-“个人信息”-“个人签名”处修改。
    回复 支持 反对

    使用道具 举报

    板凳捶腿
    发表于 2021-3-16 13:30:14 | 只看该作者
    什么是福,吃亏是福;什么是乐,知足常乐!
    这里是你的个性签名位置,可在“设置”-“个人信息”-“个人签名”处修改。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则


    发布主题 上个主题 下个主题 快速回复 收藏帖子 返回列表 搜索

    联系我们|Archiver|手机版|小黑屋|侠外网 ( 豫ICP备13018943号-1 )

    GMT+8, 2024-9-22 09:43 , Processed in 0.040196 second(s), 17 queries , Gzip On, Memcache On.

    Copyright © 2001-2023 侠外游戏论坛 Powered by !Zucsud X3.5

    Support By A mysterious team , A great team ! Email:

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