- Menggunakan FPGA UP5K, penulis merekreasi game "Another World" dalam bentuk perangkat keras.
- Game berjalan di atas mesin virtual (VM) yang memanggil blitter dan rasterizer untuk menghasilkan grafis.
- Penulis membuat implementasi perangkat keras untuk VM, blitter, dan rasterizer di FPGA.
- Desain ini muat dalam batas kebutuhan sumber daya FPGA dan menggunakan memori SPRAM sebesar 128KB.
- Penulis memulai dengan memahami bagaimana data mengalir melalui data dan kode game.
- Desain ini mencakup SoC yang menghubungkan semuanya dan menambahkan pembaruan tampilan.
- Framebuffer menggunakan blok SPRAM, dan setiap framebuffer dipetakan secara sempurna ke blok SPRAM.
- Pengendali tampilan melakukan streaming piksel pada 25 MHz dan menggunakan double buffering untuk mencegah kedipan.
- Blitter menyalin isi satu framebuffer ke framebuffer lain atau mengisi framebuffer dengan warna solid.
- Penulis berhasil menciptakan ulang game tersebut dalam perangkat keras yang berjalan di berbagai papan FPGA.
- Artikel ini membahas implementasi blitter dan rasterizer dalam mesin game.
- Unit blitter menyalin piksel selama vblank, sementara unit rasterizer menggambar poligon ke framebuffer.
- Blitter memeriksa pulsa awal dan mengisi warna jika ditentukan.
- Rasterizer membaca titik puncak poligon dari BRAM dual-port untuk menggambar poligon cekung.
- Rasterizer menggunakan trik palet untuk transparansi dan dapat menyalin piksel dari framebuffer sumber lain.
- Mesin game ini mencakup mesin penggambar font dan mendukung latar belakang yang telah dirender sebelumnya.
- Proses build mencakup penyalinan file data game serta menjalankan simulasi atau memainkan game di platform perangkat keras lain.
- Artikel ini membahas pengembangan desain perangkat keras yang berjalan di FPGA untuk game Another World.
- Penulis juga menyebutkan beberapa tugas yang masih harus diselesaikan, seperti pengujian game, penyesuaian timing, perbaikan masalah rendering, dan penambahan musik.
- Penulis juga menyinggung kemungkinan untuk menghubungkan bagian lain dari game dan menyimpan status game.
- Membangun game atau demo lain di atas perangkat keras ini juga disebut sebagai proyek potensial di masa depan.
- Artikel ini menyediakan tautan ke materi terkait seri blog, port, dan alat.
- Desain Silice yang digunakan dalam proyek ini berlisensi MIT, sementara port C++ yang dimodifikasi tetap menggunakan lisensi GPL asli.
- Artikel ini juga menjelaskan istilah-istilah inti seperti framebuffer, rasterizer, blitter, dan mesin virtual (VM) bagi pembaca yang tidak familier dengan industri ini.
1 komentar
Komentar Hacker News