mathewwi / vba-rerecording Goto Github PK
View Code? Open in Web Editor NEWAutomatically exported from code.google.com/p/vba-rerecording
License: GNU General Public License v2.0
Automatically exported from code.google.com/p/vba-rerecording
License: GNU General Public License v2.0
Welcome to version 1.7.2 of VisualBoyAdvance [SDL]. This is a GB/GBC/GBA emulator for Windows, Linux, MacOS X and BeOS. Features -------- - configurable GB/GBA keys, including joystick support - option to use BIOS file - zip/gzip file support - directory selection for save state, battery and screen capture - fullscreen mode (selectable resolution) - video sizes 1x, 2x, 3x and 4x - graphic filters Normal, TV Mode, 2xSaI, Super 2xSaI and more - interframe blending support - same emulation core as VisualBoyAdvance: GB and GBA emulation - built-in ARM/THUMB assembly debugger - 10 save states accesible through keyboard - automatic battery file load/save - auto-fire support - pause, reset through keyboard - 16, 24 and 32 bit desktop support - GDB remote debugging (see below for information) - auto frameskipping and throttle - AGBPrint support for development - RTC support 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. Installing ---------- The easiest installation is to place all files in the distribution in the same directory. Per game settings ----------------- Version 1.5 introduced the support for per game settings for GBA games. You can defined the following settings on a per game basis by using an INI file called vba-over.ini in the same directory as the emulator: rtcEnabled=<0 for false, anything else for true> flashSize=<65536 or 131072> saveType=<0 for automatic, 1 for EEPROM, 2 for SRAM, 3 for Flash or 4 for EEPROM+Sensor> Use the 4 letter game code to separate settings for each game. Example: [ABCD] rtcEnabled=0 flashSize=65536 saveType=0 [ABC2] rtcEnabled=1 flashSize=131072 saveType=0 Support ------- Please support VisualBoyAdvance by making a donation. You can donate money using PayPal (www.paypal.com). Use the contact form to find how you can send donations. Also, it is recommended that you use the VisualBoyAdvance forum on www.ngemu.com message board. FAQ --- See online FAQ for more information: http://vba.ngemu.com/faq.shtml Please don't email about what you think it is problem before consulting the FAQ. System requirements ------------------- Windows: PIII 500Mhz machine for GBA emulation. GB emulation requires far less. Linux, MacOS X, BeOS: SDL (>= 1.2.2) runtime library must be installed prior to running the program. You can download it from http://www.libsdl.org Key combinations during emulation --------------------------------- - F1...F10: load save state 1...10 - Shift+F1...F10: save state 1...10 - Alt+1...4: auto-fire A,B,L,R - Ctrl+1...8: enable/disable graphical layers (BG0, BG1, BG2, BG3, OBJ, WIN0, WIN1, OBJWIN) - Ctrl+N: pause on next frame - Ctrl+R: reset - Ctrl+P: pause - Ctrl+B: rewind (if enabled and available) - F11: enter built-in debugger - ESC: exit emulator Emulation key settings ---------------------- - Movement: arrow keys - Button A: Z - Button B: X - Button L: A - Button R: S - Button Start: ENTER - Button Select: BACKSPACE - Speed up: SPACE - Screen capture: F12 - Motion Left: NUMPAD 4 - Motion Right: NUMPAD 6 - Motion Up: NUMPAD 8 - Motion Down: NUMPAD 2 GDB support ----------- VisualBoyAdvance now provides GDB remote debugging support. This gives developers the full power of GDB to debug GBA applications. In order to use this, you will need a cross-compiled GDB for either the arm-elf or arm-thumb-elf target (used for the --target= option of GDB configure script). You can also use GDB frontends like DDD, CodeMedic, etc... or even GDB/Insight for GUI debugger (if using anything other than GDB/Insight, please make sure to point to the right GDB executable). The emulator provides two transport protocols for remote debugging: - TCP: allows debugging through TCP using port 55555 (or any specified) port. The advantage of using TCP is that it allows true remote debugging but it is slower compared to the pipe method (pipe method does not work on Windows - probably a restriction imposed by the CYGWIN port of GDB). - PIPE: allows debugging through a PIPE between the emulator and GDB. This is a lot faster than TCP and recommened on Unix systems. Using TCP transport ------------------- To use the TCP transport, use the flag -Gtcp[:portnum] where portnum is an optional port number to be used instead of 55555. VBA will wait for a GDB connection on the specified port (printed on screen). Start GDB by passing the .elf file, then connect to the emulator by using the command: target remote <hostname>:<port number> where hostname is the host where the emulator is running and port number is the printed port number. Using PIPE transport -------------------- To use the PIPE transport, start GDB with the .elf file to be debugged. Connect to the emulator by using the command: target remote |<full path to VBA>/VisualBoyAdvance -Gpipe Debugging with GDB ------------------ Once you connected to the emulator, you can set breakpoints and debug the application. But before doing that, you will need to issue the loda command on GDB to load the code into the emulator. Optionally, you can pass the ELF file on the emulator's command line (along with the -N option to not parse the debug information in the emulator) instead of issuing the load command. After connecting and optionally loading the file into the debugger, you can start debugging: add breakpoints, step, etc... While using GDB, any console output (see below) will show up in GDB's console. If you want to break into the GDB, press F11 and it will give you full command in GDB again. Pressing ESC will terminate emulation. You can also detach GDB from the emulator. Console Output -------------- There are two forms of console output in this version: - Mappy style dprint: use the following code (from Mappy's documentation) to get output: - VBA style: use the following code to get output: // THUMB code void print(char *s) { asm volatile("mov r0, %0;" "swi 0xff;" : // no ouput : "r" (s) : "r0"); } // ARM code void print(char *s) { asm volatile("mov r0, %0;" "swi 0xff0000;" : // no ouput : "r" (s) : "r0"); } When using GDB, the output will show up in GDB's console. When using the built-in debugger, output will go to standard out. Built-in debugger enhancements ------------------------------ The built-in debugger has the following enhancements (need debug enabled ELF file): - ELF file support: both multiple and regular. Please report any messages or problems reading ELF files. C++ classes and some miscellaneous features are not supported yet. Also, method names may be mangled in C++ code. - break command: add a breakpoint on a function, line number of file:line number - locals command: print the local variables on the current function - print command: prints the value of a given expression. Valid expression include *this, ptr->member, var.member, array[0], sizeof(expression), etc... - symbols command: list information known about a symbol (or symbols that start with the given name) - radix command: sets the output radix to eithe decimal, octal or hex. - file and line number when stopped: the debugger will show the file and line number (if available) for the current address - 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 <[email protected]> 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.
Recording GBx movies from reset (SRAM) is currently disabled as it is
believed not to function properly due to unclear problems. The problems
should be investigated and sovled before re-enabling the function.
Original issue reported on code.google.com by [email protected]
on 26 Apr 2009 at 6:40
VBA doesn't record a video in 60fps exactly. Sometimes, a frame is
duplicated, or over 1/60 seconds of audio samples are generated per frame.
As a result, a video/audio length becomes somewhat longer than vbm length.
I think I've understood why this happens now, the problem comes from the
sound emulation code.
VBA sometimes generates over 1/60 seconds of audio samples per frame (it's
a sort of emulation error, I assume). That causes an audio desync with
video frames. To prevent the desync, VBA needs to duplicate a frame to
match the video length to audio length.
To fix the problem, we need to modify the sound emulation code, and let VBA
generate 1/60 seconds of samples always. That may change movie timings, though.
Original issue reported on code.google.com by gochaism
on 16 Mar 2009 at 10:16
What steps will reproduce the problem?
1. Play the game with auto-fire/hold on.
2. Perform a reset or start a TAS.
3. Watch it auto-fire/hold like you had not reset.
What is the expected output? What do you see instead?
It should not press anything, except it auto-fires/holds the buttons you
specified before you reset.
What version of the product are you using? On what operating system?
V.21 with Windows XP.
Please provide any additional information below.
Simple fix: tell it to reset auto-fire/hold
upon reset.
Original issue reported on code.google.com by [email protected]
on 10 Oct 2009 at 8:59
What steps will reproduce the problem?
1. compile (will attach patches later)
2. open ROM and play vbm file
3. watch it fail
What is the expected output? What do you see instead?
VBA is expected to play back the vbm file, yet it fails and quits with a
SegFault. Both those Segfaults occur on different parts of the code.
Playing a ROM reguarly runs fine, even sound works magically. Nonetheless,
it's still way too fast (>=200% speed).
What version of the product are you using? On what operating system?
SVN r9
Please provide any additional information below.
Will attach detailed gdb reports this evening.
Original issue reported on code.google.com by [email protected]
on 6 Feb 2009 at 12:08
newAviRecordMethod option prevents duplicating a frame and making the video
length redundantly longer. But the output AVI has wrong dwTotalFrames value
and user may need to rebuild the file by using a video editor like
VirtualDubMod (Direct Stream Copy fixes the file).
I'm not sure if the corrupt header causes audio desync or not, but we
should fix the problem if we can, of course.
Original issue reported on code.google.com by gochaism
on 16 Mar 2009 at 1:16
Once the lag counter is implemented, the auto-fire patterns should take it
into account. This way, a user can rapid fire during laggy segments, or in
30 fps games.
Original issue reported on code.google.com by [email protected]
on 5 Nov 2008 at 3:42
Once the lag counter is implemented, there should be a menu toggle /
checkbox that the user can select. If selected frame advance will skip
over lag frames (via the lag counter). This is especially helpful in 20/30
fps games.
For reference this is implemented in FCEUX and GENS10
Original issue reported on code.google.com by [email protected]
on 5 Nov 2008 at 3:43
Due to a poor resampling method, some of very high rate waves (ex. triangle
noise of the ending of LADX) sound odd. If we resample them by using
Blip_Buffer, they should be improved.
Original issue reported on code.google.com by gochaism
on 9 May 2009 at 11:31
If you select a rom from the recent menu and it no longer exists, vba will
crash.
Original issue reported on code.google.com by [email protected]
on 8 Nov 2008 at 12:44
What steps will reproduce the problem?
1. Click ESC button
2.
3.
What is the expected output? What do you see instead?
It savestate to slot 9
What version of the product are you using? On what operating system?
vba-rerecording svn85
Please provide any additional information below.
-
Original issue reported on code.google.com by [email protected]
on 19 Jun 2009 at 1:29
This is the same issue as snes9x had in old days.
While movie play, reset is called by read_frame_controller_data().
While movie record, reset is called when user selects Reset from menu.
A desync possibly occurs when you try to record/play reset.
Original issue reported on code.google.com by gochaism
on 23 Sep 2009 at 10:05
What steps will reproduce the problem?
1. Play submission 1580 from TASVideos
What is the expected output? What do you see instead?
A glitch is used that exploits properties of the RAM values E000-FDFF,
causing destructible blocks to appear instead of empty space or solid bricks.
E000-FDFF should be a mirror of C000-DDFF, however is filled with zeroes.
What version of the product are you using? On what operating system?
VBA 1.7.2 v21 for windows.
Please provide any additional information below.
This glitch is very easy to replicate, as the movie file synchs for many
users. The glitch is explained here:
http://tasvideos.org/forum/viewtopic.php?t=5583&postdays=0&postorder=asc&start=5
2
This is not a problem with any of the rerecording fatures, so don't feel
pressured to do anything if you don't think this is your specific area of
expertise.
Original issue reported on code.google.com by [email protected]
on 31 Aug 2009 at 11:06
avi.framecount() should return total video frame count when avi is segmented.
Original issue reported on code.google.com by gochaism
on 29 Sep 2009 at 12:37
Similar to the lag-frame reset, make on for the frames executed counter. I
know I'd find it useful
Original issue reported on code.google.com by gcupcakekid
on 5 Oct 2009 at 3:30
What steps will reproduce the problem?
1.compile revision 99
2.
3.
What is the expected output? What do you see instead?
2>nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new
(unsigned int)" (??2@YAPAXI@Z) already defined in LIBCMT.lib(new.obj)
2>nafxcw.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete
(void *)" (??3@YAXPAX@Z) already defined in LIBCMT.lib(delete.obj)
2>nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[]
(unsigned int)" (??_U@YAPAXI@Z) already defined in libcpmt.lib(newaop.obj)
2>nafxcw.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete[]
(void *)" (??_V@YAXPAX@Z) already defined in LIBCMT.lib(delete2.obj)
LNK1169: one or more multiply defined symbols found
What version of the product are you using? On what operating system?
Windows Vista
Original issue reported on code.google.com by [email protected]
on 29 Jun 2009 at 5:52
When replaying a .vbm movie without rerecording or appending input, the
movie file should be unmodified. As is, any replayed .vbm file is rewritten
when playback is over.
Original issue reported on code.google.com by [email protected]
on 17 Feb 2009 at 10:19
Many RAM Addresses had been written for VBAWatch before the function of
RAM Watch was added to VBA-rr, so Loading the .txt file of VBAWatch can be
greatly helpful.
Sorry for my poor English
Original issue reported on code.google.com by [email protected]
on 17 Aug 2009 at 5:44
This is a regression since it is only reproducible in later revisions
linked to wlib7zip.
Step to reproduce the problem:
* Open any archive file of supported types, with any non-ascii characters
in its name.
The emulator rejects such a valid file as if it was of an unsupported type.
Original issue reported on code.google.com by [email protected]
on 8 Aug 2009 at 8:03
When the emulator is doing too many things (busy; set frame skip 0, open
RAM Search and run a Lua script makes such a situation for me), and
Synchronize Emulation Speed is checked, it runs without handling messages
for a long time. (i.e. I cannot control the emulator for a while at all)
If you uncheck Synchronize Emulation Speed, the situation will be improved.
Original issue reported on code.google.com by gochaism
on 8 Oct 2009 at 2:43
http://tasvideos.org/forum/p/192109#192109
VBA stops after emulating a few of frames.
Original issue reported on code.google.com by gochaism
on 16 Feb 2009 at 9:27
load movie, use cheat search, close movie, open new movie, open cheat search
That sequence crashes vba
Original issue reported on code.google.com by [email protected]
on 6 Nov 2008 at 2:11
VBAWatch/VBxWatch cannot watch the shared memory using addresses generated
with "Copy Settings for VBAWatch" or "Copy Settings for VBxWatch" command
under "Tools" menu. The VBA process is detected, but neither the internal
name of the loaded ROM nor the watched items are displayed with
VBAWatch/VBxWatch. Refreshing with F5 has no effect.
Original issue reported on code.google.com by [email protected]
on 30 Mar 2009 at 7:27
I am using top-of-tree as of this post.
What steps will reproduce the problem?
1. ./configure
2. make
3. Note numerous error messages
What is the expected output? What do you see instead?
I expect it to compile. It doesn't.
1.
There are multiple places, such as
src/proc/proc.cpp
src/sdl/debugger.cpp
that try to cast pointers to u32.
That isn't even valid and isn't a good idea to begin with.
On AMD64, pointers are 64-bit, not 32. Are you sure
you even should be casting?
2.
There seems to be confusion over the use of bool vs. bool8 in
src/Sound.(h|cpp)
Changing all of them into plain bools seems to fix it on my machine.
Though, I don't know what it's trying to do to begin with,
especially since bool is native in C++.
3.
It depends on zutil.h which clearly states:
/* WARNING: this file should *not* be used by applications. It is
part of the implementation of the compression library and is
subject to change. Applications should only use zlib.h.
*/
4.
Then, it fails to link:
/home/scubed/software/vba-1.7.2-21/src/gb/gbMemory.cpp:326: undefined
reference to `VBAMovieGetFrameCounter()'
/home/scubed/software/vba-1.7.2-21/src/gb/gbMemory.cpp:325: undefined
reference to `VBAMovieLoading()'
...
I don't know the cause of this one.
It is trying to link in ../gb/libgb.a
which appears to have the symbol.
In short, the code needs massive cleaning.
What version of the product are you using? On what operating system?
Linux on AMD64
Original issue reported on code.google.com by [email protected]
on 6 Jun 2009 at 4:40
This is badly needed.
Currently I favor the list box style of GENS ramwatch window. The
disadvantage is that it is a bit cumbersome to add watches to it (compared
to simply typing in an address in an edit box).
Since we are building this from the ground up, it needs ram change
monitoring tool. This is would be a value that changes in response to a
ram values behavior. For instance it could be set to "increase" and could
increment each time the ram address increases in value.
For reference, I have also described it here:
https://sourceforge.net/tracker/index.php?func=detail&aid=1959906&group_id=13536
&atid=113536
Original issue reported on code.google.com by [email protected]
on 5 Nov 2008 at 3:35
Implement the cheat search features of VBA-H (screenshot:
http://i56.photobucket.com/albums/g178/ybab321/untitled-4.png )
Download it here:
http://interdpth.arc-nova.org/PJs%20stuff/_/VisualBoyAdvance-H.exe
P.JBoy
Original issue reported on code.google.com by gcupcakekid
on 9 Apr 2009 at 8:11
This was brought up as a feature idea for SNES9x and I think it could work
well here to.
The idea is to take the cheat search commands such as less than, greater
than, equal, and be able to map them to the main window hotkey list. This
would make finding RAM addresses very fast.
I think it is a neat idea, so I am adding it to our to do list.
Original issue reported on code.google.com by [email protected]
on 2 Feb 2009 at 3:50
I guess we can port it from DeSmuME.
Original issue reported on code.google.com by gochaism
on 25 Sep 2009 at 12:51
1. Boot up the emulator and load a (GBA) ROM (from zip)
2. Open Play Movie dialog and you'll see the message
3. The message seems to be appeared when I activate the dialog window
I'm using svn r121 now.
Original issue reported on code.google.com by gochaism
on 5 Aug 2009 at 9:38
What steps will reproduce the problem?
1. i got vba-rerecording-19.4-src package
1.5. installed libglademm-2.4-dev and libgtkmm
2. run sh ./configure
3. make[2]: Leaving directory
`/home/fuxter/tmp/vba-rerecording-19.4-src/src/i386'
Making all in sdl
make[2]: Entering directory `/home/fuxter/tmp/vba-rerecording-19.4-src/src/sdl'
g++ -fno-exceptions -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -g -O2
-DPROFILING -DMMX -DDEV_VERSION -o VisualBoyAdvance SDL.o debugger.o
2xSaI.o Cheats.o EEprom.o Flash.o GBA.o Gfx.o Globals.o Mode0.o Mode1.o
Mode2.o Mode3.o Mode4.o Mode5.o RTC.o Sound.o Sram.o Text.o Util.o admame.o
agbprint.o armdis.o bilinear.o bios.o elf.o expr-lex.o expr.o exprNode.o
getopt.o getopt1.o hq2x.o interframe.o memgzio.o motionblur.o pixel.o
remote.o scanline.o simple2x.o unzip.o ../gb/libgb.a ../prof/libprof.a
../i386/lib386.a -L/usr/lib -lSDL -lpthread -lpng -lz
SDL.o: In function `main':
/home/fuxter/tmp/vba-rerecording-19.4-src/src/sdl/SDL.cpp:2600: undefined
reference to `VBAMovieOpen(char const*, signed char)'
/home/fuxter/tmp/vba-rerecording-19.4-src/src/sdl/SDL.cpp:2597: undefined
reference to `VBAMovieCreate(char const*, char const*, unsigned char,
unsigned char, unsigned char)'
/home/fuxter/tmp/vba-rerecording-19.4-src/src/sdl/SDL.cpp:2603: undefined
reference to `VBAMovieOpen(char const*, signed char)'
GBA.o: In function `CPUWriteStateToStream(void*)':
/home/fuxter/tmp/vba-rerecording-19.4-src/src/sdl/../GBA.cpp:688: undefined
reference to `VBAMovieActive()'
/home/fuxter/tmp/vba-rerecording-19.4-src/src/sdl/../GBA.cpp:695: undefined
reference to `VBAMovieFreeze(unsigned char**, unsigned long*)'
GBA.o: In function `CPUReadStateFromStream(void*)':
/home/fuxter/tmp/vba-rerecording-19.4-src/src/sdl/../GBA.cpp:998: undefined
reference to `VBAUpdateFrameCountDisplay()'
/home/fuxter/tmp/vba-rerecording-19.4-src/src/sdl/../GBA.cpp:923: undefined
reference to `VBAMovieActive()'
/home/fuxter/tmp/vba-rerecording-19.4-src/src/sdl/../GBA.cpp:944: undefined
reference to `VBAMovieUnfreeze(unsigned char const*, unsigned long)'
/home/fuxter/tmp/vba-rerecording-19.4-src/src/sdl/../GBA.cpp:946: undefined
reference to `VBAMovieActive()'
GBA.o: In function `CPUReset()':
/home/fuxter/tmp/vba-rerecording-19.4-src/src/sdl/../GBA.cpp:3243:
undefined reference to `VBAMovieSignalReset()'
GBA.o: In function `CPULoop(int)':
/home/fuxter/tmp/vba-rerecording-19.4-src/src/sdl/../GBA.cpp:3758:
undefined reference to `systemFrame(int)'
RTC.o: In function `rtcWrite(unsigned int, unsigned short)':
/home/fuxter/tmp/vba-rerecording-19.4-src/src/sdl/../RTC.cpp:155: undefined
reference to `VBAMovieActive()'
/home/fuxter/tmp/vba-rerecording-19.4-src/src/sdl/../RTC.cpp:157: undefined
reference to `VBAMovieGetId()'
/home/fuxter/tmp/vba-rerecording-19.4-src/src/sdl/../RTC.cpp:157: undefined
reference to `VBAMovieGetFrameCounter()'
/home/fuxter/tmp/vba-rerecording-19.4-src/src/sdl/../RTC.cpp:128: undefined
reference to `VBAMovieActive()'
/home/fuxter/tmp/vba-rerecording-19.4-src/src/sdl/../RTC.cpp:130: undefined
reference to `VBAMovieGetId()'
/home/fuxter/tmp/vba-rerecording-19.4-src/src/sdl/../RTC.cpp:130: undefined
reference to `VBAMovieGetFrameCounter()'
/home/fuxter/tmp/vba-rerecording-19.4-src/src/sdl/../RTC.cpp:155: undefined
reference to `VBAMovieLoading()'
/home/fuxter/tmp/vba-rerecording-19.4-src/src/sdl/../RTC.cpp:128: undefined
reference to `VBAMovieLoading()'
../gb/libgb.a(GB.o): In function `gbWriteSaveStateToStream(void*)':
/home/fuxter/tmp/vba-rerecording-19.4-src/src/gb/GB.cpp:2421: undefined
reference to `VBAMovieActive()'
/home/fuxter/tmp/vba-rerecording-19.4-src/src/gb/GB.cpp:2428: undefined
reference to `VBAMovieFreeze(unsigned char**, unsigned long*)'
../gb/libgb.a(GB.o): In function `gbReadSaveStateFromStream(void*)':
/home/fuxter/tmp/vba-rerecording-19.4-src/src/gb/GB.cpp:2698: undefined
reference to `VBAMovieActive()'
/home/fuxter/tmp/vba-rerecording-19.4-src/src/gb/GB.cpp:2750: undefined
reference to `VBAUpdateFrameCountDisplay()'
/home/fuxter/tmp/vba-rerecording-19.4-src/src/gb/GB.cpp:2719: undefined
reference to `VBAMovieUnfreeze(unsigned char const*, unsigned long)'
/home/fuxter/tmp/vba-rerecording-19.4-src/src/gb/GB.cpp:2721: undefined
reference to `VBAMovieActive()'
../gb/libgb.a(GB.o): In function `gbReadBatteryFile(char const*)':
/home/fuxter/tmp/vba-rerecording-19.4-src/src/gb/GB.cpp:2151: undefined
reference to `VBAMovieActive()'
/home/fuxter/tmp/vba-rerecording-19.4-src/src/gb/GB.cpp:2153: undefined
reference to `VBAMovieGetId()'
/home/fuxter/tmp/vba-rerecording-19.4-src/src/gb/GB.cpp:2153: undefined
reference to `VBAMovieGetFrameCounter()'
/home/fuxter/tmp/vba-rerecording-19.4-src/src/gb/GB.cpp:2151: undefined
reference to `VBAMovieLoading()'
../gb/libgb.a(GB.o): In function `gbEmulate(int)':
/home/fuxter/tmp/vba-rerecording-19.4-src/src/gb/GB.cpp:3244: undefined
reference to `systemFrame(int)'
../gb/libgb.a(GB.o): In function `gbReset()':
/home/fuxter/tmp/vba-rerecording-19.4-src/src/gb/GB.cpp:1629: undefined
reference to `VBAMovieSignalReset()'
../gb/libgb.a(gbMemory.o): In function `memoryUpdateMBC3Clock()':
/home/fuxter/tmp/vba-rerecording-19.4-src/src/gb/gbMemory.cpp:212:
undefined reference to `VBAMovieActive()'
/home/fuxter/tmp/vba-rerecording-19.4-src/src/gb/gbMemory.cpp:213:
undefined reference to `VBAMovieGetId()'
/home/fuxter/tmp/vba-rerecording-19.4-src/src/gb/gbMemory.cpp:213:
undefined reference to `VBAMovieGetFrameCounter()'
/home/fuxter/tmp/vba-rerecording-19.4-src/src/gb/gbMemory.cpp:212:
undefined reference to `VBAMovieLoading()'
../gb/libgb.a(gbMemory.o): In function `mapperMBC3RAM(unsigned short,
unsigned char)':
/home/fuxter/tmp/vba-rerecording-19.4-src/src/gb/gbMemory.cpp:325:
undefined reference to `VBAMovieActive()'
/home/fuxter/tmp/vba-rerecording-19.4-src/src/gb/gbMemory.cpp:326:
undefined reference to `VBAMovieGetId()'
/home/fuxter/tmp/vba-rerecording-19.4-src/src/gb/gbMemory.cpp:326:
undefined reference to `VBAMovieGetFrameCounter()'
/home/fuxter/tmp/vba-rerecording-19.4-src/src/gb/gbMemory.cpp:325:
undefined reference to `VBAMovieLoading()'
../gb/libgb.a(gbSGB.o): In function `gbSgbPicture()':
/home/fuxter/tmp/vba-rerecording-19.4-src/src/gb/gbSGB.cpp:319: undefined
reference to `VBAMovieSignalIgnoreNextReset()'
collect2: ld returned 1 exit status
make[2]: *** [VisualBoyAdvance] Error 1
make[2]: Leaving directory `/home/fuxter/tmp/vba-rerecording-19.4-src/src/sdl'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/fuxter/tmp/vba-rerecording-19.4-src/src'
make: *** [all-recursive] Error 1
My system is Ubuntu 8.10 32 bit.
Please, let me know if i can provide any other information.
Pardon my english.
Original issue reported on code.google.com by [email protected]
on 13 Feb 2009 at 8:32
Currently there is a different command for stopping a movie in playback
mode, vs recording mode. This is annoying since you either have to
remember which mode you are in, or take the time to map both to the same
hotkey. Instead, mapping one should automatically map the other by
default, or simply make it one command. Why do they need to be distinguished?
Original issue reported on code.google.com by [email protected]
on 28 Nov 2008 at 12:54
Once a memory watch dialog is set in place this can be implemented.
If the user double clicks an address in the cheat search list, it should be
sent into the memory watch dialog. The other alternative is to have a
"watch" button added to the cheat search dialog box.
Original issue reported on code.google.com by [email protected]
on 5 Nov 2008 at 3:36
Savestates should have a separate directory override (as of now I think
they default to the movies folder).
Original issue reported on code.google.com by [email protected]
on 8 Nov 2008 at 12:51
When selecting .avi capture while paused, it should prompt the user for all
settings _before_ the user un-pauses. As is, it waits until the user
un-pauses before opening the Codec selection dialog box.
Original issue reported on code.google.com by [email protected]
on 5 Nov 2008 at 3:30
This feature has been very successful in GENS and FCEUX. It is a counter
variable that increments anytime the input is not polled by the game. The
counter can be manually reset by the user, and ideally the value is stored
in movie savestates.
Original issue reported on code.google.com by [email protected]
on 5 Nov 2008 at 3:40
* The numbering of screenshot doesn't care what is in the output directory.
It often overwrites an existing file.
* It doesn't allow to capture the each of continuous 2 frames, due to poor
implementation of hotkey handling.
Original issue reported on code.google.com by gochaism
on 23 Oct 2009 at 12:28
Currently Directory overrides are not directly editable.
Original issue reported on code.google.com by [email protected]
on 9 May 2009 at 8:17
What steps will reproduce the problem?
1. Connect without my joy.
2.
3.
What is the expected output? What do you see instead?
I already config my joy pad but i remove my joy pad and then open
vba-rerecord. All my setting just disappear. It just back to default setting.
What version of the product are you using? On what operating system?
vba-rerecording svn r85 win32. Windows XP
Please provide any additional information below.
...
Original issue reported on code.google.com by [email protected]
on 5 Jun 2009 at 10:34
Lua scripting should be implemented as similar as possible to SNES9x, GENS,
and FCEUX.
Original issue reported on code.google.com by [email protected]
on 5 Nov 2008 at 3:41
the windows version VBA will have the following commandline options:
-rom
-play
-loadstate
-pause
-readwrite
and possibly:
-capture
Original issue reported on code.google.com by [email protected]
on 5 Nov 2008 at 3:48
At present, the frame timing of GBA games is incorrect:
1) Generally, the length of one frame oscillates around 280896 cycles. The
average length is exactly 280896 cycles by excluding the first frame right
after the game starts (see below).
2) The first frame is sometimes shorter than the 280896 cycles even with
the fix in r87, and the deviation will not be balanced out with following
frames.
Aside from being inaccurate, this issue may prevent implementing
deterministical GBA multiplayer emulation that will not dead-lock with
multipe processes.
Fixing this issue may result in desynchronization of GBA movies recorded
with old versions of VBA.
Original issue reported on code.google.com by [email protected]
on 4 Jun 2009 at 5:36
When selecting record AVI , it should attempt to make a default avi name
(using game name or movie name).
Original issue reported on code.google.com by [email protected]
on 5 Nov 2008 at 3:28
Trying to slow down or speed up isn't being completely ineffective.
Fast-forward still works
Original issue reported on code.google.com by gcupcakekid
on 5 Oct 2009 at 6:41
It would be nice to be able to disable the automatic ROM close and restart
after the emulator encounters an invalid opcode (for example, treating it
as a NOP (i.e. nothing)).
As it is if the ROM crashes you have to reopen it and hope you have a
savestate. Possibly output a message like "Encountered invalid opcode at
$address" to a message log or something.
Original issue reported on code.google.com by [email protected]
on 23 Oct 2009 at 8:28
[deleted issue]
Cheats window should be a modeless dialog box so that it can stay open
while playing the game.
Original issue reported on code.google.com by [email protected]
on 5 Nov 2008 at 3:32
The Cheat Search dialog should remember its window position.
Original issue reported on code.google.com by [email protected]
on 6 Nov 2008 at 2:13
VBA crashed at the following line in CPULoop in GBA.cpp (I was playing a
GBA game, of course)
*dest++ = systemColorMap32[lineMix[x++] & 0xFFFF];
Original issue reported on code.google.com by gochaism
on 11 Apr 2009 at 2:39
What steps will reproduce the problem?
1. Run a gameboy game on Linux on a fast computer
2. It's choppy, as if it does 10 frames at once.
3.
What is the expected output? What do you see instead?
Smooth, as in 1 frame every 60th of a second,
instead of 10 frames, every 6th of a second.
What version of the product are you using? On what operating system?
Linux on a fast computer.
I've traced down the bug.
In src/sdl/SDL.cpp:
void systemFrame(int)
{
}
That's the per frame delay loop.
Note how it doesn't wait at all.
To fix it, I altered src/gb/GB.cpp and
src/GBA.cpp to call system10Frames every frame,
and changed the throttle by 1/10.
Also, I noticed FCEU had better timing logic,
so I copied and pasted that in to make it a
bit smoother.
Original issue reported on code.google.com by [email protected]
on 8 Jun 2009 at 4:49
Add a an entry in the directory overrides for the default directory to save
.avi files.
Original issue reported on code.google.com by [email protected]
on 5 Nov 2008 at 3:31
joypad.read seems to return the input of previous frame :'(
Original issue reported on code.google.com by gochaism
on 7 Mar 2009 at 10:32
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.