Sufficiency Economy
Group Blog
 
All blogs
 

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 คือค่าของสี โดยรูปแบบของสีคือ xBG
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.  

gba02: เพิ่มเติม เตรียมเครื่องมือการเขียนโปรแกรม บน Gameboy Advance

เปิด โปรแกรม Terminal ใน linux
1. วิธีลงโปรแกรม pacman พิมพ์คำสั่งตามรูปข้างล่าง

2. ติดตั้งเครื่องมือในการเขียนโปรแกรม สำหรับเครื่อง Gameboy Advance โดยพิมพ์
คำสั่ง sudo dkp-pacman -S gba-dev จะได้ผลลัพธ์ตามรูป

เพื่อความง่ายติดตั้งทุกอย่าง ก็กด Enter ส่ะ ทุกอย่างก็พร้อม ไปต่อ
โดยโปรแกรมจะถูกติดตั้งที่ /opt/devkitpro
 




 

Create Date : 17 กุมภาพันธ์ 2566    
Last Update : 17 กุมภาพันธ์ 2566 20:01:09 น.
Counter : 243 Pageviews.  

gba01: เตรียมเครื่องมือการเขียนโปรแกรม บน Gameboy Advance

1. ติดตั้ง devkitPro จาก https://devkitpro.org/
2. วิธีติดตั้งบน Linux : POP OS โดยการลง pacman แล้วใช้คำสั่ง
sudo dkp-pacman -S gba-dev
3. ลองดูตัวอย่าง code ก็ประมาณนี้

Compile โดยใช้คำสั่ง make ก็จะได้ ไฟล์.gba 
ใช้ โปรแกรม mGBA แสดงผลก็ได้ตามรูป




 

Create Date : 28 มกราคม 2566    
Last Update : 28 มกราคม 2566 20:30:34 น.
Counter : 412 Pageviews.  


wink99_th
Location :
พิษณุโลก Thailand

[Profile ทั้งหมด]

ฝากข้อความหลังไมค์
Rss Feed
Smember
ผู้ติดตามบล็อก : 8 คน [?]




New Comments
Friends' blogs
[Add wink99_th's blog to your web]
Links
 

 Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved.