1 poin oleh GN⁺ 2023-07-16 | 1 komentar | Bagikan ke WhatsApp
  • 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

 
GN⁺ 2023-07-16
Komentar Hacker News
  • Another World: game video klasik yang dikenal karena grafis yang mengesankan dan gaya artistiknya
  • Gim ini singkat dan teka-tekinya bergantung pada coba-coba, tetapi secara artistik tetap populer
  • Penggemar Another World juga dapat menikmati Flashback: The Quest for Identity
  • Ada berbagai port Another World untuk beragam platform, termasuk Amstrad CPC, Nintendo 64, dan PlayStation 1
  • Penulis artikel ini menggunakan bahasa HDL kustom bernama Silice untuk port FPGA
  • Grafis planar yang digunakan di Amiga memiliki keunggulan seperti efek transparansi dan efek moiré
  • Penggunaan mesin virtual (VM) untuk gim ini mungkin menyebabkan penurunan performa pada PC tahun 90-an
  • Gim ini memiliki pembukaan yang berkesan dan gameplay menantang, seperti melarikan diri dari singa
  • Pengembang asli Another World memberikan ceramah retrospektif di GDC tentang alat pengembangan dan proses animasi
  • Menonton playthrough di YouTube dapat membantu pemain yang kesulitan dengan gim ini