Register - Login
Views: 99382394
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
04-24-22 01:25:10 AM
Jul - The Cutting Room Floor - Random topics of debate New poll - New thread - New reply
Pages: 1 2 Next newer thread | Next older thread
Rick
M'Lord, there's a knife in your head!
Level: 152


Posts: 3433/7539
EXP: 43667852
For next: 633808

Since: 02-15-10

From: Maine

Since last post: 113 days
Last activity: 45 days

Posted on 04-01-11 03:25:51 PM Link | Quote
Aha, I never thought of that! Thanks!

Maybe I can see if someone could give a workaround of some sort to this...

____________________
Torentsu
Member
Level: 26


Posts: 7/130
EXP: 94245
For next: 8030

Since: 03-30-11


Since last post: 1.7 years
Last activity: 1.6 years

Posted on 04-01-11 04:34:47 PM Link | Quote
Originally posted by Rick
True, though back in those days, if something wasn't programmed to be played, it was gonna let you know.

Just some of it kind of baffles me, as I have no idea if because of the game programming, if some of the characters just somehow cobbled themselves together into some kind of playability or if they were legitimately made to be played by a human controlled character and just disabled.

In the case of Mortal Kombat II between SNES and Genesis (playing as the hidden characters and bosses), the Genesis versions seem to be more complete in initial playability, whereas the SNES version is really, really freaking weird. It's almost like each fighter has...something like two sets of movelists or something. One for before "FIGHT!", and one after.

How do I know? Well, here's a test you can do. Use the character modifier code 7E2EF8?? and for the ??, put in 0C (Kintaro), 0D (Shao Khan), 0E (Smoke), 0F (Noob Saibot), or 10 (Jade). Hold "Forward" after the match starts and any of those will walk forward normally. However, if you let go of the button and try to press it again, the game goes kaplooey. I have no idea why either.

It doesn't do this on the Genesis.


Oh boy right up my alley!

Mortal Kombat handles opponents differently than most fighting games. While your standard CPS2 fighting game uses a CPU flag Mortal Kombat does not. Capcom generally programs all the characters with a moveset and commands for those moves, but just never gives the player access to them normally. This way they can just activate a CPU or not flag on characters . At its simpliest this was just make the CPU control the character, but it can also do special stuff like like make them harder or use CPU only moves.

Mortal Kombat does this completely differently. Each character that a human can control consist of 2 variables:
The character itself (name data, voice clips, etc)
The Move set

The move set is what hinders attempts to play as bosses with hacking. You can easily set your character as Noob Saibot and your move set to Sub-Zero and play as "Noob" with no problems, but unfortunately the bosses have no like character that they can load a moveset from.

To handle CPU characters Mortal Kombat loads up a Character variable, and a list of moves that character can do. This allows them to "piece" together the secret characters like in MK2, and allow Reptile to have Scorpion and Sub Zero's moves in MK1, despite Reptile not even being in the character array at all. Noob Saibot is just a completely black Sub-Zero but with Scorpion's spear listed as available. This also makes the CPU able to do all those nasty tricks only it can do like the duck your uppercut and having tremendous priority on all versions of its attacks. The CPU throw can be used to demonstrate this. Make yourself a boss character and don't press anything so that it wont crash. The CPU will try to walk up to you and try to execute a throw and the game will lock up because it has no animation for a boss being thrown. As human character you can't even use a throw against CPU boss characters, even by setting P2 to a boss character and walking up to them and pressing LP. I'm not completely sure of the specifics of this but to my understanding this is how it works.

Furthermore, the CPU in MK2 in particular has some special effects that have baffled hackers on the MAME cheat boards for ages. Its interesting to note you can still modify the CPU character with Body/Move set modifiers but they still retain CPU only properties For example You can use Cheats to make yourself Smoke in MK2 with a usable move set, but you won't smoke. Only the CPU has the property that allows it to emit the smoke effect. Jade's projectile invulnerability is another one of these properties. It seems like Jade's projectile invulnerability can be loaded by changing yourself to Jade and leaving the move set alone, but the game will crash if you try to move.

Now when you hack the game to play as these characters if fine with loading up the Announcer sound clips and name data, but when you go to enter a command most of them will point to junk or something not recognizable.

Why the Genesis version handles this so much better than the others is anyone's guess. Perhaps they started working on programming them in to give the Genesis an edge in content that it lacked in graphics. Its interesting to note that in UMK3 Noob Saibot is fully usable by humans when hacked despite the game still using the same method of loading characters. Even the arcade version can take some commands with secret characters. Perhaps they just fell luckily into a movement range in the games data or they started programming them and just never finished.

Sorry for Wall o text. Feel free to correct or disprove any of it.
Rick
M'Lord, there's a knife in your head!
Level: 152


Posts: 3435/7539
EXP: 43667852
For next: 633808

Since: 02-15-10

From: Maine

Since last post: 113 days
Last activity: 45 days

Posted on 04-01-11 05:00:46 PM (last edited by Rick at 04-01-11 02:01 PM) Link | Quote
I honestly have to sort of wonder if the Smoke effect is a property of the CPU thing. Remember when you do Raiden's electrocution fatality? It calls upon the smoke routine for whatever character is being electrocuted too, from what I'm noticing. It seems to me that the smoke thing can be turned "on" or "off" somehow, but whatever it is that activates it is bizarro, I guess.

So, I'm guessing what I'm getting out of this is that as far as the movesets go too, they're made up of flags that are either toggled "on" or "off" as necessary? It almost makes me wonder if workarounds could be hacked like that to, say, have it so if you were to hack yourself as Kintaro, and then make it so it calls upon the routine to do a teleport stomp by pressing "Up" or something?

I also could tell that MK2 was always trying to call upon some kind of "generic fighter" thing for Kintaro and Shao Khan too. I could still put in the movements for characters and they'd still make sounds that the playable characters would (such as pressing "A" for Kintaro has him do a "ya!" sound like the regular fighters do for attacking), so I knew that it was a mess there to begin with.

Also, some fun experimenting that I don't know if it means anything! If you hack yourself as Motaro in UMK3, you can actually freely move around without worry of crashing. Attacking is a different story, but perhaps they worked on him a little bit too? He crashes hard if you try to do anything with him in MK3, but UMK3 is also a different story. Weirdness!

____________________
Rachel Mae

Creature of Chaos
Level: 141


Posts: 3880/5929
EXP: 33575298
For next: 544716

Since: 07-03-07

Pronouns: she/her
From: Foxglen

Since last post: 11 days
Last activity: 2 days

Posted on 04-01-11 06:34:05 PM Link | Quote
I'd be inclined to believe that Motaro was being considered as a playable character if that's the case. They'd really have no reason to change his code otherwise.

Actually, I thought he was legitimately playable in one of the home versions, though I'm probably mistaken...

____________________
Rick
M'Lord, there's a knife in your head!
Level: 152


Posts: 3436/7539
EXP: 43667852
For next: 633808

Since: 02-15-10

From: Maine

Since last post: 113 days
Last activity: 45 days

Posted on 04-01-11 07:05:20 PM (last edited by Rick at 04-01-11 04:47 PM) Link | Quote
Yeah, both he and Shao Khan are playable in the SNES/Genesis home versions (MK3 and UMK3 both), but not the arcade versions.

Edit: I have found so far, upon further investigation, that the main playability difference with Motaro in the arcade versions of MK3 and UMK3 is that for some reason, trying to move Motaro forward does not freeze the game in UMK3. Everything else seems to apply properly. UMK3 also does not have Motaro 'locked' into a stage like in MK3. In MK3, if you play as Motaro, the game forces you to fight in The Balcony stage. UMK3 does not do this. It seems evidence of making Motaro more playable is now a moot point?

Also, random factoid. Jade in the Genesis MK2 is probably the most playable out of the three hidden fighters. You can actually do her fan throw just fine! In fact, that's her only special move. Double-tapping back, holding back and pressing Punch, or doing a low kick still strangely freezes the game. The only exception is that if you successfully connect with a Low Kick as the last hit of the match, then the game won't freeze. I'm assuming this is just the "Round Win!" routine out-prioritizes whatever weird error that occurs with the Low Kick.

The Low Kick thing doesn't even seem to glitch. It just...freezes in mid-recovery, which doesn't make any sense to me.

____________________
Torentsu
Member
Level: 26


Posts: 8/130
EXP: 94245
For next: 8030

Since: 03-30-11


Since last post: 1.7 years
Last activity: 1.6 years

Posted on 04-01-11 08:44:40 PM Link | Quote
Its possible they started experimenting with making Motaro and Shao Kahn playable with codes or something but because of how the CPU uses moves it would have made it difficult to make it work, or they'd have to program the CPU not to use things like throws against the bosses. Also this thread might have something interesting.

http://www.mamecheat.co.uk/forums/viewtopic.php?f=16&t=3433
Pages: 1 2 Next newer thread | Next older thread
Jul - The Cutting Room Floor - Random topics of debate New poll - New thread - New reply


Rusted Logic

Acmlmboard - commit 47be4dc [2021-08-23]
©2000-2022 Acmlm, Xkeeper, Kaito Sinclaire, et al.

28 database queries, 1 query cache hits.
Query execution time:  0.092702 seconds
Script execution time:  0.013271 seconds
Total render time:  0.105973 seconds


TidyHTML vomit below
line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 2 column 301 - Warning: unescaped & or unknown entity "&page"
line 119 column 11 - Warning: <form> isn't allowed in <table> elements
line 118 column 10 - Info: <table> previously mentioned
line 120 column 11 - Warning: missing <tr>
line 120 column 119 - Warning: missing </font> before </td>
line 124 column 16 - Warning: plain text isn't allowed in <tr> elements
line 120 column 11 - Info: <tr> previously mentioned
line 125 column 68 - Warning: missing </nobr> before </td>
line 141 column 68 - Warning: missing </nobr> before <tr>
line 147 column 35 - Warning: missing <tr>
line 147 column 50 - Warning: missing </font> before </td>
line 148 column 37 - Warning: unescaped & or unknown entity "&id"
line 147 column 194 - Warning: missing </font> before </table>
line 149 column 35 - Warning: missing <tr>
line 149 column 95 - Warning: unescaped & or unknown entity "&page"
line 149 column 50 - Warning: missing </font> before </td>
line 149 column 132 - Warning: missing </font> before </table>
line 156 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 158 column 9 - Warning: missing <tr>
line 176 column 13 - Warning: missing <tr>
line 177 column 102 - Warning: unescaped & or unknown entity "&postid"
line 184 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 186 column 9 - Warning: missing <tr>
line 204 column 13 - Warning: missing <tr>
line 205 column 102 - Warning: unescaped & or unknown entity "&postid"
line 238 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 240 column 9 - Warning: missing <tr>
line 258 column 13 - Warning: missing <tr>
line 259 column 102 - Warning: unescaped & or unknown entity "&postid"
line 270 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 272 column 9 - Warning: missing <tr>
line 290 column 13 - Warning: missing <tr>
line 291 column 102 - Warning: unescaped & or unknown entity "&postid"
line 293 column 74 - Warning: <style> isn't allowed in <td> elements
line 293 column 9 - Info: <td> previously mentioned
line 298 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 300 column 9 - Warning: missing <tr>
line 318 column 13 - Warning: missing <tr>
line 319 column 102 - Warning: unescaped & or unknown entity "&postid"
line 330 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 332 column 9 - Warning: missing <tr>
line 350 column 13 - Warning: missing <tr>
line 351 column 102 - Warning: unescaped & or unknown entity "&postid"
line 355 column 462 - Warning: unescaped & or unknown entity "&t"
line 359 column 17 - Warning: missing <tr>
line 359 column 17 - Warning: discarding unexpected <table>
line 362 column 35 - Warning: missing <tr>
line 362 column 95 - Warning: unescaped & or unknown entity "&page"
line 362 column 50 - Warning: missing </font> before </td>
line 362 column 132 - Warning: missing </font> before </table>
line 364 column 35 - Warning: missing <tr>
line 364 column 50 - Warning: missing </font> before </td>
line 365 column 37 - Warning: unescaped & or unknown entity "&id"
line 364 column 194 - Warning: missing </font> before </table>
line 366 column 17 - Warning: discarding unexpected </textarea>
line 366 column 28 - Warning: discarding unexpected </form>
line 366 column 35 - Warning: discarding unexpected </embed>
line 366 column 43 - Warning: discarding unexpected </noembed>
line 366 column 53 - Warning: discarding unexpected </noscript>
line 366 column 64 - Warning: discarding unexpected </noembed>
line 366 column 74 - Warning: discarding unexpected </embed>
line 366 column 82 - Warning: discarding unexpected </table>
line 366 column 90 - Warning: discarding unexpected </table>
line 368 column 9 - Warning: missing </font> before <table>
line 380 column 25 - Warning: discarding unexpected </font>
line 389 column 57 - Warning: discarding unexpected </font>
line 367 column 1 - Warning: missing </center>
line 120 column 63 - Warning: <img> lacks "alt" attribute
line 125 column 19 - Warning: <td> attribute "width" has invalid value "120px"
line 125 column 93 - Warning: <img> lacks "alt" attribute
line 141 column 19 - Warning: <td> attribute "width" has invalid value "120px"
line 141 column 98 - Warning: <img> lacks "alt" attribute
line 148 column 44 - Warning: <img> proprietary attribute value "absmiddle"
line 148 column 142 - Warning: <img> proprietary attribute value "absmiddle"
line 148 column 246 - Warning: <img> proprietary attribute value "absmiddle"
line 161 column 23 - Warning: <img> lacks "alt" attribute
line 161 column 64 - Warning: <img> lacks "alt" attribute
line 161 column 113 - Warning: <img> lacks "alt" attribute
line 161 column 163 - Warning: <img> lacks "alt" attribute
line 162 column 11 - Warning: <img> lacks "alt" attribute
line 172 column 15 - Warning: <img> lacks "alt" attribute
line 181 column 225 - Warning: <img> lacks "alt" attribute
line 189 column 22 - Warning: <img> lacks "alt" attribute
line 189 column 63 - Warning: <img> lacks "alt" attribute
line 189 column 112 - Warning: <img> lacks "alt" attribute
line 189 column 162 - Warning: <img> lacks "alt" attribute
line 200 column 15 - Warning: <img> lacks "alt" attribute
line 243 column 23 - Warning: <img> lacks "alt" attribute
line 243 column 64 - Warning: <img> lacks "alt" attribute
line 243 column 113 - Warning: <img> lacks "alt" attribute
line 243 column 163 - Warning: <img> lacks "alt" attribute
line 244 column 11 - Warning: <img> lacks "alt" attribute
line 254 column 15 - Warning: <img> lacks "alt" attribute
line 267 column 1646 - Warning: <img> lacks "alt" attribute
line 274 column 11 - Warning: <img> lacks "alt" attribute
line 275 column 23 - Warning: <img> lacks "alt" attribute
line 275 column 64 - Warning: <img> lacks "alt" attribute
line 275 column 113 - Warning: <img> lacks "alt" attribute
line 275 column 163 - Warning: <img> lacks "alt" attribute
line 276 column 11 - Warning: <img> lacks "alt" attribute
line 286 column 15 - Warning: <img> lacks "alt" attribute
line 303 column 23 - Warning: <img> lacks "alt" attribute
line 303 column 64 - Warning: <img> lacks "alt" attribute
line 303 column 113 - Warning: <img> lacks "alt" attribute
line 303 column 163 - Warning: <img> lacks "alt" attribute
line 304 column 11 - Warning: <img> lacks "alt" attribute
line 314 column 15 - Warning: <img> lacks "alt" attribute
line 327 column 1441 - Warning: <img> lacks "alt" attribute
line 335 column 22 - Warning: <img> lacks "alt" attribute
line 335 column 63 - Warning: <img> lacks "alt" attribute
line 335 column 112 - Warning: <img> lacks "alt" attribute
line 335 column 162 - Warning: <img> lacks "alt" attribute
line 346 column 15 - Warning: <img> lacks "alt" attribute
line 365 column 44 - Warning: <img> proprietary attribute value "absmiddle"
line 365 column 142 - Warning: <img> proprietary attribute value "absmiddle"
line 365 column 246 - Warning: <img> proprietary attribute value "absmiddle"
line 374 column 25 - Warning: <img> lacks "alt" attribute
line 379 column 267 - Warning: <img> lacks "alt" attribute
line 359 column 17 - Warning: trimming empty <tr>
line 125 column 68 - Warning: <nobr> is not approved by W3C
line 141 column 68 - Warning: <nobr> is not approved by W3C
line 177 column 27 - Warning: <nobr> is not approved by W3C
line 205 column 27 - Warning: <nobr> is not approved by W3C
line 259 column 27 - Warning: <nobr> is not approved by W3C
line 291 column 27 - Warning: <nobr> is not approved by W3C
line 319 column 27 - Warning: <nobr> is not approved by W3C
line 351 column 27 - Warning: <nobr> is not approved by W3C
Info: Document content looks like HTML5
Info: No system identifier in emitted doctype
Tidy found 125 warnings and 0 errors!


The alt attribute should be used to give a short description
of an image; longer descriptions should be given with the
longdesc attribute which takes a URL linked to the description.
These measures are needed for people using non-graphical browsers.

For further advice on how to make your pages accessible
see http://www.w3.org/WAI/GL.
You are recommended to use CSS to specify the font and
properties such as its size and color. This will reduce
the size of HTML files and make them easier to maintain
compared with using <FONT> elements.

You are recommended to use CSS to control line wrapping.
Use "white-space: nowrap" to inhibit wrapping in place
of inserting <NOBR>...</NOBR> into the markup.

About HTML Tidy: https://github.com/htacg/tidy-html5
Bug reports and comments: https://github.com/htacg/tidy-html5/issues
Official mailing list: https://lists.w3.org/Archives/Public/public-htacg/
Latest HTML specification: http://dev.w3.org/html5/spec-author-view/
Validate your HTML documents: http://validator.w3.org/nu/
Lobby your company to join the W3C: http://www.w3.org/Consortium

Do you speak a language other than English, or a different variant of
English? Consider helping us to localize HTML Tidy. For details please see
https://github.com/htacg/tidy-html5/blob/master/README/LOCALIZE.md