- Tác giả đã tái tạo trò chơi "Another World" bằng phần cứng sử dụng FPGA UP5K.
- Trò chơi chạy trên một máy ảo (VM) gọi blitter và rasterizer để tạo đồ họa.
- Tác giả đã xây dựng bản triển khai phần cứng của VM, blitter và rasterizer trên FPGA.
- Thiết kế nằm trong giới hạn yêu cầu tài nguyên của FPGA và sử dụng 128KB bộ nhớ SPRAM.
- Tác giả bắt đầu bằng việc tìm hiểu cách dữ liệu chảy qua dữ liệu trò chơi và mã nguồn.
- Thiết kế bao gồm một SoC để kết nối mọi thứ lại với nhau và bổ sung việc làm mới màn hình.
- Framebuffer sử dụng các khối SPRAM, và mỗi framebuffer được ánh xạ hoàn toàn vào các khối SPRAM.
- Bộ điều khiển hiển thị stream pixel ở 25 MHz và sử dụng double buffering để tránh nhấp nháy.
- Blitter có thể sao chép nội dung của một framebuffer sang framebuffer khác hoặc tô framebuffer bằng một màu đơn sắc.
- Tác giả đã tái tạo thành công trò chơi trên phần cứng với thiết kế chạy được trên nhiều bo mạch FPGA khác nhau.
- Bài viết này thảo luận về cách triển khai blitter và rasterizer trong game engine.
- Khối blitter sao chép pixel trong thời gian vblank, còn khối rasterizer vẽ đa giác lên framebuffer.
- Blitter kiểm tra xung khởi động và tô màu nếu được chỉ định.
- Rasterizer đọc các đỉnh đa giác từ BRAM dual-port để vẽ các đa giác lõm.
- Rasterizer sử dụng thủ thuật palette cho độ trong suốt và có thể sao chép pixel từ một framebuffer nguồn khác.
- Game engine bao gồm bộ máy vẽ font và hỗ trợ nền được render sẵn.
- Quy trình build bao gồm việc sao chép tệp dữ liệu trò chơi và chạy mô phỏng hoặc chơi trò chơi trên các nền tảng phần cứng khác.
- Bài viết này bàn về quá trình phát triển thiết kế phần cứng chạy trên FPGA cho trò chơi Another World.
- Tác giả cũng đề cập đến nhiều việc vẫn còn phải hoàn thành như kiểm thử trò chơi, tinh chỉnh timing, sửa lỗi render và thêm nhạc.
- Tác giả cũng nhắc đến khả năng kết nối các phần khác của trò chơi và lưu trạng thái game.
- Việc xây dựng các trò chơi hoặc bản demo khác trên nền phần cứng này cũng được nêu như một dự án tiềm năng trong tương lai.
- Bài viết cung cấp các liên kết tới loạt bài blog, bản port và tài liệu liên quan đến công cụ.
- Thiết kế Silice được dùng trong dự án này theo giấy phép MIT, còn bản port C++ đã chỉnh sửa vẫn giữ giấy phép GPL gốc.
- Bài viết cũng giải thích các thuật ngữ cốt lõi như framebuffer, rasterizer, blitter và máy ảo (VM) cho những độc giả chưa quen với lĩnh vực này.
1 bình luận
Ý kiến Hacker News