Bärbar spelkonsol (ARM MCU Team)
Sammanhang
För vårt engineering projekt ville vår handledare vi att möta utmaningar för att utforma en verklig-tid system med relativt hög prestanda på begränsade resurser (minne, bandbredd).
Specifikationerna kräver en spelplattform med följande hårdvara:
- en Digilent Nexys 3 styrelsen (för en GPU om FPGA).
- en Keil's MCBSTM32F400 styrelse (för värd OS av plattformen och lagra spel data).
- en Visa Tech DT035TFT LCD med Novatek NT39016 förare (protable sanna färgdisplay).
Det finns två lag med två elever som arbetar med detta projekt. Ett lag är inriktad på ARM MCU och den andra på GPU.
Specifikationer
Plattformen har att matcha prestandan hos en 16-bitars kommersiella spelplattform som SNES, Sega MegaDrive, med multilayer ramar och rullning. Plattformen består av två huvudkomponenter: MCU av moderkortet och GPU ansluten till videoutgången.
- De särskilda krav som MCU är grafik API för GPU, ljud-API för onboard audio codec, användare IO, MCU/GPU gränssnitt, SD kortet gränssnittet. Programmering av TV-spelet. En modul för konfigurering av LCD-skärmen (ljusstyrka, kontrast, etc.) anses också inuti GPU.
- De särskilda krav som GPU är multilayer display, blandning av olika lager med öppenhet, 16-bitars RGBA färger, flerskiktade rullning, grundläggande 2D-åtgärder (bitblit (kopia), färg fylla, öppenhet modifiering, och deras kombination (clear, flytta, osv), primitiva generation (linjer, cirklar, text), LCD och VGA video utgångar. Grafik orienterade minne controller med DMA åtkomst.
Genomförandeplaner
De två lagen kommer att behöva samarbeta regelbundet för att utveckla de två huvudkomponenter som tidigare nämnts. Vi har designat arkitekturen av plattformen för att säkerställa detta.
Vårt team kommer att börja tillämpa genom att tillhandahålla alla nödvändiga gränssnitt kring GPU, till exempel stöd för LCD och anslutningen mot MCU styrelsen. Detta kommer att utvecklas parallellt med utformningen av HDL modulerna associerade till dessa gränssnitt. Vid denna punkt, kommer att en preliminär integration med GPU ske för att säkerställa samstämmigheten och samverkan mellan båda moduler. Detta kommer att följas av programvarudesign på MCU krävs kringutrustning drivrutiner, ljud- och API och slutligen RTOS. Efter den slutliga integrationen med grafik laget, som omfattar alla GPU moduler, kommer att planerade spelet genomföras och testas.
YouTube-Video
Innan vi går igenom detaljer, kan du kolla in Youtube länken som innehåller en kort sammanfattning av vårt projekt och en video som visar vad vi lyckats göra detta långt. Projektet är ännu inte komplett men vi kommer att hålla uppdatera denna sida varje gång en ny funktion läggs till i projektet.
Första demonstration: Animation
I denna demo finns två display lager i rambuffert, bakgrunden är en bild av stjärnorna på 320 x 240 och förgrundsbilden är en 3200 x 240 med en fast bakgrundsfärg som är inställd på en transparent färg medan konvertera bmp-filen till våra format. MCU rullar med jämna mellanrum på förgrundsbilden för att skapa animerade rörelsen.
Andra demonstration: en kort gameplay
I denna demo ger vi en kort gameplay med sprites och bakgrundsbilder från Street of Rage (brädspel). I det här fallet animationer skapas med bitblits på förgrunden och förflyttning av karaktären skapas med rullning. Du kan också se primitiva generation i slutet för att visa ett meddelande.