Well, you can map hotkeys. It's in Tools-> Customize.
I don't think Volkov and his friends will change the GUI. For best hope, you may ask official GBA team programmers.
It only does this for regular Game Boy / GBC games -- Frame advance works correctly for Game Boy Advance games.
In fact, recording is working fine, even playing back properly without desyncs when I start recording in the order Pause->Record->Restart->Unpause, but only for GBA games. GB games must not have been tested as much...
I`m yeah I`m the coder for this update.
I thought it was bought time I posted lol.
First off the reason why the emulator emulates gba games differently to gb games is due to the fact it uses two different emulations cores.
It originaly only emulated gba games but then forgotten decided to combine visualboy with visualboy advance.
I will try to make the gameboy emulation as close as possible to the gameboy advance emulation(with frame advance working and so on).
Thnx for the compliments or more commonly at this stage complaints
Keep it up, we really need a good gameboy emulator to perform our art on, and this looks like it is ending up just what we need. So please be patient and work towards making our requests fulfilled.
It is greatly appreciated.
Request!
Would it be possible to add a 400x300 fullscreen resolution? My PC is old and finicky, but I can usually get emulators to run smoothly at that res. It doesn't like 320x240 for some reason.
Edit: Nevermind, I got it to run just fine in windowed mode by enabling vsync and lowering my monitor's refresh rate to 60. I also tried out a GBA game, and there was nothing I could do to get it to run at a decent speed. This PC is just too wimpy for it. :(
When I load a state while playing back a recording to continue recording, the game goes out of sync at the place I continue from. It looks like the newly recorded frames are offset by 1 frame too far forward in the file, either that or the very 1st frame that's recorded after resuming recording is messed up, but I can't verify either of these because I can't figure out how to hex-edit away a frame to try and put it back in sync.
(some more specific info, in case it helps: I was in the middle of scrolling through a menu in a GBA game when I paused, made a save state and stopped recording, then chose playback and resumed recording by loading that save state. Then I unpaused, chose an option from the menu in the game and did some other stuff, then stopped recording again and watched the playback -- everything up to that menu was fine, but when it got to the menu, it scrolled too far and chose a different option than when I had been recording, which obviously screwed up everything after that.)
What format are the recorded movies in? Could it be made easily hex-editable (no compression, byte-aligned)? And can it be made to contain (and display upon selecting to load) a checksum of the ROM, the length and number of re-records, and a custom author info string?
(Maybe the ROM checksum isn't necessary because the movie fails to play at all if I use the wrong ROM, due to being unable to load the game's save... is this intentional?)
Also, it would be really nice if there was a read-only toggle so one can load a movie save state to continue watching from there without nuking everything after that frame in the movie. And loading a different ROM should probably automatically stop recording/playback, and choosing Reset should stop playback.
I`ll work on this a bit today
The movie format is not as complex as it initialy looks (theres no compression involved)
The first four btyes in any movie are 01 00 00 00(if I remember)
Then after that you would have the next four btyes how many frames to wait before the next action commences. eg( 100 frames would look like 00 00 00 64).
The next four bytes are too hard to explain in a forum, but basically just tell the emulator what buttons to hold until the next frame.
when you stop the emulator the last frame and buttons held are recorded.
So a video of someone recording a button tap of up then stopping the video would be: 4 bytes(initial) + 8 bytes(tap up) + 8 bytes(stopping the video). So the video would be 20 bytes in total.
I hope this cleared some things up and hopefully not confused you more! :)
Yes but I hope the header will be larger than this to allow 1 byte that tell if it's a record from reset, record from now and also some bytes for author name, video information, total frames etc... like in FCEU.
[Edit] Btw, what he means, it would be nice if we could hex-edit the movie file like Famtasia movies.
right = 01
left = 02
up = 04
down = 08
B = 10
A = 20
select = 40
start = 80
Ex. Here's a Famtasia movie file that starts at frame 1.
00 01 02 04 18 FF
At frame 1, no input.
Frame 2, pressed right.
Frame 3, pressed left
Frame 4, pressed up.
Frame 5, pressed down+B
Frame 6, pressed all buttons.
But right now, it seems to be "streamed" like in FCEU which is disordered when reading with an hex-editor.
If you want to do like that, it would be nice but not necessary.
Thanx for the suggestion but that becomes incredibly hard.
Either it would mean large movie files or compression.
I don't believe the movie system needs to be changed except the file format as volkov suggested
For gba that requires two bytes for each frame
for a 20 min movie that equals around 8.6MB which is many times larger than the current alternative.
:) I agree with you.
Instead, if you want, you could create a software that let us edit the movie file.
If you want.
Btw, as Volkov has suggested, it is essential to change the file extension. Ex. VGM.
Uh, I think that math is way off.
20 min * 60 sec/min * 60 frame/sec * 2 byte/frame = about 140 KB
which is a totally acceptable size. The run-length encoding (at least I think that's what it's called) that you're using now is very inconvenient to edit manually, plus the file bloats up if auto-fire is used. But if you're really against changing it, could we at least get a tiny utility that decodes it to / re-encodes from the full 2 bytes per frame?
(Of course, this isn't top-priority at the moment unless it's super-easy to do; first comes record-from-reset, then fixing GB frame advance, then fixing the recording-continue desync so runs don't have to be done in a single sitting.)
Oh, and .GBV makes the most sense to me. (Does it really matter?)
Oh, uh, it desynched for me too. All rerecording I've tried on VisualBoyAdvance desynchs for me. I haven't tried any actual Game Boy Advance games, though; just the old Game Boys. So I don't know.
put yourself in my rocketpack if that poochie is one outrageous dude
My experience is that GB games always desync within the first few minutes, although GBA games stay perfectly in sync until I load a state during playback. (So I guess getting GB games to record without desyncs is another high priority.)
And just in case, the order I'm using is Pause-Reset-Record-Reset-Unpause.
Hmm, so would it matter which "Gameboy" you choose? You get your choice of GB, SGB, SGB2, GBC/CGB, GBA, and Automatic. I wonder if it would affect load times, like loading colors and borders.
put yourself in my rocketpack if that poochie is one outrageous dude
Could u please name the names of these roms which so call desync, I can't work on it if I don't know which roms are the problem?!?
Me and Volkov and Phreak97 had the same problem with Pokemon gold till I fixed it.
Please take some more time to think about the movie format and make a good header. There is a lot to be won if that's done correctly, for example if all data and settings which if changed causes desynchs are saved. Examples of better file formats are
http://tasvideos.org/SMV.html
and
http://tasvideos.org/FCM.html
Also be sure to reserve a number of bytes in the header since the first version cannot think of everything, and it's nice to have backwards compatibility.
I prefer one frame = one byte format, but that's less important than the above issue.
Well, one frame = one byte is limited to a max of 8 buttons, and if you're going to make it compatible with gba, this can't be done. The best option would be including header information which tells you this, so you can interchange between formatting.
OK, here are some examples I tested:
GB: Mario Land 2 (desync within first minute when loading save states frequently)
GBA: Final Fantasy Tactics Advance (U) (desyncs on playback loading)