Posts for Dromiceius


Experienced Forum User
Joined: 10/3/2005
Posts: 1332
I loved it. The Juni&Juli fight was great. This is on par with the published SSF2 runs, IMO, and I certainly wouldn't mind seeing you do more survival mode with other characters.
Experienced Forum User
Joined: 10/3/2005
Posts: 1332
Looks like no one has pointed out Make yet. I'm not really familiar with the site, but searching "toaster" yielded somewhat interesting results. You might find something good.
Experienced Forum User
Joined: 10/3/2005
Posts: 1332
Those blue lines are veins. Underneath all that black, Shinryuu apparently has the body of an 80 year old woman.
Experienced Forum User
Joined: 10/3/2005
Posts: 1332
FatRatKnight wrote:
I don't have the addresses for position relative to the screen, but I did find some for absolute positions of characters and screen:
Fantastic. The last boss seems to have more than 255 HP, but reading enemy HP as words (with the same offset as the coordinates) doesn't fix him. Weird.
--Magician (U) info display (Written for FCEUX)
local ex, ey, eh = {}, {}, {}

function readword(a, b)
   return memory.readbyte(a) + (memory.readbyte(b or a+1)*256)
end

while true do
   gui.text(0,6,"Life: " .. memory.readbyte(0x04bf) .. "/255")
   maxmp = memory.readbyte(0x004d) + (memory.readbyte(0x004e)*256)
   mp = memory.readbyte(0x004b) + (memory.readbyte(0x004c)*256)
   gui.text(85,6, "Mana: " .. mp  .. "/" .. maxmp)

   wx = readword(0x0094)
   wy = readword(0x0096)

   for i=0, 2 do
      ex[i] = readword(0x04AC+i, 0x04AC+i+4)
      ey[i] = readword(0x04B4+i, 0x04B4+i+4)
      ex[i] = ex[i] - wx - 8
      ey[i] = ey[i] - wy - 32
      eh[i] = memory.readbyte(0x04bc+i) --readword(0x04bc+i, 0x04bc+i+4)                                                                              

      if ex[i] > 0 and ex[i] < 253 and ey[i] > 0 and ey[i] < 223 and eh[i] > 0 then
         gui.text(ex[i], ey[i], eh[i])
      end
   end

   FCEU.frameadvance()
end
Experienced Forum User
Joined: 10/3/2005
Posts: 1332
Congrats on the submission FatRatKnight. It only took a minute to plug in the addresses, so here's the script you asked for.
--Magician (U) life+mana display
while true do
   gui.text(0,6,"Life: " .. memory.readbyte(0x04bf) .. "/255")
   maxmp = memory.readbyte(0x004d) + (memory.readbyte(0x004e)*256)
   mp = memory.readbyte(0x004b) + (memory.readbyte(0x004c)*256)
   gui.text(85,6, "Mana: " .. mp  .. "/" .. maxmp)
   FCEU.frameadvance()
end
If someone has coordinates for the three enemies, we can slap HP overlays on their sprites. That's always nifty.
Experienced Forum User
Joined: 10/3/2005
Posts: 1332
Yeah. I didn't quite realize that the address I found was a kill counter rather than the actual score. FYI, it's probably pretty typical to find an address dedicated to body count, and the code you'd need to automate the counting is posted above. Anyway, I actually tested the re-score... script... thing. Still don't know what the hell to call it. Noticed two three things that I probably should edit into the original script: 1) both taking damage and eating pizza should count against the score (to discourage sucking) 2) the time penalty definitely needs to increase exponentially, since grinding is even easier than I thought 3) actually beating the game probably deserves a bonus, multiplied by the number of remaining turtles. With those changes, I think it may actually be workable. The kill counter doesn't take into account bosses or anything that takes more than one hit, which sucks, but that's harder to fix. If anyone else tries the script and wants a frame of reference, I scored 237,000 before getting a game over in level 4.
Post subject: Abstract challenges
Experienced Forum User
Joined: 10/3/2005
Posts: 1332
Expanding on the discussion in the "Classic game achievements" thread, I picked up a similar idea today: measure the "super-ness" of a superplay according to metrics other than (but including) time. Unlike in straight speedrunning where the goal is to beat the game as fast as possible, the idea here is to beat the game quickly, but without neglecting style, kind of like Devil May Cry. As a rudimentary demo of the concept, I hacked together a script for the original TMNT where the score has been overwritten with a new score, calculated by Lua. It basically multiplies the player's kill count by 10, and decrements by one each frame. This is admittedly a crappy demonstration compared to what could be done with more interesting metrics, and more time invested in finding the necessary memory addresses. It also fails because you can game the system in stupid, boring ways, like grinding for points in certain rooms where it's easy to rack up a lot of kills. However, there's nothing stopping us from changing the way the score is calculated so that the framecount penalty is exponential, or whatever provides a decent balance. Given the effort required to create such a balance, I'm guessing there will be, at best, one or two "killer apps" that are actually worth doing. Here's the script:
--TMNT score recalculator demo
ingamepts = 0
score = 0
while true do
   if memory.readbyte(984) > ingamepts then
      score = score + (memory.readbyte(984) - ingamepts) * 1000
   end

   for i = 0, 10 do
      gui.drawbox(25, 200+i, 100, 224-i, "#000000")
   end
   ingamepts = memory.readbyte(984)
   score = score - 1
   gui.text(25, 200, score)
   FCEU.frameadvance()
