Joy Mech Fight: Joy Mech Fight Special Nintendo Entertainment System

  • ~
  • Share
JMF Special is a balance update that focuses more on the competitive aspect over its solo mode. With input taken from the competitive community, the roster is more balanced by fixing up moves, improving the less-used characters, and carefully toning down those too good. Changes to the mechanics were made to refine gameplay closer to what the developers may have intended, and more are planned. While joke characters still may not fare so well, they are far more competitive than before. Many, many cosmetic changes were also made for a more appealing and diverse presentation.
Overall, this is a far more definitive experience to play with others. In fact, this hack even works on Fightcade 2 by simply replacing the ROM! Subscribe here or join the Discord server to stay updated!

The readme file documents all changes made as well as differences between the current and previous versions.

This is the biggest update yet! You can now choose from a variety of colors for each character; many were made by the JMF community! Getting out of dizzy is now consistent regardless of the character's threshold and how far you were over. Some control refinements were also done to prevent misinputs. Lastly, part of the game was retranslated for accuracy, which has been touched up for localization.
Japanese is no longer supported. It is now far too much work now to keep them virtually identical with the way text is handled.
This update fixes a quirk in the mechanics that could be used to walk forward indefinitely but also removes most grounded cross-ups. To compensate, finding one will now be unblockable.

The project is still on hiatus as I work on other projects. Whenever the hiatus is over, development will restart by adding new characters.

Join the Discord server! discord.gg/GQ3PcFav7a

Changes in this update (from v5c to v5.1):
-Dizzy decay rate increased from 7 to 6 frames
-Dizzy cap adjusted to be threshold+20 instead of a flat 90 for all characters; the static 32-input escape has been reverted
-You will now turn immediately if you are walking instead of only at the end of an animation or while idle. This removes the ability to stall by interrupting your walk with a guard, and should lessen attacks accidentally done the wrong way. This does NOT nerf moves like Back Crush for its intended use
-Removed ability to block grounded crossups to compensate above change, if it is somehow possible. If you do find a way, I will NOT patch it
-Guarding mechanics tweaked to properly allow for both attacks being blockable on wakeup while airborne in a certain position, and keeping jump attacks hitting behind unblockable. The same code was used for both conditions and it only worked one way or the other.
-Despawn boundary lowered from 22 pixels to 16 and made symmetrical on both sides
-Fixed Head Spin and Stupefy's passive projectile property that made it impossible for the opponent to walk backwards if too close to the point where it was done
Tiger
-JPunch stun 4 > 8
-Flying Kick lift -4 > -5, hits with all four lower limbs as well as torso
-Eagle Kick hits with outer foot
Neo/Nay
-High Upper speed 8 > 9
Dachon
-All neck attacks hit with full neck (JPunch, GPunch, Sweep, Limp Spin, Wild Rush)
-JPunch pushback 4 > 3
Zak
-Walk speed 2 > 3
-Super Punch animation tweaked slightly
-Specials are invulnerable for the first two poses
Geo
-Punch, Kick, and GPunch range extended slightly
-Geo Wave comes out one frame faster, stun 64 > 80
Old
-Dizzy Threshold 82 > 80
-Attack 1 startup decreased 1 frame, pushback 5 > 4
-Attack 4 damage 14 > 16
John
-Wave damage 7 > 8
Skater
-Drive Kick hits with torso
Legend
-Punch damage 4 > 6
-Knee Attack hits with back knee and torso
-Energy Rift hit check restored when the wave appears
Leo
-Dizzy Threshold 82 > 80
-JKick pushback 5 > 6 (fix)
-Back foot hitbox removed on Flying Kick, replaced with torso
-Eagle Kick hits with outer foot
Ashura
-Dizzy Threshold 80 > 82
-Drill Typhoon stun 56 > 72
-Ashura Toss stun 72 > 64
-Sweep damage 10 > 11
-JKick Pushback 5 > 6
Houou
-Dizzy Threshold 82 > 74
-Fixed Houou Cannon not properly resetting projectile position if it runs to the edge of the screen

How to apply (PLEASE READ)
The English translation patch is not required as this hack uses it. Simply apply to a CLEAN Japanese or English ROM.
Note: No Japanese patches will be provided until further notice as the extent of the changes make it difficult to properly change in the JP ROM. Particularly, the new commands for Test Mode.
Do NOT apply the main patch over an already-patched ROM or else some changes won't carry over. IPS files only detect changes from what is used as a base. Any changes I revert will not be applied this way.

