Home > Assembler, C, C++, GBA, Hardware, Programming > GBA programming in Linux

GBA programming in Linux

GBA Rom

Mijn eerste GBA rom aan de linkerkant :) Nouja, afgekeken van een voorbeeldbestand…

Gisterenavond wou ik eens proberen om iets te programmeren voor mijn oude Game Boy Advance. Na wat rondgezocht te hebben bleek het niet eens zo moeilijk te zijn. Er is slechts weinig kennis nodig van ARM assembler. Programma’s kunnen gewoon in C/C++ worden geschreven en trage stukken nadien eventueel geoptimaliseerd met assembler.

Wel ga ik me moeten inwerken in het registersysteem van de Game Boy Advance.

Het was niet moeilijk om een cross compiler (compiler die uitvoerbare code genereert voor een ander platform dan hetgeen waarop de compiler draait) te compileren en gebruiken.

Mijn gecompileerd testproject werkte op emulators (zoals mednafen of visualboyadvance) maar het niet kon worden ingelezen door mijn EZF Advance client software! (software die ik gebruik om roms te uploaden naar een Flashkaart zodat ik de roms ook op mijn echte Game Boy Advance kan testen)
Screenshot van het probleem

Vandaag ben ik dus even bezig geweest met het uitzoeken van het probleem. De rom header moest gefixt worden en nog allerlei zaken. Ik had een perl script gevonden die alles voor me zou gefixt hebben, en de headers leken daarna inderdaad in orde, maar het programma wou nog steeds niet importeren in EZF Advance.

Toen vond ik devkitPro/devkitARM. Een heel pakket met alles wat ik nodig had. Heel veel GBA libs, voorbeelden, een cross compiler, header-fix-tool, etc.! Dus dat maar eens geïnstalleerd en een nieuw project gecompileerd op basis van één van de voorbeelden. En zie daar. Het draait nu ook op mijn Game Boy Advance (hardware)! Ik zou er een foto van hebben genomen, maar ik heb geen digitale camera :)

VN:F [1.6.3_896]
Rating: 0 (from 0 votes)
Share and Enjoy:
  • Print this article!
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • StumbleUpon
  • Twitter
Categories: Assembler, C, C++, GBA, Hardware, Programming
  1. July 13th, 2007 at 01:42 | #1

    Hey,

    Ik heb wat NDS hardware liggen, als je wil dat ik help testen.
    Als je ook wat howto/sample stuff wil posten zou dat super zijn,
    want het intereseerd me wel. We moeten zeker es praten op MSN of AIM

  2. July 13th, 2007 at 01:46 | #2

    Ik zou je feedback en misschien support ook kunnen gebruiken voor Netris
    dat geschreven is in C# met SDL

    De google group vind je hier: http://groups.google.com/group/netris

  3. wesley
    July 13th, 2007 at 03:01 | #3

    Timothy: Ik heb nog niet veel kunnen doen met GBA programming, maar ik ga me er de komende weken af en toe mee bezighouden. Howto stuff zal ik waarschijnlijk niet posten, omdat er PRIMA informatie op het internet te verkrijgen is. De link naar de “uitgebreide tutorial” is een echte aanrader. Is letterlijk héél uitgebreid :) zelf kan ik het echt niet beter.

    Samples en kleine programmaatjes die ik heb gemaakt ga ik hier zeker wel posten, inclusief broncode.

    En hoewel de NDS hélemaal anders is dan de GBA, kan de NDS wel GBA stuff inlezen, en dus kan je alles inderdaad ook op je NDS testen als je dat bedoelt, maar het probleem is dat je dan wel een cartridge schrijver ofzo nodig hebt. Ik heb zelf een EZF Advance Flash Cartridge daarvoor.

    Maar over het algemeen werkt VisualBoyAdvance net zo goed om te testen. Nouja, VisualBoyAdvance heeft een throttling probleem hier bij mij op linux, vandaar dat ik Mednafen gebruik waar alles 100% echt aanvoelt (Mednafen gebruikt voor zijn GBA stuff achter de schermen VisualBoyAdvance code + patches).

    Trouwens, als je bekijkt hoe een GBA in elkaar zit, dan is het echt wel klasse als je een dergelijke emulator als VisualBoyAdvance kan schrijven! Echt waar, petje af voor die mensen.

  4. Richard
    July 13th, 2007 at 12:40 | #4

    Was er zelf ook mee bezig in de zomervakantie van 2006 maar ben nooit echt ver gekomen.. DevkitPro is wel heel erg fijn.
    Ik heb zelf een M3miniSD en een DS-X dus als ik je kan helpen met testen kun je altijd vragen :3

  1. No trackbacks yet.