我是 C 的新手;我有一个通过在线工具翻译成 .h 和 .c 文件的图像文件。 C 文件包含 1024 个 16 位十六进制数的数组,用于表示位的开/关。我想读取此文件并使用 DMA 在屏幕上绘制图像……但我对如何执行此操作一筹莫展。有人可以帮忙吗?有谁知道我在说什么?
最佳答案
要在屏幕上绘制图像,请使用 DMA[3]。这是 DMA 的图像 channel 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 中打开这个位。
DMA_DESTINATION_FIXED
适用于您一遍又一遍地绘制到同一像素。如果这是你想要的,那么在 cnt 中打开这个位。
否则,DMA_SOURCE_INCREMENT
和 DMA_DESTINATION_INCREMENT
是默认打开的(如果没有,您可以在 cnt 中打开它们)。
这是我在 VBA 中使用的,所以如果这不能回答您的问题,我很抱歉(我对 C 也有点缺乏经验...)。
@Michael 是的,我是说 Visual Boy Advance
关于c - 使用 DMA 将图像加载到 Visual Boy Advance (VBA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6639134/