To play on Fightcade, make a backup of the ZIP file you use for the original and put the SP ROM in using the same filename.

About
Joy Mech Fight Special is the result of a single person taking in community input and improving the overall balance for competitive play alongside adding features. It is still a work in progress, though a lot was done in the first eight months it was worked on. The original balance focused mainly around its solo mode, although some characters are solid regardless. In fact, some aspects that give the game depth are also game-breaking. A fair bit was banned, but recent efforts have been made to fix these issues in ways beneficial to the metagame for SP.
Note: All changes listed below are relative to the base game. Changes between previous updates are not detailed.

Terminology
Stun: duration of hitstun/knockdown. Anything over 16 is usually a knockdown although that requires a separate property. Blockstun rolls over every 16 points; 64 stun is 16 blockstun, but 65 is 1.
Lift: Vertical property of an attack used as initial force for gravity; fall rate is 1 for attacks (explained below)
Gravity: -6p3 means starting at 6 pixels upwards per frame while adding one point to that speed every 3 frames. The former number is jump power, latter number is fall rate/floatiness

Known issues
• War Mode does not load proper palettes due to the new palette code
• Both War Mode and Random Battle are locked to palette 1

General
• Title screen updated with a new character and a proper mark for the special version
• P2 can now use Select and Start on the CSS
• All 36 "stages" can now show up in rotation (10 are added)
• Everyone is now unlocked by default. It will NOT break War mode. You can press Select+B on the title screen and choose the fourth option to reset your save data without locking out characters.
• Glow palettes are now unique for each color
• Alternate skins of the initial eight characters can be chosen with Select before confirming
• Each character has 10 colors selectable with left or right before confirming; both players cannot pick the same color
• Column D was used for a fair number of new palettes, so the game now forces $0D (a color that makes some CRT monitors act unusual) to become $0F (the normal black) on fadeout to ensure compatibility on real hardware
• Color 1 is now the default on both sides, with whoever is on the same character second shifting to the next
• Many specials and characters have had their names redone or fixed (Thanks, Kzinssie!)
• The CSS after beating Special and the training stage also are recolored
• CSS arrow colors are adjusted to reflect each character’s “primary” colors
• Certain stages along with their UI have been recolored

System Changes
• New code is implemented to allow for adjustable horizontal pushback
• Despawn boundary for projectiles lowered from 22 pixels to 16 and made symmetrical on both sides
• Blockstun cap reduced from 31 to 16 frames, and it is no longer possible for attacks to have no stun on block
• The dizzy cap is no longer a static 90, instead capping out at 16 points over the character's threshold
• Once the dizzy threshold is met it will not go below to ensure dizzy
• To compensate, the rate dizzy decays is increased from one point every 8 frames to 6 frames
• Getting hit while dizzied skips over adding to the dizzy counter, making single-hit redizzy loops impossible without a setup
• Screen shake no longer occurs on non-KD attacks against airborne opponents unless they have a lift value above 0 (sends downward)
• Guard failsafe removed. You can no longer block upon landing from the air nor after the first frame from hitstun. This is meant to encourage offense, create more combos, and make jumping riskier. You can still block on wakeup and do specials during the frames you cannot block.
• Turnaround is forced on walking to prevent infinitely walking forward to stall, as well as most grounded unblockables
• Damage scaling revamped: In the original code, all damage was lowered by 1 for every 16 HP lost after reaching 63 HP, maxing out at 3. The new code works as follows:
-If you have a a 2-0 heart lead over your opponent, all damage dealt is reduced by up to 4 points based on the attack's damage until you lose a heart. Comeback is factored into the next step.
-If an attack sends you below 65 HP, the damage is first scaled based on the attack's base damage (or after reduction from Comeback). That reduced damage then factors into how much HP remains for the final damage.
-Note: As strict as this sounds, this reduces damage less overall.
• Crossups are reworked to function more dynamically. Originally if both players faced the same direction any attack would be unblockable.
-Grounded crossups and any attack that hits from behind cannot be blocked
-Air crossups require your torso to be past the opponent to hit. The defender needs to hold away or face the attacker while holding down.

Damage Reduction Factors:
• CB (Damage): 01-11=-1; 12-23=-2; 24-40=-4
• HP<65 (Damage): 01-06=+1; 07-11=±0; 12-16=-1; 17-24=-2; 25-32=-4; 33-40=-6
• Guts (HP): 88-65=±0; 64-49=-1; 48-33=-2; 32-17=-3; 16-01=-4

