在2017年为Game Boy制作游戏的感觉如何

图片

每个人都有童年的梦想。 我个人梦想着为第一个游戏机创建一个游戏:Nintendo Game Boy。 今天,我的梦想实现了- 我在真正的墨盒上发布了Game Boy的第一款游戏Sheep It Up!

在本文中,我将讨论我使用的工具以及初学者为创建项目而必须克服的障碍。 这篇文章很长,因此分为两部分:


游戏


“整理一下!” -这是一款街机游戏,绵羊必须爬上去,并紧贴魔术贴的飞行条。 这个概念很简单,但是游戏很快就变得非常复杂:您可以爬多远而不会跌倒?


我本人是游戏收集者,所以我不想在创建项目时让Game Boy遇到任何老式游戏。 因此,所有内容都是专门为游戏创建的:印刷电路板,ROM,外壳,保护套甚至贴纸! 我们还寻求维持合理的价格,以便每个人都可以玩这款游戏: 15美元(+运费) 。 从最初的版本到GBA SP,它都可以在任何Game Boy模型上运行,包括Super Game Boy。


如果您仍然有Game Boy,则可以在发布商的网站上购买墨盒:

https://catskullgames.com/sheep-it-up

声音限制


从本文的第一部分我们可以了解到,Game Boy具有明显的CPU能力和图形限制。 但是声音也可以这样说。 实际上,与现代机器不同,Game Boy无法播放MP3音乐或读取WAV音频文件。 要为Game Boy创建声音和音乐,您需要使用控制台中内置的四个“声音通道”动态生成它们。 每个通道都有其自己的功能:

  • 通道1-音调和扫频:我们可以按增大或减小的音调播放声音(音调)。
  • 通道2-音调:再现没有特殊效果的音调。
  • 通道3-波形:可以播放非常简单的波形(以4位编码)。
  • 通道4-噪音:可以产生爆炸声或引擎声。

让我们再重复一遍: 要在Game Boy中播放声音,您需要手动生成声音,直接控制这四个声音通道 。 幸运的是,这非常简单:只需更改几个硬件寄存器的值即可。 每个声音通道均由4-5个硬件寄存器(8位变量)控制,这些寄存器确定音量,音高,特殊效果等。 通过为控制通道的寄存器设置不同的值,我们可以使Game Boy播放各种声音。 例如,以下是Sheep It Up的三种声音 我使用声音通道1创建的,以及硬件寄存器的相应值:



NR10_REG = 0x15; NR11_REG = 0x96; NR12_REG = 0x73; NR13_REG = 0xBB; NR14_REG = 0x85; 

着陆



 NR10_REG = 0x79; NR11_REG = 0x8D; NR12_REG = 0x63; NR13_REG = 0xC8; NR14_REG = 0x80; 

秋季(比赛结束)



 NR10_REG = 0x4F; NR11_REG = 0x96; NR12_REG = 0xB7; NR13_REG = 0xBB; NR14_REG = 0x85; 

如您所见,为变量分配5个不同的值使我们可以创建非常不同的声音效果。 您可能会认为,要创建声音,您必须经历反复的尝试:将随机值插入寄存器,直到获得不错的声音。 但这将是无聊和毫无意义的。 因此, 现代工具可以使我们的生活更轻松 。 让我向您介绍GB声音样本生成器


首先,我们设置方便的参数以找到正确的声音(按开始检查当前声音)

这是Game Boy的程序,与真实硬件完全兼容。 它允许您以方便用户的方式更改硬件声音寄存器的值。 代替设置原始的NR10_REG值,我们可以指定声音频率,音量级别,扫描信号的持续时间等。 您可以考虑将该工具类似于Game Boy的SFXR 。 但是要导出声音,而不是保存WAV文件, GB声音样本生成器将显示相应的硬件寄存器值。 也就是说,要在游戏中重现声音,只需将这些值输入源代码即可。