end
Some other ideas: Super Mario Kart: harass the other racers while placing in the top four. Maybe a bonus/penalty for proximity to other racers. River City Ransom: maintain a high damage-per-second rather than bypassing everything and smashing the bosses; throwing people at other people and other strategies. Final Fantasy VI: penalties for using the same attack (joker/vanish doom, ultima...) repeatedly. Bonuses for diverse attacks and completing parts of the WoR.
Experienced Forum User
Joined: 10/3/2005
Posts: 1332
As a change from the action movies, tonight I saw a news clip from the opening ceremony parade from the recent Beijing Hong Kong olympics. The president of China, Hitler, was watching the parade from a spectator stand high above the crowd. One of the peasants below knocked a balloon into Hitler's private box, causing his guards to grab the balloon, throw it to the ground and shoot it with revolvers. That Hitler would have such a thing done to a balloon was apparently quite scandalous.
Experienced Forum User
Joined: 10/3/2005
Posts: 1332
CtrlAltDestroy wrote:
Imagine if we rigged up an arcade system, using modified emulators, to record achievements of classic games to an online database...
It looks like there's growing interest in superplays that aren't speed-based. Using Lua, I tried to measure entertainment in River City Ransom by various metrics, like airtime, damage inflicted, and the means thereof. In other words, it's not even necessary to modify the emulators to do what you're suggesting- the hard part is wrangling the right memory addresses so that things can be measured properly. IIRC, Lua can also upload the statistics using one of its standard libraries. Edit: I think the EmuLua API has functions (registerload and speedmode) that could invalidate accomplishments if the user loads a state, as well as prevent the use of slowdown and frameadvance. Nothing foolproof, of course, but this seems very doable. Here are some awards I just thought of: Moonjump: jump the maximum number of units past the top of the screen (using another player, buildings, weapons, boots, momentum, etc) Leap of faith: (gold) jump over the river and past the other side of the screen; (silver) clear the gap in the 3rd wheel factory; (bronze) clear the gap outside the warehouse, or in the first area of the factory BARF: take 100 points of damage with 0 stamina/willpower, and without being killed Literati: own every book Demigod: max every stat God: on Advanced difficulty, beat the game without powering up or being hit Garbage man: beat the game using a garbage can exclusive to all other weapons Totem pole: stand on a guy holding a crate, who is in turn standing on another guy holding a crate OHKO: kill someone in one hit. Deus Ex: (We'll have PS2+Lua eventually...) Ninja: complete the game unseen. Gentle fist: knock out/disable all opponents. Drunken fist: score 5 of kills/KOs (on non-civilians) while completely smashed. All kills, no skills: kill all the characters who lack plot immunity, and without allocating any skillpoints. Sequence breaker: keep an objective active after the end of a mission. Stairway to Heaven: touch the sky in one of the outdoor missions. Explorer of the Forbidden City: jump over the canal partition in Hong Kong that leads to the incomplete area, and leave through the walkway tunnel. (Alternately, get into the airstrip portion of mission 3) Spiderman: use grenades to climb UNATCO HQ, a skyscraper, etc. Demolition Man: fight using nothing but LAMs, LAWs, the GEP gun, TNT and incendiary barrels.
Experienced Forum User
Joined: 10/3/2005
Posts: 1332
GoldDounuts: I recommend AutoHotkey. It's a scripting language, so it might seem daunting at first if you've never done any programming before, but it's really easy to remap keys for a specific program. Here's an example similar to what I used to remap the save and load state keys to where I'd normally have them in emulators:
#titlematchmode regex
#ifwinactive FBA|FinalBurn
    ;::f5
    q::f7
#ifwinactive
In English: if the active window title includes the letters "FBA" or "FinalBurn" (because I don't remember which actually goes in the title) then pressing the semicolon or q keys will cause AHK to tell the app that you pressed f5 or f7, respectively, instead of the original keys. PS. I'm off the project. I haven't had much time or motivation for anything TAS-related this year, and moreover no longer have a Windows box to build on. Apologies to anyone I've let down. :(
Experienced Forum User
Joined: 10/3/2005
Posts: 1332
It looks like what you want is VirtualDub and/or avisynth. I don't remember how to use avisynth, or what exactly it's capable of, but it seems like the right direction.
Experienced Forum User
Joined: 10/3/2005
Posts: 1332
You should include your operating system when you make a request like that, or someone might try to help you and make the wrong assumption. Anyway... http://en.wikipedia.org/wiki/List_of_video_editing_software
Experienced Forum User
Joined: 10/3/2005
Posts: 1332
I've been having these dreams lately where I think I'm watching b-action movies. They're kind of like lucid dreams, only instead of having a sense of bodily freedom, I'm able to viciously mock the dialogue and production values of the things my subconscious presents to me. One was another movie sequel of Sex and the City, set in the not too distant future where New York has been decimated by a nuclear apocalypse. The details are fuzzy, but I remember that it centered around Carrie and her trite, self-absorbed observations about her damn love life while the other 99% of civilization struggled to find food and shelter. For no reason other than to generate drama in an otherwise flat and meandering plotline, there was a scene where Samantha got a beatdown from a gang of wasteland-dwelling mutants. It'd be worth the price of admission just for that last part. Recently, I went to bed listening to an audiobook of the horror genre and got sleep paralysis. Listening to horror in my sleep usually causes incredibly vivid nightmares, but this is the first time I've ever gotten sleep paralysis out of it. I'd recommend it to anybody. The "old hag syndrome" I've heard about suddenly makes sense, too- it really does feel like somebody's sitting on you.
Experienced Forum User
Joined: 10/3/2005
Posts: 1332
Experienced Forum User
Joined: 10/3/2005
Posts: 1332
I'm also waiting for an encoding. Can't wait to see all them faces get shot. Edit: at point blank
Experienced Forum User
Joined: 10/3/2005
Posts: 1332
Niklez wrote:
Waaah, why didn't that work.
Maybe someone could tell you if you specified some kind of problem.
Experienced Forum User
Joined: 10/3/2005
Posts: 1332
Voted 5/? Pretty much what Baxter said. What's there is great, but there isn't enough of it. The gameplay in Street Fighter has potential for more than an "over in three seconds" novelty video. I expect a vast majority would rather see fighting more elaborate and entertaining than a fast completion.
Experienced Forum User
Joined: 10/3/2005
Posts: 1332
Mukki wrote:
This is a pretty great game. I keep getting up to level 19 before dying, but I'm sure I'll come back to it to finish it off. Looks quite funny from a TASing perspective too; imagine manipulating the fastest character against the easiest enemies in the least laggy and most opportune environment (and the best music ;-))? Something for the 'hardest game to TAS' thread no doubt...
I just got an out-of-bounds glitch, though I don't think it would be useful for TASing...
Experienced Forum User
Joined: 10/3/2005
Posts: 1332
Tristal wrote:
What version of 1.43 are you using to make these? Snes9x crashes horribly with this ROM.
You might try loading the ROM again with a default configuration- just delete (or temporarily rename) Snes9x's config file, which is named something like "snes9x.cfg". The most recent (and probably best) version of Snes9x is always here: http://code.google.com/p/snes9x143-rerecording/
Experienced Forum User
Joined: 10/3/2005
Posts: 1332
Solon wrote:
3b. If I'm using ZSNES, I don't need to maintain multiple savesates thanks to the ever-so-handy Rewind button. (Does any other emulator have something comparable to this yet?)
"Comparable"? Maybe. I wrote a Lua script for snes9x 1.43 to imitate rewind/fast-forward buttons. Aside from crashing (the script itself; not the emu) occasionally for reasons I didn't bother to debug, it seemed to work as one would expect. The script is only a couple dozen lines of code, and I commented it as thoroughly as I could, so you may be able to work out a solution for yourself- more easily than redoing all those ZSNES desyncs, I mean. ;)
Post subject: And I'm passing the savings onto YOUUUUU!
Experienced Forum User
Joined: 10/3/2005
Posts: 1332
I don't TAS, but I have a suggestion: use a personal Wiki like Tiddlywiki. It's great for organizing heaps of arbitrary information that you would otherwise lose or forget about. Things like routes, diassembly notes, and memory addresses would all be stored in a permanent, centralized location. Suspicions about glitches and things to investigate later can be jotted down and retrieved in a useful way. Since the entire wiki is contained in one HTML file, you can easily archive it until you need it again, (i.e., long after you've forgotten everything) or pass the wiki along to someone who wants to do an improvement. EDIT: AND IT'S NOT A GLUE! IT'S A SERIES OF TUBES! [/infomercial]
Experienced Forum User
Joined: 10/3/2005
Posts: 1332
That's a rather intolerant attitude. You're going to censor people just because you don't agree with them?
More because they can't articulate anything without using words like "shitcock", I think.
Experienced Forum User
Joined: 10/3/2005
Posts: 1332
What were they thinking?!
Ostensibly, that the 10% of users technically literate enough to give a shit are irrelevant to their bottom line. And more power to them, I say. If I needed another example of Microsoft's blatant contempt of their users to keep me from buying Windows 7, this would be it.
Experienced Forum User
Joined: 10/3/2005
Posts: 1332
Zsh > Bash Period. :p I used to miss DOS, and the simpler times. Then I learned to use Cygwin. Now, all is well. /me popd's back out of this thread.
Experienced Forum User
Joined: 10/3/2005
Posts: 1332
I dig the improvement. The sparks were definitely a good idea, and firing the deflector is great fun. Still needs more sound effects, though. I seem to have posted a high score, but the interface for doing that is unintuitive... I should have paid more attention, but basically, it gave me an error message prompting me to go to a submenu item to log in, instead of just giving me the log in interface. That could stand to be cleaned up, IMO. Edit: Also, it kinda bugs me that I have to use a mouse to operate the menu, but I can't play the game with it. Arrow keys/tabbing would be just ducky.