Controls
• It is possible to do Back+P+K (4AB) specials out of guard, but not while holding down
• You can now press Down+K on the same frame for Leg Sweep
• Directional inputs for most specials now properly clear the buffer once performed
• The proper direction must be held to use single-direction charge specials. Giant, Gaian, and Giganto are the only exceptions with their Wave and Tackle

Characters
• Stun has been raised across the board for non-KD punches
4: Flame, Tiger, Neo, Senju, Sasuke, Eye, Sukapon, Zak, Bumpy, Geo, Gel, Skater, Legend, Hover, Shenron, Star, John, SuperZak, Blaze, Leo, Nay, Ashura, Hanzo, Wai, Sukapokan, Houou
8: Giant, Old, Grak
• All knockdown Kicks have their lift raised from -6 to -7: Jibber, Ghoston, Giganto, SuperZak, Blaze, Nay, Hanzo, Wai, Gaian, Sukapokon, Ra, Garborg, Houou
• All Sweeps' lift reduced from -6 to -5 except Neo

Sukapon (スカポン)
• JPunch hits with head
• GPunch stays out 3 frames less, recovers 2 frames faster
• Konaniran starts 6 frames faster, blockstun 0 > 16, sticks out 17 more pixels, approach speed 6 > 7
• Sukapon Roll lift -4 > -5, bounce -6p4 > -7p3

Flame (ホノオ)
• JPunch hits with head
• GPunch recovers 2 frames faster
• Sweep stays out four less frames, recovery decreased 4 frames (slower, but safer)
• Fire Ball blockstun 0 > 16
• Air Throw stun 32 > 36
• Fire Wave takes 2 more frames to start up, recovers one frame faster

Tiger (タイガー)
• Walk cycle altered to make a bit more sense
• JPunch stun 4 > 8
• Flying Kick lift -4 > -5, hits with all four lower limbs as well as torso
• New jump punch is a knee attack with slightly better range but takes 2 more frames to fully extend
• Eagle Kick stun 16 > 12, lift -2 > -3, hits with outer foot

Neo (ネオ)
• Kick, JKick and GPunch lift -4 > -5, pushing out more (about half-screen)
• Kick stun 8 > 16, pushback 3 > 4
• JPunch hits with head and inner arm
• JKick lift -4 > -5
• Sweep stun 72 > 64 (block 8 > 16)
• Neo Upper High version forward movement 6 > 9
• Wave Shot startup reduced 2 frames, damage 10 > 11
• Multi-kick part 4 uses low kick, recovery reduced 1 frame

Senju (センジュ)
• JPunch hits with head and torso
• Sweep lingers 7 less frames on recovery
• Flying Drill now retains half momentum on landing, blockstun 0 > 16
• Neck Throw stun 16 > 20
• Drill Attack passive cooldown timer removed

Sasuke (サスケ)
• Jump -8p2f > -10p1f (same height, much faster; identical to Zak/Eye/Wai)
• Punch pushback 1 > 2
• GPunch extends one frame slower to prevent whiffing up close
• Sweep pushback 3 > 4
• Air throw range 104 > 96, vertical range 64 > 52, allowed height (from top) 64 > 72, lift 8 > 10, release frame 20 > 96 and releases once grounded
• Kagizume pushback 5 > 6, hitbox reactivates when the other arm extends
• Tomoenage stun 16 > 24, throw force -4 > -3 (gap after throwing is reduced notably)
• Sliding raised one unit to hit with outer foot, refreshes the hit check on startup to work after Kagidume, duration shortened 4 frames

Eye (アイ)
• JPunch hits with head
• GPunch takes one frame longer to extend and return, stun 20 > 16
• Eye Copter blockstun 0 > 16
• Wai Suplex release frame 59 > 32, stun 38 > 44, fixed to do full animation even if interrupted early
• Cutter Kick hits with torso

Giant (ジャイアント)
• Punch damage 5 > 6
• Kick stun 8 > 12, lift -4 > -5
• Headbutt can be done out of guard

Dachon (ダチョーン)
• Pre-dizzy duration 82 > 94
• All neck attacks hit with full neck (JPunch, GPunch, Sweep, Limp Spin, Wild Rush)
• Kick stun increased 4 frames
• New JPunch: 8 damage/stun, great air-to-air, lifts a bit higher, but only stays out for a short period
• Limp Spin animation reversed (dodges moves), forward reach extended slightly, full neck is a hitbox, has invincibility until 90° rotated (~5 frames)
• Wild Rush hits every time it goes down, hits with upper neck, stun 72 > 68 (guard 8 > 4)
• SavannaDrop stun 20 > 28, does not work if A and B are pressed together
• African Claw can hit multiple times, damage 16 > 14, pushback retained, stars with full-ranged kick (punch)

