Posts for gia

1 2 3 4 5
8 9
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
lol, remember that even if the emu gets done you still need people willing to write the achievement code or everything is useless, sigh. Anyway, checked a bit this lua thing but still dont understand well, anyway is this the best reference of the "specs"? http://cbc.qfox.nl/emulua, from checking sample scripts it looks like when lua runs you can't control the emulator and have to wait until it is finished, there's no callback mode for the scripts so that they execute this or another function while you play. If we continue with my specs and try to mix it with lua (I said javascript, which has the Mozilla C library available https://developer.mozilla.org/en/JavaScript_C_Engine_Embedder%27s_Guide, but lua is already coded in so) and if I understand correctly how this works I notice these functions would be a must: emu.registerbefore(function f), emu.registerafter(function f), emu.registerexit(function f), but they only exist on Gens. Also I guess scripts get autounloaded once they get to the end of their files, but in this case that would have to change so they would remain loaded so their callbacks have a chance of getting called. My other doubt is if multiple scripts can be loaded, at least in the currently coded solutions. It would be better if the answer was yes. My original idea for achievement scripts was like this:
//definitions
...
//resource or data preload/setup
//this function gets executed by the emulator at game load, preferably with a progress bar for all achievement scripts that get loaded
//Anything heavy should go here
function Preload()
{
}
//code executed before every "frame"
function PreThink()
{
}
//code executed after "frame"
function Think()
{
    //code executed per frame, check stuff here
}
//offline (not) allowed for this achievement (due to coder wanting to keep his validation code protected)
//if offline not allowed then empty, gets called by emu if submitDataToAchievementsServer is called
function validateOffline( data )
{
    //validate as if this was the server
}
//called by validateOffline or called by the emulator when the server replies to the validation request
function checkValidationResults( answer )
{
    //save new values to local file if offline allowed
    //possibly call awardAchievement
}
//as convention, called by checkValidationResults if required
function awardAchievement( achievementValue )
{
    //display image & text
}
And inside the coder could make use of whatever api calls the emulator provided plus new ones to help with these achievements ie:
submitDataToAchievementsServer
saveToFile //dont see it on the list, only savestate, fine saveToAchievementFolder if you want to be safe
readFromFile
But thinking about it there could be problems, first the Think functions would be called every frame, but stuff happens in between frames. Would it be better if they were instead registered functions based on ram watch like mode or breakpoint mode perhaps? (are those possible/dont break emulation anyway?), or maybe they aren't necessary for any kind of achievement check. ie:
//when the emulator detects a change on address DDDD it executes Think() before
emu.registerFunctionAsRamWatch( Think, 0xDDDD, CHANGE_ANY, EXECUTE_BEFORE );
//If the emulator detects it is about to execute whatever code is in DDDD then it executes Think() afterward
emu.registerFunctionAsBreakpoint( Think, 0xDDDD, EXECUTE_AFTER );
Then there's the problem that I don't think lua on emulators allows what this post describes. If it does cool though.
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
Third and fourth controller information possibly? As far as I recall m64's header isn't ever changed only the controller data. To change the header you have to play the movie on the emulator and switch to record and stop at the last frame.
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
I dont know this gen much. Are there sequence breaks that can be done by obtaining key items before you should? I was researching the glitches so I can plan a run for stadium and the celebi glitch can create any pokemon setup (which means my research was a success :D), and that includes the item they hold, which means free key items. A theoretical TAS would create a bad clone in vba if the emulator allows or make part or the whole run in pokemon stadium 2 and whatever changes to the emulators were needed too (yawn). Or a movie could end and require you to play the next movie on the next emulator (over the resulting save of the previous movie) for example. From a quick walkthrough read this doesn't seem game breaking though, except maybe the S.S. Ticket, but that may require you to beat the E4 first. The Pass would be useful but I'm pretty sure the train needs you to fix the Power Plant first, and while you can get HMs they won't work until you get the badges... The item list is out of reach as well as the current map, coordinates and the badges (so, all the holes I recall from yellow :P). Since I haven't researched this game much my ram map however is pretty much empty so I don't know what lies below the pokemon list (the pokedex is there, and the daycare, but that's pretty much all the data I have). Since I am not interested on learning these games so I can run them I leave it up there for the ones that know what to do already, if it could save time I guess I could make videos if you can't figure out how to do this or that.
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
If you save after visiting the pokemon box and depositing and withdrawing and all that there shouldnt be problems after you reset (so after HoF is fine). And you would have the glitched inventory to play with (and the glitched pokemon you'd probably release). That doesn't mean you can use the items as you wish for your inventory is glitched and will crash one way or another but you can learn how to deal with it. the surfboard is safe to use of course.
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
use ESDF keys for directions and the numpad for the controller buttons
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
Someone should make a virus so that the time can be reduced :3 hmm 6^20 * 20(frames length) / 100000 per second / (60*60*24*365) = 23000 years :S
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
Kuwaga wrote:
Oh, mine don't. Interesting.
You aren't supposed to see an illusion there, you have to feel weird, it screws with your brain that insists on forming an average face. ie feeling uneasy would be an ok effect, crying too i guess, my eyes tried to cross at some point, brain must have though if you cant beat it join it :P
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
moozooh wrote:
By faulty logic, I meant that your arguments in that post were based around erroneous/unfounded assumptions. First, "this run is going to be rejected because the game is unpopular" (leading to "unpopular game rejected last I heard was to be changed in the mentality of tasvideos"). Second, "if we have a long/boring movie published it gives us the excuse to have more comparably long/boring movies published" (leading to "there are way longer, boring TAS"). If you discard these assumptions, the arguments are no longer valid, or even relevant.
You tried to read too much between lines, I did not say the first, there's more yeses than noes afaik, I was just arguing the no-ers (which might have voted or not). On the second, my assumption is wrong if every submission is judged on its own and without taking into consideration any precedents or anything else whatsoever. A judge could set me straight?
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
moozooh wrote:
I don't plan on watching the run so I won't comment on that, but I'd like to address these pieces of faulty logic.
Hmm, faulty logic?, I'm not strong in logic but the first one is an statement which could be true or false, that doesn't make it faulty right?, it just doesn't make it a very strong point since it is not validated. Is that enough to be considered logic anyway? in any case your statements could be false too. The admins could set that clear of course. About the second one, if you don't like it doesn't make it faulty logic, I'm just using a precedent. A guy strong in logic could maybe spot a flaw I guess, what you said is not the same comparison as mine. You say Jaws is a short and unpopular-game tas, I stated one long and boring tas. So hmm if you follow my logic and your statement it would be more like Jaws got accepted, then any short tas with a length similar to Jaws can be accepted regardless of game popularity. Now I used pokemon because I watched that one and the movie stats don't show all of the long movies, just the top 10, but can't be the only long tas that is boring to many.
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
I watched over 20 mins jumping here and there but wasnt really counting, must have been between 30 and 40 mins. So, possibilty of a speedrun getting a similar time is not very heavy since it would have to be at least faster than 1 hour 4 minutes. Unpopular game rejected last I heard was to be changed in the mentality of tasvideos. Long tas? there's way longer, long boring tas? pokemon gold is 2 hours plus, pokemon is boring, easier to watch in fast forward. Since you can watch this one on 4x ff without losing much it makes it what, 16 mins long? :P
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
3 seconds according to wikipedia, so if smb stays here that means an unassisted run of this could be up to just 38 seconds slower and it would still be enough difference to keep this tas around :P
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
mmbossman wrote:
Cheezwizz wrote:
"We publish recordings of classic console games, formed by constructing an input file slowly over time using an emulator as a tool to overcome human limitations such as skill and reflex, then playing the file back to give the impression that the game is played extraordinarily."
Some people are of the opinion that because this is a relatively simple game (in terms of movement), that it would not be particularly difficult to replicate these results in real time. A TAS that can be replicated in real time is certainly not extraordinary.
well then, any takers on proving it?
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
why don't you end input at the earliest frame possible (either without external input added or assuring external nput can't change the outcome), to me sounds better, who knows maybe there's a trick that can be abused there.
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
so happy lee used a secret weapon to win the battle lol andrewg, there's a whole lot of weird stuff, why not a guy that doesn't want to lose a tas record, you can always find improvements then send them to happy lee if you cant stand him not being happy :P
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
he probably knows seeding with time won't exactly yield truly random values as all pseudo rngs have a period (a period is a set of numbers, when the period ends the series repeat), some are long periods some are short and they don't even have to include all possibilities within your interval (or one of each). (Going from memory tho, but it's something they teach at college so there has to be a lot about it online). at least for certain games you rather want to build your own rng so that all possibilites occur during one period, instead of leaving room for a huge streak of the same effect happening ingame. ie. in true randomness, 400 tails in a row is possible, and using a pseudo rng probably too, but for a game that tries to favor strategy to luck (yet contain some of it) this is too much. So you make a rng stack of lets say 100 numbers where you make sure there's a 50/50 distribution of head and tails and use that and refill it when it's necessary, but then 400 tails in a row is not possible anymore. Your rng becomes slightly more predictable too (although in realtime probably not).
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
Finally went to finish the server code (well the part that communicates with emulators), if anyone is interested on modifying an emulator and/or coding a lua script that checks for an "achievement" to complete the thing I wont bite. At one point I was thinking on checking how lua is done on snes9x but don't have vs2008... Anyway First the player logins:
http://domain/ach.bin?exec=login&login=mylogin&pass=mypass
returns:
'B' -> Banned
'T' -> Tempbanned
'F#' -> Warning #, if # reaches max then tempbanned, max is 10 iirc
'S
username=?
sessionid=?
timebetweenpings=?
failedattempts=?' -> Success, returns data
Then they load a game, ie. Mario Bros. The emulator must have a file that translates roms to "game id", ie. 100. The emulator has a zip file 100.zip containing whatever it needs (lua scripts). If it doesn't it checks if it exists in the server or if its copy is outdated and redownloads if required http://domain/ach/<gi>.zip, haven't thought of how should the emulator check if the zip files are outdated, don't know all the possibilities, can always return a date on the function down there. With this the emulator knows what achievements are available to the game. It is only missing the state of those achievements for the player.
http://domain/ach.bin?exec=gameload&gi=100&si=5
si = sessionid received at login
gi = gameid, the emulator must know this on its own
returns:
'B' -> Banned
'T' -> Tempbanned
'O' -> Session over, login again
'F' -> game id doesn't exist
'S
a,b,c,d,e
a,b,c,d,e
a,b,c,d,e
...' -> Success, returns an extra line per achievement state
a=achievement id
b=total players
c=total players achieved
d=achievement "value" stored for player
e=date it was saved
f=date of the start of play session back then
Now the emulator can display a screen with all achievements and their progress if they want to. To keep the session alive the emulator pings (the server's expected ping time was sent at login).
http://domain/ach.bin?exec=ping&si=5
si = sessionid received at login
returns:
'B' -> Banned
'T' -> Tempbanned
'O' -> Session over, login again
'F#' -> Warning, # is the warning level, right now if 10 it tempbans the ip/player, raised when the ping is sent too early (has to be sent from 75% to 100% of "timebetweenpings").
'S' -> Success
When the local lua scripts decide an achievement is to be updated/awarded, they contact the server and send data to be verified. Right now I'm working with integer values so they can be sent as GET. But I suppose it should be sent as POST so the data to verify can be more complex.
http://domain/ach.bin?exec=playdata&gi=100&ai=1&si=5&d=23154
si = sessionid received at login
gi = gameid, the emulator must know this on its own
ai = achievementid, the emulator knows because the lua scripts have the value
d = data
returns:
'B' -> Banned
'T' -> Tempbanned
'O' -> Session over, login again
'S#' -> Success data verified (regardless of the outcome of the verification), # is the current achievement value on the server, the local scripts have to decide if the achievement is awarded and play an animation
So an emulator could have an offline mode if they just dont connect at all or just goes for the zip files, and store the achievement values in local files. The guy that coded the achievement would be free to do everything clientside or write code to validate serverside, or do both, I'd say this code would have to be written in javascript since that's something anyone can understand, but whatever is fine.
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
Why did happy enter the third pipe (and lost the powerup) but adelikat the fourth?. I can see they are a warp puzzle but I haven't played SMB :D, does the frame matter or something like that?
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
Warp wrote:
Baxter wrote:
Ferret Warlord wrote:
Practically the only run that people seriously suggested be unpublished was Guanobowl's Ocarina run for being slower than the current <i>unassisted</i> record.
What? Were these people serious? That like unpublishing the SMB TAS because a new timesaver has been discovered... Unpublishing a run because it can be improved is way more rediculous than unpublishing something because it's not entertaining.
It was not being suggested for unpublication because it was not optimal. That had nothing to do with it. It was suggested for unpublication because there was a regular speedrun which was faster. A TAS which aims for maximum speed and does not beat a regular speedrun is not only against the rules, it's also shameful. It's a laughing stock.
It's not a laughing stock, it was just beaten by a speedrun, if the speedrunner had tried a tas instead they would have got an even faster time. Usually it's because of a new trick or soemthing like that. However it is true that if a tas gets beaten on its own rules by a speedrun then it has been obsoleted. (but I read the speedrun in case is still slower under same timing rules) Maybe if it gets obsoleted and a link to the speedrun is posted in the description, that would be more fair.
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
not like you can clearly define a personality with just 72 questions or have 16 categories represent all personalities in the world I think I got the same as last time I tried it, ISTP
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
Liked it a lot, you didn't use some characters much ie Striker but he ended it wth a bang so I guess its okay :D
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
I dont know what my country would do, but I'd kill them all, but that would make me the bad guy just like Israel so I don't see your point.
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
Me playing Level 21 on zombies ate my neighbors, trying not to kill and without damage and saving 10 victims. And includes my failed attempts. http://www.youtube.com/watch?v=pqoJhNiwPcI
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
My company just bought a new server so we will have the old one doing nothing, the housing is already paid for the other servers, the only real cost would be the bandwidth required, the hosting/housing company sells this in 64kb increments, although I do not know the price at the moment, also the price for a dedicated ip since ours are in use. I could talk so they lend the server while it isn't used for a fee, it is windows though.
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
nah, it only needs good planning and patience. You got damage reduction (unless im wrong at min damage is 1) and in any case you got multiplayer and I sure have done this achievement that way a dozen times.
gia
Experienced Forum User, Published Author, Player (109)
Joined: 5/3/2006
Posts: 223
if you go by l4d rules it counts when the game loads, so you only have to do river to diablo or wsk2 to baal. Which means doable by the few that go with damage reduction builds.
1 2 3 4 5
8 9