3

我是 C 新手;我有一个通过在线工具翻译成 .h 和 .c 文件的图像文件。C 文件包含一个由 1024 个 16 位十六进制数组成的数组,用于表示位的开/关。我想读取这个文件并使用 DMA 在屏幕上绘制图像......但我对如何做到这一点非常茫然。有人可以帮忙吗?有人知道我在说什么吗?

4

1 回答 1

4

要在屏幕上绘制图像,请使用 DMA[3]。这是图像的 DMA 通道 3。

这是您在 .h 文件中设置 DMA 的方式:http: //nocash.emubase.de/gbatek.htm#gbadmatransfers

然后使用 DMA 绘制图像:

#######include image.h 

DMA[3].src = (specify your image source here, where you're drawing from)

DMA[3].dst = (where you're drawing pixels to)

在您的场景中,我认为您在源代码中指明了文件的名称。

请记住,您正在使用 POINTERS 指向 src 和 dst 的图像。

DMA[3].cnt = (how many times you want to do it) | flag1 | flag2...

以下是一些标志:
DMA_SOURCE_FIXED表示您一遍又一遍地从同一个像素中绘制。如果这是您想要的,请在 cnt.xml 中打开此位。
DMA_DESTINATION_FIXED适用于您一遍又一遍地绘制到同一个像素。如果这是你想要的,那么打开cnt中的这个位。

否则,默认情况DMA_SOURCE_INCREMENTDMA_DESTINATION_INCREMENT是打开的(如果没有,你可以在cnt中打开它们)。

这是我用于 VBA 的,所以如果这不能回答你的问题,我很抱歉(我对 C 也有点缺乏经验......)。

@Michael 是的,我的意思是 Visual Boy Advance

于 2012-04-23T03:39:54.997 回答