Så gör du ett riktigt Game Boy Advance-spel med AI (och spelar det på riktig hårdvara)
Även på: English · Español · Deutsch · Français · Português · Italiano · Nederlands · Norsk · Bahasa Indonesia · Türkçe · Polski · Tiếng Việt · Русский · 日本語 · 한국어 · 繁體中文
För att göra ett Game Boy Advance-spel med AI öppnar du Shiny Gen (i en webbläsare på shinygen.ai/play, eller appen på iPhone, iPad och Android), startar ett nytt spel, väljer GBA-motor och beskriver spelet du vill ha. Dess AI-agent skriver spelet, kompilerar det till en riktig GBA-kassett, spelar den för att hitta och rätta buggar, och du laddar ner .gba-ROM:en, vilket kräver ett köp, vilket som helst, från ett startpaket för $2.99. ROM:en fungerar i GBA-emulatorer och på en riktig Game Boy Advance med en flashkassett.
Den här guiden går igenom det steg för steg, och tar sedan upp vilka sorters spel som fungerar bra, de ärliga begränsningarna och de vanligaste frågorna.
Vad GBA-motorn är
GBA-motorn är en motor vi har skrivit som kompilerar nya spel utifrån din instruktion. Den är ingen emulator och ingen ROM-laddare: motorerna för GBA, GBC, N64, GameCube och DS kompilerar spel som du gör i Shiny Gen, och kan inte spela kommersiella ROM:ar eller ROM:ar från tredje part.
Ditt spel skrivs i ett litet C-liknande språk (filen heter main.sgba). Shiny Gen kompilerar det till ARM-maskinkod på din egen enhet, packar in din grafik och ditt ljud i kassetten och spelar den kassetten. Det finns ingen separat förhandsversion: spelet du spelar i appen är själva kassetten.
Det här behöver du
- En modern webbläsare, eller Shiny Gen-appen från App Store eller Google Play.
- Ett gratis Shiny Gen-konto. Nya konton får gratis ädelstenar från start, och det är dem AI:n använder.
- För att ladda ner ROM:en: ett köp, vilket som helst, från ett startpaket för $2.99.
- För att spela på riktig hårdvara: en Game Boy Advance och en flashkassett för GBA. Emulatorer behöver inget annat.
Steg för steg
1. Starta ett nytt spel och välj GBA-motorn
Tryck på knappen +. Under Agent i appen väljer du Nytt. Nästa skärm är Välj en motor: välj GBA-motor.
Ett nytt GBA-spel öppnas i redigeraren. Det börjar som en tom kassett med flit, med en tom init() (körs en gång) och frame() (körs sextio gånger i sekunden), så att agenten bygger det du beskriver i stället för att redigera en mall som du inte bad om.

2. Beskriv spelet
Öppna fliken Agent längst ner i redigeraren och skriv vad du vill ha i dess vy Chatt. Ett bra första meddelande säger vilken sorts spel det är, vad spelaren gör, kontrollerna (GBA har ett styrkors, A, B, L, R, Start och Select), målet och utseendet.
Till exempel: "Gör ett äventyrsspel sett ovanifrån för GBA. En räv utforskar en skog, pratar med bybor i textrutor och samlar fem lyktor. Styrkorset för att gå, A för att prata, Start för att pausa. Spara framstegen när spelaren vilar vid en lägereld."
Knappen bredvid skrivfältet väljer modell, och den inbyggda agenten debiteras i ädelstenar efter faktisk användning.
3. Se agenten bygga och testa det
Agenten vet att den arbetar med en kassett. Den läser språkreferensen för GBA, skriver koden och bygger den. Om bygget misslyckas säger kompilatorn vad och var (rad, kolumn och vad du ska skriva i stället), och agenten rättar det. Sedan spelar den spelet själv:
- Kör kassetten och läser byggrapporten, inklusive hur full kassetten är.
- Tar skärmbilder av skärmen på 240 x 160 för att kontrollera vad som faktiskt ritas.
- Trycker på knapparna (A, B, L, R, Start, Select och styrkorset) för att spela det den har byggt.
- Läser tillbaka värden som spelet rapporterar, så att den kan se att hjälten har rört sig eller att poängen har ökat i stället för att gissa.
- Rättar det som är trasigt och kör igen.
Den kan också göra grafiken och ljudet: sprites, bakgrunder och musik, som läggs in i kassetten med namn. Att generera resurser kostar ädelstenar.
4. Ändra det genom att prata med det
När den första versionen fungerar fortsätter du i samma chatt. Små, konkreta önskemål fungerar bäst: "Lägg till en titelskärm", "Gör det andra området till en grotta med mörkare färger", "Textrutan är kvar när jag går därifrån; stäng den." Säg vad du såg i stället för att gissa orsaken; agenten kan återskapa det genom att spela spelet.
Du kan också öppna vyn Kod och redigera main.sgba själv. Att redigera koden för hand kostar inget, och ett bygge byter in den nya kassetten utan att ditt sparade spel försvinner.
5. Spela det i appen
Spelet spelas direkt i redigeraren och från ditt spels kort. På en telefon eller surfplatta finns kontrollerna på skärmen: ett styrkors till vänster, A och B till höger och L, R, Start och Select runt omkring. På en dator spelar du med tangentbordet: piltangenterna, Z för A, X för B, A och S för L och R, Enter för Start och Shift för Select. En handkontroll fungerar också, och du kan mappa om dess knappar i kontrollinställningarna.
Spelet sparar till sin egen batterisparning, som en kassett gör, så du kan gå och komma tillbaka där du var.