然后,您需要按住A + SELECT以显示相应的硬件寄存器原始值

努力工作吧! 我在Game Boy Advance SP上使用了GB声音样本生成器 (背光屏幕更方便) 。 ROM程序在Everdrive GB启动 。 我花了很多时间直接在控制台上设置参数,当我最终找到正确的组合时,我只是将值从GB屏幕复制到计算机上的源代码。


将硬件寄存器的值复制到源代码

Chiptune音乐!


尽管声音功能有限,但今天的Game Boy被用作乐器。 许多才华横溢的Chiptune场景作曲家都使用LSDJNanoloop等程序在Game Boy上创建了充满活力的曲目。 例如,您可能听说过为超级六边形创作音乐的爱尔兰传奇筹码tun Chipzel ,以及混音了90年代流行音乐的法国巫师Sidabitball


Chipzel和Sidabitball

对于我们游戏开发者而言,不幸的是,用于撰写这些出色歌曲的LSDJ工具消耗了Game Boy几乎100%的硬件资源。 因此,您可以在其中编写精彩的音乐,但是在控制台上播放音乐时将无法启动游戏。 幸运的是,在Game Boy上创建和播放音乐的资源消耗较少。

1)自己的音乐播放器


最简约的解决方案是创建自己的“音乐播放器”。
不要忘记,在Game Boy上播放声音的唯一方法是设置控制四个声音生成通道的硬件寄存器的值。 因此,创建自己的“音乐播放器”并以阵列形式保存“音符”非常简单。 每个“注释”是每个硬件寄存器的值的特定组合。 如果您设置我们将在此阵列中播放“音符”的速度,那么我们将获得一种非常简单的音乐播放方式。 这正是我在Sheep It Up中所做的! 这是一段简短的带有声音和音乐的游戏视频,因此您可以听到结果:


实际上,我的“音符”仅在声音通道2上播放。是的,这四个声音通道是音效和音乐所共有的。 因此, 如果我们在通道中播放音符,则不能同时使用它播放声音效果 。 而且,由于每个通道在某种程度上都是“特殊”的,因此有时最好仅将某些通道用于音乐,而将另一些通道用于声音效果。 例如,当绵羊粘在飞行的魔术贴上时,会在通道4(噪音)上听到“吱吱”的声音。 由于这是我游戏中非常频繁的声音,因此我决定不使用此频道播放音乐。 这同样适用于通道1,我将其用于所有其他声音效果。 由于我不是音乐方面的专家,因此我决定不使用通道3的波形,而是使用通道2的音调。

2)GBT播放器和钟琴播放器


许多自制游戏使用自己的音乐播放器。 但是,这不是唯一的解决方案。 有一个名为GBT Player的库,可以转换音乐模块(以Impulse Tracker“ .it”格式)以在Game Boy上播放。 当然,样本大小,通道数和音符效果有很多限制。 不过,该库允许您在真实的音乐跟踪器(例如OpenMPT)上创作真实的音乐,然后在Game Boy上播放。 最重要的是,该库仅消耗Game Boy CPU资源的7-8%,从而为运行游戏留下了大量的计算能力。 此外,如果决定使用GBDK以C语言或使用RGBDS以汇编语言编写游戏,将其集成到代码中非常容易。 Carillon Player是GBT播放器的一个很好的选择,但是您必须使用Carillon编辑器来创作音乐。


Geometrix是GBT Player AntonioND制作的自制游戏。 对于音乐,使用该库。

适应:在盒带上录制游戏