Zak (ザコ)
• Movement speed 2 > 3
• Movement for specials no longer relies on universal timer, making *when* it was done consistent, especially during multiple hits
• The flag for air specials now disables when the down charge is 0. Once enabled, it will decay at half-rate from a maximum of 16 frames to ~30, doubling the window for all specials
Zak's Specials are invulnerable for the first two poses
• Punch damage 2 > 3, startup reduced 1 frame, pushback 1 > 2
• Kick damage 4 > 5, windup and recovery reduced 1 frame, pushback 2 > 3
• JPunch damage 4 > 6, hits with head pushback 2 > 3
• GPunch damage 4 > 7 stays out 3 frames less, pushback 2 > 3
• Sweep damage 4 > 5, pushback 2 > 3
• Super Punch animation tweaked slightly, stun 72 > 76, lift -6 > 20, pushback 5 > 3, (guard 8 > 12), startup linger lowered 3 frames, stays out 3 more frames
• Super Kick foot extended 8 units, damage 16 > 20, stun 72 > 76 (guard 8 > 12), startup linger lowered 6 frames, takes 5 more frames to fully extend, takes 1 more frame to retract
• Air Super Punch stun 72 > 80 (guard 8 > 16), ends 8 frames sooner
• Air Super Kick -6 > 24, pushback 6 > 2, stun 72 > 80 (guard 8 > 16), damage 20 > 24, ends 6 frames sooner

Bumpy (ホコボコ)
• Punch startup reduced 2 frames, pushback 1 > 2
• Kick startup reduced 1 frame, pushback 2 > 3
• JPunch hits with feet and head, pushback 2 > 3
• JKick damage 4 > 6
• GPunch winds up and extends 1 frame faster, damage 6 > 7, pushback 3 > 4
• Panic Attack damage 4 > 6, missing hands added, stun 16 > 2, pushback 2 > 3
• Head Spin lift -4 > -5, now returns if contact is made
• Bumpy Ride damage 8 > 10
• Hurricane now hits with his head, the window to hop is removed, but to repeatedly hop the controller MUST return to neutral

Geo (ジオ)
• Normals use John’s damage; punch 4 > 6
• Energy assets are now gem-shaped (Thanks, Spoox!)
• Punch, Kick, and GPunch now use balls to attack
• Punch startup and recovery slowed down 1 frame
• Kick takes one frame longer to extend, stays out 2 frames less
• Jump Punch hits with outer hand
• GPunch has more range, stays out one more frame
• Sweep lingers 2 less frames on startup
• Jetstream hits with head, speed can be adjusted by holding back or forward beforehand
• Geo Crush damage 8 > 10, lift 0 > -1, consistently moves 3 frames between each pose, reordered for better coverage
• Geo Suplex damage 13 > 12, stun 38 > 48
• Geo Wave startup reduced 11 frames, stun 16 > 80 (knocks down), lift -4 > -6

Grak (ガラック)
• Punch damage matches Kick
• JPunch is a new move that extends both claws out; the one with less range hits closer to the ground
• JKick, Grak Attack, and Reverse Kick hits with all four legs
• JKick stun 16 > 12, lift -4 > -3
• Grak Attack stun 16 > 14

Old (オールド)
• Punch, Kick, and JKick damage increased by 2
• GPunch extends at a downward angle, stun 16 > 48 (KD, block intact), lift -4 > -5
• Attack 1 startup slowed down, lingers less and retracts slower, damage 12 > 10, lift -4 > -5, pushback 5 > 4
• Attack 3 damage 12 > 15, stun 72 > 68 (block 8 > 4), loops twice, recovers four frames faster, charge time 32 > 28 frames
• Attack 4 stun 16 > 64 (KD, block intact), damage 12 > 16

Jibber (ジボル)
• Punch stun 72 > 56 (block intact)
• Kick lingers 2 less frames on startup, stun 72 > 76 (block 8 > 12)
• JPunch loses knockdown, lift -6 > -4, stun 72 > 8 (block intact), hits with extra limbs
• Sweep no longer starts as an anti-air
• Thunder Arm startup reduced 3 frames, damage 12 > 15, secondary limbs now hit
• Broken Arm:
- Can hit multiple times, but hitboxes only activate once during each extend
- Lingers for 3 frames before extending, recovery increased 6 frames, does 2 loops from 3
- Damage 12 > 8. lift -6 > -4, stun 72 > 8 (block intact); loses knockdown
- Now properly shows joints while retracting from the lower thrust

