私はDosBoxを使用している大学のコースのための小さなゲームを作っています。ゲームには小さなチャットウィンドウがありますが、いくつかの図形もあります。シェイプを描画するにはグラフィックスモードにする必要がありますが、グラフィックスモードではフォントが大きくて醜いように見えます。 2つのモードを混在させる方法はありますか?画面の半分がグラフィカルで、もう1つがテキストの場合がありますか?そうでない場合は、グラフィックスモードのフォントを小さくするか、文字をどのように見せたいかを調整できますか?DosBox for x86のテキストモードとグラフィックモード
答えて
あなたはあまりにも長い間、構成ファイル内のマシンタイプを設定すると、640×480 256色を試みることができる:あり
mov ax, 4f02h
mov bx, 101h
int 10h
:ビデオモードを設定するための
machine=svga_s3
使用はint 10hを
その他のビデオモードもたくさんあります。私が通常使っている参考資料は次のとおりです。 http://www.wagemakers.be/english/doc/vga
また、グラフィックモードの場合は、独自のキャラクタセットを作成することもできます。 ビットマップ文字を変数として定義し、a000:0000で始まるピクセルバッファに書き込みます。
0〜0ffhまでのバイト値は、vgaカラーパレットの256色のうちの1つにマップされます(デフォルトのパレットをGoogleに渡すことができます)。したがって、値4をa000:0000に書き込むと、画面の左上隅のピクセルは赤に設定されます。
640x480 @ 8bppは300KiBのメモリで、VGA機能の外にあるだけでなく、0a0000hの標準の128KiBの穴に完全にマッピングできないことに注意してください。ビット14がビデオモード番号にセットされていない限り、VRAMは前記標準穴に入れられる。 [Int 10h/AX = 4f05](http://www.ctyme.com/intr/rb-0278.htm)を使用してバンクを切り替えることができます。 –
ええ、そうです。私が間違えました。私は64,000バイトの長さのピクセルバッファについて、その部分を編集しました。 –
- 1. DOSBoxデバッグアセンブリ
- 2. リモートサーバ上のグラフィックモードでemacsを実行
- 3. DOSBoxのDOSパスが無効ですか?
- 4. テキストモード画面をテキストファイルに書き込む。 (MASM)
- 5. アセンブリ - グラフィックモードで文字を印刷
- 6. DOSBoxエラー終了:CPU_SetSegGeneral:スタックセグメントゼロ
- 7. DOSBox上の8086アセンブリ:idiv命令のバグ?
- 8. Dosbox/Dosコマンドの@ prefixの意味は?
- 9. amd64とx86フォルダ
- 10. RXTX x64とx86
- 11. テキストモードとグラフィカルモードの互換性のあるGUIツールキット
- 12. このx86アセンブリ "for"ループを読み取るには
- 13. Visual Studio 2015でのlog10()パフォーマンスが、Visual Studio 2013 for x86よりずっと遅い
- 14. Dosboxはエイリアスを作成します
- 15. x86とx64 System.Data.SQLiteの問題
- 16. Mono for Android - サポートされているアーキテクチャ - Drop x86?
- 17. x86のキャリー/オーバーフローと減算
- 18. x86アセンブリの追加とシフト
- 19. 文字列とASMのx86
- 20. x86アセンブリエラー
- 21. x86とcをメイクファイルでコンパイル
- 22. アセンブリのx86 -
- 23. クロスコンパイル - x86用tcpdump
- 24. $(MSBuildProjectDirectory)と "program files(x86)"フォルダ
- 25. アセンブリx86 Irvine WriteStringバイトとDword
- 26. Androidスタジオエミュレータ:Intel Atom x86とARM
- 27. どのように私はDOSBoxアセンブリマウスイベントを行うことができます
- 28. VGAテキストモードのインテルGMA950プライベートバッファ内のバイトの意味
- 29. 理解のx86アセンブリコード
- 30. x86アセンブリのバッファ
VGAは私が覚えている限り、2つのビデオモード(コモドアとアタリは8bと16b IIRCの両方)から画面を構成することはできません。しかし、640x480の16色モード( 'mov ax、12h' int 10h')を使うとより細かい解像度を得ることができます。何かを描画するために大きな苦痛に耐えられるように準備する(銀行業務やビットプレーンで作業する)か、int 10hの "draw pixel"を使う。 (実際のVGAを十分に曲げることができても、それはエミュレータの下ではうまくいくとは思えません) – Ped7g
フォントの小さい= *「コンピュータはいいえ」*。少なくとももう一度 'int 10h'を使うつもりです。もちろん、独自のフォントをピクセルデータとして設計し、独自の描画フォントルーチンを作成することもできます(私は自分で行い、IIRCで約2〜3日かかりました。グラフ用紙上にフォントを描画しました(サイズは約5x8ピクセルです)。バイト値を計算し、紙からコンピュータに書き出すことができました。また、可変グリフの幅を使用することもできました。まだテキストのための吸うの320x200種類。しかし、256色対16 .... – Ped7g
@ Ped7g:次にモード '10h'を使用しないでください。 Dosboxは多数のSVGAアダプタをエミュレートします。実際には、ある程度のラスタートリックもサポートしていますが、プレーンなVGAルートにしたいのですが、垂直のテキスト/グラフィックモードの分割を取り除くことができるかどうかは多少疑わしいです。そして、私はそれがこの質問の範囲外にあると思うことを知るための興味深い小さなプロジェクトかもしれませんが。 – doynax