Archive

Archive for the ‘Hardware’ Category

GBA programming in Linux

July 12th, 2007 Wesley 4 comments

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)
Categories: Assembler, C, C++, GBA, Hardware, Programming

Reallife xeyes

April 14th, 2007 Wesley 4 comments

Wie kent xeyes niet? De oude applet met de 2 ogen die je muiscursor achtervolgen. Een zekere linux programmeur genaamd Zn000h wil xeyes nieuw leven inblazen en heeft een reallife versie ontwikkeld van de applet. Voorbijgangers die toevallig langs zijn huis lopen worden nu aangekeken en gevolgd door 2 reuzegrote ogen.

reallife xeyes

Aan de technische kant bestaat deze reallife xeyes uit 2 uitgeknipte pizzadozen, een low-end webcam en aan de softwarekant mplayer met een zelfgemaakte videofilter om beweging te detecteren en de locatie van de ogen te bepalen. De 2 ogen (pizzadozen) worden gedraaid door RC-servos die bestuurd worden door een ATTiny2313 die is verbonden met de computer door middel van de low-speed USB software stack.

Meer details zijn beschikbaar op de blog van Zn000h: http://hunz.geekheim.de/?p=47

VN:F [1.6.3_896]
Rating: 0 (from 0 votes)
Categories: Hardware, Linux, Programming

Aiglx op een oude laptop

July 7th, 2006 Wesley No comments

Een “3D desktop” op een oude laptop? Met Linux kan het.

aiglxEnkele dagen geleden heb ik 3D acceleratie werkend gekregen op mijn oude laptop (800Mhz, 256MB ram, ATI Radeon 7500 32MB) met behulp van de open source “radeon” driver + dri. Ik heb daarna enkele tweaks doorgevoerd met driconf, waardoor de kaart nog 1.5x zo snel draait.

Om gebruik te maken van mijn 3D acceleratie wou ik eens proberen om aiglx + compiz te installeren (aiglx is vergelijkbaar met xgl, maar het is een andere implementatie)

Het resultaat mocht er wezen, maar fullscreen video onder aiglx haperde wel een beetje. Aiglx ondersteunt echter 16bit kleurenmodus (XGL ondersteunt enkel 24bit) en hoewel het kleurenverloop soms wat fletser is, draait aiglx nu wel top! Ik kan meerdere video’s fullscreen bekijken + het cube effect doen, bijvoorbeeld. En dit allemaal op een vrij oude laptop met een hele trage grafische kaart.

VN:F [1.6.3_896]
Rating: 0 (from 0 votes)
Categories: Hardware, Linux, Ubuntu