⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme

📁 GBA游戏超级模拟器.使用范围广阔!一切没问题
💻
📖 第 1 页 / 共 2 页
字号:
- 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 + -