使用DMA将图像加载到Visual Boy Advance(VBA)

时间:2011-07-09 22:55:10

标签: c gameboy

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

1 个答案:

答案 0 :(得分: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)

在您的方案中,我认为您在源中指明了文件的名称。

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

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

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

中打开这个位

否则,DMA_SOURCE_INCREMENTDMA_DESTINATION_INCREMENT默认情况下处于启用状态(如果没有,您可以在cnt中打开它们。)

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

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