Posts for nitsuja


Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
pilif wrote:
Hi, sorry to be picky, but in OpenGL-Mode, a good part of the bottom of the screen is cut off with this hack.
Whoops, I thought I tested that... it's super-easy to fix, but should I keep posting versions for re-mirroring when things like this turn up? (Or maybe while I'm at it, anybody have any feature requests?)
pilif wrote:
Oh and while already posting in this forum: Can anybody tell me how I reset my Snes9x-Window to the correct aspect-ratio? I've unfortunately resized it and now I can't get it back to how it was before.
This I don't know. Maybe I'll see if I can add a menu option that does this. (Do you mean just correct aspect-ratio is ok, or is a specific multiple of 100% size also needed?)
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Can be viewed with regular Snes9x 1.43 (Final, not the WIP). The only really important difference is the way the zeldafix version handles save states, and since the movie contains only input and no save states, the movie will play back exactly the same in both versions. (This is only if you record "from reset" but that's ok because only from reset movies can be accepted anyways.) I believe the sound desync fix will not be this way, though; that will probably require a version whose movies are not compatible with the current one. Which is why the sound desync fix is not included in this version (well that and the fix hasn't been figured out yet). Luckily Zelda 3 (and actually most games) aren't affected by the sound desync bug.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Viewer wrote:
It says here "Windows 98, 2000, XP", and "DirectX 5" or later, so I'd assume at least a system capable of handling that. I'd also like to say that I had a lot of stuttering when I first ran the program, as well, but when I restarted my computer there were no additional problems. What type of computer are you running?
Windows XP, DirectX 9, NVidia GeForce 4, 2 GHz cpu, 256 MB RAM I was thinking maybe it was programmed for a specific color depth or windows 2000 or something but different settings and config options and compatibility modes haven't helped so far.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
I'd like to play this game, but I can't because it runs at 0.0005 frames per second... what are the system requirements?
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Oops, I just found out something's wrong with the fixed version I posted: I linked with a different CPU core than the official version uses (the readme said they're identical but I guess they're not), so it'll still go out of sync between versions sometimes (it just happened to not do that in the one demo I made). I fixed this, so here's the new version that makes movies exactly compatible with 1.43 final, for real this time: http://www.filespace.org/nitsuja/Snes9Xw-ZeldaFix-v3.zip Also, even if you're not making a Zelda run, if you're on Windows I think you might want to use this because I improved some other things that were bugging me. (Mainly: The ugly black bar at the bottom of the screen is now an option that's off by default, frame advance has sound, and hotkeys are customizable.)
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
I tried applying these patches to the Windows version of Snes9x, but with no success. Apparently there are multiple things causing the problem on Windows: 1.) While sound is generated in sync, that sound gets processed from an OS-threaded timer 2.) Processing the sound also generates more sound in addition to playing it 3.) Processing the sound queries DirectSound how far it's gotten in playing the sound and uses that number to decide what to do (1) can be fixed by moving what the timer thread does into some regular-interval called function. (2) can be fixed easily but the problem is that the sound relies on this extra sound generation to not sound like absolute crap. Maybe fixable by decreasing the above interval time. (3) I don't see how this can be fixed; the value it returns seems to change randomly within a large range, so nothing deterministic can approximate it without totally destroying the sound quality The above patch looks like it doesn't even change or disable the sound code causing for these problems so I don't see how it can work.
Post subject: Re: Sound settings and frame precision
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Even when changing the sound settings slightly alters the timing of the game (as it does with Snes9x, apparently due to changing how much work the game system's sound processor has to do), I think it never results in anything happening that wouldn't have been possible otherwise, because the only difference seems to be that some frames get duplicated or already-duplicated frames get dropped.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
For those who want a Windows version of Snes9x that has this patch applied and thus never desyncs when recording Zelda 3 (and likely others like Mario RPG), here it is: http://www.filespace.org/nitsuja/Snes9Xw-ZeldaFix-v3.zip (edit: changed link to newer version -- see my later post about this) The movie files it makes are still compatible with the official 1.43 final. (Someone else may want to host this somewhere better if people are still interested in this.) Oh, and as "proof" that it works, I offer this SMV and the assurance that it was very easy to make: http://www.filespace.org/nitsuja/zelda3intro.smv.zip (edit: ROM = "Legend of Zelda, The (U).smc", emu = 1.43 Final.) Right now I'm not up to making a full time attack of the game, but I hope someone is now that there are no desyncs to worry about, because I'd really like to see a complete perfect run of it. Note to Fabianx: I added the following lines before the other 2 added by your patch: {OFFSET (OAMWriteRegister), 2, INT_V}, {OFFSET (BGnxOFSbyte), 1, INT_V}, because a comment indicated that the developers thought these belong in the snapshot as much as OpenBus1/2, and I think I saw it still desync sometimes until I added these. I'm not 100% sure they're necessary, but it seems to work perfectly with them and I think nobody will mind if their save states are 3 bytes too large. I also got rid of one of the two lines that go: {OFFSET (Need16x8Mulitply), 1, INT_V}, because the duplication is obviously unintentional even if not harmful.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Bag of Magic Food wrote:
Okay, this is really, REALLY weird, because apparently I was wrong, and the settings have nothing to do with it. I can try the movie over and over again with the same old settings you had, and sometimes it'll desync, but sometimes it won't. It's as if there's a 50/50 chance of a desync. Usually it alternates between working and not working (jumping into the boss, that is). Maybe it has something to do with what screen is loaded when I replay the movie, but at this point I doubt it.
How fast is your computer? Maybe if the computer is too slow there's a chance the game will load at a different speed or skip a frame or something. I doubt that's it, either, but I can't think what else could be causing it. (I wonder, if you pause the game, choose to play the movie, then hold down the frame advance button to watch it, will it always do the same thing then?) (edit: or maybe we're missing some settings still that don't seem important but actually are. Maybe we should post our vba.ini files to make sure none are being missed.)
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Bag of Magic Food wrote:
No, if I don't turn the border on before loading the game, or if the border is turned off when Bomberman gets to the boss, he jumps into the boss instead of bombing it.
That's really weird, I can't get it to desync on playback even if I try (and I've been trying every combination of settings I can think of). I made the movie when it was set to GBA mode with the border off, btw. Could you give more detail on what you're doing to play the movie when it desyncs like this, like an example of what's checked in your Options->Gameboy menu, and do you do anything extra before playing it, like pausing/playing it a bit/etc.? Does your border have swords on it or is it pure black? For me, the game loads faster than normal on movie playback (which I think means it's playing from a reset and not a hard power-on restart), so even when Border is on, it skips the loading of the SGB border completely and the real border doesn't show up. Anyway, maybe you've found another desync bug that's being caused by some some combination of settings... or maybe you just have a different ROM, so here's my info on those things: ROM info: CRC = 9b, Checksum = 41cb My settings: Frame skip: 0, and No Throttle. Video: 3x size, Direct3D Emulator: Synchronize on Sound: On, old synchronization off (Hey! playing a movie forces the sound to 22khz, that's annoying...) Gameboy: only Automatic and Real Colors are checked atm. Filter: Normal
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Bag of Magic Food wrote:
The Pocket Bomberman movie was made in Game Boy Color mode with the border on.
I'm not sure I understand... I just used the defaults, opened it from the Open (any type of) Rom menu, and I don't think I saw any border...
Bag of Magic Food wrote:
Oh, and Pocket Bomberman STILL freezes in the normal game!
This is a bug in the game itself. If you press left+right while Bomberman is in the air, the game is programmed to freeze.
Phil wrote:
but still a bug that need to be corrected.
If you mean the extra-input-after-load bug... Actually I'm not convinced it's a bug, since whenever I try to get it to happen I fail, so maybe I was just pressing the wrong keys without noticing or something.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Cool, it works very reliably now. I just made a movie of pocket bomberman's "jump" mode real quick: http://www.filespace.org/nitsuja/pockbombjump.zip (Pocket Bomberman (U) [C][!].gbc) (the movie is 11896 bytes -> 2973 frames -> only 49.55 seconds?) Judging by the fact that it stayed perfectly in sync no matter how rampantly I loaded save states and used frame advance, it looks like all known desync problems have been fixed, and record from restart is also properly done. I did notice that the (already mentioned) minor problem still happens where saving a state causes any movie that's playing to restart from frame 1 while the game's still going. And also this mysterious bug I can't reproduce but occasionally happens where loading a state when paused sometimes presses some buttons for you on the next frame depending on what you did beforehand (some combination of load/save/frame advance I think) but that's also really minor since it doesn't cause desyncs or anything and loading the state again fixes it. Really, it seems like the only major things missing now are header info and frame counter.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Enhasa wrote:
But seriously, for anyone who's still reading this, would you rather see a new game or a clear game? While planning a new game run would be more interesting, I think because of the length and all, it wouldn't be as interesting to watch. So given a clear game, should party XP be allowed? I actually don't know where I stand on this.
I'd much rather see it from a new game, because then it would be a far greater show of skill and not just a walkthrough of the dungeon routes.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
OK, I guess the first one is more of a feature request than a bug report, but "bullet-proof recording" is definitely possible as evidenced by Snes9x (and maybe also FCEU?) and it makes recording movies a lot more convenient. It's right up there with the usefulness of a frame counter for me. And it's not just for preventing mistakes; it can actually be useful to purposely load save states past the point you're recording at. (For instance, when manipulating randomness, you can save your best result so far in one state, then keep going back to a previous state and trying for better results, and when you've had enough, load the "best result" state and continue from there.) I think that frames being missed on frame advance with Automatic / other frame skip on is purely visual and isn't affecting the actual emulation, frame advance itself is causing some change regardless of the drawing. (Remember frame advance didn't use to work at all in GB games, maybe getting it to work properly isn't just a one-line change after all.)
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
(sorry if you've seen this already. I tried posting this earlier but the forum went down or something.) OK, I've tested out the alpha 3 and (while it's still a big improvement) I got lots of desyncs. But I'd really like to see them fixed, so I tracked them down as much as possible and will now describe them (2 separate desync issues) in as much detail as I can so they can hopefully be fixed faster: The first desync problem is due to a general oversight in the way the rerecording is done in VBA. Here are the steps to reproduce the problem: - Open any ROM in VBA alpha 3 (Mario Land.gb is the easiest for this example.) - Start recording a movie (from restart or not, doesn't matter). - Get past the title screen to the actual game, then save the state to slot 1. - Play the game normally for a while, like 10 seconds or so, then save to slot 2. - Load slot 1 and do something stupid and recognizable such as hitting the Start button to pause the game in-game. - Now load slot 2 and (for the sake of example) finish the level. - Choose to Stop recording the movie. Now when you play back the movie, it'll get past the title screen then pause the game or whatever other stupid thing you did after loading from slot 1. This is NOT the correct result; what should be in the movie is you playing and finishing the level, with no in-game pause at all. (By the way, you can try these same steps out in Snes9x and you'll see it actually does the right thing.) It might not seem that major but it will cause loads of desyncs and headaches as it is, because (for example) every time I accidentally load an old save slot the whole movie after that point gets screwed, and frequently it's useful to load old save slots on purpose then go back to a future save and continue from there. (Presumably, to implement the correct functionality, you need to store the entire movie-in-progress along with or as part of every save state that's made while a movie is being played or recorded, which isn't very hard to do and is probably worth it unless you can think of a better way. Also, you should probably disallow the loading of non-movie save states while recording a movie.) The second desync problem is a more specific bug with frame advance that actually has nothing to do with the movie recording itself, but it still causes desyncs in movies of many games due to incorrect emulation. Basically, it seems like a timer variable (which is often used for pseudo-randomness) is being updated differently over frames when frame advance is used as opposed to when it isn't used. So it can be easily tested, I found an example where frame advance changes the game's behaviour in an obvious way even in the absence of any other input. Here are the instructions to reproduce the problem: - Start up the VBA rerecording version alpha 2 or 3. - Open up the ROM called "Pocket Bomberman (U) [C][!].gbc". - Here is a zipped save state: http://www.filespace.org/nitsuja/PocketBombermanTest1.zip - Download it, unzip it, place the file inside where the ROM is, and load it by hitting F9 in the emulator. - Watch at the top-right of the screen where a pink squid/birdo thing will pop out of a jar. - Load state 9 again and count how many times Bomberman bumps his head on the block in the middle of the screen before the pink thing pops out. For me, it's 6 times. - Now, Pause the emulator, load save state 9 one more time, choose "Next Frame" once from the Tools menu, then Unpause the game. This time, Bomberman only bumps his head 2 times before the pink enemy pops out. You should be able to see the not-so-subtle difference; one frame advance just altered the timing of that enemy by about 2 full seconds! Obviously this sort of thing will cause nearly any recording of the game that uses frame advance to go out of sync when it's played back without frame advance, so this needs to be fixed. (Another game that's similarly affected: in mario land, the positions of the prizes at the end of the stage if you reach the high door are randomized differently if you use frame advance before they're chosen.) Note that throttle changes work fine; they don't have this problem even at ultra-slow speeds. (Using the cheat finder and comparing after 1 frame of frame-advance to after 1 frame of 5% throttle, I found that the only variable being initially affected by frame advance (in Pocket Bomberman) was the one at address 00:c248 in the game's memory, if that means anything.) I think this problem does not affect GBA games, but I'm not totally sure about that either. Finally, I also have a few feature requests: - FRAME COUNTER! (Either toggleable or always-overlay-when-paused would be fine) - Don't disable "Start playing movie..." when a movie is playing. - Save the number of frames and the number of save-state loads in the header. - Save a checksum of the ROM in the header and bring up a warning if trying to play a movie when the checksum of the ROM that's open doesn't match the one in the movie. (can be a useful sanity check) - Don't create or use a .VM0 file. What the heck is it anyway? - When loading a state while the emulator is paused, is it possible to draw the frame the game was saved at instead of the unhelpful total blackness? - Get rid of the annoying "Playing a movie will load load a save state which may erase your previous battery saves" warning, or at the very least, spell "lose" correctly in the message and put a line break in the middle. (Also, this message is incorrect for movies recorded from restart, because such movies should NOT load any save states or that defeats the purpose of the movie being recorded from restart.)
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
BoltR wrote:
Currently "Frame Skip" affects the Throttle and Frame Advance, this is the reason Phil is only getting frames every so many frames. It would be nice for this to be fixed, or atleast for it to be turned off by default. I'm guessing that setting it to Automatic does this too, but I cannot confirm it. Can someone try to confirm this?
I tested this on the last version at least, and Automatic alone (even with frame skip = 0) did cause frame advance to skip displaying (a lot of) frames. I don't think turning Automatic off by default would be good, since it's designed as the default setting (although personally I think it skips too many frames compared to how much the computer can really handle), but having frame advance force-draw the frame seems like a reasonable solution.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
I haven't tested this new version out just yet, but it sounds like all the major issues have been fixed and only non-critical things like annoying sound on frame advance (my workaround: save a state, that stops it from looping) remain. If that's the case (that runs can be made from restart and without desync, and frame advance and throttle are fixed) then maybe it's time for some GB/GBA forums... (edit: oh, didn't read Phil's last post, obviously if it crashes on playback that still needs to be fixed, I'll test it tonight and see if it crashes for me too.)
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
samurai goroh wrote:
IIRC, there was a bug in this game in which if you killed yourself, you "beat" the master jelly
That's a glitch? I thought that was the whole challenge of the battle, why else does the slime do nothing but heal your party? (I seem to remember finally beating myself/it, getting whatever item it had, but then being stuck on that floor with no way out of the dungeon.)
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Fabianx wrote:
I'm sorry, at least with my detsound patch (very similar to Bisqwits) the game did run some times faster. I have resynced half of the movie, but every 3000 frames I had to make a correction.
Oh, well it was just a wildly optimistic guess that it'd work as is. I won't mind redoing it with sound once the issue is properly fixed in the emulator. (Or do you think it's easier to just insert the frames throughout the movie to fix it? When I try doing that usually it stays in sync for a long time but then a guard later on will decide to shoot me in the head too soon.)
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
I'm glad people are liking it. Also it's a good thing the sound bug and various Snes9x desync bugs are finally being worked on. In fact, maybe in the patches (like Bisqwit's) that already have deteministic sound, this movie will play back / encode correctly with sound on as long as volume envelope reading is still off. (I'm on Windows and have had no luck compiling Snes9x though so I can't try any proposed patches yet.)
Ouzo wrote:
This movie seems more like a normal movie rather than just someone playing through a game extraordinarily.
The game is somewhat slow, so I guess it looks easier than it is unless you've played it. The controls are actually really clumsy and the likelihood of getting eaten/vaporized/crushed trying anything in this movie so very high, that pulling this off in real-time would be insanely difficult. Those who've played it know that normally this game relies heavily on trial-and-error (try something, die, restart, try something else, die restart, try something else, finally survive, then die 10 seconds later, restart...) which I found very annoying when I first tried to beat it on console, but luckily that process doesn't have to be watched in a rerecorded movie of its completion.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
I really like it so far. Also I think all the jumping makes it look more impressive. (I can believe that it's faster in this game, sure looks like it to me.)
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Oh, uh, sorry, I was busy fixing up the run. Hex editing it was harder than I thought it'd be, what with the almost-random lag and timing changes, but it's 7 seconds faster now. Unfortunately I had to take out 2 of the bugs since one (dying at water) one was a bit slower, and the other (buddy dying to save me) I couldn't reproduce but found something faster. http://www.filespace.org/nitsuja/ootw-v2.smv (again: must use Snes9X 1.43 WIP1, Sound->Playback Rate->No Sound must be set, and the ROM is "Out of This World (U)".)
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
I've seen people get complained at for posting multiple messages in a row instead of editing the first to contain the later ones, is partly why.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
OK sorry I didn't realize that happened, I'll edit less often.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Uh, nevermind, I guess I was wrong about dying there being faster. Dang, I liked that glitch though, it's such an unexpected thing to have happen.