Gel (ジェル)
• Kick loses inner foot hitbox, gains outer hand
• JPunch loses torso hitbox, gains inner arm hitbox
• JKick gains torso hitbox
• GPunch gains head and torso hitboxes, damage 6 > 7, lift -4 > -5, stun 16 > 12, stays out 3 frames less, recovers 2 frames faster, pushback 3 > 4
• Sweep hits gains torso and inner leg hitboxes, loses knee hitbox (it was inside the torso)
• Geyser Knee gains outer foot hitbox
• Slick Twist retains half momentum on landing, gains head/torso and both extra limb hitboxes, lift -4 > -6, stun 8 > 24 (block intact)

Skater (スケーター)
• Wheel graphics updated
• Kick force 4 > 3, lift -4 > -5
• JPunch updated with a new pose that covers in-front and below, hits with arms and tires, damage 8 > 9
• JKick blockstun 0 > 16
• Somersault is now a throw with P/K versions (10/16 damage), prioritized over other specials like all other characters with grabs
• Drive Kick hits with torso
• Spin Upper is possible from guard, linger pose removed to attack faster, i-frames and hitbox toggle match new timing, extends four frames slower for better coverage, stays out 6 frames less

Ra (ラー)
• All attacks hit with limbs that move except for JKick (ex. Sweep doesn’t work as an anti-air)
• Punch has 1 less frame on windup, linger, and retract; damage 8 > 10
• Punch and JPunch lose knockdown, lift -6 > -4
• JPunch blockstun 8 > 12
• GPunch lingers 4 less frames on startup
• Sweep recovery reduced 15 frames, stun 72 > 64 (block 8 > 16)
• Spinning damage 16 > 14

Legend (レジェンド)
• Dizzy Threshold 72 > 68
• Punch damage 4 > 6
• Energy Rift damage 20 > 18, pushback retained. hit check restored when the wave appears
• Knee Attack stun 72 > 56 (guard unchanged), hits with back knee and torso
• Sonic Throw damage 13 > 18, stun 20 > 48
• Heel Press damage 10 > 11, lift -4 > -5, bounce -6p2 > -5p2

Hover (ホバー)
• Punch lower hand shifted 4 pixels down, range reduced 1 pixel
• GPunch lower hands shifted 4 pixels down, range increased 1 pixel, lingers 2 less frames on startup, recovers 6 frames faster
• Hyper Upper now keeps him afloat (vertical reach raised), damage 16 > 14

Shenron (シェンロン)
• Jump -7p3 > -6p3, matching John
• Jump Punch hits with both hands to cover above him
• GPunch lingers one less frame on startup, hand lowered slightly
• Sweep lingers 3 less frames on recovery
• Fire Breath startup reduced 2 frames, damage 16>15, stun 72 > 56 (block intact), lift -4 > -5
• Dragon Spin stun 72 > 80 (block 8 > 16)

Star (スター)
• Jump -8p3f > -9p2f (~10 frames faster and a bit lower)
• Kick extension slowed down 2 frames
• GPunch lingers 2 less frames on startup
• JPunch torso added, damage 8 > 10
• JKick pushback 4 > 5
• Back Crush is now done using Back+Kick, vertical speed -16 > -14; horizontal speed 8 > 9
• Cannon Hit gains torso hitbox, lift -6 > -7
• Stardust hits with his entire body, vertical speed -11 > -10

Ghoston (ゴーストン)
• Kick, JPunch, JKick, GPunch, Soul Shot blockstun 0 > 16
• All attacks hit with all four balls
• Kick damage 8>12, transitions in and out faster with a new and shorter animation
• Sweep fixed: lowering the invisible "stands" makes the animation smoother and allows the lowest ball to hit at the end

Giganto (ギガント)
• Damage of normals raised: JPunch 8 > 11, JKick 8 > 10, GPunch 8 > 13, Sweep 8 > 12
• Kick, JKick, GPunch blockstun 0 > 16
• JPunch loses inner hand hitbox; gains inner foot, head, and outer hand
• JKick inner leg shifted back 9 pixels
• CyclonePress gains head hitbox, damage 8 > 9
• Tackle now hits with his outer hand, damage 24 > 22, pushback unchanged
• Piledriver damage 24 > 28

John (ジオーン)
• Dizzy Threshold 72 > 74
• Sprites redrawn to look like a true hybrid between Geo and Bumpy
• Damage of all normals but Punch lowered by 2; Punch 8 > 4
• Kick starts and recovers 1 frame faster
• JPunch stun 4 > 8
• JKick hits with torso
• GPunch startup reduced 1 frame
• Sweep lingers 2 less frames before extending
• Tantrum stun 6 > 4
• John Wave is now a pseudo-projectile reusing Clown's Shuffle Ball special done with B,F,P: 8 damage, hits multiple times on block, no knockdown, other properties retained
• John Toss is modified from Clown's "throw" complete with funny unused sound, releases one frame later, ends 4 frames later, throw force -4 > -5, damage 12 > 13
• JohnCyclone now hits with his head, the window to hop is removed, but to repeatedly hop the controller MUST return to neutral

SuperZak (スーパーザコ)
• Idle and Forward walk animations sped up (affects hurtboxes slightly)
• Punch pushback 2 > 3
• Kick pushback 3 > 4
• Jump Punch hits with head, damage 6 > 7, stun 72 > 8 (loses knockdown; blockstun intact), lift -6 > -5, pushback 3 > 4,
• JKick pushback 3 > 4
• GPunch damage 6 > 8, pushback 4 > 5
• Sweep pushback 3 > 4
• Zak Upper startup reduced 3 frames, stun 72 > 76 (block 8 > 12) lift -6 > -9
• Zak Kick damage 16 > 14, facing left movement -9 > -8, doesn't fly as often from jump version

Garborg (ガーボーグ)
• Punch hits with inner joint, lingers 3 frames less on startup, takes one frame longer to fully extend, lift -4 > -5, loses knockdown
• JPunch hits with both joints
• JKick hits with head
• GPunch startup reduced 7 frames overall
• Sweep hits with both joints, duration reduced 8 frames: one less loop, but each rotation takes one more frame

Blaze (カエン)
• Dizzy Threshold 84 > 80
• GPunch extends 2 frames slower, stays out 1 less frames, lift -6 > -5
• Sweep stays out four more frames, recovery increased 4 frames (Traditional Ryu/Ken Sweep)

Leo (レオ)
• Dizzy Threshold 84 > 82
• Walk cycle altered to make a bit more sense
• Kick KD stun 8 > 72 (properly knocks down), lift -6 > -7
• New jump punch is a knee attack with slightly better range but takes 2 more frames to fully extend
• JKick knockdown flag removed, lift -6 > -4
• GPunch KD flag removed, lift -6 > -4

Nay (ネイ)
• Dizzy Threshold 80 > 78
• Nay JPunch Lift -6 > -5, gains head hitbox
• Nay Upper damage 24 > 22, High forward movement 6 > 9
• Bit Kick fix on hit 4 added

Ashura (アシュラ)
• Dizzy Threshold 84 > 82
• JKick stun 72 > 54 (guard 8 > 6), pushback 5 > 6
• Sweep lingers 7 less frames on recovery, damage 10 > 11
• Drill Typhoon stun 56 > 72, passive cooldown timer removed
• Ashura Toss stun 72 > 64
• Needle takes 2 more frames to fully extend, recovery reduced 3 frames

Hanzo (ハンゾー)
• Dizzy Threshold 80 > 78
• GPunch extends one frame slower to prevent whiffing up close
• Mist Toss damage 24 > 22 range 104 > 96, vertical range 64 > 52, allowed height (from top) 64 > 72, lift 8 > 10, release frame 20 > 96 and releases once grounded
• Double Slash hitbox reactivates when the other arm extends
• Tomoe Suplex stun 16 > 28, damage 12 > 14, throw lift -6 > -5 (gap after throwing is reduced slightly)
• Jet Slide damage 10 > 11, blockstun 0 > 16, raised one unit to hit with outer foot, refreshes the hit check on startup to work after Double Slash, duration shortened 4 frames

Wai (ワイ)
• Dizzy Threshold 84 > 82
• JPunch hits with head
• GPunch takes one frame longer to wind up (hitboxes delayed), extend, and return
• Wai Copter stun 64 > 72 (block 0 > 8)
• Slash hits with torso
• Wai Suplex release frame 59 > 32, stun 64 > 60, h-speed -2 > -3, fixed to do full animation even if interrupted early
• Vulcan Claw stun 2 > 3, lift 0 > -2

