- UP5K FPGA का उपयोग करके लेखक ने गेम "Another World" को हार्डवेयर में दोबारा बनाया है।
- गेम एक virtual machine (VM) पर चलता है, जो graphics बनाने के लिए blitter और rasterizer को कॉल करता है।
- लेखक ने FPGA पर VM, blitter और rasterizer के hardware implementations बनाए हैं।
- यह design FPGA की resource requirements के भीतर फिट बैठता है और 128KB SPRAM memory का उपयोग करता है।
- लेखक ने game data और code के माध्यम से data flow को समझने से शुरुआत की।
- design में एक SoC शामिल है जो सब कुछ आपस में जोड़ता है और display refresh जोड़ता है।
- framebuffer SPRAM blocks का उपयोग करता है, और हर framebuffer पूरी तरह SPRAM blocks पर मैप होता है।
- display controller 25 MHz पर pixels stream करता है और flicker रोकने के लिए double buffering का उपयोग करता है।
- blitter एक framebuffer की सामग्री को दूसरे framebuffer में कॉपी करता है या framebuffer को एक ही रंग से भरता है।
- लेखक ने विभिन्न FPGA boards पर चलने वाले hardware के रूप में गेम को सफलतापूर्वक फिर से बनाया है।
- यह लेख game engine में blitter और rasterizer के implementation पर चर्चा करता है।
- blitter unit vblank के दौरान pixels कॉपी करता है, और rasterizer unit framebuffer पर polygons बनाता है।
- blitter start pulse की जाँच करता है और यदि निर्देश दिया गया हो तो रंग भरता है।
- rasterizer dual-port BRAM से polygon vertices पढ़कर concave polygons बनाता है।
- rasterizer transparency के लिए palette trick का उपयोग करता है, और दूसरे source framebuffer से pixels कॉपी कर सकता है।
- game engine में एक font drawing engine शामिल है और यह pre-rendered backgrounds को support करता है।
- build process में game data files कॉपी करना और simulation चलाना या दूसरे hardware platforms पर गेम खेलना शामिल है।
- यह लेख Another World के लिए FPGA पर चलने वाले hardware design के development पर चर्चा करता है।
- लेखक ने game testing, timing tuning, rendering issues को ठीक करने, music जोड़ने जैसी कई बाकी रह गई चीज़ों का भी ज़िक्र किया है।
- लेखक ने गेम के दूसरे हिस्सों को जोड़ने और game state save करने की संभावना का भी उल्लेख किया है।
- इस hardware पर दूसरे games या demos बनाना भी संभावित future projects के रूप में बताया गया है।
- यह लेख blog series, ports, tools और संबंधित materials के links प्रदान करता है।
- इस project में इस्तेमाल किया गया Silice design MIT license के तहत है, जबकि modified C++ port original GPL license को बनाए रखता है।
- यह लेख framebuffer, rasterizer, blitter और virtual machine (VM) जैसे core terms को उद्योग से अपरिचित पाठकों के लिए समझाता है।
1 टिप्पणियां
Hacker News राय