Posts for HHS


1 2
9 10 11
14 15
HHS
Experienced Forum User, Published Author, Active player (282)
Joined: 10/8/2006
Posts: 356
You mean 25 MB and 13 MB, not GB.
HHS
Experienced Forum User, Published Author, Active player (282)
Joined: 10/8/2006
Posts: 356
I'm using Snes9x rerecording 1.43 v16 svn11.
HHS
Experienced Forum User, Published Author, Active player (282)
Joined: 10/8/2006
Posts: 356
Don't know if it's useful anywhere, but here's another whip glitch that I found. http://dehacked.2y.net/microstorage.php/info/763931790/whip.smv The charging glitch is great, since we don't have to level the sword so much.
HHS
Experienced Forum User, Published Author, Active player (282)
Joined: 10/8/2006
Posts: 356
Offset 18D, which for enemies contains experiened gained, contains the current experience you have for allies. The lowest 2 bytes of your current experience is therefore used.
HHS
Experienced Forum User, Published Author, Active player (282)
Joined: 10/8/2006
Posts: 356
An equilateral triangle is defined by all sides being equal in length. So it's an equilateral triangle.
HHS
Experienced Forum User, Published Author, Active player (282)
Joined: 10/8/2006
Posts: 356
When an event is not executing, the RNG is normally updated 1 time per frame. I'd make use of the script by finding the frame on which a critical hit could happen, and then go back and try to hit the enemy on that frame. So you have to do some rerecording. If you wanted to find a critical hit some frames in advance, you could add that to the index used to find the random number (in the rt2 table) and subtract that number of frames from the recovery counter, and remember to add it to the 5-counter (updc) modulo 5. The counter directly below the table of random numbers at the top shows how many times the RNG was used during the last frame. You can't directly tell the number of RNG executions until the next critical without taking account which frames it's possible to attack on. You can only attack an enemy once every 5 frames. The number of RNG executions before it decides whether it's a critical hit also depends on some other calculations. Anyway, I think that almost all of the information on the screen can be useful at times. You never know when it might come handy. I briefly tried if I could find some critical opportunities with Mantis Ant, but it turned out that they were so rare that I'd have to wait for a long time to get them. I wonder if I should have killed some rabites at the beginning to level my sword? I may have to charge up the sword to hurt the Mana Beast and I don't know if I'll have an opportunity to get easy weapon experience later on.
HHS
Experienced Forum User, Published Author, Active player (282)
Joined: 10/8/2006
Posts: 356
I've documented it in an earlier post. Here, "Random" means generating a random number, measured in 256ths. The RNG offset is at 0x3f0 and the 15 byte table is at 0x3f1. To make a random number, the byte at the current offset is added to the byte before it and stored in the byte before it. This is the random number. Then the offset is increased. I don't have access to the game's code right now, so this is based on previous posts and the script. Slow lowers hit rate by 1/16. Hit rate is halved when recovering after action. Mini lowers target's defense by 3/4. Attack succeeds if hit rate is greater than (1+Random)*Evade/2. Force = Attack*(1+(Charge level+Mana Sword Power)/4). If the attacker is small, force is always 1. If hit rate is greater than Random*101, Power = (Mana power squared+Force)*(1+Random/16), otherwise Power = Hit rate*Force/100. If evade rate is greater than Random*100, DefPower = Defense+Random*Defense/16, otherwise DefPower = Evade*Defense/80 Critical hits are possible when fully recovered, or with moon energy. These double the attack power. If target is sleeping, the critical rate doubles. The woman's rate is then increased by 5 and the man and sprite's hit rates are increased by 10. If the result is then greater than Random*256, the hit will be critical. If the attacker is recovering, Power becomes (1-Frames left/((99-Agility)/2+80))*(Power/2). Damage equals Power - DefPower. The target is woken up. Status is only inflicted if damage was done and target is not protected against anything it would be inflicted with. I found a bug in my script, it says rt[z-1] where it should have been rt2[z-1] in one place, and likewise for rt[z] instead of rt2[z]. You can probably try to calculate in in advance, but the values used will be outdated, and you have to take into account other uses of the random number generator. Damage can be manipulated by waiting more frames before attacking or attacking more times, or getting enemies to attack you.
HHS
Experienced Forum User, Published Author, Active player (282)
Joined: 10/8/2006
Posts: 356
Here's a WIP I made until the beginning of the dwarf caves last year. I avoid getting in the way of a rabite in the forest by making sure it doesn't get loaded due to there already being 3 on the screen. I also run behind the first house in the town instead of down. My boss fight is shorter due to accumulating hits while the boss is recovering. I haven't explored the possibility of making it even shorter by getting critical hits since my damage/critical calculator wasn't done yet when I fought him. Remember to enable multitap 5 before playing this movie. http://dehacked.2y.net/microstorage.php/info/1232620366/hhssom.smv Another important thing I did was to time cutting the grass properly according to the 5-frame rule.
HHS
Experienced Forum User, Published Author, Active player (282)
Joined: 10/8/2006
Posts: 356
You always go back outside when you die at Frost Gigas. This is controlled by 7ECF0B, which is set to 3 when fighting him. This is the script that's executed when you die. 07FF: CA988B hold CA988C ifbetween 0B 0 0 jump 07FE CA9891 ifbetween 0B 1 1 jump 07FD CA9896 ifbetween 0B 3 3 jump 066F CA989B ifbetween 0B 4 4 jump 0025 CA98A0 inc FF CA98A2 call 0748 CA98A4 tint dark 1F1F1F CA98A8 wait 20 CA98AA call 07C7 CA98AC set 00 0 CA98AF path 0075 CA98B1 text "<Open> Sadly, no trace of " CA98C6 call 07FB CA98C8 text "\ was ever found..." CA98DB wait key CA98DD text "<Close>" CA98DE reset At the very beginning of the game, 7ECF0B is set to 0, and when you die, the ghost tells you to wake up. When you're fighting the Mantis Ant, it's set to 1, and Jema helps you if you die. If set to 4, you're in the training cave, and Jehk asks what's wrong with you. Script 66F, which is called when 7ECF0B is 3, is as follows: 066F: CA8DFC call 0748 CA8DFE tint dark 1F1F1F CA8E02 wait 20 CA8E04 call 07C7 CA8E06 path 0200 CA8E08 inc F8 CA8E0A text "<Open> ...SCRAM..!" CA8E18 wait 10 CA8E1A text "<Close>" CA8E1B dec F8 CA8E1D call 0748 CA8E1F face talker south CA8E22 setchrvar talker.190 00 CA8E26 setchrvar talker.191 00 CA8E2A heal talker CA8E2C update talker CA8E2E sound 02 07 00 88 CA8E33 updatehp CA8E34 wait 10 CA8E36 jump 0636
HHS
Experienced Forum User, Published Author, Active player (282)
Joined: 10/8/2006
Posts: 356
Fortunately, most games clear all RAM on start. But there are probably games that update the RNG during idle time, and those will desync right away because of timing differences between the emulator and the NES.
HHS
Experienced Forum User, Published Author, Active player (282)
Joined: 10/8/2006
Posts: 356
Most soundcards can only record from one source at a time. You have to either record yourself playing the game first and then overlay your voice afterwards, or record a movie in the emulator of you playing the game while you record your voice, then play back the emulator movie to get the sound from the game to overlay on top of it.
HHS
Experienced Forum User, Published Author, Active player (282)
Joined: 10/8/2006
Posts: 356
actualy the moment you use your public ip adress, it will go to the ISP router to make the request let's say that your server have the public adress and your laptop have a private one ,if your tracert the packet it will be something like that: laptop>router>isprouter>server
That would be the case if the router was operating normally with the ISP connected to the WAN port, but if it's acting as a switch, it should just forward the data to the port that's connected to the device with the MAC address specified as the destination, regardless of the IP address. As for the metric, I think you're talking about a different kind of metric. The metric parameter used with the route add command controls how it will select which route to use, it's not the TTL metric.
HHS
Experienced Forum User, Published Author, Active player (282)
Joined: 10/8/2006
Posts: 356
Try putting the server's IP instead of the router's IP. It should then send data with the server's IP as destination to the server. I couldn't find a way to leave the gateway field blank. route -p add (Server's IP) mask 255.255.255.255 (Server's IP) if (LAN interface) The traffic should not go to the ISP if it's sent to the server's MAC address, I think, which should be the case here. The other route command isn't needed, since the correct route exists by default. The route to the server overrides the default route, since it's metric is 1 (since it wasn't specified).
HHS
Experienced Forum User, Published Author, Active player (282)
Joined: 10/8/2006
Posts: 356
Shouldn't the router remember the MAC address of each connected PC, and pass traffic to the correct PC automatically? I don't see why it would pass the traffic to the ISP unless the ISP is selected as the gateway. But perhaps the server itself needs to be selected as the gateway instead of the router if it's routing capabilities have been disabled. I don't think you can add a route without specifying a gateway using the add route command.
HHS
Experienced Forum User, Published Author, Active player (282)
Joined: 10/8/2006
Posts: 356
Go into the card's properties and select TCP/IPv4 and click on Properties, and select "Use the following IP address", then enter the IP address you want to use for the card. Then go into the command prompt and type: netsh interface ipv4 show interface This tells you the interface index of the network card where the cable is connected. Then type: route -p add (Server's IP) mask 255.255.255.255 (Router's IP) if (Interface index) If the server's IP changes, you can delete the old route using the following command and then add it again: route -p delete (Server's IP)
HHS
Experienced Forum User, Published Author, Active player (282)
Joined: 10/8/2006
Posts: 356
My LUA script already does the job of automatically skipping the dialogue for you. It does this by checking RAM location D0, and when it's 83 it presses the B button on the controller controlling the character who started the dialogue. It can be downloaded here: http://hhs.comze.com
HHS
Experienced Forum User, Published Author, Active player (282)
Joined: 10/8/2006
Posts: 356
Bisqwit wrote:
Feh, readibility would be nice. Also, what is the character encoding you are supposing? The exact byte values of your characters matter to a great deal I suppose and converting the characters into bytes, depends on the character encoding used. I can make an educated guess, but it would be better if it came from the horse's mouth.
It's Windows-1252. The hex code for the ASM file is as follows. 64 62 20 31 39 31 2C 30 2C 32 2C 22 57 B8 31 20 AB 33 C0 B9 1E 22 2C 30 2C 22 41 3B C8 74 22 2C 38 2C 22 50 99 F7 F1 4A 58 78 22 2C 31 38 2C 22 49 E2 F0 40 3D E9 22 2C 33 2C 22 72 E7 B0 24 AA 5A B4 22 2C 39 2C 22 CD 21 C3 50 99 B1 22 2C 37 2C 22 F7 F1 4A 58 78 E7 33 DB 50 8B F7 99 B1 22 2C 31 30 2C 22 F7 F1 50 8A C2 22 2C 31 32 2C 22 30 AA 58 85 C0 75 F0 57 4F 8A 22 2C 34 2C 22 86 22 2C 35 2C 22 88 22 2C 34 2C 22 46 3B F7 72 F4 5F B0 20 AA 58 EB BE 22 Here's the original, more readable (and longer) version, in MASM. .model tiny .code org 256 mov di,512 push di mov ax,2031h stosw xor ax,ax nbrloop: mov cx,30 primeloop: inc cx cmp cx,ax jz samenbr push ax cwd div cx dec dx pop ax js notprime samenbr: dec cx loop primeloop nextnbr: inc ax cmp ax,1001 jb nbrloop mov al,36 stosb pop dx mov ah,9 int 21h ret notprime: push ax cwd mov cl,7 div cx dec dx pop ax js nextnbr xor bx,bx push ax mov si,di div10lp: cwd mov cl,10 div cx push ax mov al,dl or al,48 stosb pop ax test ax,ax jnz div10lp push di revnbrlp: dec di mov al,[si] xchg al,[di] mov [si],al inc si cmp si,di jb revnbrlp pop di mov al,32 stosb pop ax jmp nextnbr end
HHS
Experienced Forum User, Published Author, Active player (282)
Joined: 10/8/2006
Posts: 356
In IE, one could just enter the URL javascript:alert(document.body.contentEditable=true), then paste the code into the window and then enter javascript:alert(document.body.innerHTML=document.body.innerText).
HHS
Experienced Forum User, Published Author, Active player (282)
Joined: 10/8/2006
Posts: 356
I don't think my entry got accepted, so I'll just post it here. It's in NASM and is 152 bytes long. db 191,0,2,"W¸1 «3À¹",0,"A;Èt",8,"P™÷ñJXx",18,"Iâð@=é",3,"rç°$ªZ´",9,"Í!ÃP™±",7,"÷ñJXxç3ÛP‹÷™±",10,"÷ñPŠÂ",12,"0ªX…ÀuðWOŠ",4,"†",5,"ˆ",4,"F;÷rô_° ªXë¾" The compiled DOS program, in hex, is 95 bytes: BF 00 02 57 B8 31 20 AB 33 C0 B9 1E 00 41 3B C8 74 08 50 99 F7 F1 4A 58 78 12 49 E2 F0 40 3D E9 03 72 E7 B0 24 AA 5A B4 09 CD 21 C3 50 99 B1 07 F7 F1 4A 58 78 E7 33 DB 50 8B F7 99 B1 0A F7 F1 50 8A C2 0C 30 AA 58 85 C0 75 F0 57 4F 8A 04 86 05 88 04 46 3B F7 72 F4 5F B0 20 AA 58 EB BE
HHS
Experienced Forum User, Published Author, Active player (282)
Joined: 10/8/2006
Posts: 356
Ok, I uploaded it here instead. http://www.gethome.no/prazdroj/hhs
HHS
Experienced Forum User, Published Author, Active player (282)
Joined: 10/8/2006
Posts: 356
The site seems to work now. Edit: Well, apparently, it doesn't. That's strange, because it works on my computer.
HHS
Experienced Forum User, Published Author, Active player (282)
Joined: 10/8/2006
Posts: 356
I have no idea how that happened. I haven't seen anything like it before. Here are some things that I made last winter, which may be useful. It's a data dumper and a LUA script for Snes9x. http://hhs.comze.com
HHS
Experienced Forum User, Published Author, Active player (282)
Joined: 10/8/2006
Posts: 356
I didn't even get a description for my Tom & Jerry movie, they just kept using the old one.
HHS
Experienced Forum User, Published Author, Active player (282)
Joined: 10/8/2006
Posts: 356
Mark my words, this is dead serious. This matter is nothing to joke around with. Everyone should take a deep breath and think about how much they want to be in this business, because the sacrifice will be huge and irreversible. Once you start making up new words, it really puts your life in perspective. There's no going back after this.
HHS
Experienced Forum User, Published Author, Active player (282)
Joined: 10/8/2006
Posts: 356
Well, obviously it would have to be tailored for each game. Since you're only dealing with 2 different engines in this case, it should be easy. In Mega Man 3-6 (and many other Capcom games), RAM location $CF holds the mask for the channels that are currently playing sound effects, and I don't know about Mega Man 1-2 but there is probably a similar variable somewhere. The emulator can then output the channel or not depending on the bits that are set.
1 2
9 10 11
14 15