问题标签 [gbdk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
43 浏览

c - 为某些输入注册屏幕边界时出现问题(下和右)

我正在使用 gbdk 为 DMG 创建一个滚动射击游戏,它基于一些 youtube 教程和这个示例。事实上,链接是我的程序的骨架。我的问题是屏幕边界条件不适用于向下和向右输入。但是,对于向上和向左,它们可以正常工作,并且它们的代码基本完全相同。我还从上面的链接编译了代码,它在那里正常工作。 提前道歉,我有一种幼稚的幽默感,所以游戏是以阴茎为基础的。

骨架代码和我的主要区别在于我为玩家使用了一个元精灵,为玩家的 x 和 y 坐标使用了一个数组。我尝试使用单独的整数作为位置并更改屏幕的边界,但似乎没有任何效果。

我期望能够将玩家向上移动到 y = 16,然后向下移动到 y = 150。当它达到这些值时,它会停止移动,直到你转向另一个方向。相反,我看到的情况是向上方向按预期工作,但只要按下向下键 - 无论 y 位置如何 - 播放器都会立即发送到屏幕底部。从那里,向上按将其发送到最顶部。此外,玩家只能从顶部位置移动到底部位置,而不能在两者之间滚动。我对此感到困惑,因为条件完全相同(y 值除外),所以我不明白为什么它们的行为如此不同。

0 投票
1 回答
389 浏览

c - 如何在 GBDK 上获得随机数?

我是 C 和 GBDK 的新手,我想编写一个在 0 和 1 之间决定的随机数生成器。就像一个“黑客”模拟器。

我尝试了很多来自互联网的例子。但没有一个奏效。

我上次尝试的输出截图:https ://i.ibb.co/f8G39vX/bgberrors.png

最后一次尝试代码:

我怎样才能实现它?

0 投票
0 回答
130 浏览

c - 在后台运行音乐 - GBDK

我正在使用 GBDK 为 C 中的 Gameboy 创建游戏。我的游戏需要音乐,我想使用Deflemask的文件输出,根据 Deflemask 的创建者的说法,“最好的办法是尝试在代码中导入 gbs [导出文件] 并在其中运行 asm(gbs 只是一个只输出声音的游戏男孩程序)”。我想我需要找到一种方法来获取我反汇编的 GBS 并以某种方式使用“#include”语句将其导入?到目前为止,我已经尝试反汇编 GBS,并尝试将其#include 到我的 C 中,但我无法让 Asm 与它兼容(我相信我需要一种从 C 调用它的方法,但是不知道如何给它一个参考名称)。这就是我倾向于解决这个问题的方法,但主要问题是我如何获得 Deflemask 输出(VGM、GB、GBS)以在用 C 编写的 gameboy 游戏上玩。

0 投票
0 回答
49 浏览

c - GBDK - 通过 GB 链路电缆从 RaspPi 发送数据

我一直在 gbdk 的“示例”文件夹中花费了一些时间,并且我有一些与“comm.c”示例相关的问题,希望有人可以帮助我。

一方面,我想通过串行链路电缆将数据缓冲区从 Raspberry Pi 发送到 Gameboy 需要以 gameboy 的时钟速率发送。我知道电缆的引脚 5 是时钟引脚,但我不确定我必须如何在我的 Raspberry Pi 上定制我的 python 代码才能发送给它。我了解较旧的 Gameboys(我用于此项目)的时钟频率为 8192Hz。我想我只需要在发送数据之前检查时钟的上升沿,但我不确定我是否必须以某种方式或其他方式更改波特率(如果这样的事情存在于raspPi) 以便正确发送信息。

此外,comm.c 示例似乎提供了一个很好的示例,说明如何通过链路电缆从 GB 发送/接收数据。尽管似乎很多细节都隐藏在编写库的程序集中。如果我想用python编写一个程序来与gameboy交互,或者至少只是发送字节,我怎么能做到这一点?在示例中,send_byte 方法似乎通过电缆自动发送 _io_out 缓冲区中的数据,而语句 while(_io_status == IO_SENDING && joypad() == 0) 用于等待它完全发送。然后,检查 _io_status 以查看数据是否已正确发送。

仔细查看 serial.s 中的 send_byte 程序集,我得到以下代码:

我希望能够在 python 脚本中实现这个功能,它将字节发送到我的 gb 程序,但我不完全确定如何。我对汇编不是最有信心的,我认为,在我可以让串行传输按照我想要的方式工作之前,我需要更好地理解这段代码片段的具体工作原理。任何帮助将非常感激 :)

编辑:另外,如果我希望能够通过按下按钮从我的 rasp pi 向我的游戏机发送一个字节,例如,我的 gb 程序是否需要将其 IO 状态永久设置为 IO_RECEIVING?