经过长时间的代码,图形和声音处理,游戏终于可以就绪了。 但是目前我们只有ROM文件。 当然,我可以从我的收藏集中对许多不同的Gameboy模型进行积极测试(除AGS-101以外,我都拥有所有其他模型 。 但是我并不觉得该项目已经准备就绪:我认为, 为了被视为“完成”,游戏应该拥有自己的墨盒

就像我在文章第一部分中所说的那样,游戏Sheep It Up的整个ROM 它的重量仅为32K,与诸如TetrisAlleyway的早期Game Boy游戏一样。 但是实际上,大多数适用于Game Boy的游戏都更大,从128KB到512KB,最大的Pokemon Blue和Red游戏占用了1024KB(1MB)的巨大空间。 在90年代,游戏越大,生产的墨盒就越昂贵:为了存储大型游戏,需要更昂贵的筹码。 但是今天他们几乎站在一起。 那么,为什么我只能使用32 KB的游戏呢?

答案是我希望能够在今天制造的卡带上发行游戏。 您可能已经猜到,任天堂早就停止了Game Boy (Game Pak-s)墨盒的生产。 因此,今天要创建自己的墨盒有两种解决方案:

1)弹药筒的改装(Cartmodding)


第一种选择是“回收车”,是回收旧的Game Boy游戏。 在Game Boy商业时代发行的游戏存储在不可重写的墨盒中。 因此,为了替换存储在其上的游戏,您需要打开它们,取出存储芯片,然后用另一个装有游戏ROM的存储芯片替换它。 该解决方案允许您创建任何大小的游戏。 但是作为游戏收集者,我不想销毁现有的Game Boy弹药筒来生产我的游戏。


卡修改示例。 带有自制游戏的新存储芯片被焊接到旧墨盒中

2)自己的墨盒


第二个选项是从头开始创建新的盒带。 由于我不是电子专家,因此我开始在Internet上搜索可以组装Game Boy墨盒的人员。 经过几次失败的尝试,我很幸运地找到了Catskull。 这是一位了不起的电子向导,他在Catskull电子商店创建和销售了许多与Game Boy相关的设备。 除其他外,他开发了一种将Gameboy连接到MIDI接口的设备,使音乐家可以将Game Boy与真实的乐器和合成器一起使用。 他还开发了Game Boy墨盒。 该墨盒的所有部件均已重新制造 :印刷电路板,芯片,外壳,甚至贴纸和新零件-以前的游戏一无所获。 对我来说,这是完美的解决方案。


Catskull设计的原始PCB我用于Sheep It Up!

但是后来一切都变得更好了:短暂的通信后,Catskull告诉我,很长一段时间我都想创建一家发行自制游戏的公司,而我的游戏将是一个很好的机会! 因此,我们联手: 我做软件,他从事硬件 。 该解决方案的唯一局限性是, Catskull Game Boy盒带上只能存储32KB 。 怎么了

最初,Game Boy控制台应该只能访问32KB ROM数据。 要创建大于32KB的游戏,您需要浏览盒带上的所有数据,同时只能访问所有ROM数据的一个子部分。 这种方法称为存储体切换 :所有ROM数据均分为16KB的存储体,我们可以随时在它们之间进行切换(有一定的限制)。 但是,要执行存储区切换, 盒式磁带必须具有附加芯片 :“存储库控制器”(MBC)。 有几种芯片(MBC1,MBC5等)增加了ROM的大小,使您可以使用RAM来保存由电池等供电的游戏。 不幸的是,目前还没有现成的解决方案可以从头开始使用这种芯片来创建新墨盒。

因此,创建大于32K的自制游戏的人通常会使用卡片改装来使用旧的Game Boy卡盒的MBC芯片,然后对其进行“回收”。 另一个解决方案是购买真实的Game Boy游戏的假副本,然后进行刷新。 许多年前,中国制造商学会了“克隆” MBC芯片来制作大型游戏(如口袋妖怪)的盗版副本。 而且,由于这种盗版卡带使用EEPROM芯片而非旧游戏的ROM芯片,因此通常可以对其进行“刷新”以替换存储在卡带上的游戏。 为此,请使用盒式闪存记录器,例如BennVenn的Joey 。 数个大于32K的自制游戏都使用这种方法。


