Gameboy Advance 03: putpixel เขียนจุดสีบนหน้าจอ แบบง่ายๆ
อ้างอิง : https://www.coranac.com/tonc/text/first.htm วันนี้เรามาทดลองเขียนจุดสีบน หน้าจอของ GBA กัน 1. การกำหนด Mode การแสดงผล มี 2 ชนิดคือ แบบ Tile (ยาก) และแบบ bitmap (ง่าย) ที่เรากำลังจะพูดถึง มี Mode 3, 4, 5
เพื่อความง่ายสุดๆ จึงขอเลือก Mode 3 ก่อน ซึ่งจะแสดงผลที่ 240 x 160 pixel สามารถแสดงสีได้แบบ 16 bit แต่bitสุดท้ายไม่คิด กำหนดด้วยคำสั่ง *(unsigned int*)0x04000000 = 0x0403; *(unsigned int*)0x04000000 คือตำแหน่ง Registor REG_DISPCNT ค่า 0x0403 จะมาขยายความกันด้วยรูปข้างล่าง 0x0403 ถ้าเขียนด้วยเลขฐานสอง จะได้ 0000 0100 0000 0011 ให้ดูที่สี จะเห็นได้ว่าเลือก mode 3 และ แสดงผลที่ BG2 : Background 2
การลงจุดสี ใช้คำสั่ง ((unsigned short*)0x06000000)[120+80*240] = 0x001F; (unsigned short*)0x06000000 คือตำแหน่งของ VRAM [120+80*240] คือตำแหน่งของจุดสี กำหนดเป็นค่าใน array 0x001F คือค่าของสี โดยรูปแบบของสีคือ xBGR 0x001F = 0000 0000 0001 1111 เพราะฉนั้นก็คือสีแดง [120+80*240] ปรับให้เป็นตำแหน่ง (x,y) ก็คือ [x+y*240]
Create Date : 18 กุมภาพันธ์ 2566 | | |
Last Update : 18 กุมภาพันธ์ 2566 18:49:20 น. |
Counter : 321 Pageviews. |
| |
|
|
|