Posts for BadPotato

1 2 3 4
22 23
Experienced Forum User
Joined: 1/26/2009
Posts: 558
Location: Canada - Québec
Oops, I should fix that quickly :p A possible temp fix would be to change the value of hashFrameSplit in pcsxrrWorkflowConfig to an integer higher than the numbers of frame to process(the whole movie+the part after the movie), so the file will continue to grow bigger at the cost of slower performance.
Experienced Forum User
Joined: 1/26/2009
Posts: 558
Location: Canada - Québec
Time to recap then. So in order to make the OpenGL plugin to work for the whole workflow, instead of the soft driver: First, you want any desync that get saved in "desyncSaveStates" and "tasSoundSaveStates" folder to be 10 frames before the current value. Currently,we make a savestate at the exact where there is a desync, right? Can you confirm this? If that's the case, with that fix, it may cause a couple more desync than before, since the savestate won't be as "fresh" anymore, but as far as I known this doesn't break the workflow. Now, I have a question about this:
The same goes to creating TAS SPU checkpoints. Checkpoint creation must happen 10 frames after they're created now, then the current frame number is stored, and written as a save name. So that when it gets to those frames, it will as well load a state from 10 frames back.
Right now, we only create a TAS SPU checkpoints where there's a desync at the said frame. So, do you want to keep our current default behavior(so exactly 10 frames after your first tweak request which is the exact frame of the desync) or do you actually want to remove that default behavior and create a savestate 10 frames after the desync? That said, I just checked the script and yeah, it's horrible. I'll probably cleanup some of the unused junk as well.
Experienced Forum User
Joined: 1/26/2009
Posts: 558
Location: Canada - Québec
Hi feos, I'm on IRC right now, if you want to discuss about these spec. Edit: See post bellow.
Experienced Forum User
Joined: 1/26/2009
Posts: 558
Location: Canada - Québec
feos wrote:
Tried it today. Doesn't work correctly with TAS GPU because there are sprite artifacts in different places, and it counts it as a desync, and peops GPU doesn't do png screenshots with proper picture. So either we fix the core (where the Abe's game problem actually is, not in the plugin), or we dump as usual.
I can check what's up with this around around the next week or this weekend. If this is simply the screenshot that doesn't render properly, I guess we can simply make a quick&dirty custom build for fixing this issue or make an alternate script to avoid this kind of desync.
Experienced Forum User
Joined: 1/26/2009
Posts: 558
Location: Canada - Québec
Shiren Gaiden? The way the UI, item, item curse, monster room, dungeon layout, and other stuff are designed, remind me a lot of Torneko no Daibōken: Fushigi no Dungeon(on SNES and he's known for some weird glitch as well), but with more level and without fan-translation available, while the second has those. While I enjoyed watching the run, I think 100 level is still a bit too long and repetive. Thought, since the teleport scroll glitch depends heavily on luck manipulation, I think the whole run can be scripted for finding the best route between falling into trap, teleport, avoiding enemy, etc.
Experienced Forum User
Joined: 1/26/2009
Posts: 558
Location: Canada - Québec
Well despite the high price, if we can get coder paid as well as good TASer, this might be a good idea in short term.
Experienced Forum User
Joined: 1/26/2009
Posts: 558
Location: Canada - Québec
Get joy2key: http://sourceforge.net/projects/joy2key/ hope this help!
Experienced Forum User
Joined: 1/26/2009
Posts: 558
Location: Canada - Québec
An interesting experiment that could came up, so the bots can try play a game with not so obvious objective(such as RPGs): Play multiple run as a human to get different input suggestion, by the value that get up and down and try to replay the game by these bots. Then when there's conflict between input(from those input suggestion), use the Twitch Play Pokemon system anarchy/democracy mode to accept the final input for a frame. How to let's the bot choose when to go in anarchy/democracy mode? Well, just random a 50% if it win, switching mode for a 5 minute of gameplay(or a random range of time for the sake of it) and loop random 50% again. Sadly, I don't think it would be easy to implement multiple input such as "up2right5" in democracy mode for the bots. This might take quite a while even with many playthrough as human, but I think the final result would be better than a "fully random input mode", despite all the bot loose track of what's going on, so we have to backtrack to an earlier savestate. edit: typo
Experienced Forum User
Joined: 1/26/2009
Posts: 558
Location: Canada - Québec
adelikat wrote:
I don't think you need to tell the emulator to stop your script, from your script...
Yes, my request is merely useful for anyone that run multiple script with the same script and want to get an easy way out. But I understand, this isn't a high priority feature.
If you can give me a valid use case that I can't argue as another event, then I'll consider it. For instance, maybe you are really just wanting event.onpaint() to make sure on screen stuff is drawn even while paused between frames?
Basically, I just ask for a way to make lua idling properly. Well, the downside of lua right now, is that you have to run an external process or task from lua and waiting for result, meanwhile on the lua side we can only busy-wait. Example1: From a lua script, we run a python bot(or whatever language) and after some time, it output a new file as output. Meanwhile, the lua script can either use a sleep function(freeze the whole emulator) or do a busy-wait function. Once in a while, we can read the file and if there no update, continue to loop. Example2: From lua, we start an another Bizhawk instance(with the param arguments) and ask him to replay a movie, generated by the original lua script. Also, the other Bizhawk instance use an another lua script to notify the original emulator at the end of the movie. After the end of the movie, thne new Bizhawk instance notify the original Bizhawk instance using the TCP from the lua socket library. Meanwhile, the lua script can either use a sleep function(freeze the whole emulator) or do busy wait. Once in a while, we can listen to the TCP and if there no update, continue to loop. --- At some point, we can simply ask the emulator to re-render the current screen (available with gens), such as using gens.redraw() to avoid busy-wait within lua or re-loading the same savestate of the current frame over and over. So usually, this is rather inefficient, since these function shouldn't be used that way and might have some other unwanted effect on the emulator state(e.g. let's say we record a .AVI at the same time for archiving purpose, we might not want to use any redraw-like function). Using gui.register() is probably what you mean, by using event.onpaint() , but then how can you get an external notification, if the emulator stay idle? Anyway, I just hope you can see the relevance of the use case.
Experienced Forum User
Joined: 1/26/2009
Posts: 558
Location: Canada - Québec
That's some pretty cool stuff. Any idea how Sockfolder managed to setup his debugger with psxjin?
Experienced Forum User
Joined: 1/26/2009
Posts: 558
Location: Canada - Québec
WST wrote:
2. Creating a NES emulator in C++11 in 15 minutes by Bisqwit
Despite I'm wrong, there's no way to do any sort of workable verification movie with the Bisqwit editor(or his terminal/other tools), even thought it's true that we can just compile the final source code to check if the "final ending" work.
Experienced Forum User
Joined: 1/26/2009
Posts: 558
Location: Canada - Québec
Experienced Forum User
Joined: 1/26/2009
Posts: 558
Location: Canada - Québec
adelikat wrote:
Based on this description, I'm not sure what you want built. You just want a script to be able to be in charge of stopping itself?
Yep, exactly. Just like when you press the stop button with your mouse. I did something like it here. Here's an example that might help you to test the case. Exiting the loop and reaching "end of file" does work, but it get horribly annoying when dealing with function binding(like some UI libraries).
In this example, what unit of time is a cycle? A cpu cycle from the core?
I guess it is, I don't know how the pcsxrr implementation is supposed to work. I just used the first thing that could be working to avoid a busy-wait function inside lua. My mindset was that using pcsx.suspend(500) could probably be about 500ms or less on some computer, depending on whether the emulator state is on emu.pause() or emu.unpause() when running a game. But as I said, I'm sure there's a better way to do this, maybe making a new function like event.setTimer(millisecond) and event.onTick() could be a great to do it? Thought, it might require an extra function like waitToNext() to get the same thing as pcsx.suspend. edit: Now looking at the bizhawk function, it seem that emu.yield is very close of what could be required, but I don't think it can really be used to avoid busy-wait.
Experienced Forum User
Joined: 1/26/2009
Posts: 558
Location: Canada - Québec
I'll suggest a function like emu.quitscript(), to directly stop the script. Currently, if you use multiple script(by using something like require'myscript'), you can't easily stop the script, despite using coroutine.yield() but this isn't a good pratice if the script already use coroutine for other means. Also, sometime you need somekind of realtime timer to perform specific task, without doing a "busy-wait" function inside lua. At some point, I did a pcsx.suspend(int cycleToWait) function to suspend a lua script(without suspending the whole emulator) for a x number of cycle, but there's probably a better way to do this.
Experienced Forum User
Joined: 1/26/2009
Posts: 558
Location: Canada - Québec
The only way to slow the NAD drop was to restrict calories and exercise intensively. In this work, the researchers used a compound that cells transform into NAD to repair the broken network and rapidly restore communication and mitochondrial function. It mimics the effects of diet and exercise. [...] If the compound is administered early enough in the aging process, in just a week, the muscles of the older mice were indistinguishable from the younger animals.
Sound a bit like steroid for mice. I saw the original title of this thread and I guess that one common mistake is to think that reverse aging means long life extension. I don't have any specific knowledge in this, but I guess it may end up as a good technique to prevent some kind of cancer. Thought, I doubt the rest of the body can easily adapt to younger muscle to make you live significantly longer without secondary effect.
Warp wrote:
How long before scam artists will start selling placebos claiming that they reverse aging?
The scam market has already all sort of gurus in this world that offer odd medicine/spiritual therapy and such. So that shouldn't take too long. One of the oldest tricks could be anything related to alchemy(we got rid of) or to metallotherapy where a jeweller can often get quite a lot of money for selling a piece of metal at high price.
Experienced Forum User
Joined: 1/26/2009
Posts: 558
Location: Canada - Québec
This is insane. At this point, you probably want to enjoy your last day on earth, while it's possible. However, my suggestion would be not to get too excited, even if being a programmer might be a rare skill on the list of applicants. The chance of this MARS-ONE program encounters a problem or it just turns out to be a scam(through the donation system) are quite very high.
Across the globe, 1058 hopefuls have been selected as candidates to begin human life on Mars in 2025.
According to the roadmap, in 2025 they are going to send about 16 astronauts(or less), then some other in 2026 and every 2years, a new settlement is sent. So, if you do some workout and stay healthy both mentally and physically, this may take around 10-20-30years to get selected as a definite member of the crew before you get too old. In any case, good luck with the selection process. Hope you can manipulate luck enough to get all the chance on your side! edit: Looking more deeply at the campaign, I actually think it's safe to say that this project has very slim chance of any success... I mean how lifetime support is going to work on Mars? Who will pay the infrastructure and the engineers to back up the whole thing?
Experienced Forum User
Joined: 1/26/2009
Posts: 558
Location: Canada - Québec
Bobo the King wrote:
Therefore, the number of iterations will be 1*1*15*13*4 = 780 iterations. At 90 frames per iteration (one-and-a-half seconds at 100% speed), it will take about 20 minutes to run through all iterations. Of course, you'll want to go through at turbo speed, so it will actually take just a minute or two to finish.
For a generic script(that require precise pattern of button press&goals) running on the NES, the time spent on bruteforcing seem fairly reasonable! At some point, I guess the higher the "InThisManyFrames" value is, the more pattern should be described to keep the script "short" enough. So as a small suggestion for improving the script, I'll suggest to calculate right at beginning what is the maximum exhaustion attempt number and print it on the screen, in order to get a general idea of how long we should wait.
For example, walljumps were discovered in Yoshi's Island when NxCy and Baxter were already well into their TAS. They had to go back and redo much of their run to incorporate the new trick. If they had my script as well as a notion that walljumping might be possible given the right timings, they could have executed my script and seen in a matter of minutes how to perform a walljump.
Since walljump are kinda a common trick on platform game and they're likely to require very few changes for pattern provided... maybe it could be possible to make a library of pattern/common tricks for games. Some common idea that I could think: -Walljump over a fence. -Zip through the wall. -Hit a boss when you have to for invincibility gap to end. -Get a random item drop after a specific task. -Pass text on the right frame when you have to wait for unskippable dialog text. -Get the best angle for a specific task in 3D games. ...etc I'm sure there're plenty of common patterns that could inspire other people to make their own implementation for their own game. However in the end, I guess it's best to keep in mind that quite often, it's better for the TASer to just make their own custom bot for flexibility purpose. In any case, right now when I'm trying to run the script, there is a couple of errors. So far, I think you forgot to post the DepthFirstSearch function, or maybe I missed something?
Experienced Forum User
Joined: 1/26/2009
Posts: 558
Location: Canada - Québec
Many good TAS submited here are actually made by users with chinese as main language. Any reason why there is no chinese subforum? Also, it seem there is plenty of place on the right side of the board.
Post subject: Re: PSXjin crashes when booting the CD
Experienced Forum User
Joined: 1/26/2009
Posts: 558
Location: Canada - Québec
Odongdong wrote:
I see, then does it mean I copy & paste some files from pcsx-reloaded to PSXjin and everything'll work fine?
Since there's no active dev for the PSX emulator, it's hard to evaluate how easily this kind of task can done. Personally, I managed to fix Harvest Moon : Back to Nature in pcsxrr simply by grabbing some code used in this pcsxr fix(discussion) and compile the source code with visual studio. Sadly, this fix doesn't work with Rhapsody : A Musical Adventure. That said at some point, it might just be easier to directly make a request to the pcsx-reloaded team for adding TAS tools... or wait for the bizhawk psx-core, but it doesn't seem to be seriously started.
Post subject: Re: PSXjin crashes when booting the CD
Experienced Forum User
Joined: 1/26/2009
Posts: 558
Location: Canada - Québec
Odongdong wrote:
I can assured I have a correct rom because it works very well on ePSXe. I wonder whether I'm missing something, or the emulator wasn't just compatible yet.
It's probably not compatible yet, but pcsx-reloaded can run this game just fine and it is open source. The core isn't probably the same anymore, but there's certainly a fix for it. edit: There seem to be a remake of the on DS as well.
Experienced Forum User
Joined: 1/26/2009
Posts: 558
Location: Canada - Québec
How many game there is for android that use HTML5? So far, I think many developers try to avoid using the android emulator because it isn't accurate enough for game with high graphics. At some point, maybe you can just connect your android device(rooted) with a USB cable and run the test if there no luck involved in the game, this should sync like the TAS verfication videos.
Experienced Forum User
Joined: 1/26/2009
Posts: 558
Location: Canada - Québec
Nahoc wrote:
I don't see it being published here, since it kinda reminds me of a "16 stars" run, which is just an obsoleted goal, but I'm glad you still submitted it for more people to see!
I think there's an important difference between the "16 stars" run and this. Most of the trick in this submission require condition that can only be achieved with help of TAS tools, while the "16 stars" run have "very few" difference between the TAS and realtime run in therm of time and showcase trick. So yeah, as long as there's no proof that a human can or could complete this alternative route in a reasonable amount of time, I'll probably lean toward the yes vote.
Experienced Forum User
Joined: 1/26/2009
Posts: 558
Location: Canada - Québec
Yes, it can definitly be extended to this point! Back then, there used to be something called LuaBot, but that was kinda a pain to understand how to actually use it. The framework should be able to improve some stuff about this. Thought, since every game is different, I seriously believe it's better to simply offer a common library of toolset, so the TASer can design his own bot and experiment by himself. In order to perform massive test inside the IDE, the memory function is indeed a problem since it return a default value. To solve this, we can try to mimic the possibles values to be generated according to a "fake emulator state"(good enough for testing a lot of use case). The other solution would be to plug the IDE with the emulator via a communication interface such as luasocket, but this can get a bit over-complicated here, I wouldn't this recommand at the moment. Right now, the framework simply seek to provide help for someone that want design his bot or any other project efficiently(with OO) and doesn't mind to test the "real thing" separately on the emulator. In general, the standalone lua interpreter should be used for debugging purpose.
Post subject: Improve the Lua framework
Experienced Forum User
Joined: 1/26/2009
Posts: 558
Location: Canada - Québec
Hi there, Note: this is still a work in progress Lately I've been (re)working on a Lua project and as the project grow bigger and bigger and thought it would be nice take a break with writing barely readable script with some fuzzy logic, like we can find a lot on this site. So I did some research to learn how to get thing done with an OO lua way and after I the wall several time to actually understand what's going on with object lua from a library to an another, I found the Koneki project. Basicly, it's a Lua IDE based on Eclipse, but it has a couple a cool features that make it worth using it, rather than some other IDE/text editor. Now, I don't want to show off useless stuff, but this is still a big deal to help new comer to Lua with ambitious project. But here is the major feature that hooked my interest:
    * Using luadoc as way to trigger autocompletion over severals modules.
This is simply genius. Not only you have to actually think about how to structure the lua code in an OO fashion, but you have to do it while adding doc, so other can directly understand. So here's my idea for now: encourage lua user to stop doing trial and error with the lua console from his favorite emulator and make them try to actually run the code on a IDE that running with a standalone lua 5.1 for a completly new programming experience. But as you might expect, the major encombrance here's is that the core function from the emulator aren't avalaible, so we have to provide them. Here's a picture about what I'm talking about. The following code describe how to handle the embedded module that try to mimic the emulator API...
Language: lua

---The gui Library -- Functions mainly for drawing on the screen are in the gui library. -- @module gui if _G.gui then return _G.gui; end local gui={}; --- Register a function to be called between a frame being prepared for displaying -- on your screen and it actually happening. Used when that 1 frame delay for -- rendering is not acceptable. function gui.register(func) end ---Returns a screen shot as a string in gd's v1 file format. -- This allows us to make screen shots available without gd installed locally. -- Users can also just grab pixels via substring selection. -- @usage Usage examples: -- gd.createFromGdStr(gui.gdscreenshot()):png("outputimage.png") -- @return #string function gui.gdscreenshot() end --more luadoc return gui;
So, how neat is that? Basicly, just "mock" all the functions and your good to go. The script will run fine on both standalone lua and your favorite emulator. You can see a project here that try to use this kind of framework. Also, I did a couple of testing with iup library and I believe we can easily create interactive windows form that doesn't lag while the emulator is running with any emulator(even those that doesn't support the fceux auxlibs). Here's an implemention that does work. So yeah, I'm pretty sure this the kind of stuff that could become very handy for some project. I do have a couple other idea, such as adding advanced math function like integral(f,x,a,b), so it make it easier for user trying to program some cool algorithms, etc. So that's about it, if there's any interest I'll probably make a quick tutorial about how to setup Koneki, since like any Eclipse-based IDE... there's 2-3 thing to config first, before been able to use it correctly.
Experienced Forum User
Joined: 1/26/2009
Posts: 558
Location: Canada - Québec
The in-game time is about 7h09 or less, if the time is still counted during the credit.
1 2 3 4
22 23