6. Ladda ner ROM:en
Tryck på Dela och sedan på Export .gba ROM. Att exportera kräver ett köp, vilket som helst, från ett startpaket för $2.99; knappen visas för alla ägare, och utan ett köp tar den dig till butiken i stället. Knappen finns för spel som du äger.
Innan du får filen bygger Shiny Gen om kassetten om något har ändrats, startar den sedan i en ny emulator och kontrollerar att den kommer igång. Du får en .gba-fil med ditt spels namn. ROM:en startar med en kort startskärm från Shiny Gen, och ditt sparade spel följer inte med, så en kopia du ger till någon börjar från början.
Var filen hamnar beror på enheten: en vanlig nedladdning i en webbläsare, och Spara till Filer i appen för iPhone och iPad. Android-appen kan inte spara filen än; öppna spelet på shinygen.ai i en webbläsare på telefonen eller datorn för att ladda ner det, vilket kräver samma enda köp.

7. Spela det på riktig hårdvara
En flashkassett är en GBA-kassett med en plats för ett minneskort i stället för ett enda fast spel. Du kopierar ROM-filer till kortet, och kassetten visar en meny med dem när konsolen startar. Vi har spelat ROM:ar som gjorts på det här sättet på en riktig Game Boy Advance och en Nintendo DS Lite, sparningar inräknade.
De allmänna stegen (din kassetts manual har de exakta):
- Kopiera
.gba-filen till kassettens SD- eller microSD-kort. Vissa kassetter behöver också sina egna systemfiler på kortet först. - Sätt kortet i kassetten och kassetten i din Game Boy Advance.
- Slå på den och välj ditt spel i kassettens meny.
Vissa kassetter frågar efter ett sparformat för varje spel. Våra ROM:ar använder 128 KB (1 Mbit) flash för sparningar och anger det inuti ROM:en, vilket är så flashkassetter och emulatorer brukar känna igen det av sig själva. Om din kassett frågar, välj 128 KB eller 1M flash. Sparningar fungerar då på kassetten på samma sätt som på en originalkassett.
För att spela utan hårdvara kan vilken GBA-emulator som helst öppna filen: till exempel mGBA på en dator, eller Delta på en iPhone.
Vilka sorters spel som fungerar bra
GBA-spelen i vår katalog visar bredden. Du kan spela alla gratis i webbläsaren och remixa vilket som helst av dem till en egen kopia som du ändrar med agenten:
- Rollspel där du samlar monster: Shiny Monsters Advance, med en stad, textrutor och monstermatcher. Det byter och strider med monster mot de andra Shiny Monsters-spelen över internet.
- Racing med ett roterande "Mode 7"-golv: Shiny Kart Advance, åtta förare på tre banor.
- Arkad: Shiny Pinball, ett flipperbord i rymden.
- Action och överlevnad: Shiny Swarm, där vapnen skjuter av sig själva och du står emot våg efter våg.
- Små, lugna spel: Spark Garden och Ember Courier.

