Posts for feos


1 2
32 33 34
439 440
Experienced Forum User, Published Author, Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11269
Location: RU
Thanks and congrats!
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 (1236)
Joined: 4/17/2010
Posts: 11269
Location: RU
I feel external memory modification should be separated from rom hacks, because they can't make a new game on an existing engine. And memory modification will absolutely be allowed in Playground as long as it's reproducible. Unlike hacks, memory editing can't be limited to some known respected resource of decent quality works, it's just entirely arbitrary. But I don't think we ever wanted to ban memory editing from Moons. If you can make it entertaining, it's a good reason to accept it IMO. Post #511417
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 (1236)
Joined: 4/17/2010
Posts: 11269
Location: RU
ROM hacks and the Standard class Some time ago we started wondering why ROM hacks, a niche thing made by fans of a given game for fans of a given game, absolutely has to appeal to an average viewer. I'm still not sure why they were banned from Vault exactly. The problem was definitely not in their potential low quality, because for homebrew games we just require that they are not terrible and allow them to Vault Standard:
Wiki: MovieRules#GameChoiceInGeneral wrote:
  • Unlicensed and homebrew games need to meet a minimum standard of game quality. They should be complete and original.
  • Bootleg games must not be direct clones of a licensed game on the same console. Unlicensed ports with unique gameplay, such as demakes, are allowed.
What will be the issue with hacks if we have the same requirements for them in Standard? One good point is some hacks are so obscure that they are barely findable already, and we can't guarantee about the future. But then we may just demand that the hack is known to smwcentral, romhacking.net, or GoodTools, and approach exceptions case by case. Overall quality of site content would be a very weird point to make against hacks. If there's more high quality TASes on the site, we get greater coverage, more people get involved and inspired, more people make more high quality TASes. If we have less high quality TASes by excluding hacks, we attract less new content creators and other contributors. So this is counter-productive. The thing that's actually lacking right now is usable organization, because it's not displayed which hacks relate to which games. But that can be implemented as needed. Am I missing anything here? Why would we not want to allow hacks for Standard if they are well made and have following?
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 (1236)
Joined: 4/17/2010
Posts: 11269
Location: RU
This post explains why this movie is currently in Playground.
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 (1236)
Joined: 4/17/2010
Posts: 11269
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 (1236)
Joined: 4/17/2010
Posts: 11269
Location: RU
If creating a custom character can be a part of the movie, probably it makes sense to have a run that quickly creates the quickest possible char and beats the game with it. Something more arbitrary may have to be entertaining.
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 (1236)
Joined: 4/17/2010
Posts: 11269
Location: RU
KusogeMan wrote:
Link to video kreated custom characters have way better combos for speedrunning, how exactly could i use some of them into a TAS? you gotta buy their moves, but only few moves are needed for this infinite, only 3 HPs and a special move, so athe TAS could have a movie for verification just to prepare for the run
Will it be aiming for speed or entertainment?
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 (1236)
Joined: 4/17/2010
Posts: 11269
Location: RU
Cakemaphoneige wrote:
Keep getting an error opening my TAS project. I've had the error a bunch of times now and usually i just restart/reload project a bunch of times or restart my computer and it goes away. Its kinda getting annoying now though. This error blocks out the input editor from working. Game is Spider-man web of shadows/DS emulator Bizhawk Version 2.8 ************** Exception Text ************** System.NullReferenceException: Object reference not set to an instance of an object. at BizHawk.Client.EmuHawk.TAStudio.TasView_QueryFrameLag(Int32 index, Boolean hideWasLag) at BizHawk.Client.EmuHawk.InputRoll.SetLagFramesFirst() at BizHawk.Client.EmuHawk.InputRoll.SetLagFramesArray() at BizHawk.Client.EmuHawk.InputRoll.OnPaint(PaintEventArgs e) at System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer) at System.Windows.Forms.Control.WmPaint(Message& m) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
You have Settings - Hide Lag Frames set to 1, but is this a 30fps game?
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 (1236)
Joined: 4/17/2010
Posts: 11269
Location: RU
Beanda wrote:
If anyone could help get the fix merged into upstream ruffle, it would be greatly appreciated.
Agreed, that would be ideal!
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 (1236)
Joined: 4/17/2010
Posts: 11269
Location: RU
MrTASer wrote:
If a hack is a lot different from the original game, can it be accepted? It has same sprites (slight modification) New fresh physics Different genre of game Gameplay is good A bit of entertainment value
There's a decent chance it will be accepted. Whether or not we want to keep considering entertainment value for hacks is still to be decided.
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 (1236)
Joined: 4/17/2010
Posts: 11269
Location: RU
chilsie wrote:
I like the implementation, but I’m not sure I fancy having everything centrally on one page. I think having game forums, which can not only have discussion forums for their playground runs pinned, but other threads for discussing technical aspects underneath, would be cool. Or even just a distinction between runs, I just think with this system it’s easy for runs to get lost. Unless I’m completely missing an intention here lol
We will promote Game pages more, they will contain all the relevant info for a given game: published movies, submissions, game resources, thread links, with links back to the Game page. Things will be easy to find after we improve the search and https://tasvideos.org/Games I'm not sure about having entire forum sections for any given game, with lots of threads. If something is very important, it should just be put on the game resource page.
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 (1236)
Joined: 4/17/2010
Posts: 11269
Location: RU
KusogeMan wrote:
This game, MORTAL KOMBAT 4, has 2 interesting modes, Arcade and Endurance. Endurance is harder and shorter, as you only have 1 round for each fight and keep the HP levels between fights. Should Endurance be used instead of the Arcade mode? I feel it might be a little off-putting to use the mode that isn't the main mode for the game. There's also the settings, since in this game you can change round count, which would make both modes very similar.
If you fight the same fighters in both modes, and Arcade mode would look the same just longer, Endurance is fine to use instead.
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 (1236)
Joined: 4/17/2010
Posts: 11269
Location: RU
https://github.com/TASEmulators/hourglass-win32/releases/tag/r88 https://github.com/vadosnaprimer/midilogra/releases/tag/1
  • When running the game that uses MIDI music in Hourglass, the above build will create midilog.txt in the game directory.
  • Put it near midi.lua and execute the script (just drag'n'drop it into fceux or run via lExecutor). midilogra.txt will be created.
  • Run midilogra.bat. midilogra.mid will be created.
  • Put that file near fluidsynth binaries, along with whatever soundfont you want to use (natt used WeedsGM3.sf2 for Nikujin and Spyman), and run fluidsynth -F outfile.wav soundfont.sf2 midilogra.mid.
    • You can preview the soundfont (and convert to wav) in foobar by installing BASSMIDI, just disable all the looping in MIDI synthesizer host options.
  • Mix the resulting wav file with audio you got from hourglass AVI (time shift may be needed?)