Gaian (ガイアン)
• Dizzy Threshold 88 > 84
• Punch damage 10 > 9, stun 72 > 52 (block 8 > 4), lift -6 > -5
• Kick damage 11 > 12
• JKick stun 72 > 56 (block intact), lift -6 > -5
• GPunch damage 16 > 14
• Hammerhead can be done from guard, damage 20 > 18
• Dash stays out 2 more frames, damage 24 > 22
• Power Crash uses Piledriver code to bounce away, loses EX throw, damage 18 > 22, stun 64 > 72, other properties altered to make it look decent

Skapokan (スカポカーン)
• Dizzy Threshold 80 > 76
• JPunch hits with torso
• GPunch recovers 2 frames faster
• GPunch/Sweep damage 10 > 11
• Left hand added to Insanity, stun 2 > 5
• Pokan Toss damage 24 > 20
• Pokan Roll bounce altered -6p4 > -7p3, flashes properly when doing EX input

Houou (ホウオウ)
• Dizzy Threshold 90 > 74
• Punch damage 8 > 7
• Kick damage 12 > 10, lift -6 > -8, takes two more frames to extend, stun 64 > 70 (guard 0 > 6)
• JPunch, JKick stun 64 > 56 (block 0 > 8)
• GPunch damage 14 > 12, extends 4 pixels lower, stun 64 > 58 (block 0 > 10), windup and extend increased 2 frames
• Houou Upper damage 24 > 18, pushback 9 > 10, stun 104 > 88 (block intact), lift -16 > -14, head hitbox replaced with torso, startup increased 2 frames (moves out slightly more), recovery increased 4 frames
• Houou Cannon damage 12 > 8, stun 72 > 12 (guard 8 > 12, loses knockdown), recovery increased 4 frames, normal speed 8 > 6, fast speed 10 > 9, max vertical speed 4 > 3
• Houou Break damage 18 > 14, sends up slightly higher to increase distance
• Houou Crash damage 20 > 16, legs don’t stick out as much, hits with outer knee instead of outer foot, facing left movement -9 > -8, cannot hit during startup

Shoutouts:
Tobemorecrazy- A passionate lover of underrepresented retro fighters. He has put in tons of work to bring exposure to niche competitive communities. He has shown interest in NES fighters for a while now and discovered the JMF Discord community. He also found an extremely-useful Japanese page full of RAM addresses which opened the door for me to hack this.
Kzinssie- A member of our community that joined during the development of v5. She retranslated the names of characters and attacks, which I had permission to use for this. I took creative liberties on some of them with the new names as a basis.
Enigami- A talented hacker with an interest for retro fighters as well. Ambitious yet careful, I learned to never underestimate him. Without his interest in potentially making a tourney-friendly version of JMF I likely wouldn't have jumped on board.
Refreshing Lemonade- Former JMF hacker whom I took the "JMF hacker" reigns from despite me having far less experience at the time. Despite his best to break down the game I saw many errors in his findings. I was given resources on 6502 assembly as well as everything he worked on, but none of his actual work was used in this.
Letterbomb- Owner of the JMF Discord server. Without him running the current one I don't think this community would be what it is now. Join here: discord.gg/GQ3PcFav7a
Super Lame Kirby- Constantly provides feedback on my work. There’s always some oversight he points out every time I make a new update on the server.
842番 and Spoox- Your appreciation of my efforts is a huge motivator for me. Stay awesome you two.
MESEN- Although development seems to be over, it remains highly useful for development and debugging. It does like to crash a lot though, and check checksums to render my save states useless each time I reload the ROM.
The NES Dev Server- The community is friendly and full of experienced members who can assist anyone interested in working on anything NES-related. discord.gg/T6SQhSS7UC
The rest of the JMF community- If it wasn't for your vested interest in the game I may not be doing this.

Character Palettes:
Streetwize- Everyone
Spoox/JadeBladeGamer22- Everyone
Letterbomb- Jibber, Houou, Gaian, Dachon, SuperZak, Wai
Ned- Jibber, Garborg, Dachon, Sasuke
Kzinssie- Ghoston, Dachon, Leo, Blaze
Super Lame Kirby- Hover
IcyKeswick- Gel, Neo, Legend, Grak
Enigami- SuperZak
Infu- Gaian, Dachon
Floppy- Gel
Joy Mech Fight- Neo, Giant, Sukapon, Dachon, Zak, Grak, Skater, Shenron, SuperZak, Nay, Gaean (yes, from the random garbage in the space I used, some colors looked neat enough to touch up as palettes)


