Jump to content
Visual Boy Advance-M


  • Content Count

  • Joined

  • Last visited

Everything posted by Nach

  1. Our downloads section had to be disabled some time back because MKPortal was uploading the files to users incorrectly. We've also had some bugs present on the forum in regards to downloads. I've rewritten the appropriate code within MKPortal and MyBB to send files to users properly. Not only do downloads work correctly now, they can also be handled by download managers, and resumed if the download got interrupted. You might also notice an improved download rate when downloading files. Now our downloads section is back, and we will continue to post new VBA-M builds there.
  2. More specifically: http://vba-m.com/index.php?ind=downloads
  3. Nach


    vba-m.com has IPv6 address 2600:3c00::f03c:91ff:fe96:f9c1
  4. Nach

    Maxim Stepin's hq filter website rescued

  5. Nach

    Board IRC Client

  6. Yes, several actually. I believe a method along these lines is the best way to encode. 1) It eliminates any platform specific video encoding libraries. 2) It eliminates needing to write any code to interface with those libraries which can get messy quickly. 3) It's easy to make cross platform. 4) It allows a user to easily set his own encoding options, and save them as a preset. 5) Programs can be swapped at any time to use whichever works best (MEncoder, FFMPEG, or anything else). 6) We get free support of any of the newest encoding methods without any reprogramming done on our part. 7) The code is rather easy, and the programmer doesn't need to learn any API beyond standard C if done correctly. However, I don't necessarily agree with using a named piped (FIFO file). How to create a named pipe changes per OS, and some OSs have whacked out restrictions on named pipes like only on particular file systems or other nonsense. Most of these command line operated encoding programs don't just works with files, but would accept input via stdin. So I prefer launching them via popen() which is standard C, and writing to them in a normal method, which gives maximum portability. That's what I did in ZSNES. However I wrote specialized versions of popen() for Windows and Linux which returns a null pointer if it could not launch the executable. The method should be user configurable to specify which program to use, how many passes to run, which commands to pass the program for each pass, and commands at the end to clean up the binary (such as running mkvmerge, or hexedit into an AVI new timecodes). ZSNES begin of dump code: https://zsnes.bountysource.com/svn/!source/5224/trunk/src/zmovie.c#1984 Begin Dump: https://zsnes.bountysource.com/svn/!source/5224/trunk/src/zmovie.c#2263 Write Frame: https://zsnes.bountysource.com/svn/!source/5224/trunk/src/zmovie.c#236 Finish Dump: https://zsnes.bountysource.com/svn/!source/5224/trunk/src/zmovie.c#2203 Embed logo in video prior to dumping the video (see http://tasvideos.org for use of this) https://zsnes.bountysource.com/svn/!source/5224/trunk/src/zmovie.c#2173 Modified popen() for Windows: https://zsnes.bountysource.com/svn/!source/5224/trunk/src/win/safelib.c Modified popen() for Linux (and other UNIXs): https://zsnes.bountysource.com/svn/!source/5224/trunk/src/linux/safelib.c#262 Creating user config file from developer's end: https://zsnes.bountysource.com/svn/!source/5224/trunk/src/md.psr What user sees when editing config file: http://nach.pastebin.com/m3b752734 Custom config for FLV: http://ia340931.us.archive.org/0/items/Zsnes_zmv2flv_cfg_file/zmovie.cfg Some guy who tweaked his own settings: http://www.mortenblog.net/2009/02/23/recording-snes-game-videoes-with-zsnes-and-mencoder/ Since I want to include encoding like this in other projects, I was thinking of making a completely emulator independent C++ class which handled dumping like this, with support for user settings, begin dump, write frames, finish up dump. You should write it at whatever speed VBA-M goes at. In the case of audio, if need be, resample it as I do in ZSNES.
  7. Nach

    C/C++ macro expander?

    If you really looking to format code, grab a copy of Source Styler, it can be configured to whatever indentation style you prefer.
  8. Nach

    your favourite top five GBA games.

    Top 5? I think I only played 4 AGB games total... Metroid Fusion. Metroid Zero Mission. Mario Vs. Donkey Kong. The Legacy of Goku II. If anyone remembers some other game that I played, please remind me.
  9. Yes, but human blood and bile works better.
  10. I would take the time to refertilize my garden. Always looking for new blood.
  11. Nach

    Nice to see the forum back up..

    Yes we are back, and hopefully better than ever
  12. Nach

    To bKgu

    Besides the problem listed here: http://vba-m.com/forum/showthread.php?tid=132 When cross compiling, it uses -f elf instead of -f win32 in the asm parameters. Any ideas why?
  13. Nach

    SDL frontend: compiling asm hq filters

    I can confirm I have this problem with r571 too.
  14. Nach

    To bKgu

    make clean That won't do it, it only removes the object files.
  15. Nach

    To bKgu

    Latest SVN doesn't bother to build or link the assembly files: CMakeFiles/vbam.dir/src/hq/asm/hq3x32.obj:hq3x32.cpp: (.text+0x244): undefined reference to `_hq3x_32' CMakeFiles/vbam.dir/src/hq/asm/hq3x32.obj:hq3x32.cpp: (.text+0x712): undefined reference to `_hq4x_32' CMakeFiles/vbam.dir/src/hq/asm/hq3x32.obj:hq3x32.cpp: (.text+0x93c): undefined reference to `_hq3x_32' CMakeFiles/vbam.dir/src/hq/asm/hq3x32.obj:hq3x32.cpp: (.text+0xb5c): undefined reference to `_hq4x_32' CMakeFiles/vbam.dir/src/hq/asm/hq3x32.obj:hq3x32.cpp: (.text+0x443): undefined reference to `_hq3x_16' CMakeFiles/vbam.dir/src/hq/asm/hq3x32.obj:hq3x32.cpp: (.text+0x5c3): undefined reference to `_hq4x_16' Is there something I should be doing to cleanup between different builds besides?: rm -rf CMakeCache.txt Makefile CMakeFiles Although bgK, it seems I can compile builds now as long as they're not using assembly
  16. Nach

    To bKgu

    It is invalid, yes, but not for the reason you think. It is not using "cr" for "ar". It is using " cr" for "ar cr" [1], because your CMAKE_AR is empty, as I pointed out. Look at the first non-empty non-comment (which you posted): CMAKE_AR:FILEPATH= Yeah, I realized later where the cr came from, it still left me scratching my head as to why it was ignoring my ar override. This one looks EASY to me. CMakeDetermineCCompiler says it overrides CMAKE_C_COMPILER, CMAKE_AR, CMAKE_RANLIB, CMAKE_COMPILER_IS_GNUCC. It *will find* your *native* gcc for C compiling. It will put this value into the cache. It will probably also find (and put into cache) your native ar and ranlib, but that isn't that bad - the archive format is (at least I think) the same. (or it will not find none and use the specified ones) I'm not sure about ar, but ranlib must be the MinGW one and not the system one, because the headers are indeed different. And indeed, when run this way, it puts in my overrides. No, it fails because it says it doesn't have permission to write new files to /, I'm not even sure why it's trying to put anything in /. MinGW. This is actually working. Thanks. I have no idea why the other overrides wouldn't work. Now I just have to figure out how to fix the NASM problem I mentioned above, and some linking issues.
  17. Nach

    To bKgu

    So I thought I've seen it all, now get this. If I do as follows: rm -rf CMakeCache.txt Makefile CMakeFiles then insert INCLUDE(CMakeDetermineCCompiler) prior to ENDIF ( WINCROSS ) into CMakeLists.txt, then run cmake -DWINCROSS=1 . which will not produce a Makefile due to errors, then I replace INCLUDE(CMakeDetermineCCompiler) with INCLUDE(CMakeDetermineCXXCompiler) and run cmake -DWINCROSS=1 . make VERBOSE=1 Now it will find the proper ar and ranlib, but only if I do things in that order, with the first call to CMake failing. Someone want to explain this to me?
  18. Nach

    To bKgu

    What's in your CMakeFiles/vbamcore.dir/link.txt? cr libvbamcore.a CMakeFiles/vbamcore.dir/src/2xSaI.obj CMakeFiles/vbamcore.dir/src/admame.obj CMakeFiles/vbamcore.dir/src/armdis.obj CMakeFiles/vbamcore.dir/src/bilinear.obj CMakeFiles/vbamcore.dir/src/bios.obj CMakeFiles/vbamcore.dir/src/Cheats.obj CMakeFiles/vbamcore.dir/src/CheatSearch.obj CMakeFiles/vbamcore.dir/src/EEprom.obj CMakeFiles/vbamcore.dir/src/elf.obj CMakeFiles/vbamcore.dir/src/Flash.obj CMakeFiles/vbamcore.dir/src/Globals.obj CMakeFiles/vbamcore.dir/src/interframe.obj CMakeFiles/vbamcore.dir/src/hq2x.obj CMakeFiles/vbamcore.dir/src/Mode0.obj CMakeFiles/vbamcore.dir/src/Mode1.obj CMakeFiles/vbamcore.dir/src/Mode2.obj CMakeFiles/vbamcore.dir/src/Mode3.obj CMakeFiles/vbamcore.dir/src/Mode4.obj CMakeFiles/vbamcore.dir/src/Mode5.obj CMakeFiles/vbamcore.dir/src/pixel.obj CMakeFiles/vbamcore.dir/src/remote.obj CMakeFiles/vbamcore.dir/src/RTC.obj CMakeFiles/vbamcore.dir/src/scanline.obj CMakeFiles/vbamcore.dir/src/Sound.obj CMakeFiles/vbamcore.dir/src/Sram.obj CMakeFiles/vbamcore.dir/src/Util.obj CMakeFiles/vbamcore.dir/src/expr.obj CMakeFiles/vbamcore.dir/src/exprNode.obj CMakeFiles/vbamcore.dir/src/expr-lex.obj CMakeFiles/vbamcore.dir/src/memgzio.obj CMakeFiles/vbamcore.dir/src/agb/agbprint.obj CMakeFiles/vbamcore.dir/src/agb/GBA.obj CMakeFiles/vbamcore.dir/src/agb/gbafilter.obj CMakeFiles/vbamcore.dir/src/agb/GBAGfx.obj CMakeFiles/vbamcore.dir/src/agb/GBA-thumb.obj CMakeFiles/vbamcore.dir/src/agb/GBA-arm.obj CMakeFiles/vbamcore.dir/src/dmg/GB.obj CMakeFiles/vbamcore.dir/src/dmg/gbCheats.obj CMakeFiles/vbamcore.dir/src/dmg/gbDis.obj CMakeFiles/vbamcore.dir/src/dmg/gbGfx.obj CMakeFiles/vbamcore.dir/src/dmg/gbGlobals.obj CMakeFiles/vbamcore.dir/src/dmg/gbMemory.obj CMakeFiles/vbamcore.dir/src/dmg/gbPrinter.obj CMakeFiles/vbamcore.dir/src/dmg/gbSGB.obj CMakeFiles/vbamcore.dir/src/dmg/gbSound.obj CMakeFiles/vbamcore.dir/src/dmg/gb_apu/Blip_Buffer.obj CMakeFiles/vbamcore.dir/src/dmg/gb_apu/Effects_Buffer.obj CMakeFiles/vbamcore.dir/src/dmg/gb_apu/Gb_Apu.obj CMakeFiles/vbamcore.dir/src/dmg/gb_apu/Gb_Apu_State.obj CMakeFiles/vbamcore.dir/src/dmg/gb_apu/Gb_Oscs.obj CMakeFiles/vbamcore.dir/src/dmg/gb_apu/Multi_Buffer.obj CMakeFiles/vbamcore.dir/src/fex_mini.obj libvbamcore.a Which is invalid. I need a different ar. Uh no, you're not cross compiling, or even reading the subject above. I'm overriding CMAKE_AR to the proper ar, and instead it's just leaving it blank, as opposed to using my changes.
  19. Nach

    To bKgu

    So I did some more digging and fixes, set a few more variables. Now for "ar", it's running "cr", any ideas what's going on? I check the cache, and I see these: ######################## # EXTERNAL cache entries ######################## //Path to a program. CMAKE_AR:FILEPATH= //ASM compiler. CMAKE_ASM_COMPILER:FILEPATH=/usr/bin/nasm //CXX compiler. CMAKE_CXX_COMPILER:FILEPATH=/var/chroot/sid-ia32/usr/i586-mingw32/bin/i586-mingw32-g++ //Path to a program. CMAKE_CXX_COMPILER_WITH_PATH:FILEPATH=/var/chroot/sid-ia32/usr/i586-mingw32/bin/i586-mingw32-g++ //C compiler. CMAKE_C_COMPILER:FILEPATH=/var/chroot/sid-ia32/usr/i586-mingw32/bin/i586-mingw32-gcc //Path to a program. CMAKE_C_COMPILER_WITH_PATH:FILEPATH=/var/chroot/sid-ia32/usr/i586-mingw32/bin/i586-mingw32-gcc //Path to a program. CMAKE_LINKER:FILEPATH= //Path to a program. CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make //Path to a program. CMAKE_NM:FILEPATH= //Path to a program. CMAKE_OBJCOPY:FILEPATH= //Path to a program. CMAKE_OBJDUMP:FILEPATH= //Path to a program. CMAKE_STRIP:FILEPATH= If you check latest SVN, you'll see that I setup ar, ld and friends, yet only my C and C++ changes seem to be working. Any ideas? Also, this having to delete the cache file and directories and Makefile is getting annoying each time, is there a clean command?
  20. Nach

    To bKgu

    I found that if I delete the CMakeFiles directory, and run "cmake -DWINCROSS=1 ." again, it works now. Is there an official method to delete that directory, like "make distclean" or something? Also, is there perhaps the possibility that we can have different parameters like that perhaps create a CMakeFiles-win directory and Makefile.win, so I can have both UNIX and Windows builds at the same time? I also found an issue, it's using the wrong ar and ranlib in the process. How do I override those so it uses the proper ones? It's also doing this in the final step: -o vbam -rdynamic -L/home/nach/SVN/vbam/trunk libvbamcore.a -lSDL -lz -lpng -lGLU -lGL -lSM -lICE -lX11 -lXext This should be vbam.exe, and not be linking in -lSM -lICE -lX11 -lXext, nor using -rdynamic. How can I get rid of these? There's also a problem with the assembly or something here. It's doing this: /usr/bin/nasm -f elf -Isrc/hq/asm/ -O1 -DELF -I/usr/include/SDL -DSYSCONFDIR='"/etc"' -DVERSION='"1.8.0-SVN"' -DPKGDATADIR='"/usr/local/share/vbam"' -DPACKAGE='' -o CMakeFiles/vbam.dir/src/hq/asm/hq4x_32.o /home/nach/SVN/vbam/trunk/src/hq/asm/hq4x_32.asm ELF should not be used in Windows mode. I specifically have: IF ( WIN32 ) SET( CMAKE_ASM_FLAGS "-Isrc/hq/asm/ -O1") ELSE ( WIN32 ) SET( CMAKE_ASM_FLAGS "-Isrc/hq/asm/ -O1 -DELF") ENDIF ( WIN32 ) And the included NASM build rules also has win32 specified as follows: IF(WIN32) SET(CMAKE_ASM_COMPILE_OBJECT " -f win32 -DWIN32 -o -c ") ENDIF(WIN32) But the -DWIN32 and all isn't appearing.
  21. Nach

    To bKgu

    Okay, I changed how I ran cmake, it's still using /usr/bin/c++ as opposed to i586-mingw32-g++, why is this? Thanks for the other info.
  22. Nach

    To bKgu

    Well, I went to install cmake, 20MB, why so huge? Well, I just tried to edit this, I made these changes: Index: CMakeLists.txt =================================================================== --- CMakeLists.txt (revision 557) +++ CMakeLists.txt (working copy) @@ -3,6 +3,12 @@ INCLUDE(CMakeScripts/CMakeDetermineASMCompiler.cmake) INCLUDE(CMakeScripts/CMakeASMInformation.cmake) +IF ( WINCROSS ) + SET( CMAKE_C_COMPILER i586-mingw32-gcc ) + SET( CMAKE_CXX_COMPILER i586-mingw32-g++ ) + SET( WIN32 1 ) +ENDIF ( WINCROSS ) + PROJECT(VBA-M ASM C CXX) FIND_PACKAGE ( ZLIB REQUIRED ) @@ -44,7 +50,11 @@ ADD_DEFINITIONS (-DVERSION='"${VERSION}"' -DPKGDATADIR='"${PKGDATADIR}"' -DPACKAGE='') -SET( CMAKE_ASM_FLAGS "-Isrc/hq/asm/ -O1 -DELF") +IF ( WIN32 ) + SET( CMAKE_ASM_FLAGS "-Isrc/hq/asm/ -O1") +ELSE ( WIN32 ) + SET( CMAKE_ASM_FLAGS "-Isrc/hq/asm/ -O1 -DELF") +ENDIF ( WIN32 ) SET( CMAKE_C_FLAGS "-O3 -Wall") SET( CMAKE_CXX_FLAGS "-O3 -Wall") And ran with "cmake WINCROSS=1 .", and it still builds the exact same file. It's not using the compilers I told it to. Furthermore, is there anyway I can see what it's actually doing? This percentage thing instead of build commands is EXTREMELY annoying.
  23. Nach

    To bKgu

    Oh, I just thought about it: you can generate VS projects using cmake. It has a nice GUI for Windows to do so. I've not tested it though. Last thing I want is a VS project. I'd like a Makefile for MinGW, and a Makefile for cl.exe I just found that : http://www.cmake.org/Wiki/CMake_Cross_Compiling It looks like all you have to do is creating a "toolchain file" corresponding to the target platform. Can you give me a hand in making such a thing?
  24. Nach

    To bKgu

    Okay, thank you. I find that to be ridiculous :ashamed: I'm sorry if it is the standard way to build Unix programs under Windows. Most programs use the autotools wich require msys. I consider cmake as just another package for mingw. We didn't require autotools or msys to build the SDL port on Windows before. I don't mind requiring cmake, but if we're requiring cmake, and it needs to be used through msys, I think that is getting out of hand. I'm no specialist of cross compilation. I guess it can be done in a similar way to the old Makefile. So can we setup cross compilation somehow with cmake? Because I have no idea how to use cmake. It just means we have to change the calls to GCC and NASM, and a couple of flags.
  25. Nach

    To bKgu

    So if NASM is found, it will link HQXx in assembly, and otherwise C? I can't have fine control of that? (I regularly have systems with NASM installed that aren't x86, or situations where it is x86, but I want to test without it). I find that to be ridiculous :ashamed: You also didn't answer the last question: