Mega Man X6 Tweaks (v2.6) [on hiatus, pending code refactoring]

Started by acediez, June 14, 2018, 12:32:30 AM

Previous topic - Next topic

injoon84

#80
Z3ROX,
You're right! It's working nicely now.
As for Gameshark it has to be something like this:
#Zero/Shadow Up+Jump reach higher
8003659C 00C0

July 11, 2018, 12:38:11 PM - (Auto Merged - Double Posts are not allowed before 7 days.)

Oh my gosh. I wrote some of the gameshark with joker command wrongly.
Anyway, I already edit it. Please check it again. Sorry...

Z3R0X

Quote from: injoon84 on July 11, 2018, 12:24:13 PM
Z3ROX,
You're right! It's working nicely now.
As for Gameshark it has to be something like this:
#Zero/Shadow Up+Jump reach higher
8003659C 00C0

July 11, 2018, 12:38:11 PM - (Auto Merged - Double Posts are not allowed before 7 days.)

Oh my gosh. I wrote some of the gameshark with joker command wrongly.
Anyway, I already edit it. Please check it again. Sorry...
Yes, you should be careful with endianness (I think the way the data order stores and reads are called like that)

acediez

Amazing! Can't wait to find some spare time to play with all this  ;D

QuoteThe sabre delay is not really a delay, is more like animation speed, I found that increasing animation speed does the job and some neat things.

Sounds like making it faster would work just fine  :)

On my experiments, what I was trying to figure but wasn't able to, is finding out what byte or check determines "can start slash/can't start slash" when the button is pressed. If it's a single byte marking this status, it's one that stays until the slash animation finishes and then resets; doesn't change if you just slash again in the middle of a slash; but does reset if you dash instead (you know how you can use the dash or duck to cancel a saber slash midways? You can spam the saber very quickly by alternating dash and attack with a certain timming)

Ultimately I'd like to have the option to remove whatever this check is and make the saber a "self cancelling" move, so you can restart it at any point by using it again, just like it would allow you to if you had dashed first.

Z3R0X

I will see if I can figure out where the flag is stored.
I'm playing with these bits, at first glance this looks like animation tables.
I got this:
Sabre Speed X, Falcon, Blade Ultimate
RAM = 801F492C
BIN = 1D9BFAC4
16 40 01 33
<>
01 40 01 33
- The first bit is like animation speed.
- The others bits maybe animation ID?

Sabre Speed Shadow
RAM = 801F494C
BIN = 1D9BFAE4
13 01 01 33
<>
01 01 01 33

Ghaleonh41

I noticed that for Infinity Mijinion, the Mission Report shows no weapon description for Zero, it only displays X's Ray Arrow.

acediez

I must've skipped more dialogue checks than intended with my modifications. That's almost a feature rather than a bug lol. But I'll see if I can fix it, for consistency's sake  :)

As always, thanks for reporting

KaosuReido

Any chance we can get an option to disable double tapping a direction to dash? That, and also disabling hitting Jump again in midair with the Falcon armor to do an airdash; those both mess me up constantly. I only want to dash when I press the dash button, not when trying to quickly dodge things.

Thanks for the patcher so far, by the way. Definitely an improvement.

injoon84

#87
Ok, in order to avoid assumption, I went vanilla and this is the results I get:
Please use it as guidelines.

Mission Report:
Alia will give explanation about souls and ranks when you collect nightmare souls for the first time.
Once one of the main 8 boss beaten, Alia will provide info on report, weapon, rescue (optional), and boss.
If you only have X, Alia will explain once on weapon.
If you have both X and Zero, Alia will explain twice on weapon.
However, only Yammar Option, Guard Shell and Ray Arrows weapon will be explain once.

Alia's alert:
Intro      = 1
Amazon Area1   = 6
Amazon Area2   = 1
Inami Temple1   = 5
Inami Temple2   = 1
Laser Institute1= 6
Laser Institute2= 1
Northpole Area1   = 5
Northpole Area2   = 1
Magma Area1   = 5
Magma Area2   = 1
Weapon Center1   = 1
Weapon Center2   = 1
Recycle Lab1   = 3+3
Recycle Lab2   = 1
Central Museum1   = 3+7
Central Museum2   = 1
Note: 2 means hidden area.