Closing thoughts
If you've reached this far, thank you. For looking into JMF, playing my hack, reading this to be fully aware of what I did, and just being awesome. If you were on the Discord server, then you probably also put up with my frequent updates between major releases. I have finally reached a point where I feel my work is more or less complete. I always strived to do something new to challenge myself and learn more, which was why I was able to keep working for so long. I have spent almost every day working on JMF Special since Christmas Eve 2020, totaling 8 months. At first, I was buffing Ra, then I RAM-hacked the unused clown into a full character. When I decided to turn Skater's most useless special into a throw as a joke, I actually gathered interest. That was the start of the "Streetwize Balance Patch" as people called it. I labeled it JMFBal, updating frequently as ideas came to me. Scope creep is a pain, as every time I felt I was good enough to release I think of all these other cool buffs that helped improve the weaker cast. With the sixth major revision, that was when I called it Special and decided to start over on the number, so this is actually v10, and around the 30th release overall. That's kinda embarrassing honestly, but with the release of Special I aimed to update less frequetly. The "betas" released on Discord after a while made that plan fall through, however. Some things just never change it seems.
Honestly, I never thought I'd ever become a hacker despite a background in programming, but here I am. To tell myself back in 2017 when I started breaking down fighting games in the hopes someone would go around and improve them that I'd eventually do such myself... Assembly is not easy to read. However, everything just started clicking as I kept working on it. I can't exactly give advice on how to become a hacker yourself as I'm mainly self-taught at this point. I took a class on MASM though, which did help a bit. This all started by just tweaking numbers. I was looking at a Japanese page that had RAM addresses, and I found those in the ROM. After a month or two of tweaking numbers, I wanted to figure out more. I was initially worried that I wasn't going to get much help as the former hacker lost interest and the hacker I've been in touch felt like my efforts were going to warrant not needing his help. Despite my uncertainty, it turns out this was all for the better. The NES dev server was patient to work with me and provided help in the moments I needed it most. The real catalyst though was after months were spent trying to figure out the location of "frame data", and after I grabbed XVI32 for wildcard searches, I finally figured out why it all eluded me. Everything just began falling together at that point. MESEN is really powerful as you can edit both code and graphics directly. My only gripe is its instability and reliance on CRC codes for save states. I get it, but losing a bit of convenience is just annoying when you keep overwriting the ROM so you don't keep making duplicate ROMs to track and re-label. I am taking a break for now because I've worked on this for so long. I won't say when I'll return to this, but I promise I'll return in full force as I plan to finally start restoring the unused characters (and give John an actual unique slot). I already have the Clown fully realized from my RAM-hacking back in March. The unused robot and one more character are planned as well. I'll work and release characters one at a time to keep it manageable, with John first as to give Jester his space back. Think of it like "DLC" of sorts.
I hope you enjoy this de-facto final update. I didn't revamp everything I wanted to like the stages, but for now it's in a great spot. I've done my best to fix many of the major mechanical flaws in ways that still allow for interesting gameplay and put in new mechanics to beter refine the gameplay. I even went out of my way to add in many cool cosmetic and QOL features. I think I'm most proud that I found a way to unlock everyone without compromising the singleplayer mode though. The community struggled in getting a version that had everyone unlocked as there was no easy way to do so, and the former hacker had a sloppy edit that screwed up War mode. While mine was slightly cleaner, I later found the perfect solution. I personally don't care to play it, as given by me disregarding the fact everyone uses color 1 now, but I am not going to screw people out of being able to play through the entire mode. Maybe later on in the future I'll fix it up. For now, just enjoy Special for what it is, as it's going to stay way it is for a while barring no game-breaking bugs turn up.

Database match: Joy Mech Fight (Japan)
Database: No-Intro: Nintendo Entertainment System
File SHA-1: A8C2984695B82D518E53A4C7E4376BE867013D06
File CRC32: D6C81006
ROM SHA-1: 9C8F53AD0348EE58D842B86FB845C8014D10FA21
ROM CRC32: 708EA2BE
Release Date
Nov 3, 2021
2 years ago
Similar Games
Popular Nintendo Entertainment System Games

Play Joy Mech Fight: Joy Mech Fight Special Game

Experience Joy Mech Fight: Joy Mech Fight Special Game (USA) online exclusivly at PastGames.net. Get Joy Mech Fight: Joy Mech Fight Special ROM and use it with an emulator of your choice. Joy Mech Fight: Joy Mech Fight Special can be played on PC, Mac, iOS and Android using our high quality downloads. PastGames is Americas #1 choice for Retro Games like Joy Mech Fight: Joy Mech Fight Special.