Posts for feos

1 2
18 19 20
455 456
Experienced Forum User, Published Author, Site Admin, Skilled player (1225)
Joined: 4/17/2010
Posts: 11704
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
A public discussion is meant to happen so that people can clearly explain everything they need with no rush and with all the info being available to everyone. Only then we can come up with a proper decision. It's not about proving me wrong about something, because I very rarely have a hard stance on things. But for the sake of community discussion I explicitly request mistakes to be addressed, because without it it's just a dead end.
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 (1225)
Joined: 4/17/2010
Posts: 11704
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Spikestuff wrote:
The difference with how we're looking at it with the Fighting game genre is the new element being an unlocked character.
I don't see the fundamental difference from other game genres with unlockable chars.
Spikestuff wrote:
I can also refer to Digimon Rumble Arena where an unlocked character wasn't allowed, and instead a character that's available from the start would have been preferred instead.
The consensus was to move away from that limitation, so that submission would need to be unrejected at some point. It represents a situation but can't serve as example of how things should be.
Spikestuff wrote:
But we're in the new site era now where we have a new submission that's using an unlocked character in Mortal Kombat: Deadly Alliance which should outright obsolete the Kenshi run and be the preferred run. But isn't for some reason.
Why should it outright obsolete? I can only see why it should not obsolete:
feos wrote:
I don't want save-anchored movies to compete with power-on ones in Standard, because the former kinda give themselves a handicap which would somehow not count as a part of its completion time. I feel it's fair to instead have more branches.
I don't see what's beneficial for the community from having fewer branches in this particular case, which implies extra rules and therefore more complexity going forward.
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 (1225)
Joined: 4/17/2010
Posts: 11704
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Masterjun wrote:
Maybe more specific examples would help. For example, I thought New Game+ would cover everything, and I couldn't quite understand from the previous post why that one wouldn't work. Just to throw some ideas around (and get them refuted), couldn't we call it "2nd run" similar to the "2nd quest" things we have? Or are there some situations where you don't actually have to beat the game story?
Yeah if the most optimal unlockable (or combination of unlockables) does not require beating the main game but is locked behind an overly specific combination of completions, it may not be the Nth run through any one particular mode.
Masterjun wrote:
In that case, why not just "savegame" or "saved game" like wikipedia calls it.
Wow I love "savegame"!
moozooh wrote:
I think there is somewhat of a contradiction over the fact that we'd only accept the most optimal default character for Standard while giving a "free pass" there to an unlocked one regardless of how fast it is in comparison. I mean, what if it's the slowest character? Or at least slower than the second-best default one? (Thinking of something like Streets of Rage 3's Roo here.)
While we do indeed aim for speed optimization in standard, restricting content too much makes it a pain on the long run for all participants, because things that make sense to a lot of people still consistently get rejected like they were not worth doing. So while aiming for speed in standard we allowed a whole lot of things that feature some conceptual difference that got a community consensus. Save-based unlockables are an example of this, so the most sensible decision seemed to be to remove the need to compete with the clean-save movies. We probably didn't consider cases where all the unlockables are slower, but if the point of the category is featuring this objective difference, I think it's not a long-term problem if it's the only reason a certain extra branch exists. If there's no clear difference between a clean save and a save-anchored branch, we will only have one.
moozooh wrote:
Would it not be better to accept all characters for Standard?
A lot of people in the community don't want the site to have a separate branch for each character in, say, fighting games, where it could result in dozens of branches, because there are already all the other standard goals that could be combined with different chars.
moozooh wrote:
But to answer the question, if we need a generic branch name, would something like "fully unlocked" work?
It may not be fully unlocked, if only the most optimal things need to be unlocked.
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 (1225)
Joined: 4/17/2010
Posts: 11704
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Samsara wrote:
The following SRAM-anchored branches will be acceptable as standard publications: - Unlockable modes, characters, and difficulties. -- Assuming they can't be unlocked with in-game codes, of course. - New Game + -- This would include minor benefits such as text skipping and cutscene skipping, even if the rest of the run remains the same. -- There's still a bit of issue with, say, RPG runs that have complete data carryover, but we'll figure those out when we start getting them.
There's been a disagreement among staff regarding labeling of save-anchored branches that don't involve unlockable modes. It makes perfect sense to generalize the label for all such modes and just call it the most iconic name which is NewGame+, but when we just unlock a character and use it in the movie without entering any new modes, it feels confusing if we also call that branch NewGame+. There's an option to label them by the character name, but then it's confusing in a different way, because it may look like we accept all different characters now, while we only allow the most optimal one in standard. There are a few labels that don't sound very good like literally "save-anchored" or "unlockable X", and interestingly they kinda cover the NG+ case as well. Note: calling it just SRAM is incorrect, because SRAM does not persist across power-off unless it's battery backed, and it's not the only way to store progress anyway (memory cards are not SRAM but Flash). Any ideas how to neatly call save anchored branches so it covers all kinds of unlockables?
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 (1225)
Joined: 4/17/2010
Posts: 11704
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
What did you fix, and why replace the file?
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 (1225)
Joined: 4/17/2010
Posts: 11704
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Review: I got this to sync repeatedly, and repeatedly reproduced the setup files, and uploaded them, with meticulous instructions. I ensured the setup is acceptable, and the only thing left is evaluating the run's entertainment, which I can't do because I don't understand RPGs. I also have the lossless dump.
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 (1225)
Joined: 4/17/2010
Posts: 11704
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
"X glitch" is the branch used to communicate that a major skip glitch is used to skip a huge portion of the game. "Save corruption" is a movie tag.
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 (1225)
Joined: 4/17/2010
Posts: 11704
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
"Memory corruption" doesn't indicate what it's actually being used for in terms of gameplay. In RTA branch labels usually say which speed techniques are allowed in those branches, but that's still per-game, and other game communities can use the same labels for different things, and different names for the same things. So we can't globally rely on RTA branches. And it was a major problem for the viewers when we didn't indicate the gameplay nature of the branch for those "glitched" categories, so we started splitting them by their effect. If the major skip glitch skips straight to the ending, we call it "game end glitch". When it puts you somewhere that's not the end of the game and you need to complete it yourself, it's "warp glitch". If save corruption is involved, "save glitch". If the glitch comes from the game's demonstration of gameplay, "demo glitch". If it's something complicated and hard to explain in a few words, we invent a new name for it, like Super Metroid's "X-ray glitch". That way we can be consistent across all games and all types of major skip glitch.
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 (1225)
Joined: 4/17/2010
Posts: 11704
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
I don't think we need to come up with an overly strict definition because actual reality constantly destroys overly strict definitions. I always viewed "save glitch" as literally any way to corrupt a save (or the save system for that matter).
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 (1225)
Joined: 4/17/2010
Posts: 11704
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
If save corruption is the main tech in the glitch, yeah we call those "save glitch".
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 (1225)
Joined: 4/17/2010
Posts: 11704
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
This hack is really problematic. It's obscure in that it only exists in one place as a ROM link, it's just barebones since it only contains one zone and level layouts are the same, and it also crashes on BizHawk once you try to jump (the main gimmick of the hack). The author only released the initial demo in 2021 and then all the work stalled. Even the target audience of this hack considers it questionable: While this run is quicker than [1937] Genesis Sonic the Hedgehog "no zips" by Aglar in 17:36.58 since you move faster, in act 2 the zip wasn't used, so it's slower than [3570] Genesis Sonic the Hedgehog by Aglar in 14:13.87 in that room.
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 (1225)
Joined: 4/17/2010
Posts: 11704
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
MahoLator aims to provide
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 (1225)
Joined: 4/17/2010
Posts: 11704
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Where is it said there are tas tools?
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 (1225)
Joined: 4/17/2010
Posts: 11704
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
It kept desyncing until I set Time="32.000000" in the ini.
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 (1225)
Joined: 4/17/2010
Posts: 11704
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Amazing music (catchy and dark, unusual for old games, Bram Stoker's Dracula is another exception), authentic visual style, fluid gameplay, and cool execution. Voted yes!
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 (1225)
Joined: 4/17/2010
Posts: 11704
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
We don't know yet. eien86 is using a different version of ubuntu, that's all we currently know. As long as someone on staff got it to sync and has a video dump, it's fine.
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 (1225)
Joined: 4/17/2010
Posts: 11704
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Merl_ wrote:
Here's an extended input file that fast forwards through the credits so that you can see the final time https://tasvideos.org/UserFiles/Info/638415389797493313 Otherwise it takes several minutes
The time difference is just 1.5 minutes, and the viewers can skip ahead in the video. We use extended input for post-completion manipulations that show final content that won't automatically appear, so simply speeding up the credits (but only partially) doesn't look worth a secondary movie file.
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 (1225)
Joined: 4/17/2010
Posts: 11704
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
The movie doesn't sync if I recreate the save and ini files the way you described. It gets stuck on a black screen around frame 16k. Also debug mode seems to need to be turned off after save files are created.
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 (1225)
Joined: 4/17/2010
Posts: 11704
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
The font needed a bit of tweaking, update Post #527775.
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 (1225)
Joined: 4/17/2010
Posts: 11704
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
What bizhawk version are you using?
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 (1225)
Joined: 4/17/2010
Posts: 11704
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Flip wrote:
or crashes the emulator respectively.
At which point? Also, try this Download jim2hawk.lua
Language: lua

-- feos, 2015 -- + modification by r57shell in 2015 local rw = memory.read_u16_be local rl = memory.read_u32_be lastcfg = 0 dcfg = 0 rngcount = 0 rngcolor = "white" rngobject = 0 rngroutine = 0 MsgTime = 16 MsgStep = 256/MsgTime MsgTable = {} bombs = {} goback = {} goforth = {} --25BBA0 cmdstr = { [0x00+1] = "wait", [0x01+1] = "jmp", [0x02+1] = "call", [0x03+1] = "ret", [0x04+1] = "round jmp", [0x05+1] = "def", [0x06+1] = "idk", [0x07+1] = "table", [0x08+1] = "rndcall", [0x09+1] = "clr", [0x0A+1] = "text", [0x0B+1] = "stop", [0x0C+1] = "diff jmp", [0x0D+1] = "smt", [0x0E+1] = "incs", [0x0F+1] = "save", [0x2b+1] = "dec", [0x2d+1] = "inc", [0x30+1] = "p0", [0x31+1] = "p1", [0x32+1] = "p2", [0x33+1] = "p3", [0x34+1] = "p4", [0x35+1] = "p5", [0x36+1] = "p6", [0x37+1] = "p7", [0x38+1] = "p8", [0x39+1] = "p9", [0x3A+1] = "p10", [0x62+1] = "bomb", [0x63+1] = "down", [0x64+1] = "up", [0x65+1] = "upp", [0x68+1] = "bonus", [0x70+1] = "puppy", [0x72+1] = "skip", [0x7a+1] = "end", } function cmdlen(ptr) local cmd = memory.readbyte(ptr) if cmd == 0xA then return 3 elseif cmd == 0x1 then return 5 elseif cmd == 0x2 then return 5 elseif cmd == 0x7 then return 5 elseif cmd == 0x4 then return 6 elseif cmd == 0xC then return 6 elseif cmd == 0x6 or cmd == 0x5 or cmd == 0xD or cmd == 0x72 then return 2 end return 1 end function cmdname(ptr) local cmd = memory.readbyte(ptr) local an = cmdstr[cmd+1] or "unk" if cmd == 0xA then local t = memory.readbyte(ptr+2) if t >= 26 and t <= 30 then an = an .. " " .. "Round " .. (t-25) elseif t == 25 then an = an .. " " .. "Use the Bomb" else an = an .. " " .. t end elseif cmd == 0x6 or cmd == 0xD or cmd == 0x72 or cmd == 0x5 then an = an .. " " .. memory.readbyte(ptr+1) elseif cmd == 0x1 or cmd == 0x2 or cmd == 0x7 then an = an .. " " .. string.format("%X",rl(ptr+1)) elseif cmd == 0xC or cmd == 0x4 then an = an .. " " .. memory.readbyte(ptr+1) .. string.format(" %X",rl(ptr+2)) end return an end function iswait(ptr) local cmd = memory.readbyte(ptr) return cmd == 0xA or cmd == 0xB or cmd == 0x63 or cmd == 0x64 or cmd == 0x65 or cmd == 0x3C or cmd == 0 end function writetofile(file, cfg) local rnd = {} local rndname = nil for i=0,1000000 do local cmd = memory.readbyte(cfg) local an = cmdname(cfg) local cl = cmdlen(cfg) local hex = "" for z = 1, cl do hex = hex..string.format("%02X",memory.readbyte(cfg+z-1)) end if cmd == 0x2b or cmd == 0x2d or cmd == 0x0 then for z = 1, 10000 do if memory.readbyte(cfg+z) ~= cmd then cl = z break end end an = an .. ' x' .. cl end if cmd == 0x7 then table.insert(rnd, {rl(cfg+1), rndname}); rndname = nil end if iswait(cfg) then an = "-" .. an else an = " " .. an end file:write(string.format("%X %-12s %s\n",cfg,hex,an)); cfg = cfg + cl if cmd == 0xF then if memory.readbyte(cfg) == 0xA and memory.readbyte(cfg+2) >= 26 and memory.readbyte(cfg+2) <= 30 then file:write("======== Round " .. (memory.readbyte(cfg+2) - 25) .. " ========\n") rndname = "Round_" .. (memory.readbyte(cfg+2)-25); else file:write("================\n") end end if i>0 and cmd==0xB or cmd==0x3 then break end end return rnd end function writecfg(fname, ptr) local file = io.open(fname,"w+") file:write("======== main cfg ========\n\n") local rnd = writetofile(file, ptr) for i = 1,#rnd do local r = rnd[i]; local count = rw(r[1]); for j = 1, count do if rnd[2] then file:write(string.format("\n======== table %s %d ========\n\n", r[2], j)) else file:write(string.format("\n======== table %X %d ========n\n", r[1], j)) end writetofile(file, rl(r[1]+2+4*(j-1))) end end file:close() end -- uncomment this if you want dumps --writecfg("puppy1.txt",0x275FDC) --writecfg("puppy2.txt",0x27658E) --writecfg("puppy3.txt",0x276ECC) function DrawConfig(cfg, xpos) local h = 7 for i=0,25 do local action = memory.readbyte(cfg) if action==0x62 or action==8 or action==3 or action == 0xB then color = "red" elseif action>=0x63 and action<=0x65 then color = "orange" elseif action>=0x30 and action<=0x32 then color = "green" elseif action>=0x66 and action<=0x70 then color = "#00a000ff" elseif action==0x7a then color = "white" else color = "#aaaaaaff" end local an = cmdname(cfg) if iswait(cfg) then an = "-" .. an else an = " " .. an end local cl = cmdlen(cfg) local hex = "" for z = 1, cl do hex = hex..string.format("%02X",memory.readbyte(cfg+z-1)) end if action == 0x2b or action == 0x2d or action == 0x0 then for z = 1, 10000 do if memory.readbyte(cfg+z) ~= action then cl = z break end end an = an .. ' x' .. cl end gui.pixelText(xpos,i*h+32,string.format("%X %s",cfg,an), color) cfg = cfg + cl if i>0 and action==0xB or action==0x3 then break end end end function randomsleft(cfg) local left = 0 for i = 1, 1000 do local cmd = memory.readbyte(cfg) local cl = cmdlen(cfg) if cmd == 8 then left = left + 1 end cfg = cfg + cl if cmd==0xB or cmd==0x3 or cmd==0xF then break end end return left end function Configs() if rl(0xfffc2a)==0 then return end local rng = rl(0xffa1d4) local cfg0 = rl(0xfffc2a) local cfg1 = rl(0xfffc9a) gui.pixelText(100,0,string.format("rng: %08X : %d",rng,rngcount),rngcolor) gui.pixelText(220,0,string.format("Timeout : %3d of %3d",memory.readbyte(0xFFFC7D),memory.readbyte(0xFFFC7C))) gui.pixelText(220,8,string.format("Something: %3d of %3d",memory.readbyte(0xFFFAA6),memory.readbyte(0xFFFAA7))) if memory.readbyte(0xFFFF2A) == 0 then gui.pixelText(270,16,"Bonus: yes") else gui.pixelText(270,16,"Bonus: no") end if lastcfg~=cfg0 then dcfg = cfg0-lastcfg end lastcfg = cfg0 local cfg = rl(0xfffc2a) local left = 0 if (cfg >= 0x275FDC and cfg <= 0x27614C) or (cfg >= 0x27658E and cfg <= 0x276797) or (cfg >= 0x276ECC and cfg <= 0x2770D6) then DrawConfig(cfg, 104) left = randomsleft(cfg) else DrawConfig(cfg1, 104) DrawConfig(cfg, 204) left = randomsleft(cfg1) end gui.pixelText(100,16,"Randoms left: " .. left) end function Seek() bytes = 0 waves = 0 steps = 0 local ret = "" for bytes=0,10000 do local cfg = rl(0xfffc2a)+bytes local action = memory.readbyte(cfg) local newaction = memory.readbyte(cfg+1) if action==0x7a then waves=waves+1 steps=steps+1 end if action==0x63 or action==0x64 or (action==0 and newaction==0) then steps=steps+1 end if action>=0x30 and action<=0x32 then if newaction==0x70 then steps=steps+1 elseif newaction==0x62 then ret = string.format("BOMB in %d waves %d steps",waves,steps,bytes) break end elseif action==3 then ret = string.format("Forth in %d waves %d steps",waves,steps,bytes) break elseif action==0xe and newaction==8 then ret = string.format("Back in %d waves %d steps",waves,steps,bytes) break end end gui.pixelText(100,8,ret) end function Objects() local base0 = 0xffa2ea for i=0,0x23 do local base = base0+i*0x6e local id = memory.readbyte(base) if id>0 and id~=0x82 then local x = Clamp(rw(base+2)-4096-camx,0,310) local y = Clamp(rw(base+4)-4096-camy,0,214) local vel = rw(base+0x18) local a = rl(base+0x14) local color = "white" PostRngRoll(base,x,y) local hp = memory.readbyte(base+1) if hp ~= 0 then gui.pixelText(x,y,string.format("%X\n%d",base,hp),color) else gui.pixelText(x,y,string.format("%X",base),color) end end end end function Bounce() if memory.readbyte(0xffa515)==0x60 then offset = 8 else offset = 0 end local counter = memory.readbyte(0xfffc87) local a0 = 0xfffc88 local d0 = (memory.readbyte(a0+counter) << 5)+offset local a3 = 0x25d482 local vel = rw(a3+d0) local bounce = 0 if vel == 0x200 then bounce = 3 elseif vel == 0x3e0 then bounce = 1 else bounce = 2 end gui.pixelText(0,0,string.format("next bounce: %d",bounce)) end function PostRngRoll(object,x,y) for i = 1, #MsgTable do if (MsgTable[i]) then if object==MsgTable[i].object_ then local color = 0xff000000+(MsgTable[i].timer_-emu.framecount())*MsgStep gui.line(120,8*i+8,x,y,color) gui.pixelText(100,8*i+8,string.format("%X",MsgTable[i].routine_),color) end if (MsgTable[i].timer_<emu.framecount()) then MsgTable[i] = nil end end end end function Clamp(v1,v2,v3) if v1<v2 then v1=v2 elseif v1>v3 then v1=v3 end return v1 end while true do camx = rw(0xffa172) camy = rw(0xffa174) frame = emu.framecount() Objects() Bounce() Configs() Seek() lastframe = frame emu.frameadvance() end function Dump() for p=0x275fea,0x277b79 do local a = memory.readbyte(p) if a==0x62 then table.insert(bombs,string.format("%X",p)) elseif a==8 then table.insert(goback,string.format("%X",p)) elseif a==3 then table.insert(goforth,string.format("%X",p)) end end print("bombs:") print(bombs) print("") print("goback:") print(goback) print("") print("goforth:") print(goforth) print("") end --Dump() emu.registerbefore(function() rngcount = 0 rngcolor = "white" rngobject = 0 end) memory.registerwrite(0xFFA1D4,function() rngcount = rngcount+1 rngcolor = "red" rngobject = memory.getregister("a1") rngroutine = memory.getregister("a0") for i = 1, 50 do if MsgTable[i] == nil then MsgTable[i] = { timer_ = MsgTime + emu.framecount(), object_ = rngobject, routine_ = rngroutine } break end end end)
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 (1225)
Joined: 4/17/2010
Posts: 11704
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Flip wrote:
The Gens script still works, so I've still got an understanding of what it's trying to do, but unfortunately it's no good when TASing on Bizhawk.
It can be converted to a hawk script if that will help you.
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 (1225)
Joined: 4/17/2010
Posts: 11704
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
It says "Please, report found issues to our chat", it's still beta so it didn't warrant a proper release.
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 (1225)
Joined: 4/17/2010
Posts: 11704
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Looks awesome! Which version of the script are you using?
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 (1225)
Joined: 4/17/2010
Posts: 11704
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
What would it change?
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
18 19 20
455 456