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

发布于 2024-11-19 09:45:20 字数 146 浏览 2 评论 0原文

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

I am new to C; I have an image file translated by means of online tools into a .h and .c file. The C file contains an array of 1024 16 bit hexadecimal numbers, used to denote on/off of bits. I want to read this file and draw the image onscreen using DMA...but I'm very much at a loss as to how to do this. Can anybody out there help? Does anyone even know what I'm talking about?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

月亮是我掰弯的 2024-11-26 09:45:20

要在屏幕上绘制图像,请使用 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 图像的指针。

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

以下是一些标志:
DMA_SOURCE_FIXED 表示您一遍又一遍地从同一像素进行绘制。如果这是您想要的,请在 cnt 中打开此位。
DMA_DESTINATION_FIXED 适用于您一遍又一遍地绘制同一像素的情况。如果这是您想要的,请打开 cnt 中的该位。

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

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

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

To draw an image onscreen, use DMA[3]. This is channel 3 of DMA for images.

This is how you set up DMA in a .h file:
http://nocash.emubase.de/gbatek.htm#gbadmatransfers

And then to draw an image using 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)

In your scenario, I think you indicate the name of the file in your source.

Keep in mind you're using POINTERS to images for src and dst.

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

Here are some flags:
DMA_SOURCE_FIXED means you draw from the same pixel over and over again. If this is what you want, then turn this bit on in cnt.
DMA_DESTINATION_FIXED applies that you're drawing TO the same pixel over and over again. If this is what you want, then turn on this bit in cnt.

Otherwise, DMA_SOURCE_INCREMENT and DMA_DESTINATION_INCREMENT are on by default (if not, you can turn them on in cnt anyway).

This is what I used for VBA, so I'm sorry if this does not answer your question (I'm kind of inexperienced with C as well...).

@Michael Yes, I mean the Visual Boy Advance

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文