Posts for Ilari


Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
Just a wild guess, you have checked that advanced bus-level timing is off? That option should be off when TASing, it affects sync and I wouldn't be surprised if it negatively affected speed too...
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
The time issue is because the site uses the frame count in movie header (offset 0x10, ~37k) but apparently PSXjin uses the number of actually present frames (~70k)...
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
Zarmakuizz wrote:
Where is the most recent code?
This should be it: http://code.google.com/p/hourglass-resurrection/ (at least latest is marked 2 days ago).
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
Mothrayas wrote:
For that matter, the [submission] tag gives incorrect times in general for any console that has a particularly accurate framerate. The same also goes for the [movie] tag.
Heck, looks like the site always uses 60fps for [movie] and [submission] Should be fixed (but perhaps it still can be off by 1/100th of a second) when site code is next updated.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
feos wrote:
It was suggested that on http://tasvideos.org/Subs-List.html will be a link to current submissions forum (workbench), asking to vote for them. Because new users don't know it before they register. Anyone against it?
Err... Users can't vote before getting a few posts first (and for good reason).
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
Personman wrote:
1. Write down a sequence of button inputs (like the first n frames, maybe all of them, of any current TAS). 2. Load a ROM, start recording, feed inputs from your sequence into the emulator, wrapping back to the beginning when you hit the end. 3. If the game is eventually completed, stop recording. You have now demonstrated that it can be beaten with a cycle length of n.
Would allowing looping back to arbitrary point be interesting (the infinite SMB2j did that)?
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
Warp wrote:
Ilari wrote:
As to why, consider if the response would just be identical to that page. If the answer was sent directly, then browsers would record that page as being received from POST, which breaks e.g. page refresh.
Does, for example, tasvideos.org/forum use this technique?
I thought more about some pages on the wiki side (especially if modules taking POSTs are involved).
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
byrz wrote:
Next thing I gotta figure out is the encoding when the TASes are finished, my audio dump desyncs with my frame dump and the AV-sync version just crashes when I start encoding...
There are many things wrong with standard Dolphin A/V dumps: - There are frames missing (often during loading times). - There are parts of soundtrack missing (again often during loading times). - The video framerate is not exactly 60fps (and with some games, it is more like 30fps). - The video might not even be of constant framerate. The easiest way to deal with the video is to hack dolphin to dump timecodes for each frame and then align the frames afterwards. And the easiest way to deal with the audio is to hack dolphin to dump alternate soundtrack with no gaps.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
Warp wrote:
So the idea is that a program can make a POST request, and then the server can tell it "ok, I got it, now go to this other URL for the results" (which it should retrieve with a GET method)?
That's the idea of 303. As to why, consider if the response would just be identical to that page. If the answer was sent directly, then browsers would record that page as being received from POST, which breaks e.g. page refresh.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
HowardC wrote:
It seems like one frame needed to be rendered before any of the calls even worked and strangely enough the png would render well before the rom loaded (putting the script in motion) but only if I unpaused the non-existant rom first.
Ugh, the dev versions have a bug, where painting when paused does not work. Fixed. I uploaded a build to: http://ilari.tasvideos.org/lsnes-rrtest.7z This works on both latest stable (including on "no signal" screen) and in latest dev revision (including on "no rom loaded" and ROM cover screens).
Language: lua