中国制造的海盗墨盒。 您可以通过编写游戏来刷新它,但是其他一些则不能刷新(有关此更多信息

为了弥补它! 我想创建全新的墨盒,以避免破坏原始的Game Boy游戏。 我很幸运能与Catskull合作,后者生产自己的盒带,尽管事实上我不得不将自己的共享内存限制为32KB。

烤墨盒!


那么,您如何制作自己的墨盒? 我请Catskull为各个墨盒组装步骤拍照。 如您所见,每个墨盒都是手动组装的:

1)电路板已插入硬件。


2)将不锈钢模版涂在印刷电路板上,以涂上焊膏。 该糊剂将使您可以将存储芯片焊接到板上。


3)通常我一次制造18-20个墨盒的批次。 焊锡膏已应用于该批次。


4)我知道如何手动选择电容器和电阻器,并将它们放置在板上。 然后,我将闪存芯片放在每个板上。



5)将板子放在回流炉的网格上。 我们实际上是“烘烤”每块板,以在其上焊接芯片。 现在,我可以拿起每个板子,并将游戏的ROM写入内存芯片。



6)然后,将棋盘插入游戏卡带的外壳中,并在专业打印机上制作漂亮的贴纸。



7)在实际设备上彻底检查墨盒后,即可将游戏发送给订购该设备的玩家!

实现童年梦想


在获得所有这些技术信息之后,我想对这个项目对我来说意味着更个人的感受 。 为了理解上下文,我建议您观看兰迪·波什 Randy Posh)的手表“真正实现您的童年梦想”中最具启发性的视频。 我强烈建议您看到它。 即使在最困难的日子里,这也是关于如何以奇迹般的方式感知生活的一课。 为了过上充实的生活,兰迪·波什(Randy Posh)建议我们尝试实现儿童的梦想,并帮助他人实现他们的梦想。


在我童年梦想的个人清单中,最重要的是为Nintendo Game Boy创建了一个视频游戏。 Game Boy是我的第一个视频游戏机,它将永远在我心中占据重要位置。 多年以来,我告诉自己,有一天我会为她创造一个游戏。 但是我总是有“更重要的事情”,例如,从事一个为我带来金钱的项目。 最终,有一天,我遇到了一个BitBitJam游戏卡纸,专门用于制作复古铁皮游戏。 然后,我想起了明智的兰迪·波什(Randy Posh)的话: 如果至少一次我尝试完成一个项目,却没有实现童年梦想,该怎么办?

因此,大约在卡纸开始前一个月,我开始研究为Game Boy创建游戏的各种工具 。 然后,在卡纸期间,我花了整整一个星期的时间(放假)来制作原型Sheep It Up! 卡纸后,我继续进行游戏的开发,抛光,改进,优化和重绘游戏,直到对结果感到满意为止。 在此期间,我一直在寻找为游戏创建真实墨盒的方法。 我很幸运认识了从事制造游戏的Catskull,并且暗地里梦想着创建自己的公司来发行自制游戏。 最后,我为Game Boy制作并发布了一款真实的游戏,该游戏使用物理墨盒出售。 但是,为什么墨盒如此重要? 我是否可以像其他许多自制游戏开发商一样,不停地在线分发游戏的电子版本?

不要忘记-我的真正目标不是发行游戏,而是实现童年梦想。 在我的梦想中,我可以使用自己制作的墨盒作为真正的Game Boy ,就像我小时候购买的所有其他游戏一样。 这是一个视频,展示了我如何在9岁的时候由父母为圣诞节购买的真实Game Boy中测试游戏的过程:


如您所见,我的孩子们的游戏机已经看到了很多东西:屏幕上不再显示许多像素列,按钮已经磨损,并且显示器有很大的垂直划痕。 但是她仍然在工作。 我无法用语言表达由ME创建的游戏机在游戏机控制台上出现的感觉。 我只能说,在九岁的这一刻,我为他成为这个成年人感到自豪。 而且这种感觉是我从这样的项目中可以获得的最好结果。


控制台在使用25年后仍可正常使用,并能够在2017年发行的游戏上启动游戏!

