From 57ff27d35072ca1c67ffdbb8a3d6280a1595204a Mon Sep 17 00:00:00 2001 From: rofl0r Date: Sat, 28 Jun 2014 17:19:08 +0200 Subject: [PATCH] update README. --- README | 78 ++++++------------------------------------------------------------ 1 file changed, 6 insertions(+), 72 deletions(-) diff --git a/README b/README index 091424f..29562e8 100644 --- a/README +++ b/README @@ -1,5 +1,7 @@ -Welcome to version 1.8.0 of VisualBoyAdvance [SDL]. -This is a GB/GBC/GBA emulator for Windows, Linux, MacOS X and BeOS. +Welcome to version 1.8.0 of VisualBoyAdvance [SDL+C]. +This is a GB/GBC/GBA emulator for POSIX systems. +this version has been ported from non-idiomatic C++ to C for faster +compilation speed and portability. Features -------- @@ -27,15 +29,8 @@ Features Compiling the sources --------------------- -See the INSTALL file for compiling instructions. Please note the following -requisites to compile: - -- GCC must be 3.x or greater in order to compile GBA.cpp with -O2. Earlier - versions have a problem during optimization that requires an absurd - ammount of memory and usually ends up crashing the compiler/computer -- On Windows, Microsoft Visual C++ 6 or later is needed. Please note that - some of the source code will not compile with the shipped header files. - You will need to install the most recent Platform SDK from Microsoft. +run autoreconf -i to generate the configure script, +then ./configure, make, make install as usual. Installing ---------- @@ -241,67 +236,6 @@ file): - fixes to some breakpoint handling problems - fixes to break on write function -Profiling ---------- - -VisualBoyAdvance has profiling support. It produces output in the format -supported by GPROF. You need a cross-compiled binary of GPROF (binutils -GNU package) compiled with --target=arm-thumb-elf (or similar). - -The output will always contain the histogram of PC positions at the specified -frequency even if the code is not compiled with call graph support. - -In order to enable profiling, you need to add a call inside your code -to start it (download vba.s for a ready to use file for GCC): - -void monstartup(u32 lowPC, 32 highPC) - -This will start profiling for the given address region. If the code was also -compiled with -pg, call graphs will be recorded. - -Other calls for fine grain control: - -// control profiling -// 0 - stops profiling -// anyother value starts it -void moncontrol(int mode) - -// stop profiling and output gmon.out file -void moncleanup() - -// record call graph (used by GCC) -// r12 contains previous caller -// r14 contains function that was called -void mcount() - -GCC bugs --------- - -All versions of GCC previous to the working version 3.3 have bugs when -generating profiling for thumb functions. - -The errors are: -- mov\tip,lr not a valid instruction (typo in gcc/config/arm/arm.h) -- LPxx undefined when linking (missing . before LP causes the problem) - -You can fix these problems by either recompiling GCC (recommended) or by -modifying cc1.exe to fix the problems. - -In the first option, find the given code in gcc/config/arm/arm.h and fix -the typos (remove the extra blackslash from the mov ip,lr instruction and -add the missing dot before LP%d) or change THUMB_FUNCTION_PROFILER to call -ARM_FUNCTION_PROFILER (the recent changes that were performed in CVS). - -If you don't want to compile your own GCC, then you can use an hex editor -to fix the problems. Locate cc1.exe under /lib/gcc-lib// -and find the mov\tip,lr instruction. Change the extra backslash to a space. -Locate the .LP string just before the mov instruction and change it to -.P instead (make sure to place 0 after the P). Then find the text .word -LP%d and change it to .word .P%d. - -Histograms will be output even if the code is not compiled with call graph -support. - Options configuration --------------------- -- 2.11.4.GIT