Added VisualBoy advance; a gameboy/gameboy color/gameboy advance emulator

svn path=/nixpkgs/trunk/; revision=27904
This commit is contained in:
Sander van der Burg 2011-07-22 18:31:42 +00:00
parent 2cb4bc4a47
commit 6ac699ba97
3 changed files with 49 additions and 0 deletions

View File

@ -0,0 +1,16 @@
{stdenv, fetchurl, zlib, libpng, SDL, nasm}:
stdenv.mkDerivation {
name = "VisualBoyAdvance-1.7.2";
src = fetchurl {
url = mirror://sourceforge/vba/VisualBoyAdvance-src-1.7.2.tar.gz;
sha256 = "1dr9w5i296dyq2gbx7sijk6p375aqnwld2n6rwnbzm2g3a94y4gl";
};
patches = [ ./fix.diff ]; # patch to shut up lost of precision errors
preConfigure = ''
# Fix errors with invalid conversion from 'const char*' to 'char*'
sed -i -e "s|char \* p = strrchr|const char * p = strrchr|g" src/GBA.cpp
sed -i -e "s|char \* p = strrchr|const char * p = strrchr|g" src/Util.cpp
'';
buildInputs = [ zlib libpng SDL ] ++ stdenv.lib.optional (stdenv.system == "i686-linux") nasm;
}

View File

@ -0,0 +1,31 @@
diff -urN ../tmp-orig/visualboyadvance-1.7.2/src/sdl/debugger.cpp
./src/sdl/debugger.cpp
--- ../tmp-orig/visualboyadvance-1.7.2/src/sdl/debugger.cpp 2004-05-13
16:13:14.000000000 +0200
+++ ./src/sdl/debugger.cpp 2005-03-21 21:57:06.000000000 +0100
@@ -950,9 +950,9 @@
{
u32 address = 0;
if(mem >= (u32*)&workRAM[0] && mem <= (u32*)&workRAM[0x3ffff])
- address = 0x2000000 + ((u32)mem - (u32)&workRAM[0]);
+ address = 0x2000000 + ((unsigned long)mem - (unsigned long)&workRAM[0]);
else
- address = 0x3000000 + ((u32)mem - (u32)&internalRAM[0]);
+ address = 0x3000000 + ((unsigned long)mem - (unsigned long)&internalRAM[0]);
if(size == 2)
printf("Breakpoint (on write) address %08x old:%08x new:%08x\n",
diff -urN ../tmp-orig/visualboyadvance-1.7.2/src/prof/prof.cpp
./src/prof/prof.cpp
--- ../tmp-orig/visualboyadvance-1.7.2/src/prof/prof.cpp 2004-05-13
16:31:58.000000000 +0200
+++ ./src/prof/prof.cpp 2005-03-21 21:56:27.000000000 +0100
@@ -266,7 +266,7 @@
for (toindex=froms[fromindex]; toindex!=0; toindex=tos[toindex].link) {
if(profWrite8(fd, GMON_TAG_CG_ARC) ||
profWrite32(fd, (u32)frompc) ||
- profWrite32(fd, (u32)tos[toindex].selfpc) ||
+ profWrite32(fd, (unsigned long)tos[toindex].selfpc) ||
profWrite32(fd, tos[toindex].count)) {
systemMessage(0, "mcount: arc");
fclose(fd);

View File

@ -8133,6 +8133,8 @@ let
vice = callPackage ../misc/emulators/vice { };
VisualBoyAdvance = callPackage ../misc/emulators/VisualBoyAdvance { };
# Wine cannot be built in 64-bit; use a 32-bit build instead.
wine = callPackage_i686 ../misc/emulators/wine { };