Posts for feos

1 2 351 352 353 440 441
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11302
Location: RU
In fact, even with lua/sockets my concept of keeping one instance a bit behind must work. Aktan's need this way can be done perfectly. I was saying about 15 frames back not due to tolerable desync already, but for this: Once check app gets to a desync point, backup app, that is 15 frames behind, already makes a state there and pauses. Or it can make 10 slot states in a row, as I described earlier. Only then check app starts loading these states. And if one of them resyncs, it is saved to disc with a name. But his point in 15 frames back is to allow seamless splicing with no sound glitches. Which includes additional manipulations and resplicing later. For initial test we can go for 10 or even 5 frames back for now, create and load just a single state for each mismatch. Even without dumping the frame numbers to xml I'd say. Just to see how it would work. No need in several hundred backup states this way.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11302
Location: RU
I uploaded a temp encode of the Smurfs 2 TAS and it was removed by the owner's claim with giving me a warning. Yes, it was not unlisted. But TVC published uploads aren't either. If some mad owner decides to remove all matches from TVC, it can be closed for "numerous copyright violation" even if after uploading it only said that no actions is required on the user's side.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11302
Location: RU
Porting Abe's gpu fix to TASsoft isn't that simple. The check occurs, the value is what I need, but the picture is still messed up the old way... Maybe somewhere tiny lines that are run regardless of Abe's fix are added in peops. I have no idea how to find them yet.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11302
Location: RU
If we keep the backup application 15 frames behind the check application, we could apply your request easily. But now we need the program to control 2 instances, Nach promised some IPC help.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11302
Location: RU
Except the final tool still doesn't exist yet.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11302
Location: RU
Are you sure you enabled FPS display in peops?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11302
Location: RU
Yes. In theory whatever can be displayed like that, but in original peops all HUDs are not so handy. Observing possible Abe's fix for TAS gpu now.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11302
Location: RU
Will see if hacking the very game fix into TAS gpu is even possible.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11302
Location: RU
Added basic HUD for Abe games: Post #347230
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11302
Location: RU
Hi guys I made a patch for you.
Dooty wrote:
Even during movie playback? If so, we still have the video plugin problem; I was not able to display even a single digit on screen using Lua.
http://code.google.com/p/feos-tas/downloads/detail?name=pcsx-hud.exe
Log message wrote:
pcsx: Added HUD (frame, lag, input) for non-tasGPU plugins. Enable FPS display to see. OpenGL2 doesn't support this, but who TASes with it?
For now I have no idea if drawing pixels can be hacked into original peops. I used displaytext callback here. Can add a lua function for that as well if you want to mess around with this HUD. EDIT: Also, movie mode now resets after you press Esc.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11302
Location: RU
I guess the easiest thing to try in the first place was muxing not to mp4, but to mkv. mkvmerge tool and the container itself are known for more stability than mp4box. They are also somehow easier to work with. Here's the command line for muxing with mkvmerge for your files:
mkvmerge -o encode.mkv --compression -1:none output.mp4 output.ogg
I have no idea if it supports m4a, but you may resave your wav file as ogg as well. My mkvmerge is here: http://rghost.ru/45995179
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11302
Location: RU
You won't need path for savestates. State is stored in RAM as it is created. If it is not needed (desync lasted less than 15 frames), it will be removed from RAM. If it was used by app2, it gets dumped to disc.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11302
Location: RU
Weatherton wrote:
Sorry. I don't know off hand. It's on my desktop at home.
Was it at least some version of Glide64 or another plugin like Rice?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11302
Location: RU
New edition. http://code.google.com/p/feos-tas/source/detail?r=582 Now we have lua hash implemented in pcsx. It uses the framebuffer provided by lua loop that co-operates with GPU (also used by dgscreenshot for example). It was proven, that it never matters what GPU was used to make a state, when you load it, you get the picture you need at proper resolution. It means, we can do all passes with lowres TAS GPU and move to hires antialiasing when capturin, it will look proper. So we can rely on lua hashing pretty much. If we could keep 2 instances in sync, we won't ever need frequent backup savestates. If framecount of one instance overruns another, it must be set to sleep. Once check instance (eternal) finds the first desync, partol instance (tas) makes a state and freezes. If desync in eternal lasts 15 frames, it loads the state tas instance just created. If the state was LOADED by app2, that state is reserved. If desync disappeared, both resume running, and at the next desync this state gets replaced somehow. At the end, we will only have the necessary states. They are to be loaded at capturing. And all that can be done in lua with small expect of OOM. BUT: we can't control 2 instances with one script. Only through sockets. So, we either keep using sockets, or add some kind of interaction to pcsx, or build the external app to read the returned hashes and framecounts, make and load states, sleep instances. Probably not as hard as it can sound. But some experienced hints are needed.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11302
Location: RU
It improves this movie so much, right? [1458] PSX Crash Bandicoot (USA) by Mukki in 45:29.50
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11302
Location: RU
Ilari wrote:
One simple test ROM: Around when autopoller is active, it records values from autopoll register as fast as it can and then shows those on screen. Then hold various button combos and see what appears on the screen. If bsnes has register updates correct, holding B it should show 8000 0001 0002 0004 0008 0010 0020 0040 0080 0100 0200 0400 0800 1000 2000 4000 8000. ... It is likely correct, given that kind of behaviour makes a lot of sense from hardware POV (it is SIPO). Then after how register updates is established, one could use carefully cycle-counted code (the bsnes CPU cycle counts are likely correct) to establish when the changes happen. By carefully choosing the ops, one should be able to get to 2 cycle accuracy.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11302
Location: RU
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11302
Location: RU
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Post subject: Re: SNES autopoller timings
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11302
Location: RU
creaothceann wrote:
Ilari wrote:
Unfortunately, I have none of: - SNES programming skills. - SNES flashcart. - SNES console.
Well, byuu has all three.
It will be very kind if you bring this issue up on his forums. He can check that stuff in an evening I think :D
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11302
Location: RU
My vision of the future workflow so far. 1. Pass one - TAS SPU. Playback the movie, dump every frame hashes. Also, take savestates for every 100th (?) frame. 2. Pass two - Eternal SPU. Playback the movie, hash every frame again, compare the values with the ones from the first pass. a) if mismatch, first mismatch frame gets stored in memory. b) if constant mismatch lasts 15 frames, switch to TAS SPU, load the last backup state, run to the first mismatch frame. Save state. Switch to Eternal SPU. Load state. Resume playback. c) in this case the first mismatch frame gets dumped to a file. Otherwise, the value gets replaced by the new one at the next mismatch. 3. Pass tree - Eternal SPU. Start capture, let the states from the framelist be loaded on playback. Notes about implementation and usage. First of all, one must use the same GPU plugin for hashing and final capturing. If you do antialiasing, use such a plugin right on the first pass. This ensures that you save control states with the same picture you will be using at dumping and use them without any visual difference then. Second, in pcsx, all but client and core is done by plugins completely. They output sound, video, dump them, make screenshots, etc. Regular plugins also provide lua access, for example, most GPUs have a callback to give lua the framebuffer. So, we can order it via lua and use as we wish. Right now it is how lua framehashing is implemented. But modern OpenGL2 plugin by Pete that supports antialiasing does not return any frame bitmap to lua and seems to ignore its callbacks completely. So we just can't order bitmap the fast way. There are 3 ways to grab bitmap though. Call GetScreenPic that is used by savesates and can be very slow. Call GPUfreeze that returns VRAM contents in one of the parameters. Call GPUmakeSnapshot and the delete the file to prevent overload. Each of these returns framebuffer of some kind and can be hashed. It wasn't just fully tested which would work faster. It must be decided, will one of the hashing ways be used for all cases (any GPU), or it will be made dependent on plugin (luahashing for GPUs that allow lua interacition), one of the 3 above for OpenGL2. Finally, we must work out the savestate usage: how frequently we can afford it. With no compression each is 4MB and isn't too managable. Compression 9 makes it a bit over 1MB, compression 1 gives about 2MB. If we save every 100th frame, for an hour movie we get 2000 savestates that are about 4GB in total. Recalling how huge our antialiased encodes (up to 100GB and more), we can afford such a thing.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11302
Location: RU
He started youtubing our tases back when they were almost not present at youtube at all. Mirrored quite a ton of Archive streams, and it was really good. Then, after youtube was taken into official consideration (HD encode era), his videos started becoming obsoleted.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11302
Location: RU
Since openGL2 won't give screencontents to lua (callback isn't present), and GPUfreeze would be required to use for it (which is slow), maybe really we shall create snapshots, hash the files and remove them, as you suggested earlier. Otherwise it will stay incomplete. Dunno if it shall be done only for opengl2 case, or for all cases. EDIT: Well, pcsx must also be able to hash the newly created snapshot file (even is it does not create it itself) and delete it, right? Still may be faster than lua.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11302
Location: RU
Using code=battlecity.lua tag allows to download it right from the forum post.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11302
Location: RU
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11302
Location: RU
So what was the working version? And what's the total size of your lossless capture? I may be interested in getting it by torrent.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
1 2 351 352 353 440 441