📄 readme
字号:
- 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 <dir>/lib/gcc-lib/<config>/<version>
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
---------------------
All configurable options are accessible from the configuration file
VisualBoyAdvance.cfg.
This file is searched in this order:
- current directory
- user home directory (defined by HOME environment variable)
- user profile directory (Windows only defined by USERPROFILE directory)
- executable directory (either relative or defined by PATH variable)
All options are documented in the file supplied with this distribution.
Command line options (override settings in configuration file)
--------------------------------------------------------------
-1, --video-1x 1x
-2, --video-2x 2x
-3, --video-3x 3x
-4, --video-4x 4x
-F, --fullscreen Full screen
-G, --gdb=PROTOCOL GNU Remote Stub mode:
tcp - use TCP at port 55555
tcp:PORT - use TCP at port PORT
pipe - use pipe transport
-N, --no-debug Don't parse debug information
-S, --flash-size=SIZE Set the Flash size
--flash-64k 0 - 64K Flash
--flash-128k 1 - 128K Flash
-T, --throttle=THROTTLE Set the desired throttle (5...1000)
-Y, --yuv=TYPE Use YUV overlay for drawing:
0 - YV12
1 - UYVY
2 - YVYU
3 - YUY2
4 - IYUV
-b, --bios=BIOS Use given bios file
-c, --config=FILE Read the given configuration file
-d, --debug Enter debugger
-f, --filter=FILTER Select filter:
--filter-normal 0 - normal mode
--filter-tv-mode 1 - TV Mode
--filter-2xsai 2 - 2xSaI
--filter-super-2xsai 3 - Super 2xSaI
--filter-super-eagle 4 - Super Eagle
--filter-pixelate 5 - Pixelate
--filter-motion-blur 6 - Motion Blur
--filter-advmame 7 - AdvanceMAME Scale2x
--filter-simple2x 8 - Simple2x
--filter-bilinear 9 - Bilinear
--filter-bilinear+ 10 - Bilinear Plus
--filter-scanlines 11 - Scanlines
--filter-hq2x 12 - hq2x
--filter-lq2x 13 - lq2x
-h, --help Print this help
-i, --ips=PATCH Apply given IPS patch
-p, --profile=[HERTZ] Enable profiling
-s, --frameskip=FRAMESKIP Set frame skip (0...9)
-t, --save-type=TYPE Set the available save type
--save-auto 0 - Automatic (EEPROM, SRAM, FLASH)
--save-eeprom 1 - EEPROM
--save-sram 2 - SRAM
--save-flash 3 - FLASH
--save-sensor 4 - EEPROM+Sensor
--save-none 5 - NONE
-v, --verbose=VERBOSE Set verbose logging (trace.log)
1 - SWI
2 - Unaligned memory access
4 - Illegal memory write
8 - Illegal memory read
16 - DMA 0
32 - DMA 1
64 - DMA 2
128 - DMA 3
256 - Undefined instruction
512 - AGBPrint messages
Long options only:
--agb-print Enable AGBPrint support
--auto-frameskip Enable auto frameskipping
--ifb-none No interframe blending
--ifb-motion-blur Interframe motion blur
--ifb-smart Smart interframe blending
--no-agb-print Disable AGBPrint support
--no-auto-frameskip Disable auto frameskipping
--no-ips Do not apply IPS patch
--no-mmx Disable MMX support
--no-pause-when-inactive Don't pause when inactive
--no-rtc Disable RTC support
--no-show-speed Don't show emulation speed
--no-throttle Disable thrrotle
--pause-when-inactive Pause when inactive
--rtc Enable RTC support
--show-speed-normal Show emulation speed
--show-speed-detailed Show detailed speed data
Known bugs
----------
- loading a save state that uses a different sound quality may hang the
emulator. Please only use the 22Khz sound quality save states from the
Windows version with this release
- built-in debugger still has a few bugs
- disassembler contains a few errors. Please report anything wrong you find
LICENSE
-------
VisualBoyAdvance - a Gameboy and GameboyAdvance emulator
Copyright (C) 1999-2003 Forgotten
Copyright (C) 2004 Forgotten and the VBA development team
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
This program also contains code developed by the University of
California and is subject to the extra conditions:
Copyright (c) 1991, 1998 The Regents of the University of California.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. [rescinded 22 July 1999]
4. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
Contact
-------
Please don't email unless you found some bug. Requests will be ignored and
deleted. Also, be descriptive when emailing. You have to tell me what version
of the emulator you are writing about and a good description of the problem.
Remember, there are several interfaces (Windows, SDL and GTK+) and
several systems (Windows, Linux, MacOS X and BeOS).
Also, there are still people writing about the old VisualBoy which is no longer
supported. Also remember I am not paid to work on VisualBoyAdvance. This is
just a hobby.
Forgotten (http://vba.ngemu.com/contact.shtml)
kxu <kxu@users.sourceforge.net>
http://vba.ngemu.com
http://sourceforge.net/projects/vba
Special Thanks
--------------
PokemonHacker for all his help improving the emulator.
Costis for his help fixing some of the graphics bugs.
Snes9x developers for the great emulator and source code.
Kreed for his great graphic filters.
SDL team for this amazing library.
And all users who kindly reported problems.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -