News: 11 March 2016 - Forum Rules

Author Topic: [NES] Joy Mech Fight Special  (Read 3283 times)

Streetwize

  • Jr. Member
  • **
  • Posts: 13
    • View Profile
[NES] Joy Mech Fight Special
« on: April 20, 2021, 09:30:35 pm »
I might as well make a thread here for feedback. Being the recursive person I am I updated it frequently on the Discord server, but now that it's on here I need to do so less to not be so overbearing. At least the subscribe feature makes that not as big of an issue I guess. That said, I will provide smaller, direct patches so you don't need to constantly patch a clean ROM for convenience.
The goal is to not only refine the game's balance, but to also eventually add content. As I'm learning things as I hack, don't expect that to happen anytime soon. As it stands I will need to expand the ROM as I cannot find enough free space to properly add two characters' worth of poses, especially after using animation code for one of them to declone another character.
I am open to all feedback regarding the game. There are still a few things I don't know how to adjust though like projectile speeds or hurtbox detection, but I can say I can balance most of the game now.

Future Plans:
Further balance characters based on feedback
Reduce overall reliance on the universal timer for consistent movement (Did so for Zak right now, but the setup is there for others now)
Start decay of dizzy when not zero instead of using a universal timer that affects both players simultaneously
Disable attack properties on the last part of attack animations
Figure out how throw conflicts are settled and randomize them better using $0076 (an address determining whose port's graphics to prioritize). Create "in-between" movement speeds for flexibility (tried this. Didn't like the jittery camera)
I made an attempt on this but scrapped it upon realizing that throws calling an airborne state (like Eye/Wai) nullify it.
Make a patch for cosmetics-only and one to restore War mode (will lock all characters). I made a clean way to unlock everyone now. I'll probably make a cosmetics patch for the next update.
Alter pushback to use the h-velocity byte reserved for throws instead of relying on damage itself I made it so that 0 uses damage for convenience
Remove limitation of special block damage based on its base damage Turns out it worked on hit, so I revamped it overall to better scale stronger hits on top of it. One of my posts explains it in full detail.
Ensure dizzy once the threshold is met; increase dizzy recovery to compensate. Done, though I need to make sure now that scaled damage isn't used for dizzy. Also done, along with what should be everything else affected by damage. I even added a comeback factor if you're too far behind.

Links:
RHDN Page
Full changelog (text only)
Discord Server
JMF Resource 1
JMF Resource 2
Note: Addresses 1XXXX refers to 0XXX-1XXX in Battery RAM/WRAM on most emulators and 6XXX-7XXX on FCEUX.
« Last Edit: August 13, 2021, 05:43:53 pm by Streetwize »

Streetwize

  • Jr. Member
  • **
  • Posts: 13
    • View Profile
Re: [NES] Joy Mech Fight Special
« Reply #1 on: May 01, 2021, 05:07:43 pm »
I am just going to post here about a tournament being hosted for this hack. Anybody is free to enter. It is going to be using v2r1, which should be up on this site soon. If you're interested, feel free to check out the Discord server.

I also apologize for not properly double-checking my previous submission to not include the proper IPS file. I was in such a rush to upload something after realizing that I made the game crash on certain stages. If it happens again, you can apply the Japanese patch onto an English ROM. The only thing you'll be missing out on is the fixed English as it doesn't alter any text whatsoever.

Flaviogames

  • Full Member
  • ***
  • Posts: 154
    • View Profile
Re: [NES] Joy Mech Fight Special
« Reply #2 on: May 01, 2021, 08:50:58 pm »
Streetwize: I didn’t know this game, I found it interesting and its project to refine it can make the game spectacular, I don’t understand anything about programming and even so I’m imagining a bomberman 2 remake, my first attempt to make sprites for min was a surprise, I respected the NES color limit using 4 colors per sprite, but I'm not sure if that would work, see the link to a video I made https://youtu.be/8f4Q2IUSeNM

Streetwize

  • Jr. Member
  • **
  • Posts: 13
    • View Profile
Re: [NES] Joy Mech Fight Special
« Reply #3 on: May 02, 2021, 12:50:47 pm »
My programming skills are rudimentary. I do not understand hardware architecture and my skills are limited to game logic. That said, I can tell you that your sprites won't work. You need to use three colors as the fourth is reserved for transparency. No matter how you arrange the palette you'd end up with part of the graphics missing from what you have drawn.
Edit: There are tricks like overlaying and separation for more colors, but I don't know the practicality or efficiency for such.

You did this on five ten threads? I'll be frank. I don't think this is the best way to go about asking for help. I don't have an issue with Bomberman, but what would be in it for me? For us? I do respect your attempt at spriting as you prove you aren't someone who only provides ideas. Even if I was able to make games from scratch why should I, or anybody else, take time away from working on OUR passion projects to work on yours? It just doesn't make sense.

May 08, 2021, 08:02:27 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
I mistyped the link for the Twitch. I'll be streaming a new update for this with the tournament organizer here. We were supposed to be using the version currently on here, but since nobody entered I decided we should simply play the update. I'll bring the update here after we're done streaming.
https://www.twitch.tv/conspiratoriai
« Last Edit: May 08, 2021, 08:02:27 pm by Streetwize »

Streetwize

  • Jr. Member
  • **
  • Posts: 13
    • View Profile
Re: [NES] Joy Mech Fight Special
« Reply #4 on: May 21, 2021, 11:33:29 am »
I'll be honest. I had no idea I'd ever get as far as I have with hacking this game, and the experience is pretty cool. When I first started with assembly, I didn't really understand much. I just saw relevant numbers and tweaked them. That said, I have messed with tile and palette editors before.
This project started out by simply tweaking a few attributes of one of the bosses who was a bit underwhelming. Then I found animation timings (which took me months to properly find in the ROM) and made a cheat file to buff the training dummy. Later on, I figured out pose data. In a full week's worth of effort, I managed to RAM-hack a full moveset in for the unused Clown character. The rebalance project "officially" began after making a character who "lost to guarding" feasible by simply converting a useless special move into a throw, which looked decent on its own. I applied some other changes and then put it out for others in the community to try. Since then I have always been trying to find more about the game. Every major update always included something new to challenge myself and learn more about JMF and the FC. My last build on Discord before turning it into Special (and submitting here) tweaked the save function to unlock everyone (but it broke War mode), v1 fixed a block damage bug, v2 altered guardstun (a second time) and improved dizzy mechanics, v3 expanded stage rotation and changed movement properties of specials, and the newest update adjusts the controls to fix special move overlap, tweaks a throw's range, and adjusts invincibility/hitbox activation. I have a few ideas on where to go next, but for now, I'll just play it by ear as I've done thus far.

That being said, would people be interested in other versions of the game such as cosmetics-only or just the mechanical improvements? I do have an April Fool's mod that I should get around to updating soon. It contained many of my balance changes at the time but I tweaked certain characters intentionally as part of the joke.

G30FF

  • Jr. Member
  • **
  • Posts: 70
    • View Profile
Re: [NES] Joy Mech Fight Special
« Reply #5 on: May 21, 2021, 04:45:24 pm »
I have to say, I never paid much attention to this game in the past, but after seeing your hack I started to fall in love with JMF. I had no idea there was so much to it from just peeking at the game a while ago! Thank you for fixing War mode (though some of the text in War mode has some random "3" characters appearing in text boxes on the character select and in other dialogue. Nothing game breaking, just odd). And thank you for all your hard work on this mod! Looking forward to seeing what you do next!

sebastianangel

  • Full Member
  • ***
  • Posts: 223
  • you can always improve
    • View Profile
    • sega genesis
Re: [NES] Joy Mech Fight Special
« Reply #6 on: May 26, 2021, 10:51:09 am »
I'll be honest. I had no idea I'd ever get as far as I have with hacking this game, and the experience is pretty cool. When I first started with assembly, I didn't really understand much. I just saw relevant numbers and tweaked them. That said, I have messed with tile and palette editors before.
This project started out by simply tweaking a few attributes of one of the bosses who was a bit underwhelming. Then I found animation timings (which took me months to properly find in the ROM) and made a cheat file to buff the training dummy. Later on, I figured out pose data. In a full week's worth of effort, I managed to RAM-hack a full moveset in for the unused Clown character. The rebalance project "officially" began after making a character who "lost to guarding" feasible by simply converting a useless special move into a throw, which looked decent on its own. I applied some other changes and then put it out for others in the community to try. Since then I have always been trying to find more about the game. Every major update always included something new to challenge myself and learn more about JMF and the FC. My last build on Discord before turning it into Special (and submitting here) tweaked the save function to unlock everyone (but it broke War mode), v1 fixed a block damage bug, v2 altered guardstun (a second time) and improved dizzy mechanics, v3 expanded stage rotation and changed movement properties of specials, and the newest update adjusts the controls to fix special move overlap, tweaks a throw's range, and adjusts invincibility/hitbox activation. I have a few ideas on where to go next, but for now, I'll just play it by ear as I've done thus far.

That being said, would people be interested in other versions of the game such as cosmetics-only or just the mechanical improvements? I do have an April Fool's mod that I should get around to updating soon. It contained many of my balance changes at the time but I tweaked certain characters intentionally as part of the joke.
congratulations for your great work on this beautiful game which I met recently while I was looking for a solid fighting engine for my street figther dx project, this was one of the most interesting...due to technical issues and lack of programming skills I chose to work on another base.it would be great to continue improving it even more in the graphical aspect bringing your own style to it greetings  :woot!:

Streetwize

  • Jr. Member
  • **
  • Posts: 13
    • View Profile
Re: [NES] Joy Mech Fight Special
« Reply #7 on: May 26, 2021, 12:56:07 pm »
I have to say, I never paid much attention to this game in the past, but after seeing your hack I started to fall in love with JMF. I had no idea there was so much to it from just peeking at the game a while ago! Thank you for fixing War mode (though some of the text in War mode has some random "3" characters appearing in text boxes on the character select and in other dialogue. Nothing game-breaking, just odd). And thank you for all your hard work on this mod! Looking forward to seeing what you do next!
Oh, right. That was from fixing Old's special names in training mode. That and some text errors found in the JP version have been fixed for the next update. The reason it's taking so long is that one of the features I'm adding has new bugs that keep popping up, but I promise it's an addition many will appreciate after playing stage 1 of War mode.

Edit: Will wait to properly post again to bump the thread with a pre-announcement. If you're reading this, have a little preview of the upcoming v4 update that'll be on here soon.
« Last Edit: May 29, 2021, 06:39:31 pm by Streetwize »

G30FF

  • Jr. Member
  • **
  • Posts: 70
    • View Profile
Re: [NES] Joy Mech Fight Special
« Reply #8 on: May 30, 2021, 01:37:18 am »
I just downloaded the update, and that's a really great addition! Very cool! Although I wanted to let you know, there's a problem with the english version of the patch. I patched a clean JP rom with the english version of JMF SP v4, and the text was all in Japanese. Applying the Quick patch to my already patched v3r1 rom worked properly though.

Streetwize

  • Jr. Member
  • **
  • Posts: 13
    • View Profile
Re: [NES] Joy Mech Fight Special
« Reply #9 on: May 30, 2021, 02:49:01 pm »
I just downloaded the update, and that's a really great addition! Very cool! Although I wanted to let you know, there's a problem with the english version of the patch. I patched a clean JP rom with the english version of JMF SP v4, and the text was all in Japanese. Applying the Quick patch to my already patched v3r1 rom worked properly though.
Try v4a. It just went live. I had to fix a really bad bug that stopped certain specials from being done. I'll be doing a v4b in the next few days to squish a few other similar bugs both from me and the game. None of them are game-breaking, but definitely unintended.
« Last Edit: May 30, 2021, 03:08:25 pm by Streetwize »

G30FF

  • Jr. Member
  • **
  • Posts: 70
    • View Profile
Re: [NES] Joy Mech Fight Special
« Reply #10 on: May 30, 2021, 04:10:57 pm »
v4a fixed the translation issue. Thanks again! Keep up the great work!

Streetwize

  • Jr. Member
  • **
  • Posts: 13
    • View Profile
Re: [NES] Joy Mech Fight Special
« Reply #11 on: June 05, 2021, 02:09:23 pm »
I wanted to randomize who would grab if both grabbed on the same frame, and while I did come up with functional code, Eye/Wai Suplex locks the other person out from even being able to throw. I'm probably going to need help on this. One of the top players noticed damage reduction on normals on hit and assumed it was a change I made to my hack. I had removed the reduction for block, but after this discovery I decided to revamp the system.

Spoiler:
Once you go down to 64 health, any damage you take would go down by 1 after 16 points but wasn't coded properly, being limited to 3 points maximum. This is fixed to properly scale up to four points using every 16 to scale. The new properties are as follows:
  • Any attack with a base damage of 8 or less gains one extra point in damage scaling, removing any penalty until 48 HP. This helps preserve their strength for longer.
  • Attacks between 7 and 12 lose only one point in damage. Combined with the previous point, 7-8 damage attacks have no penalty as a result.
  • Any attack over 12 damage gets a penalty of 2 points for every 6 points afterwards. 13-18 loses 2, 19-24 loses 4 points, and 25+ loses 6 points, and so on, capping out at 8 damage.
  • If an attack would send below 64, but not do so scaled, it will do full damage. As crazy as this sounds, it's more of an edge case.
  • Scaled damage remains used for guard damage (I initially removed this), but a minimum of 1 damage is guaranteed no matter what.

For the numbers themselves:
Health
88-65 ±0
64-49 -1
48-33 -2
32-17 -3
16-01 -4
Damage (Once below 65 health)
01-06 +1
07-08 ±0
09-12 -1
13-18 -2
19-24 -4
25-30 -6
31-36 -8

Also, there's a tournament today using FC2, for real this time. https://challonge.com/hifaudxw
If you are interested in joining or watching you can join the Discord server for more info (and stay updated more on this project): https://discord.gg/GQ3PcFav7a
Edit: Will be streamed here: https://www.twitch.tv/dragonpriest4
« Last Edit: June 05, 2021, 02:53:29 pm by Streetwize »

Streetwize

  • Jr. Member
  • **
  • Posts: 13
    • View Profile
Re: [NES] Joy Mech Fight Special
« Reply #12 on: June 27, 2021, 05:10:45 pm »
I do apologize for being silent on this. I have been hard at work but faced many issues. Working around space was the biggest one though. The main two banks of code are used for a majority of the game, which quickly filled up. I wound up overwriting code that handled the sound system so I was forced to relocate and reroute some stuff. That was quite tedious, especially since I was in the middle of fixing bugs. On the plus side, I can now theoretically write separate gameplay code for training and VS now.

As for what to expect in the update, I have done a lot of gameplay changes and polishing. Damage scaling had many bugs still present and was a bit too steep for my taste. I also decided to look into removing the shake for attacks that don't knock down. At one point from that change, I accidentally made certain attacks unblockable upon recovery, notably multi-hitting moves. It really wasn't broken during testing so I intended to keep that, but it somehow fixed itself. Oh well. Regardless, many balance changes were made to help characters become viable.
Full Changelog

I'll be taking a small break before working on the next major feature, which should definitely generate some interest for players of all levels.
Edit: Time to announce the new feature: extra palettes! Here's a proof-of-concept. The code is still being worked on right now but anybody is free to submit colors for when it's ready.


Palette guidelines:
Five colors are needed: two for the primary, and three for flashing. You do not need to be able to hack to provide palettes, but it would be easier for you to test colors on the fly. The values I need are found at addresses $331, $332, $335, $336, $337. During gameplay you can add $20 to them for the addresses used for resetting $33X. If your character doesn't flash (most projectiles flash) then only worry about the first two colors. You can freely modify colors by selecting "Test" in VS CPU mode after selecting your character. Please use this image for color reference. Hexadecimal will make adding palettes easier for me. I will only accept eight extra palettes for each character. If more than eight are made for a character then I will decide which ones make the cut. Rest assured I will credit anyone whose palettes are added.
« Last Edit: July 01, 2021, 11:36:28 pm by Streetwize »

Streetwize

  • Jr. Member
  • **
  • Posts: 13
    • View Profile
Re: [NES] Joy Mech Fight Special
« Reply #13 on: July 06, 2021, 07:11:00 pm »
Just gonna bump this thread to remind people that adding in extra palettes is now underway and it is possible for anyone to contribute. A fair number of people joined the Discord server thanks to my news article, and while supporting such an obscure Nintendo-published game is graciously appreciated, so far only one new person has expressed interest in making new colors and just being overall active. I wasn't expecting 50 people to join and submit 900 colors collectively, but I was hoping I could help give the community a spark to grow off of. Joining for the sake of joining is the nature of Discord sometimes as awful as it sounds. If interested, you can join the server here!

Aside from a few minor issues, everything is now fully programmed for custom colors. The purpose of the first gif is to show that I added custom flash palettes as well, a cut corner in the original. The selected palettes do show up during gameplay but reset upon returning to the menu (something I don't know if I can fix so easily). War Mode may be compromised as a result of this rework and I have no intention of fixing it right now. I've put in a lot of work on the menu alone to ensure both players can't use the same color and also not restricting color selection when only one cursor is on-screen. I even made it dynamically shift between palettes 1 and 2 while hovering over characters depending on who was second. The main known issue is one I don't wish to fix right now, and that is the rocket colors for Hover. I believe those values are hard-coded elsewhere and the real challenge would be redoing the code to make them accessible from elsewhere and constantly cycle them. As I said before space is getting really tight in the main two banks so I need to be smart about my usage. I compromised a huge chunk of open space in a bank that was used for character data to make the extra palettes possible. I don't know whether I could have actually used that space for more characters, but as much as I want to add content I'd need to sit down and study real deep parts of the code. I'm sure I could figure it out but I want to put my time and efforts elsewhere for now.


I don't intend to do much for balance changes in this update simply from the sheer workload of adding 360 palettes into the ROM (technically double, but I'm simplifying it to combine both main and flash) as well as all the programming required for it to happen, but I did fix yet another bug with non-KD screenshake that should hopefully fix it for good.
« Last Edit: July 07, 2021, 11:44:47 am by Streetwize »