Dialogues:
Intro      = 4
Amazon Area1   = 1
Amazon Area2   = 0   NightmareZero = 1   HighMax = 1   Dynamo = 2 (Before and after battle)
Inami Temple1   = 2
Inami Temple2   = 0   NightmareZero = 1   HighMax = 1   Dynamo = 2
Laser Institute1= 1
Laser Institute2= 0   NightmareZero = 1   HighMax = 1   Dynamo = 2
Northpole Area1   = 1
Northpole Area2   = 0   NightmareZero = 1   HighMax = 1   Dynamo = 2
Magma Area1   = 1
Magma Area2   = 0   NightmareZero = 1   HighMax = 1   Dynamo = 2
Weapon Center1   = 2   (Opening=1, Boss=1)
Weapon Center2   = 0   NightmareZero = 1   HighMax = 1   Dynamo = 2
Recycle Lab1   = 1
Recycle Lab2   = 0   NightmareZero = 1   HighMax = 1   Dynamo = 2
Central Museum1   = 1
Central Museum2   = 0   NightmareZero = 1   HighMax = 1   Dynamo = 2
Secret Lab1   = 3
Secret Lab2   = 2   (HighMax=1, Gate=1)
??????      = 3

eg. Intro:
Conversation between X and Alia      = 1
Conversation between X and Hunters   = 1
Boss battle
Conversation between X, Alia and HighMax= 1
Conversation between X and HighMax   = 1
Total               = 4

Ghaleonh41

I can explain the Mission Report for Yammar Option & Guard Shell. Since they are the same weapon for each character, there's usually one explanation. Only difference is how Zero triggers them.

But Ray Arrow is different, since Zero gains his Giga Attack from Infinity Mijinion.

acediez

@Z3R0X

Found a spare hour last night to play with the address you found for X's saber duration. It works great! By reducing it from 16 to 10~8 you shave off just the last bit of delay, makes it a lot more quicker to use without going too far.

I went back and tried to follow this operation more carefully, and started documenting on my spreadsheet all the useful 800970A0+ addresses I've found so far for future reference.

As for the saber action:

800970A5
800970B7
Both change for an unique ID for each different action. Probably a general action ID and/or a spritesheet ID.

80097136
Seems to be the main flag for the saber action status.

By preventing changes on one or more of these address I've managed to make the saber self cancelling, but not without problems (like the saber not actually appearing and hitting anything). But I'm getting somewhere  :happy:

8003E630 checks if the buster shot action is in progress, if it is, the function for the saber action is skipped. By NOPing this op you can remove the very small wait you have after shooting with the buster before being able to use the saber. Not much of an impact since it's just a couple of frames, but cool nonetheless
8003F13C is the start of the function that reads conditions to trigger the saber action
8003EA04 is where it checks if the corresponding button is pressed
8003EA34 is where it jumps to if the button is pressed. Setting a breakpoint here puts you right at the start of the saber action after the button is pressed and all conditions are met. However, pressing the button during the slash itself wont trigger this breakpoint, or any point of this function. At some point (I havent found it yet), the whole function (that triggers saber action if conditions are met, including button press) is being skipped while the saber action is in progress. However other button presses checks are obviously not being skipped, since you can cancel it with a dash.

At this point I ran out of time. But I guess I just need to find out what is making this function be skipped during while the action is in progress.


@injoon84

MAN! That's some impressive detective work. Thank you so much! I'm definitely adding this to my documentation

Fun fact, ALL of Alia dialogues I've checked are managed by the same operation except ONE: the introduction dialogue in Infinity Mijinion stage. A last minute addition, probably?

So, I see you confirmed those three weapons do not have a separate Mission Report dialogue for Zero in vanilla?
So I guess they were not actually being skipped in my hack after all?


@Ghaleonh41,

What you're saying is, Ray Arrow does actually have a separate dialogue, and what injoon84 just reported for vanilla is wrong? Are you sure? (wish I could just try by myself but I'm at work all day and while I can check the forums on my phone on my breaks I can't just boot a game just as easily   :laugh:)

injoon84

#90
Ghaleonh41,
I edit a bit about mission report. Please have a look.
However, that's the result I get when I play on emulator ePSXe 2.0.5. using Mega Man X6 (v1.1) [SLUS_013.95].
Ray Arrow weapon only explain once. No Rekkoha weapon explanation even if you have Zero.
Can you check it vanilla on PSP?

July 12, 2018, 12:32:20 PM - (Auto Merged - Double Posts are not allowed before 7 days.)

acediez,
About the sabre part, I also notice something on Shadow.
Z3ROX explain about

Sabre Speed Shadow
RAM = 801F494C
BIN = 1D9BFAE4
13 01 01 33
<>
01 01 01 33

If you change it to
01 41 01 33
Shadow will swing sabre at the fastest speed and also be able to use the dash sabre dash sabre swing like the rest of the X and armors. That is if I didn't provide the wrong value.

Coz in Gameshark, it goes like this.
#Sabre modifier (Shadow) (4101=DashSlash+ChargeCresentSaber+Fastest, 0113=Normal, 4001=DashSlash+Fastest, 0001=Fastest)
801F494C 4109

Ghaleonh41

#91
That IS strange... And yes, it should have a separate dialogue... This is from memory though, I could be wrong. I'll have to do a vanilla run on the PSP or perhaps the original since I still have a copy...

I'll do a speedrun & note what I find.

Z3R0X

Quote from: injoon84 on July 12, 2018, 12:19:33 PM
If you change it to
01 41 01 33
Shadow will swing sabre at the fastest speed and also be able to use the dash sabre dash sabre swing like the rest of the X and armors. That is if I didn't provide the wrong value.

Coz in Gameshark, it goes like this.
#Sabre modifier (Shadow) (4101=DashSlash+ChargeCresentSaber+Fastest, 0113=Normal, 4001=DashSlash+Fastest, 0001=Fastest)
801F494C 4109
:woot!:
Nice that you are playing with those values, I'm glad to help with this awesome project. I'm investigating more those values, I came up that some are used as frames or counter, others for some pointer calculation, I guess we just need to test them and play with.
I come up with this offset:
800970A5
This offset change whatever X animation is doing, also this bit is used to calculate a pointer, I think this is why we can't find a flag delay for sabres swings, because is calculated by animation tables or something strange.

Ghaleonh41

#93
Here are my results. Used Ultimate Armor X code on each one & got Zero from Amazon Area.

1.1 Vanilla: Nightmare Souls explained. Only X's explanation shows up for Yammar, Mijinion, & Sheldon.
1.0 Original: Same results.
Original PS1 Copy: Same.

Even checked out a speedrun on YouTube utilizing the Japanese version: Same results.

So this is an oversight from the original game, at least for Zero's Giga Attack. So my memory was wrong.

injoon84

Ghaleonh41,
Thank you for checking it out.


acediez,
Since Z3ROX will be working on Megaman x4, x5, and x6 together at the same time, do you think it's alright if we discuss Megaman x4 on Mega Man X4 & Mega Man 8 Undub [MM8 (v03) / MMX4 (v08)] and Megaman X5 on Mega Man X5 Improvement Project [PSX]?
Another alternative way is ask Z3ROX to create his own thread for Megaman X4 and Megaman X5?

acediez

I'm fine with this thread becoming a shared Mega Man X6 projects thread. For the other two games, I've already suggested that Z3R0X should make his own thread(s), it'd be easier to keep track of updates and contribute that way. I also think his X5 patcher should already be part of the RHDN database!  :thumbsup:

Besides, I think it'd be in bad taste to start talking about someone else's project in DarkSamus933's thread while his project is inactive.

injoon84

acediez,
Thanks for the advice.

KaosuReido,
I personally disagree with disable jump button twice for Falcon's air dash.
Do you know Falcon has a shorter air dash when pressing jump button twice than the press jump and dash button?
If possible, I would love to have Falcon pressing jump twice air dash to be maneuver in 8 direction. After all, Falcon's diagonal up and down sprite still exists.

Ghaleonh41

No problem, Injoon84!

Since you said that regarding the Falcon Armor, would it be possible to increase the Air Dash's length?

I wonder what happened to the project to retranslate the game...?

acediez

Quote from: Ghaleonh41 on July 13, 2018, 12:32:36 AM
No problem, Injoon84!

Since you said that regarding the Falcon Armor, would it be possible to increase the Air Dash's length?

I wonder what happened to the project to retranslate the game...?


You mean this one? The translation itself is done.
As for inserting in the game, I don't think the translator ever intended to do it himself.

I've looked into it, but it's currently sitting in the "pretty doable, just very time consuming, and not all that rewarding" territory (I mostly skip story bits when I play). I already got the character tables, and know where, at least, the main cinematic's text blocks are located... But I really just prefer to play around with gameplay related stuff at the moment.

injoon84

Why do they want to re translate the english version again?
Was the original english translation version that bad?
I think the original one was pretty good.

Ghaleonh41,
I don't know. I think it is achievable if we know where they are stored. I think Z3ROX and acediez are our only hope to trace it out.