Mirroring the code files here for paranoid backup: Download midi.lua
Language: lua

function logs(s) local logfile = io.open("midilogra.txt", "a+") logfile:write(s) logfile:close() end function dooutput (msg) local timestr = msg[1] local i = 3 while (i <= #msg) do local evtype = msg[i]:match ("^.") --io.write ("##", evtype, "\n") if evtype == "c" or evtype == "d" then logs (timestr..",".."0000"..msg[i + 1]..msg[i].."\n") i = i + 2 else logs (timestr..",".."00"..msg[i + 2]..msg[i + 1]..msg[i].."\n") i = i + 3 end end end for line in io.lines ("midilog.txt") do -- for now, try ignoring special messages if line:find ("sysex") then local msg = {} for token in line:gmatch ("([^,]+)") do table.insert (msg, token) end dooutput (msg) elseif line:find ("finalizing...") then local timestr = line:match ("(%d+)") local channums = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"} for i, v in ipairs (channums) do logs (timestr..",00007bb"..v.."\n") -- all notes off end end end
Download midilogra.c
Language: c

#include <stdio.h> #include <stdlib.h> #include <string.h> int totalbytes = 0; void decode (unsigned time, unsigned event, FILE *f) { static unsigned lasttime = 0; static int laststatus = 0; int status = event & 0xff; int d1, d2; if (status & 0x80) { laststatus = status; d1 = event >> 8 & 0xff; d2 = event >> 16 & 0xff; } else { d1 = status; status = laststatus; d2 = event >> 8 & 0xff; } unsigned delta = time - lasttime; lasttime = time; // write varlen char writer[4] = {0, 0, 0, 0}; int pos = 0; while (delta) { writer[pos] = delta & 127; if (pos) writer[pos] |= 0x80; pos++; delta /= 128; } if (!pos) { writer[0] = 0; fwrite (writer, 1, 1, f); totalbytes++; } else { while (pos > 0) { fwrite (writer + pos - 1, 1, 1, f); totalbytes++; pos--; } } // aren't actually writing out running status switch (status & 0xf0) { case 0x80: // off case 0x90: // on case 0xa0: // aftertouch case 0xb0: // controller case 0xe0: // bend fwrite (&status, 1, 1, f); fwrite (&d1, 1, 1, f); fwrite (&d2, 1, 1, f); totalbytes += 3; break; case 0xc0: // program case 0xd0: // channel aftertouch fwrite (&status, 1, 1, f); fwrite (&d1, 1, 1, f); totalbytes += 2; break; default: fprintf (stderr, "OH MY GOD\n"); exit (0); } return; } int main (void) { FILE *f = fopen ("midilogra.mid", "wb"); char buff[256]; char bigheader[] = {'M', 'T', 'h', 'd', 0, 0, 0, 6, 0, 0, 0, 1, 0, 1}; // midi clocks per quarternote fwrite (bigheader, 1, 14, f); char chunkheader[] = {'M', 'T', 'r', 'k', 0xde, 0xad, 0xbe, 0xef}; fwrite (chunkheader, 1, 8, f); // tempo event (microseconds per quarternote char openevent[] = {0x00, 0xff, 0x51, 0x03, 0x00, 0x03, 0xe8}; fwrite (openevent, 1, 7, f); totalbytes += 6; while (fgets (buff, 256, stdin)) { unsigned time; unsigned ev; if (sscanf (buff, "%u,%x", &time, &ev) != 2) { fprintf (stderr, "NO WAY MAN\n"); exit (0); } decode (time, ev, f); } // end of track event // lets give ~10 seconds // 10000ms = 78, 16 (ce 10) char endevent[] = {0xce, 0x10, 0xff, 0x2f, 0x00}; fwrite (endevent, 1, 5, f); totalbytes += 5; fseek (f, 18, SEEK_SET); char scratch; scratch = totalbytes >> 24; fwrite (&scratch, 1, 1, f); scratch = totalbytes >> 16; fwrite (&scratch, 1, 1, f); scratch = totalbytes >> 8; fwrite (&scratch, 1, 1, f); scratch = totalbytes; fwrite (&scratch, 1, 1, f); fclose (f); return 0; }
^ build by simply running gcc midilogra.c
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 (1236)
Joined: 4/17/2010
Posts: 11269
Location: RU
I watched both OoB runs, and while gameplay in them looks completely different, and it feels like all of the gameplay is skipped, in terms of time alone only about 30% of the in-bounds time is cut. OoB definitely doesn't skip majority of the game. It relates to in-bounds much like [3570] Genesis Sonic the Hedgehog by Aglar in 14:13.87 to [1937] Genesis Sonic the Hedgehog "no zips" by Aglar in 17:36.58. Not sure if avoiding OoB should count as a Standard category, but I feel this run has enough cool stuff in it to be accepted to Moons. If somebody makes a full run with OoB that could be a separate category due to fundamentally different gameplay. If by our past borderline, the level of praise and consensus we have pro mooning this run is not enough, then I think that borderline didn't make much sense. And I repeat every once in a while that we may lower the feedback requirements for Moons a bit if we feel it makes sense for a given game. So yeah I plan to accept this to Moons.
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 (1236)
Joined: 4/17/2010
Posts: 11269
Location: RU
It's fresh enough to not require a delay. If you have no news in a month, I'll delay it.
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 (1236)
Joined: 4/17/2010
Posts: 11269
Location: RU
A similar concern was raised back when FinalFighter discovered a glitch in bank switching in Megaman but wasn't sure if it was legit. IIRC he created a simple ROM that contained the same conditions that would trigger the glitch and asked people with NES flash carts to run it, and that test ROM showed success. So the main question here is figuring out why the skip works on principle, and then testing that principle on other emulators or even flash carts.
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 (1236)
Joined: 4/17/2010
Posts: 11269
Location: RU
Info Teddy wrote:
It's hard to tell without seeing the Hourglass inputs
https://github.com/Scepheo/Yaife
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 (1236)
Joined: 4/17/2010
Posts: 11269
Location: RU
Why is it alarming?
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 (1236)
Joined: 4/17/2010
Posts: 11269
Location: RU
Youtube used to only support .srt format for subtitles, but some time ago they added support for variety of styles via "YouTube Timed Text", and you can convert .ass subtitles to .ytt using https://github.com/arcusmaximus/YTSubConverter and preserve the styles!
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 (1236)
Joined: 4/17/2010
Posts: 11269
Location: RU
Is cycle count now required for regular NESHawk movies too? When I replayed this movie in 2.8 I got a warning about missing cycle count.
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 (1236)
Joined: 4/17/2010
Posts: 11269
Location: RU
arflech wrote:
It would be nice if the readme.md file didn't link to the upstream releases page
Fixed.
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 (1236)
Joined: 4/17/2010
Posts: 11269
Location: RU
phoenix1291 wrote:
Why not put the link directly to the fork page in the message from Feos to this one?
I posted https://github.com/TASEmulators/mupen64-rr-lua-/releases/latest right in the OP.
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 (1236)
Joined: 4/17/2010
Posts: 11269
Location: RU
MOD EDIT: The most recent Mupen releases have merged the AVI fixes we were hosting separately, alongside other fixes. They are located at the following Github links: Repository: https://github.com/mkdasher/mupen64-rr-lua- Latest: https://github.com/mkdasher/mupen64-rr-lua-/releases/latest
A lot of work was put into Mupen64 since we disallowed it some years ago. Most importantly, the very reason its support was dropped - terrible video dumping - is now working internally without desyncs between audio and video, and without notable issues. While the current latest upstream release is already in a very good shape, we decided to host a fork that we can support and endorse, while having our fixes merged upstream as needed, and without having to wait for upstream releases every time we fix something. This also allows us to ship the build of mupen64 along with plugins that we plan to support and endorse, like Angrylion's RDP & Co. Our fork is meant to be 100% sync compatible with upstream too. 1.0.10+avi_fixes and later releases of Mupen64 hosted at https://github.com/TASEmulators/mupen64-rr-lua-/releases/ is what we will be using for encoding, so submissions must sync on it to be accepted. Upstream releases (especially the older ones) have serious problems with sync between audio and video and require external tools for making encodes, and that approach was extremely unreliable, so they remain disallowed. Again, movies made on those older versions should sync fine in later releases in most cases, because the emulation core is not really changing. Angrylion RDP and Angrylion RDP Plus are the most accurate plugins these days, and it's what our default will be for encoding. There's no way to increase internal resolution or use external antialiasing, but there should be less visual bugs, and the original device needs some more love and appreciation too, not only its goodized mods that aren't possible on original hardware. However, if the author uses another plugin and the movie only syncs on that, or if the author just wants us to use another plugin, or the publisher really wants to use another plugin, I think it will be the best idea to allow those other plugins. While we're here, it makes a lot of sense to ask more people to try out video dumping in latest mupen64, and to report any bugs they can find! Here's how you make a video with it: https://tasvideos.org/EncodingGuide/VideoDumping#Mupen64 Huge thanks to everyone involved in recent mupen64 development, and to tasvideos people who refused to let it stay banned and forgotten: CasualPokePlayer, Zinfidel, TheCoreyBurton, EZGames69, fsvgm777, Aktan, and everyone else I'm forgetting!
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 (1236)
Joined: 4/17/2010
Posts: 11269
Location: RU
Tremendous work! Thanks a ton!
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 (1236)
Joined: 4/17/2010
Posts: 11269
Location: RU
Variable framerate in ltm is now supported. Displayed framerate for such movies is an approximation to make the parser's job easier, not intended for humans. Also this submission is finally ready to be judged by the merits of this branch, all the technical obstacles should be gone by 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.
1 2
32 33 34
439 440