Post subject: Easy TAS multiple games in one movie?
NhatNM
He/Him
Experienced player (718)
Joined: 6/17/2009
Posts: 600
Location: Vietnam
Hmmm I don't know how can all there make TAS multiple games in one movie, with me I must do on each window/screen. Many times I got success on a window but got failure on other window, then I must remake both. I have a idea: make a tool capture keys pressed from keyboard or mouse then send to all emulators working. Then all will actions in same time and we can see all results in same time. Then we'll easy make a ton games in same time :D I don't know in emulators was supported this or not. But if we don't have any tool like this, I think I can make it, not sure :D
A man come from Vietnam My YouTube: https://www.youtube.com/c/NhatNM/playlists
Editor, Skilled player (1536)
Joined: 7/9/2010
Posts: 1319
We don't need a tool for that. There's an option called enable background input for almost every emulator. That lets you send inputs to emulators which don't have focus. The best solution would be loading multiple roms into one emulator, but nobody coded this yet.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
NhatNM
He/Him
Experienced player (718)
Joined: 6/17/2009
Posts: 600
Location: Vietnam
TASeditor wrote:
There's an option called enable background input for almost every emulator
Wow, I didn't know this, noone tell me...
A man come from Vietnam My YouTube: https://www.youtube.com/c/NhatNM/playlists
NhatNM
He/Him
Experienced player (718)
Joined: 6/17/2009
Posts: 600
Location: Vietnam
Hmmm I have designing a simple tool like this: It'll send keys too all emulators it was detected. Then we can run unlimit emulators/games in same time for make TAS. Can send unlimit keys to emulators in same time (it's impossible with normal keyboard) Well, what do you think about my idea?
A man come from Vietnam My YouTube: https://www.youtube.com/c/NhatNM/playlists
NhatNM
He/Him
Experienced player (718)
Joined: 6/17/2009
Posts: 600
Location: Vietnam
Ok here's my demo of simple tool. I write by AutoIt v3.3.12.0 for TAS multi games in one movie easy more than, supported nearly all TAS emulators. It just help send a ton keys to all emulators it detected But it's still not done. I was trouble with method send keys to emulators, it's not work well at all. I don't know how to do better, need someone help me Link download compiled and source code: https://drive.google.com/folderview?id=0BzCVd8Wx_xS9dGd4b2p1c2t6N2M&usp=sharing How to use: - Open emulators and open your movies - Run my tool - Press (or click) any buttons then click Send button. It'll send them to all emulators
A man come from Vietnam My YouTube: https://www.youtube.com/c/NhatNM/playlists
MESHUGGAH
Other
Skilled player (1918)
Joined: 11/14/2009
Posts: 1353
Location: 𝔐𝔞𝔤𝑦𝔞𝔯
First of all, I've already tried to come up (without success) to do something similar to aid AngerFist's project (run 8~9 FCEUX with predefined ROMs in one click and control all emulators through 1 app / keyboard). Inactive forum thread here. The difficulties I had were: - if the emulator uses DirectInput, you need to use background input, otherwise they only process input if they are focused (the window itself). - multiple emulators / games will decrease performance, which leads to desynchronization. (Wiki: DesyncHelp) - losing the unique features of emulators because of input driven solution (bye TASEditor) 1. Communicating with the emulators The probably fastest method as feos suggested was linked in that thread: using IPC http://en.wikipedia.org/wiki/Inter-process_communication. There's a LUA WinApi http://github.com/stevedonovan/winapi with a few examples on making asynchronous NamedPipes. This way you could communicate in a server (your program) - clients (the emulators) network. Also note that many emulators supports LUA scripting and you can rely on others like TCP. However, performance is a must and I would suggest using ØMQ with many language bindings and you should have freedom in creating network communication. 2. Initial setup - You need to launch the N (number of) emulators using parameters to open ROM and movie (winapi.spawn_process() @ LUA WinApi) - You need to check every client finished and no errors happened - Rewind to last finished position. Refer to http://www.fceux.com/web/help/fceux.html?LuaScripting.html for example. The communication is up to you, I used a client.lua script on the emulators with predefined functions for example, to restart emulator when it's crashed or something bad happened.
PhD in TASing 🎓 speedrun enthusiast ❤🚷🔥 white hat hacker ▓ black box tester ░ censorships and rules...
NhatNM
He/Him
Experienced player (718)
Joined: 6/17/2009
Posts: 600
Location: Vietnam
Thanks my lord! Hmm I don't know LUA and ØMQ. But it's ok, I can do on AutoIt. I was tried SendMessage with $WM_COMMAND and WM_KEYDOWN but I got failure. Maybe I got wrong at somewhere Ok I'll try again
A man come from Vietnam My YouTube: https://www.youtube.com/c/NhatNM/playlists
NhatNM
He/Him
Experienced player (718)
Joined: 6/17/2009
Posts: 600
Location: Vietnam
I think I nearly got it, I can send and receive message with $WM_COPYDATA. But how about with a combo multi keys for send all in a time? Someone can help me that message?
A man come from Vietnam My YouTube: https://www.youtube.com/c/NhatNM/playlists
NhatNM
He/Him
Experienced player (718)
Joined: 6/17/2009
Posts: 600
Location: Vietnam
Hmmm with WinAPI for Autoit, PostMessage 0x100 0x101 worked well with emulators non DirectInput But with IPC, I don't fully understand NamedPipe. Too hard for me, a jerk :(
A man come from Vietnam My YouTube: https://www.youtube.com/c/NhatNM/playlists