keystates = {} keyorder = {}; on_paint = function() local y = 0; for k,v in ipairs(keyorder) do gui.text(0, y, v, 0xFF8000, 0x80000000); gui.text(240, y, string.format("%6d", keystates[v]), 0xFF8000, 0x80000000); y = y + 16; end end on_keyhook = function(name, value) local val; if value.value then val = value.value; else val = value.last_rawval; end keystates[name] = val; gui.repaint(); end on_startup = function() keys = {}; local t = input.raw(); for key,val in pairs(t) do if string.sub(key, 1, 8) == "joystick" then print(key); input.keyhook(key, true); local val2; if val.value then val2 = val.value; else val2 = val.last_rawval; end keystates[key] = val2; table.insert(keyorder, key); end end gui.repaint(); table.sort(keyorder); end if emulator_ready() then on_startup(); end
Hmm... Perhaps Lua function to load the screenshot off savestate file would be useful...
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
Warp wrote:
If a program (such as a browser) makes a POST request to a server, and the server returns a redirection response to another URL, why would the program make a new request to that other URL as a GET instead of the original POST? What sense does that make?
If the server really processed the POST and is redirecting to results, then changing to GET makes sense. If the server didn't process it yet, then it needs to be resent as POST. These kinds of redirects are done for backward compatiblity and in some APIs. The problem with method changing with 301 is that it is permanent (which means cacheable) redirect. So if the client caches it and changes method, using POST with that URL just broke... Some background: The redirects are classified by: - Is the redirect permanent (cacheable) or temporary (not cacheable). - Does the redirect change method or not (or either depending on client!)? 301: As originally specified: Permanent, do not change method. RFC2616: Permanent, don't change method (note: Some buggy implementations) HTTPbis: Permement, either change or don't change method. 302: As originally specified: Temporary, do not change method. RFC2616: Temporary, don't change method (note: lots of buggy implementations). HTTPbis: Temporary, either change or don't change method. 303: As originally specified: Temporary, change method. RFC2616: Temporary, change method. HTTPbis: Temporary, change method. 307: As originally specified: Temporary, don't change method. RFC2616: Temporary, don't change method. HTTPbis: Temporary, don't change method. 308: As originally specified: Permanent, don't change method (the same as 301!). RFC2616: N/A HTTPbis: Permanent, don't change method.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
Warp wrote:
Could someone explain to the initiated what it means for a POST request to be changed to a GET request on HTTP redirection?
Basically, POST is form submission, and GET is fetch page. So the form data is lost (if the server didn't act on it already, and if it did, it should use 303 code).
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
And those changes are in HTTPbis specs, not HTTP2 specs. And the first are already being copyedited for publication and there will not be substantive changes. HTTP2 has some even worse braindamage (but the spec isn't even in last call). The absolute worst is specifying 100-Continue handling when proxying to HTTP/1.1 not only in a way that is absolutely forbidden by HTTP/1.1, but is about the way that does the most damage. There are other handlings that would still violate HTTP/1.1 but do far less damage (because those clients already have to handle the unreliability of 100-Continue). Basically, it would render 100-Continue even on HTTP/1.1 absolutely unsafe to use.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
HowardC wrote:
What you suggested didn't work, that just made the code launch well before the rom was loaded.
Ah, unpausing there won't work, because on_startup is run before pause/unpause is initialized. Fixed in latest dev revision. Also, the screen can update even when paused: Call gui.repaint() to request on_paint() to happen after current callback finishes (I tried requesting a repaint from startup, worked). Also, it is possible to get a keypress callback (including from physical gamepad).
HowardC wrote:
I've still got problems though, namely I guess this emulator doesn't have a fullscreen mode?
Dev versions do have fullscreen. But it is not enterable from Lua. Only from command line in very latest dev revisions. I'm currently doing binary build of very bleeding edge dev version...
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
HowardC wrote:
It sets the rom path, but it doesn't load it, I have to start the emulator manually via the menu.
What happens if you just unpause? "No signal" remains (no ROM loaded) or the game starts (ROM loaded)? Lua script can trigger unpause by:
Language: lua

exec("unpause-emulator");
HowardC wrote:
Also if I add a --lua=test.lua to the command line, it crashes.
And the same script doesn't crash if started from the UI? I think the cause is that Lua scripts started from commandline start up while emulator is still starting up and in who knows what state, so many operations just crash. Yeah, should be fixed so that Lua scripts are not executed until emulator has finished starting up (the last step is loading a movie file). (Edit: Done in latest dev revision). There is function named emulator_ready(). If it returns false, wait for call to on_startup before doing any more complicated initialization. Adding callbacks is safe, since that is just writing functions into variables. One way to do this is:
Language: lua

on_startup = function() <startup code here...> end if emulator_ready() then on_startup(); end
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
HowardC wrote:
I tried lsnes-wxwidgets.exe --rom="c:\roms\Star Fox (USA).zip" and the command prompt sits there for a second then the emulator flashes on the screen and disappears.
You are trying to load the .zip as ROM, not a ROM file inside it. lsnes-wxwidgets.exe --rom="c:\roms\Star Fox (USA).zip/Star Fox (USA).smc" or something like that (not sure about name of the file inside the .ZIP) should work. And apparently lsnes will bomb with error message printed to console (no dialog) if one gives --rom, but it can't be loaded for some reason (edit: Fixed in last dev revision).
Post subject: Re: lsnes gui.bitmap_load problems.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
HowardC wrote:
So when I try to call gui.bitmap_load('test.bmp') I get the rather strange error messge of "Wrong Magic" in the prompt. Is the function broken or is it something I'm not doing right?
The format isn't BMP but something weird. Use the PNG versions (*load_png / *load_png_str) and have the bitmap as a PNG. Note, the *load_png_str function eats BASE64 encoding of PNG, not PNG itself.
Post subject: Re: How avoid desync when you use save states ?
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
Eszik wrote:
I'm new here and I wanted to try to make a testrun of Pokémon Mystery Dungeon. I'm using VBA and I used the movie recording tool to record my input. But I loaded a state during the movie recording, so when I read the movie, the game played input I made after saving state and input I made after loading the state. So the movie was totally desynced.
Visual Boy Advance or Visual Boy Advance rr? The first doesn't support re-recording (usually with consequences just like you describe if you try to mix movies and savestates)...
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
Submitting large movies should work now. Try again.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
FractalFusion wrote:
I have also removed the avatars of the two users who use images from rphaven.org, and sent PMs.
You want rphaven.org on avatar blocklist (yes, there is one, prevents adding new avatars from there)?
Post subject: Re: Sorry about this...
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
thatguy wrote:
So I tried writing up the 2013 awards wiki page since I notice nobody has done that yet but it has turned out to be far beyond my noob editing abilities/rights. At the moment there's a link in the awards page to a blank 2013 page.
It is far beyond your privileges. I added the awards. (I also messed up the awards when adding new categories, but that should be fixed already). Hopefully awards 2014 will be easier than 2013... :-/
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
FractalFusion wrote:
Edit 2: Also, there are at least two users with avatars from rphaven.org.
Currently exactly two.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
Spikestuff wrote:
Piggyback question too: What classifies unknown rerecord count?
The site shows rerecord count of 0 as unknown. Sometimes rerecord count is zeroed when it is obviously way off and the author doesn't have any idea to even approximate...
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
solarplex wrote:
Piggybacking question. are TASes usually done all in one file? or somehow stitched together with cumulative rerecords added?
Usually done all in one file, given how nasty it is to stitch segments (for a lot of games it isn't even possible).
Post subject: Re: Rerecord count definition
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
redrum331 wrote:
I just read the definition from the glossary but want to make sure I got this right. So this is how many times the user loaded a save state and continued to play from that point? I saw one with almost 200,000 and thought how much time it must have taken. Thanks.
Well, although savestate loads made by Lua and other scripts shouldn't be counted, there are buggy runs that do count those, leading to greatly inflated rerecord count.