Generellt fungerar spel som passar maskinen bäst: äventyr och rollspel sedda ovanifrån, plattformsspel, pusselspel, skjutspel, racing på ett roterande golv och allt som byggs av rutor och sprites. Motorn stöder rullande lager, sprites som roterar och skalas, genomskinliga effekter, textrutor, musik och ljudeffekter.
Begränsningar
GBA-motorn har samma gränser som den riktiga maskinen, och några saker är inte byggda än:
- Maskinens egna gränser. En skärm på 240 x 160; upp till 128 sprites samtidigt, var och en högst 64 x 64 pixlar; färger i paletter om 16; 256 KB arbetsminne för spelets data. Det finns inga flyttal, så positioner använder fixtal. Varje bygge rapporterar hur fullt varje utrymme är, så att du ser en gräns komma innan du når den.
- Ingen 3D. En GBA ritar rutor och sprites i 2D. "Mode 7"-golvet ger racingspel ett 3D-utseende, men det är en roterad och skalad 2D-bild.
- Bara nya spel. Den kan inte öppna eller spela en ROM som någon annan har gjort, och du kan inte importera en ROM för att redigera den.
- Ingen länkkabel på hårdvara än. Byten och strider mellan Shiny Monsters-spelen fungerar över internet i Shiny Gen. Att spela över en riktig länkkabel mellan två konsoler är inte bevisat, så det lovar vi inte.
- Sparningar stannar hos dig. ROM:en bär inte med sig dina framsteg, och Shiny Gen behåller ditt sparade spel från appen i ditt konto.
- Nedladdning kräver ett köp, och Android-appen kan inte spara filen än. Att exportera ROM:en kräver ett köp, vilket som helst, från $2.99; på Android laddar du ner den från en webbläsare.
De andra retromotorerna
GBA är en av fem retromotorer som vi har skrivit, och alla fungerar på samma sätt: välj motorn, beskriv spelet, och agenten bygger och testar det. GBC gör en Game Boy Color-ROM, N64 en N64-ROM, GameCube en .dol-fil och DS en .nds-fil med två skärmar, och att exportera någon av dem kräver samma enda köp, från $2.99. Vill du hellre ha ett modernt spel i 2D eller 3D är Godot-motorn det sjätte valet på samma skärm. Se hur Shiny Gen står sig mot andra AI-verktyg för att göra spel.
Vanliga frågor
Kan AI göra ett Game Boy Advance-spel?
Ja. I Shiny Gen väljer du GBA-motorn och beskriver spelet; AI-agenten skriver koden, kompilerar en riktig GBA-kassett, spelar den med knapparna för att hitta buggar och rättar dem. Du kan ladda ner .gba-ROM:en efter ett köp, vilket som helst, från $2.99.
Är det en riktig GBA-ROM?
Ja. Det är en vanlig .gba-kassettavbild, kompilerad till ARM-maskinkod, med ett giltigt kassetthuvud. Shiny Gen startar varje ROM i en ny emulator innan den lämnas över, och vi har spelat de här ROM:arna, sparningar inräknade, på en riktig Game Boy Advance och en DS Lite med en flashkassett.
Kan den spela Pokemon eller andra kommersiella ROM:ar?
Nej. GBA-motorn är ingen emulator och ingen ROM-laddare. Den kompilerar nya spel som du gör i Shiny Gen och kan inte spela kommersiella ROM:ar eller ROM:ar från tredje part.
Måste jag kunna programmera?
Nej. Du beskriver spelet, och agenten skriver och testar koden. Om du vill kan du läsa och redigera koden i vyn Kod; att redigera den för hand kostar inget.
Får jag sälja ett GBA-spel som jag har gjort?
Ja. Du äger det du gör, och Shiny Gen tar ingen andel av intäkterna (användarvillkoren, avsnitt 4). Du får sälja själva ROM-filen; att exportera den kräver ett köp, vilket som helst, från $2.99.
Vilka enheter fungerar ROM:en på?
GBA-emulatorer, som mGBA på en dator eller Delta på en iPhone, och riktig hårdvara med en flashkassett. Vi har testat den på en Game Boy Advance och en Nintendo DS Lite, sparningar inräknade, och den bör fungera på alla konsoler och handkonsoler som spelar GBA-kassetter, som Game Boy Advance SP.
Vilket sparformat ska jag välja på min flashkassett?
128 KB (1 Mbit) flash. ROM:en anger det, så kassetter och emulatorer brukar känna igen det utan att fråga.
Är det gratis?
Att göra, spela och dela spel är gratis. AI-generering och den inbyggda agenten använder ädelstenar, och nya konton får gratis ädelstenar. Att ladda ner ROM:en kräver ett köp, vilket som helst, från ett startpaket för $2.99. Hela listan finns på prissidan.