2011-07-09 4 views
3

私はCを初めて使用しています。私は、オンラインツールで.hと.cファイルに翻訳されたイメージファイルを持っています。 Cファイルには、1024の16ビットの16進数の配列が含まれ、ビットのオン/オフを示すために使用されます。私はこのファイルを読んで、DMAを使って画面上にイメージを描きたいと思っています...しかし、私はこれをどうやってどうやって行うのかについて非常に困っています。誰でもそこに助けてもらえますか?誰も私が話していることを知っていますか?DMAを使用してVisual Boy Advance(VBA)に画像をロードする

+0

ただ明確にする - 右 - VBAであなたは任天堂のゲームボーイアドバンス用「ビジュアルボーイアドバンス」エミュレータの話をしていますか?私は、ここではVBAを「Visual Basic for Applications」と考えています。 –

答えて

4

画面上に画像を描画するには、DMA [3]を使用します。これは、画像のDMAのチャネル3です。 DMA http://nocash.emubase.de/gbatek.htm#gbadmatransfers

そして使用して画像を描画する:

これは、あなたが.hファイルに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がデフォルトでオンになっています(そうでない場合は、とにかくオンにできます)。

これは私がVBAのために使用したものですので、これがあなたの質問に答えることができないのであればごめんなさい(私はCでも経験の浅い人です)。

@Michaelはい、私は意味のVisualゲームボーイアドバンス

関連する問題