我有一个梦想:球员评论


因此,最好是主要根据自己的喜好创建游戏。 但是如果别人玩的话,欢乐会变得更大。 在项目结束时,我知道Sheep It Up! 原来是一个简单的游戏,所以期望值不是很高。 但是从玩家那里收到的反馈仍然让我感到惊讶!

尽管(或感谢)游戏的简单性,但玩家还是很喜欢它 。 游戏玩法足够简单,可以在几秒钟内理解它,但很快就消失了-“还有,是打破记录的最后一款游戏。” 顺便说一句, 我目前的记录是147分 ! 但是我最喜欢Retrogamer社区的是,爱情是大多数玩家的主要动力。 这会导致奇怪的意外。

对于初学者来说,有些人抱怨这款游戏不是盒装版本出售。 由于我只是在弹匣中收集复古游戏(为了节省金钱和货架上的空间) ,一开始我没有想到要创建盒装版本。 但是现在我意识到,为需要它的人提供这样的选择会很好。 但是游戏的狂热者之一Cyph则走得更远,他通过改造Nintendo DS弹药筒的珠宝盒来创建自己的游戏盒。 我不认识你,但结果对我来说似乎很惊人。 如果您对此感兴趣,也可以制作自己的盒子。 您所需要做的就是拿起Nintendo DS墨盒的珠宝盒,在其中切掉两个塑料小部件,然后插入Cyph制作的精美封面


羊的美丽自制盒子! 由Cyph在Nintendo DS墨盒盒中创建!

关于该游戏的另一个有趣的细节是,它在世界上最大的视频游戏展览之一中展出 :巴黎游戏周(30万名访客,比E3和东京游戏展的访问者还多) 。 为Game Boy发布的业余游戏如何与业界最新的AAA游戏同场演出? 借此机会,我感谢OrdiRetro 。 这是一家致力于视频游戏历史的法国协会,尤其是为旧游戏机和计算机发行的新游戏。 在这个展览上,他们有几个游戏摊位。 感谢我的朋友朱利安·阿尔瓦雷斯Julian Alvarez),他们找到了游戏的有关知识,并愿意在展览中向我展示。


Sheep It Up!,在2017年巴黎游戏周期间在“超级游戏男孩”上推出-感谢OrdiRetro

但是,如果没有联系,这种机会可能会出现。 发布后,立即由来自DMGpage网站的两名来自德国的Game Boy粉丝购买了该游戏。 但是他们不仅购买了该游戏,而且还在黑森州的Retro-BörseRetrogamers会议上展示了该游戏。 因此,感谢两位Game Boy粉丝,玩家们设法在Super Game Boy和德国会议上玩我的游戏-我也非常感谢他们!


放羊! 在黑森州Retro-Börse期间在超级游戏男孩上展示-谢谢, DMGpage

结论


用于复古游戏机的自制游戏并非以金钱或人气为目的。通常很少制作副本。如果您的游戏真的很不错,那么您最多可以希望吸引几十个人,只有数百人。但是您可以肯定,这些人对您的游戏有真诚的兴趣。它们与您一样怀有对复古铁的热爱。有时他们的爱甚至会比你的爱更强烈。而且,如果您喜欢这些天有关为Game Boy创建游戏的文章的这两部分,那么为什么不尝试自己做呢?

文章第一部分所述,有许多易于使用的工具可用来为历史上最流行的便携式控制台创建游戏。是的,这不会帮助您致富,但结果会带来很多快乐。或者,也许您也可以请其他人玩您的游戏!


因此,我希望您喜欢此事后验尸,它会鼓励您开发复古游戏。此外,如果您有一个Game Boy躺在某个地方,请不要忘记,您可以从Catskull游戏中以15美元的价格购买一个奇妙的Sheep It Up弹药筒每个墨盒都是手工组装的!

Source: https://habr.com/ru/post/zh-CN418193/


All Articles