Pugsy wrote:Thanks, added. Nice work you obviously put a lot of effort into this.
I take this is a RAM cheat? Not duped for the clones (lack of time etc)
Yes, both the KI and KI2 cheats are ram based pointer modifications. I had to go this route because modifying the asm of these games had no affect. I am not sure why I am having the problem I'm having, but when changing the asm (MIPS) the games just ignore it, and execute the original code even though it no longer exists after my modifications (which are correctly being set as I see my changes in the debugger)... I tried several approaches, even noping all code around my modifications, and still nothing would change the course of the original code (very aggravating)... Maybe when you have time you can shed some light on what I may be doing wrong. Thanks for the adds (we try to keep you busy )!
I've seen a similar thing in the past with encrypted ROMs, and I guess the fact it loads the RAM via CHD has some bearing on it, unfortunately at the moment the solution doesn't present itself....if it's anything like the various mk games in MAME the problem may go away in future releases.
Nice stuff Abystus! Especially the unused stuff. Odd for sure that thriller instinct and Phoenix gang images. Good to hear the "show no mercy" voice that has been gone ever since the first versions.
Are you looking for certain FMV and sound headers in memory or are you just altering the pointers until you hit upon something? Or is there a pointer table in memory? I've found a few more sounds by just changing the pointer values but wondered if you had a more efficient way of finding information.
CMAC wrote:Nice stuff Abystus! Especially the unused stuff. Odd for sure that thriller instinct and Phoenix gang images. Good to hear the "show no mercy" voice that has been gone ever since the first versions.
Are you looking for certain FMV and sound headers in memory or are you just altering the pointers until you hit upon something? Or is there a pointer table in memory? I've found a few more sounds by just changing the pointer values but wondered if you had a more efficient way of finding information.
I've never had much luck searching in either of these games (initialize only displays 4096 instead of the full memory spectrum of these games), so I resorted to watching memory. Basically I would cycle through sounds or fmvs (just watching the intro play), and take note of pointers (you will see the address in memory) I saw in memory (Memory Window) that moved in a sequence as things changed on screen. I would then go to where the pointer pointed, and make modifications there to see if I could alter what was onscreen (using states to replay the screens). It takes a lot of patience, dedication, etc.. but paid off in the end. I know there are several sounds I did not cover in the above list, but they were usually just attack variations, death cries, etc. Hope this helps.
Abystus wrote:I've never had much luck searching in either of these games (initialize only displays 4096 instead of the full memory spectrum of these games), so I resorted to watching memory.
You often need to quote memory ranges to the cheatinit command in systems with big memory footprints, for instance in kinst if you use just 'ci' you get 4096 addresses...if you use 'ci ub,88000000,7ffffff' you get 8 MBytes of addresses.
Pugsy wrote:You often need to quote memory ranges to the cheatinit command in systems with big memory footprints, for instance in kinst if you use just 'ci' you get 4096 addresses...if you use 'ci ub,88000000,7ffffff' you get 8 MBytes of addresses.
Thanks for the tip. I think I have fiddled around with it in the past, but never got what I was looking for. Your method however works fine and will surely help out in my hacking of these 2 games. Thanks for sharing.
<cheat desc="Enable Finishers During Round">
<comment>Enable before match or it will not work.</comment>
<script state="run">
<action>maincpu.pd@88006174=00000000</action>
<action>maincpu.pd@88006180=00000000</action>
<action>maincpu.pd@88006190=00000000</action>
<action>maincpu.pd@8800619C=00000000</action>
<action>maincpu.pd@880061BC=00000000</action>
<action>maincpu.pd@880061C8=00000000</action>
<action>maincpu.pd@880061D0=00000000</action>
</script>
<script state="off">
<action>maincpu.pd@88006174=1580FF62</action>
<action>maincpu.pd@88006180=1180FF5F</action>
<action>maincpu.pd@88006190=1420FF5B</action>
<action>maincpu.pd@8800619C=1180FF58</action>
<action>maincpu.pd@880061BC=1580FF50</action>
<action>maincpu.pd@880061C8=1180FF4D</action>
<action>maincpu.pd@880061D0=95CD0054</action>
</script>
</cheat>
<cheat desc="Almost One Button Moves/Enders/Finishers">
<comment>Enable before match or it will not work. Can be done during round, and also from any distance.</comment>
<script state="run">
<action>maincpu.pw@88005F02=1000</action>
</script>
<script state="off">
<action>maincpu.pw@88005F02=05A0</action>
</script>
</cheat>
Cinder:
No Mercy 1: Back+MP
No Mercy 2: Forward+QK
Humiliation: Back+FK
Ultra: FP
Sabrewulf:
No Mercy 1: Forward+MP
No Mercy 2: Forward+FP
Humiliation: Forward+QP
Ultra: Forward+QK
Fulgore:
No Mercy 1: FP
No Mercy 2: FK
Humiliation: Forward+MK
Ultra: (Jump) Hold Forward+QP (Release)
Glacius:
No Mercy 1: MP
No Mercy 2: Back+FK
No Mercy 3: MK
Humiliation: Back+QK
Ultra: (Jump) Hold Back+FP (Release)
Thunder:
No Mercy 1: FP
No Mercy 2: FK
Humiliation: Down, (Slight Pause) QK
Ultra: Back+QP
Spinal:
No Mercy 1: QP
No Mercy 2: Forward+QK
Humiliation: FK
Ultra: (Jump) Hold Forward+FP (Release)
Combo:
No Mercy 1: Forward+MP
No Mercy 2: Forward+FK
Humiliation: Down, (Slight Pause) QP
Ultra: Forward+FP
Jago:
No Mercy 1: Forward+QP
No Mercy 2: FP
Humiliation: MK
Ultra: Down+Back+QK
Riptor:
No Mercy 1: Back+MK
No Mercy 2: Forward+MP
Humiliation: Down, Forward+FP
Orchid:
No Mercy 1: Down, Forward+QK (FK to jump on frog.)
No Mercy 2: Forward+QP
Humiliation: Down+Back+FP
Ultra: Back+MP
Pugsy, turns out rom based cheats cannot be poked during play for this game (through the debugger), and must be in the cheat file or entered before the match starts to have any affect on the path of the game code (during the match). Maybe this is due to some sort of recompiler method for emulation or other factors. I'm glad I finally got around not being able to modify code in this game (mentioned earlier in this thread). If anyone is interested in the SNES versions of these codes, they can be found here and here.
Last edited by Abystus on Wed Jan 29, 2014 8:13 am, edited 4 times in total.
Cheats are working! Unfortunately this don't work in classic format, but Killer Instinct games works best in new MAME emulators (only MK games works best in old emulator versions).
Would be interesting to create a topic only with game genie codes in this forum.
You is working in "Finishers cheats" for Killer Instinct 2 too?
i tried the cheats posted by Abystus,by copying and pasting them into the kinst.xml file of the cheat archive.they show up and they SOMEWHAT works.here's the issue.i select the one button combo\no mercy etc,and they do work,but i didn't activated the mercy codes during fight.,.and yet the character is still able to do them(the mercy\fatalities) mid-fight,even if i didn't wanted him to.why?
Solstar wrote:i tried the cheats posted by Abystus,by copying and pasting them into the kinst.xml file of the cheat archive.they show up and they SOMEWHAT works.here's the issue.i select the one button combo\no mercy etc,and they do work,but i didn't activated the mercy codes during fight.,.and yet the character is still able to do them(the mercy\fatalities) mid-fight,even if i didn't wanted him to.why?
It is due to the recompiler method used to emulate these games (KI1/KI2). Basically the emulator takes a block of game code and compiles it into an x86 asm variant which is used for execution to achieve faster emulation speeds as it is native to the machine in question (your PC). Blocks of game code are compile once, and then used over and over until they they are unloaded (no longer being used in specific areas of a game), and have to be recompiled when they are next used (when the code is not in use, it can be modified and will be complied to x86 the next time around). Enabling and disabling codes on these types of games can cause issues if the compiled block is in use during a state change of the cheat (you toggle it on or off), which will cause no affect on the compiled x86 asm currently executing in memory (you see no change in the game). To combat this, you could possibly reset the game, or disable between stages where that code is not currently in use. This is just the way these things work, and I don't really have any control over it.
Solstar wrote:i tried the cheats posted by Abystus,by copying and pasting them into the kinst.xml file of the cheat archive.they show up and they SOMEWHAT works.here's the issue.i select the one button combo\no mercy etc,and they do work,but i didn't activated the mercy codes during fight.,.and yet the character is still able to do them(the mercy\fatalities) mid-fight,even if i didn't wanted him to.why?
It is due to the recompiler method used to emulate these games (KI1/KI2). Basically the emulator takes a block of game code and compiles it into an x86 asm variant which is used for execution to achieve faster emulation speeds as it is native to the machine in question (your PC). Blocks of game code are compile once, and then used over and over until they they are unloaded (no longer being used in specific areas of a game), and have to be recompiled when they are next used (when the code is not in use, it can be modified and will be complied to x86 the next time around). Enabling and disabling codes on these types of games can cause issues if the compiled block is in use during a state change of the cheat (you toggle it on or off), which will cause no affect on the compiled x86 asm currently executing in memory (you see no change in the game). To combat this, you could possibly reset the game, or disable between stages where that code is not currently in use. This is just the way these things work, and I don't really have any control over it.
i see.thanks for your reply.i suppose that still(in 2014 nonetheless..)we don't have a way to assign a cheat to a key so we can use it when we want it..depsite the cheat actually saying you to assign a mercy,ultra combo etc to a key..-_- there MUST be a way to assign them to a key! >_<
Pugsy, I've updated the "Stage Modifier" code above. The line with the change is <action>maincpu.pd@8800011C=03E00008</action>, so if you can update your cheat files it would be appreciated.