Gần đây, tôi bắt đầu phát triển một hệ điều hành trong NASM và C. Tôi đã tạo bộ nạp khởi động, hạt nhân, hệ thống tệp, v.v. Cho đến nay tôi đã sử dụng chế độ văn bản VGA trực tiếp để ghi vào địa chỉ 0x000B8000
. Vì vậy, tôi quyết định chuyển sang chế độ video thay vì chế độ văn bản. Tôi đã chọn độ phân giải màn hình tối đa 320x200
, nhưng sau đó tôi nhận ra rằng có ba vấn đề. Thứ nhất, chỉ có 256 màu khác nhau. Thứ hai, độ phân giải quá nhỏ. Thứ ba, ghi vào địa chỉ 0x000A0000
quá chậm. Tôi đã thử làm một số hình ảnh động, nhưng nó rất lag và đôi khi nó chờ hơn một giây trước khung tiếp theo.Chuyển sang độ phân giải cao hơn
Tôi đã tìm kiếm trên internet một số giải thích về cách chuyển sang độ phân giải cao hơn như 1920x1080
và cách sử dụng 256*256*256
màu thay vì chỉ 256. Mọi thứ tôi thấy rất khó sử dụng độ phân giải cao hơn vì bạn phải phát triển trình điều khiển cho tất cả các loại thẻ đồ họa khác nhau và đối với một số thẻ không có tài liệu, vì vậy chúng tôi phải sử dụng kỹ thuật đảo ngược.
Tôi thực sự muốn giới thiệu đồ họa độ phân giải cao cho hệ điều hành của mình. Là nó thực sự khó khăn hoặc là có bất kỳ phương pháp dễ dàng? Bất kỳ đề xuất về cách tôi có thể giải quyết điều này?
Nếu bạn đang gặp sự cố khi viết mã để hiển thị hình động nhanh trên màn hình VGA 320x200 tệ hại, thì hãy thử và cải thiện màn hình đầu tiên trước khi đi tới màn hình gấp 3 lần bit trên mỗi pixel (có thể là 4 lần) và 30 (!) lần nhiều pixel hơn. – usr2564301