News:

11 March 2016 - Forum Rules

Main Menu

Mega Man X6 Tweaks (v2.6)

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

Previous topic - Next topic

acediez



The Project
A compilation of tweaks for Mega Man X6, initially aiming only to remove the unnecessary padding and limitations the game uses to compensate for its shortcomings. Thanks to the active feedback and various contributions from the community, it expanded to cover gameplay mechanics, balance issues, a retranslated script, restored content from the japanese version, custom graphics, and even a few minor stage mods.

The project will continue to be updated to address bugs and improvements on its current set of options, but no further major features are planned.

Features highlights
Localization and restored content: Retranslated script and font replacement. Restored title screen background and voice clips from the japanese version.
Custom menu options: Navigator (Alia alerts) and Nightmare Effects can be enabled/disabled anytime during gameplay from the settings menu.



Custom mugshots: New mugshots for Dr. Light and the Hunter in the Intro Stage, and custom options for existing mugshots. Art by Metalwario64.


Unlockables: A cheat code to start the game as Zero. Black Zero can be unlocked in-game by fighting Nightmare Zero Lvl.4. Also, both Black Zero and the Ultimate Armor can be unlocked by reaching Rank UH.


Activate Incomplete Armors: Armor abilities and enhancements are now bound to their individual armor parts. You can now get access to the armor as soon as you get the first part and get its abilities progressively, like you would in X1-X4.


X's armor abilities: Mach Dash can be either used immediately (dash button) or with the regular mid-air stop (jump button), and both are cancellable. Shadow Armor can slide down walls manually. Air Dash enabled on all armors.


Zero's techniques: Technique inputs revamped: Sentsuizan (now Up + Special button) is cancellable mid-air. Ensuizan revamped as an air-only move (Special button) that can do multiple times in a row. Guard Shell gets an input combo too (Down + Special button on the ground).


Animation timming: Reduced cooldown for X's saber and Zero's ground combo.



Stage mods: Small changes to some of the more infamous parts of the game.


Balance: Health bar sizes and damage tables rebalanced.


For a complete list of changes, check the Readme file for v2

The Patch
"Mega Man X6 Tweaks", as a stand-alone xdelta patch, is a sample selection of features. These are detailed in the changelog below.
DOWNLOAD in RHDN Project Page

You can apply xdelta patches using these:
xdelta UI (Windows)
MultiPatch (OSX)

The Patcher Tool
"Mega Man "X6 Tweaks Patcher" is a customization tool for all the options included on the patch, and a few more. The stand-alone patch is included as a preset profile.
The GUI is written in AutoHotkey (v1.1.30.00). The actual patching of the BIN is handled by external tools, included and handled by the GUI.
DOWNLOAD in RHDN Project Page

Known bugs (Patcher Tool v2.6.1):
* Increasing Nightmare Press' lifebar above 48 points will make it unbeatable
* The "auto-crouch" mod for Metal Shark Prayer's stage can freeze X in position even if he's not being pressed down



The Workbook
"Mega Man X6 Tweaks Workbook" is the actual heart of the project, a big fat XLSL workbook which includes all the research, addresses and custom code written for this project.
DOWNLOAD in RHDN Project Page

FAQ:
Current status of the project?
(August 2021) Keeping an eye out for any remaining bugs. No new major features are being worked on at the moment.
Can I use it in MMXLC2/PC/PS1 PAL/PS1 NTSC-J versions?
The patch only works on the PS1 USA version.
Status on the retranslated script?
The script was translated and edited by DuoDynamo. I'm not personally making edits to it, and I'm not interested on implementing other versions of the script. You still have the option to play the hack with the original game's script.
Why can't the Shadow Armor have special weapons?
Adding them would require editing compressed graphics files.
Will you ever make the armors actually be displayed by parts, like in X1-X4?
I don't know. I haven't really tried yet, and I don't currently plan to. It's a big leap in technical difficulty.
I want to work on my own hacks for this game
I made my documentation available in the download page. Everything I ever wrote for this game is in there. Good luck!

Target File
For both the xdelta patch and the patcher tool, you need this specific dump of the game:
Mega Man X6 (USA) (v1.1)
MD5: 237B6FEDDD1A88E86AB1CDDC8822F03F
http://redump.org/disc/32516/


Credits
acediez: Project author.
Metalwario64: Title screen, mugshots, and various other graphics.
DarkSamus993: Disc files documentation. Various hack contributions.
gledson999: Disc files unpack/repack tools. Text editing tools.
DuoDynamo: Retranslation
NectarHime: Script rewrite
AxlRocks: Project logo

Also thanks to injoon84, Cupshadow, pating, Tallgeese, Doomsday Forte, Z3R0X, and everyone on RHDN who has reported bugs, typos and other contributons over the course of the project.

ThegreatBen

So awesome, this game will be so much better now, thanks.

injoon84

#2
acediez, please have a look at these Gamesharks. I hope some of them are useful enough to be converted into your Tweaks Patcher.
Basic Gamesharks code:
#Hp Gauge Full X (0040=+16, 0038=+12, 0030=+8, 0028=+4) (Permanent effect)
300CCF2B 0040

#Hp Gauge Full Zero (0040=+16, 0038=+12, 0030=+8, 0028=+4) (Permanent effect)
300CCF2C 0040

#Infinite Lives (Will have 9 lives) (Permanent effect)
300CCF09 0009

#Infinite All Weapons (0180=+8, 0150=+4, 0120=+0) (Temporary effect)
50000802 0000
8009714A 0180

#Infinite Giga Attack (0180=+8, 0150=+4, 0120=+0) (Temporary effect)
80097148 0180

#Infinite Dash (Note: 0000=Jump normal/ 0001=Jump have shadow effect) (Temporary effect)
30097125 0000

#Infinite In-Air Moves (0000=Infinite, 0001=No air moves) (Temporary effect)
30097126 0000

#Infinite Leg Jets (Ultimate) (Temporary effect)
30097179 0000

#Infinite Distance Nova Strike/ Delay Giga Attack (0000=Short/ 0100=Infinite&Delay)
80097180 0100

#Have All Weapons (00FF=All, 0000=None) (Note: The game will freeze on Shadow Armor) (Temporary effect)
30097169 00FF

#No Level Time (Temporary effect)
800CCF60 0000

#Max Mavericks Defeated (Temporary effect)
800CCF64 03E7

#No Damage Received (Temporary effect)
800CCF68 0000

#Have All Armors & Black Zero (003F=Black, 001F=Red, 0000=N/A) (Permanent effect)
300CCF2F 003F

#Game mode=Normal (0000=Easy, 0001=Normal, 0002=Xtreme) (Permanent effect)
300CCF38 0001

#Have All Armor Parts for Shadow & Blade (Permanent effect)
300CCF39 00FF

#Have All Armor Parts for Shadow & Blade & Normal Mode (FF00=Easy, FF01=Normal, FF02=Xtreme) (Permanent effect)
800CCF38 FF01

#Have All Power Up Parts (Permanent effect)
800CCF40 FFFC
800CCF42 03FF

#Have Sub-Tanks, W-Tank & EX Tank (Permanent effect)
300CCF3B 00FF

#All Reploids Rescued (Permanent effect) (Note: Not recommended as you won't obtain any parts)
50002002 0000
800CCFA8 2222

#Boss Fight Level 4 (0000=Level 1, 0001=Level 2, 0002=Level 3, 0003=Level 4) (Temporary effect)
300CCF5F 0003

#Max Lifebar For Boss (Temporary effect)
300CCF5C 007F

#Optional Boss (0000=Nightmare Zero, 0001=High Max, 0002=Dynamo) (Permanent effect)
300CD30B 0000

#X Have All Souls (270F=9999, 0B86=2950, 0320=800, 01F4=500) (Permanent effect)
800CCFA2 270F

#Zero Have All Souls (270F=9999, 0B86=2950, 0320=800, 01F4=500) (Permanent effect)
800CCFA4 270F

#X's Rank (0000=UH, 0001=PA, 0002=GA, 0003=SA, 0004=A) (Temporary effect)
300CCF5D 0000

#Zero's Rank (0000=UH, 0001=PA, 0002=GA, 0003=SA, 0004=A) (Temporary effect)
300CCF5E 0000

#Have All Reploids Except Reploids With LifeUp & EnergyUp (0/1=No Data, 2=Rescued, 3=Death, 4=Missing) (Permanent effect)
800CCFA8 2020
800CCFAA 2222
800CCFAC 2222
800CCFAE 2222
800CCFB0 2222
800CCFB2 2220
800CCFB4 2022
800CCFB6 2222
800CCFB8 2222
800CCFBA 2222
800CCFBC 2202
800CCFBE 2220
800CCFC0 2222
800CCFC2 2202
800CCFC4 2222
800CCFC6 2202
800CCFC8 2222
800CCFCA 2220
800CCFCC 2222
800CCFCE 2220
800CCFD0 2222
800CCFD2 2022
800CCFD4 2202
800CCFD6 2222
800CCFD8 2220
800CCFDA 2022
800CCFDC 2222
800CCFDE 2222
800CCFE0 2222
800CCFE2 2222
800CCFE4 2202
800CCFE6 2220

#Parts Equip1 (0000=Nothing, 0004=Speedster*, 0008=Jumper*, 000C=Speedster+Jumper, 0010=HyperDash*, 0020=EnergySaver, 0040=SuperRecovery, 0080=BusterPlus, 0100=SpeedShot, 0200=ShockBuffer, 0400=D.Barrier, 0800=D-Converter, 1000=HyperDrive, 2000=PowerDrive, 4000=WeaponDrive, 8000=LifeRecover) Temporary
8009718C 8FE0
Note: The one mark* doesn't have effect even if they are equip.

#Parts Equip2 (0000=Nothing, 0001=W.Recover, 0002=Overdrive, 0004=Rapid5, 0008=U.Buster, 0010=QuickCharge, 0020=WeaponPlus, 0040=SaberPlus, 0080=SaberExtend, 0100=ShotEraser, 0200=MasterSaber) Temporary
8009718E 03F4
Note: Weapon select screen will becomes glitchy once you include X/Zero only parts.

#Movement Speed (Note: 0000=Cannot-move/ 0100=Slow/ 0200=Normal/ 0300=Speedster/ 0F00=Ultra-speed) Temporary
80097195 0300

#Jump Height (Note: Without jumper, 0000=No height/... 05D0=Normal/ 06D0=Jumper/... 0F00=Highest) Temporary
80097199 06D0
Other Gamesharks code:
#UH Zero can Black/Red Joker Command (Hold: Up/Down+Start) (Note: Can only be activated when highlight Zero at Stage Select Screen before entering a stage & Zero's rank UH) (source: acediez's Mega Man X6 Tweaks Workbook 2.0 - PlaythroughTable)
E30CCF5E 0000 (If Zero Rank Value Is Greater Than 00=UH)
300C456F 0000 (=Hold: None)
E20CCF00 0002 (If Selected Character Value Is Lower Than 02=Zero)
300C456F 0000 (=Hold: None)
E30CCF00 0002 (If Selected Character Value Is Greater Than 02=Zero)
300C456F 0000 (=Hold: None)
E00C456F 0018 (If Hold: Up+Start)
200CCF2F 0020 (=All Characters Value +20)
E00C456F 0048 (If Hold: Down+Start)
210CCF2F 0020 (=All Characters Value -20)
E00CCF2F 0020 (If All Characters Value Is 20)
300CCF2F 0000 (=Normal X)
E00CCF2F 0021 (If All Characters Value Is 21)
300CCF2F 0001 (=Normal X & Falcon)
E00CCF2F 0022
300CCF2F 0002
E00CCF2F 0023
300CCF2F 0003
E00CCF2F 0024
300CCF2F 0004
E00CCF2F 0025
300CCF2F 0005
E00CCF2F 0026
300CCF2F 0006
E00CCF2F 0027
300CCF2F 0007
E00CCF2F 0028
300CCF2F 0008
E00CCF2F 0029
300CCF2F 0009
E00CCF2F 002A
300CCF2F 000A
E00CCF2F 002B
300CCF2F 000B
E00CCF2F 002C
300CCF2F 000C
E00CCF2F 002D
300CCF2F 000D
E00CCF2F 002E
300CCF2F 000E
E00CCF2F 002F
300CCF2F 000F
E00CCF2F 0050 (If All Characters Value Is 50)
300CCF2F 0030 (=Normal X & Black Zero)
E00CCF2F 0051 (If All Characters Value Is 51)
300CCF2F 0031 (=Normal X, Falcon & Black Zero)
E00CCF2F 0052
300CCF2F 0032
E00CCF2F 0053
300CCF2F 0033
E00CCF2F 0054
300CCF2F 0034
E00CCF2F 0055
300CCF2F 0035
E00CCF2F 0056
300CCF2F 0036
E00CCF2F 0057
300CCF2F 0037
E00CCF2F 0058
300CCF2F 0038
E00CCF2F 0059
300CCF2F 0039
E00CCF2F 005A
300CCF2F 003A
E00CCF2F 005B
300CCF2F 003B
E00CCF2F 005C
300CCF2F 003C
E00CCF2F 005D
300CCF2F 003D
E00CCF2F 005E
300CCF2F 003E
E00CCF2F 005F
300CCF2F 003F
E00CCF2F 00E0 (If All Characters Value Is E0)
300CCF2F 0000 (=Normal X)
E00CCF2F 00E1 (If All Characters Value Is E1)
300CCF2F 0001 (=Normal X & Falcon)
E00CCF2F 00E2
300CCF2F 0002
E00CCF2F 00E3
300CCF2F 0003
E00CCF2F 00E4
300CCF2F 0004
E00CCF2F 00E5
300CCF2F 0005
E00CCF2F 00E6
300CCF2F 0006
E00CCF2F 00E7
300CCF2F 0007
E00CCF2F 00E8
300CCF2F 0008
E00CCF2F 00E9
300CCF2F 0009
E00CCF2F 00EA
300CCF2F 000A
E00CCF2F 00EB
300CCF2F 000B
E00CCF2F 00EC
300CCF2F 000C
E00CCF2F 00ED
300CCF2F 000D
E00CCF2F 00EE
300CCF2F 000E
E00CCF2F 00EF
300CCF2F 000F
E00CCF2F 00F0 (If All Characters Value Is F0)
300CCF2F 0010 (=Normal X & Red Zero)
E00CCF2F 00F1 (If All Characters Value Is F1)
300CCF2F 0011 (=Normal X, Falcon & Red Zero)
E00CCF2F 00F2
300CCF2F 0012
E00CCF2F 00F3
300CCF2F 0013
E00CCF2F 00F4
300CCF2F 0014
E00CCF2F 00F5
300CCF2F 0015
E00CCF2F 00F6
300CCF2F 0016
E00CCF2F 00F7
300CCF2F 0017
E00CCF2F 00F8
300CCF2F 0018
E00CCF2F 00F9
300CCF2F 0019
E00CCF2F 00FA
300CCF2F 001A
E00CCF2F 00FB
300CCF2F 001B
E00CCF2F 00FC
300CCF2F 001C
E00CCF2F 00FD
300CCF2F 001D
E00CCF2F 00FE
300CCF2F 001E
E00CCF2F 00FF
300CCF2F 001F

#Maneuver Leg Jets Joker Command
E00C456D 0010 (If JC Hold: Up)
3009717A 0009 (=Leg Jets Hover Up)
E00C456D 0030 (If JC Hold: Up+Right)
3009717A 0009 (=Leg Jets Hover Up)
E00C456D 0090 (If JC Hold: Up+Left)
3009717A 0009 (=Leg Jets Hover Up)
E00C456D 0040 (If JC Hold: Down)
3009717A 0001 (=Leg Jets Hover Down)
E00C456D 0060 (If JC Hold: Down+Right)
3009717A 0001 (=Leg Jets Hover Down)
E00C456D 00C0 (If JC Hold: Down+Left)
3009717A 0001 (=Leg Jets Hover Down)

#Leg Jets Hover (NOP timer for movement) (source: acediez's Mega Man X6 Tweaks Workbook 2.0 - IngameTable, Dash)
E00970A5 0021 (If Action ID is 21=Ultimate Hovers) (Note: Prevent bug from Zero double jump sommersault slash)
801EC090 0000 (NOP timer for Leg Jet movement)
E00970A5 0021 (If Action ID is 21=Ultimate Hovers) (Note: Prevent bug from Zero double jump sommersault slash)
801EC092 0000 (NOP timer for Leg Jet movement)

#Hover Boots (still) cannot air dash (source: acediez's Mega Man X6 Tweaks Workbook 2.0 - Dash)
801EC06C E41B

#Nova Strike unlimited air move (Nop register Air move) (source: acediez's Mega Man X6 Tweaks Workbook 2.0 - Dash)
8003E59C 0000
8003E59E 0000

#Nova Strike consumed Giga Attack Weapon Energy
E00970A5 0022 (If current action is 22=Ultimate Nova Strike)
80097148 0000 (=Giga Attack Weapon Energy is 0)

#Falcon = Infinite Air moves (source: acediez's Mega Man X6 Tweaks Workbook 2.0 - IngameTable)
E0097187 0001 (If current character is Falcon)
30097126 0000 (=Infinite air-moves)

#Falcon Longer Air Dash Timer=66 (Original=FF) (source: acediez's Mega Man X6 Tweaks Workbook 2.0 - Dash)
3003A16C 0066

#Falcon 3 Directions Airdash Minimum Combination (Hold: Up/Down during Air Dash) (Note: Can only be activated if hold Up/Down during Falcon's Early Phase Air Dash) (source: acediez's Mega Man X6 Tweaks Workbook 2.0 - IngameTable)
E20970B7 00A9 (If current animation is lower than A9)
3009711C 0000 (=Hold: None)
E30970B7 00A9 (If current animation is greater than A9)
3009711C 0000 (=Hold: None)
E009711C 0004 (If Hold: Up)
300970C6 0004 (=Infinite Float Up 04)
E009711C 0005 (If Hold: Up+Right)
300970C6 0004 (=Infinite Float Up 04)
E009711C 0006 (If Hold: Up+Left)
300970C6 0004 (=Infinite Float Up 04)
E009711C 0014 (If Hold: Special+Up)
300970C6 0004 (=Infinite Float Up 04)
E009711C 0015 (If Hold: Special+Up+Right)
300970C6 0004 (=Infinite Float Up 04)
E009711C 0016 (If Hold: Special+Up+Left)
300970C6 0004 (=Infinite Float Up 04)
E009711C 0024 (If Hold: Attack+Up)
300970C6 0004 (=Infinite Float Up 04)
E009711C 0025 (If Hold: Attack+Up+Right)
300970C6 0004 (=Infinite Float Up 04)
E009711C 0026 (If Hold: Attack+Up+Left)
300970C6 0004 (=Infinite Float Up 04)
E009711C 0084 (If Hold: Jump+Up)
300970C6 0004 (=Infinite Float Up 04)
E009711C 0085 (If Hold: Jump+Up+Right)
300970C6 0004 (=Infinite Float Up 04)
E009711C 0086 (If Hold: Jump+Up+Left)
300970C6 0004 (=Infinite Float Up 04)
E009711C 0094 (If Hold: Special+Jump+Up)
300970C6 0004 (=Infinite Float Up 04)
E009711C 0095 (If Hold: Special+Jump+Up+Right)
300970C6 0004 (=Infinite Float Up 04)
E009711C 0096 (If Hold: Special+Jump+Up+Left)
300970C6 0004 (=Infinite Float Up 04)
E009711C 00A4 (If Hold: Attack+Jump+Up)
300970C6 0004 (=Infinite Float Up 04)
E009711C 00A5 (If Hold: Attack+Jump+Up+Right)
300970C6 0004 (=Infinite Float Up 04)
E009711C 00A6 (If Hold: Attack+Jump+Up+Left)
300970C6 0004 (=Infinite Float Up 04)
E009711C 0008 (If Hold: Down)
800970C6 FFFC (=Infinite Float Down FFFC)
E009711C 0009 (If Hold: Down+Right)
800970C6 FFFC (=Infinite Float Down FFFC)
E009711C 000A (If Hold: Down+Left)
800970C6 FFFC (=Infinite Float Down FFFC)
E009711C 0018 (If Hold: Special+Down)
800970C6 FFFC (=Infinite Float Down FFFC)
E009711C 0019 (If Hold: Special+Up+Down)
800970C6 FFFC (=Infinite Float Down FFFC)
E009711C 001A (If Hold: Special+Up+Down)
800970C6 FFFC (=Infinite Float Down FFFC)
E009711C 0028 (If Hold: Attack+Down)
800970C6 FFFC (=Infinite Float Down FFFC)
E009711C 0029 (If Hold: Attack+Down+Right)
800970C6 FFFC (=Infinite Float Down FFFC)
E009711C 002A (If Hold: Attack+Down+Left)
800970C6 FFFC (=Infinite Float Down FFFC)
E009711C 0088 (If Hold: Jump+Down)
800970C6 FFFC (=Infinite Float Down FFFC)
E009711C 0089 (If Hold: Jump+Down+Right)
800970C6 FFFC (=Infinite Float Down FFFC)
E009711C 008A (If Hold: Jump+Down+Left)
800970C6 FFFC (=Infinite Float Down FFFC)
E009711C 0098 (If Hold: Special+Jump+Down)
800970C6 FFFC (=Infinite Float Down FFFC)
E009711C 0099 (If Hold: Special+Jump+Down+Right)
800970C6 FFFC (=Infinite Float Down FFFC)
E009711C 009A (If Hold: Special+Jump+Down+Left)
800970C6 FFFC (=Infinite Float Down FFFC)
E009711C 00A8 (If Hold: Attack+Jump+Down)
800970C6 FFFC (=Infinite Float Down FFFC)
E009711C 00A9 (If Hold: Attack+Jump+Down+Right)
800970C6 FFFC (=Infinite Float Down FFFC)
E009711C 00AA (If Hold: Attack+Jump+Down+Left)
800970C6 FFFC (=Infinite Float Down FFFC)

#If Game Over all bosses in rematch are revived (In Last Section of Sigma Level) (Note: 00=revived, 02=beaten) (source: acediez's Mega Man X6 Tweaks Workbook 2.0 - PlaythroughTable)
E00CCED0 000D (If screen to load=Game Over)
300CCEFE 0000 (=Blizzard Wolfang is revived) [Note: From acediez's workbook, this is also Dialogue seen Flag (Bosses)]
E00CCED0 000D (If screen to load=Game Over)
300CCEFF 0000 (=Commander Yanmark is revived)
E00CCED0 000D (If screen to load=Game Over)
300CCF00 0000 (=Blaze Heatnix is revived) [Note: Don't know why this is also Character Stage Select Screen. eg.02=Zero]
E00CCED0 000D (If screen to load=Game Over)
300CCF01 0000 (=Metal Shark Player is revived)
E00CCED0 000D (If screen to load=Game Over)
300CCF02 0000 (=Rainy Turtloid is revived)
E00CCED0 000D (If screen to load=Game Over)
300CCF03 0000 (=Ground Scaravich is revived)
E00CCED0 000D (If screen to load=Game Over)
300CCF04 0000 (=Infinity Mijinion is revived)
E00CCED0 000D (If screen to load=Game Over)
300CCF05 0000 (=Shield Sheldon is revived)

gledson999

This is so cool  :woot!: I'm translating Megaman X6 into Brazilian Portuguese and i'll apply this improvement tweak from Nightmare Zero Lv04, thanks!

Here is some images





Zero Dozer

You already have my like and my download on this tweak patch.

x6fan

Thank you so much for doing this! Always thought X6 deserved some fixes and improvements. These tweaks are amazing and they make the game so much more approachable. I really like the tweaker program and the documentation.

Do you have more plans for X6? I have some ideas: remove the nightmare system; make collected heart tanks apply to both X and Zero. I wish I had the reverse engineering skills to implement these ideas and contribute.

injoon84

I have try your Mega Man X6 Tweaks Patcher (v01). I like the idea very much. It let us customize to our liking. No more dispute among us. Hooray!
However, it seems like some selection not working accordingly.

1) Disable status change
Seems like there will be glitch on the Rescue File if we activate this one. Some Japanese words there.

2) Disable gaining lives (Rescued Reploids)
Correct me if I'm wrong. This suppose to disable us from getting extra live from the Reploids that been rescued right?
Well, it's not working. Each Reploids still give 1 extra live.

The rest seems to be functioning. I think? I hope there will be more selection in the future.

From what I notice from your file:
Mega Man X6 Tweaks Spreadsheet (v01) (worksheet: Lives_Continues)
Adding Lives
BIN Offset   PSX Ram      Description
496402556   8004EF5C   Stores in r2 number of lives to add
496402560   8004EF60   Adds the previous number of lives to total lives

If I use the PSX Ram as Gameshark:   
#Extra lives gain from Reploids modifier (0000=0, 0001=+1, ..., 0009=+9) Permanent effect and cannot be overwritten
8004EF5C 0000
#Rescued Reploids behaviour modifier (0000=No extra lives+EXIT, 0002=No extra lives, 000F=Wrap out and clear the stage with no extra lives but will jam at miniboss Magma Area stage) Permanent effect and cannot be overwritten
8004EF60 0000

Also, check this out.
https://www.youtube.com/watch?v=FQ8Ymlzjpc0
https://www.youtube.com/watch?v=CX-dnjHdlfY
Regarding assigning new actions to button presses, maybe you should get some advice from this guy.

acediez

Thanks for testing the patcher injoon84

Quote from: injoon84 on June 17, 2018, 02:35:20 AM
1) Disable status change
Seems like there will be glitch on the Rescue File if we activate this one. Some Japanese words there.
You mean the list of rescued reploids in the stage select screen? I never encountered this, I'll have to check again.
For now, having them be marked as "not rescued" should have the same intended effect (the selected interaction will simply reset the status)

Quote from: injoon84 on June 17, 2018, 02:35:20 AM
2) Disable gaining lives (Rescued Reploids)
Correct me if I'm wrong. This suppose to disable us from getting extra live from the Reploids that been rescued right?
Well, it's not working. Each Reploids still give 1 extra live.

This was working on the BIN I patched for testing. Then again the operation for giving lives seems to be in more than one location of the BIN, so there's probably additional changes I need to make for it to work in all cases. I'll take another look.

Also thanks for all the additional addresses you've provided!


Quote from: x6fan on June 16, 2018, 09:46:32 PM
Do you have more plans for X6? I have some ideas: remove the nightmare system; make collected heart tanks apply to both X and Zero. I wish I had the reverse engineering skills to implement these ideas and contribute.
Those two ideas are on my wishlist too at the moment, I'll try to figure out how to implement them. But first I need to spend some time making sure everything already included is working as intended. This is the first release and I'm just starting to get some feedback. And as you see in the above post there's already a couple of things that need fixing.

Lumiere

When using the patcher, I chose to have the reploids that don't give anything auto-resuced but, It also rescued the reploids that gave common parts. Also, do you have any plans to add the ability to edit the damage chart?

acediez

#9
About reported bugs so far

Quote from: injoon84 on June 17, 2018, 02:35:20 AM

1) Disable status change
Seems like there will be glitch on the Rescue File if we activate this one. Some Japanese words there.

2) Disable gaining lives (Rescued Reploids)
Correct me if I'm wrong. This suppose to disable us from getting extra live from the Reploids that been rescued right?
Well, it's not working. Each Reploids still give 1 extra live.

Ok, these two are now fixed on the v02 version I just submitted the site. They should be up shortly. For now, here's the scratchpad download links (they'll automatically be deleted once the update goes live on the site)

Tweaks Base Patch (v02) http://www.romhacking.net/scratchpad/13788/
Tweaks Patcher (v02) http://www.romhacking.net/scratchpad/13789/

Thank you for testing and reporting these issues. Apologies to to all 136 people who downloaded the first version  ;D



Quote from: Lumiere on June 17, 2018, 01:37:33 PM
When using the patcher, I chose to have the reploids that don't give anything auto-resuced but, It also rescued the reploids that gave common parts.

I'm gonna have to ask you to double check this by patching the game again, as I can't reproduce this problem. Works fine for me

NEVERMIND. I did have this problem now when running the game on a different emulator. Thanks for reporting it.
The current method works fine on no$psx and ePSXe, but incorrectly on Mednafen PSX and hardware, where it looks like the whole list is written in RAM with a 8 byte offset...
This is gonna be very difficult to tackle, since it depends on whats being used to run the game...




About feature requests
There's a few things I'd definitely like to look into
- Remove the nightmare system (or at least selectively remove the more annoying effects)
- Make collected heart tanks apply to both X and Zero
- Edit some mini bosses life bar sizes
Etc.

However I need to focus on other stuff for awhile. I will however try to address any bugs or problems that may come up with what's already implemented, so please keep reporting any issue you have (confirmations of features working correctly are helpful too!)

June 18, 2018, 12:15:45 AM - (Auto Merged - Double Posts are not allowed before 7 days.)

Something I didn't notice until I ran this on mednafen: depending on the options selected, it may be necessary to recalcualte ECD/ECC fields for it to work properly on hardware and on more accurate emulators.

If you run into an uenxpected freeze, try running your patched bin through STARWIN's EDC/ECC Recalculator. It's a simple drag-and-drop process.

ThegreatBen

Now that Black Zero is available in game I'll most likely be using the Ultimate Armor X code, however I believe it replaces the Falcon armor, it would be nice to be able to have both.

injoon84

This time I play around with the Mega Man X6 Tweaks Patcher (v02) and this is the results I get.
Also, count me out from testing from the time being. It's tiring.
Anyway, I used ePSXe 2.0.5.

1) Status by default
a) Not holding parts
87/88 reploids. Missing Leon from Northpole Area.
b) Common parts
Suppose there is only 10 reploids but 1 reploid name Leon from Northpole Area also included making it 11 reploids.

2) Rank/Nightmare Souls Table
Once you reach higher rank, your rank will not drop even if you set lower rank with higher souls needed.
eg. Rank A needs 1000 souls but rank UH only needs 10 souls. Once you collected 10 souls, your UH rank will not drop even if you collected more than 1000 souls later.

3) Boss Levels
It won't acknowledge lower level boss for higher ranks.
eg. Rank UH for Nightmare Zero lv.2 and rank A for Nightmare Zero lv.4. If this happens, you will have lv.4 boss no matter which ranks achieve first.

4) Alia explaining soul
a) This event only triggers if you clear a normal stage with enough souls collected.
b) If you collected enough souls but exit the stage, this event will not trigger.
c) In the original version, with enough souls collected, Alia will explain souls by just exit, clear a normal stage, or defeating Nightmare Zero. High Max not included though.

5) Unlock Final Stage
a) If you clear a normal stage with enough souls collected, Alia will explain souls. Then, Gate event will trigger and enable Final Gate's Lab 1.
b) If you exit with enough souls collected, Alia will not explain souls. Then, follow by Gate event and enable Final Gate's Lab 1.
c) By setting the number of souls needed higher than 4), Alia might explain souls thrice by triggers 4a) twice with both X and Zero, then again on 5a).

6) Disable losing lives (Infinite lives)
X will not show any extra lives available.

7) Disable gaining lives (Rescued Reploids)
It's working now but it also disable us from gaining extra lives from X/Zero helmet that provides extra lives.
That's weird because when I used gameshark I posted above, both codes only disable extra lives from reploids.
I used below gameshark to test it as it's hard to get extra lives by defeating enemies.
#Always drop Extra Life item (Permanent effect not recommended)
8004E71A 2400
8004D848 000A
8004D84A 1000
8004D874 0008
8004D876 3402


To ThegreatBen,
Nope. You will still be able to keep the Falcon armor but starts the game as Ultimate armor.
Only X5 disable you from keeping the Fourth armor if you activate the Ultimate armor code.
Seems like you mix up your memory between X5 and X6.


acediez

#12
Thank you so much for your testing!

Quote from: injoon84 on June 20, 2018, 01:22:33 PM
1) Status by default
a) Not holding parts
87/88 reploids. Missing Leon from Northpole Area.
b) Common parts
Suppose there is only 10 reploids but 1 reploid name Leon from Northpole Area also included making it 11 reploids.
Fixed!
I simply put one reploid on the wrong category list (as I took megaman.wikia.com as reference, where this one Reploids is wrongly listed as having a Common Part)

Also thanks for confirming this feature is currently working ok in ePSXe.
Next version will include a fix that makes this work consistently on Mednafen PSX/hardware too.

Quote from: injoon84 on June 20, 2018, 01:22:33 PM
2) Rank/Nightmare Souls Table
Once you reach higher rank, your rank will not drop even if you set lower rank with higher souls needed.
eg. Rank A needs 1000 souls but rank UH only needs 10 souls. Once you collected 10 souls, your UH rank will not drop even if you collected more than 1000 souls later.

3) Boss Levels
It won't acknowledge lower level boss for higher ranks.
eg. Rank UH for Nightmare Zero lv.2 and rank A for Nightmare Zero lv.4. If this happens, you will have lv.4 boss no matter which ranks achieve first.
Triggers by # of souls are intended to be put in ascending order, I put a warning about this on the description. That's the way it needs to be because of how the game reads it (it compares your current souls number with the reference table from highest to lowest, and stops once it finds a match).
Rank based triggers COULD be implemented out of order (the game reads the level from a separate byte for each corresponding Rank), but for simplicity's sake I decided to automatically adapt non ascending orders from highest to lowest when using the patcher. If for some reason anyone wants to make it out of order, the addresses for said table are in the spreadsheet.

Quote from: injoon84 on June 20, 2018, 01:22:33 PM
c) By setting the number of souls needed higher than 4), Alia might explain souls thrice by triggers 4a) twice with both X and Zero, then again on 5a).
That's kind of funny :heh:
I didn't do any testing using Zero, so I didn't realize this got triggered separately for both characters.

A way around this could be to have X and Zero share Souls and Rank level (something I'm working on at the moment)
Maybe there is a separate flag I could use to make this only be shown once. But I'm thinking that the only other condition it checks is having triggered the Gate/Final stages scene...

Probably more trouble than it's worth, but I'll give it another look just to see if there's something I can do.
For the moment, I may leave this one out of the base patch on the next version.

Quote from: injoon84 on June 20, 2018, 01:22:33 PM
6) Disable losing lives (Infinite lives)
X will not show any extra lives available.
I actually went out of my way to make it be this way. I thought it would be a nice touch :)
Similarly, I made the lives counter disappear on the pause menu when increasing the limit of lives above 9 because displaying double digits for lives in the pause menu causes graphical glitches.
Both of these changes are detailed on the spreadsheet.

Quote from: injoon84 on June 20, 2018, 01:22:33 PM
7) Disable gaining lives (Rescued Reploids)
It's working now but it also disable us from gaining extra lives from X/Zero helmet that provides extra lives.
That's weird because when I used gameshark I posted above, both codes only disable extra lives from reploids.
I used below gameshark to test it as it's hard to get extra lives by defeating enemies.
#Always drop Extra Life item (Permanent effect not recommended)
8004E71A 2400
8004D848 000A
8004D84A 1000
8004D874 0008
8004D876 3402
Thanks, I was about to get into testing what effect this had on regular 1-ups items. I'm gonna compare my modification to your gamesharks to test it further.
Ideally, I'd have them both be set as separate options in the patcher... (I actually forgot this game had regular 1-ups).

Again, thank you so much for this. I know it's tiresome, you've more than done your part. I'm gonna credit you on the readme for future releases :)


June 21, 2018, 12:52:19 AM - (Auto Merged - Double Posts are not allowed before 7 days.)

Quote from: Lumiere on June 17, 2018, 01:37:33 PM
When using the patcher, I chose to have the reploids that don't give anything auto-resuced but, It also rescued the reploids that gave common parts.

Ok, I already figured this one out  :woot!:
Will be fixed on the next update (along with a few other neat stuff)

ThegreatBen

Have a free bump so you can post your updates on a clean post.

acediez

#14
 :laugh: Thanks, I guess

Here's a sneak peak/beta of the next version.



"Reploids / Status marked by default" is completely fixed, now it works as it should on hardware, Mednafen PSX, ePSXe, etc. Also, number of lives "after continue" now also applies to the lives you start with when loading a savefile.
I haven't fully tested some of the new stuff yet, so I won't release it on the site just yet. But here's a temporary download link if anyone wants to play around with it for the moment, an alpha of sorts.

Just make sure you start a new game if you plan to try any of the "shared stats" options.

Zero Dozer


injoon84

Nice addition as always. The latest patcher (v03a), not sure these are mistakes or not.

1) Disable gaining lives (Rescued Reploids)
Rescued Reploids give 1 extra live but not from Extra Life items.

2) Disable gaining lives (Extra Life items)
Extra Life items give 1 extra live but not from rescued Reploids.

Shouldn't it be the other way round? I mean swap between these two codes.


Plus, aren't you missing the Common, X, Zero, and Limited Parts?
I only have Gameshark value.

#Have All Power Up Parts
800CCF40 FFFC
800CCF42 03FF
Note: Already posted before.

Maybe you're trying to separate it nicely.

#Have All Common Parts
800CCF40 0FFC
#Have All X Parts
800CCF42 003C
#Have All Zero Parts
800CCF42 03C0
#Have All Limited Parts
800CCF40 F000
800CCF42 0003

But, it's not going to get all parts if you combine it all together.
At least that's what happened when I used Gameshark.


By the way, for X and Zero sharing the Life Up upgrade, does it have anything to do with the below gameshark?
#Hp Gauge Full X (0040=+16, 0038=+12, 0030=+8, 0028=+4) (Permanent effect)
300CCF2B 0040
#Hp Gauge Full Zero (0040=+16, 0038=+12, 0030=+8, 0028=+4) (Permanent effect)
300CCF2C 0040
Note: Already posted before.

It it does, then, these codes may help you making X and Zero share Weapon Energy Up.
#Weapon Energy Gauge X (+8)
300CCF31 0040
#Weapon Energy Gauge Zero (+8)
300CCF32 0040
Note:
I just retrace back this codes. Not sure if there's any bug on it.
I wonder why I deleted these codes. Maybe because X5 Zero Weapon Energy gauge is buggy.

acediez

#17
Quote from: injoon84 on June 22, 2018, 12:09:24 PM
Nice addition as always. The latest patcher (v03a), not sure these are mistakes or not.

1) Disable gaining lives (Rescued Reploids)
Rescued Reploids give 1 extra live but not from Extra Life items.

2) Disable gaining lives (Extra Life items)
Extra Life items give 1 extra live but not from rescued Reploids.

Shouldn't it be the other way round? I mean swap between these two codes.


:laugh: :laugh: :laugh: :laugh:
Yes, it should!

Quote from: injoon84 on June 22, 2018, 12:09:24 PM
Plus, aren't you missing the Common, X, Zero, and Limited Parts?

I'm not sure what you mean here.
Missing them where?

If you mean you don't get those parts when you filter those reploids out, that's just how it is at the moment. The description says you don't get the parts (I made this option pretty much only to filter the ones that don't hold items so I never worried about the rest)

But now that you provided the address where the values are registered, I can try to to implement it separately!

Quote from: injoon84 on June 22, 2018, 12:09:24 PM
But, it's not going to get all parts if you combine it all together.
At least that's what happened when I used Gameshark.
By the looks of it, the entire collection is registered the same couple of bytes (by using different multiplies as different items and adding the value up) so replacing the whole value replaces the whole collection (with one gameshark code after the other). Try adding up the hex values instead. The byte that registers your current subtanks works the same.

Quote from: injoon84 on June 22, 2018, 12:09:24 PM
By the way, for X and Zero sharing the Life Up upgrade, does it have anything to do with the below gameshark?

I will try to do the same for the weapon upgrade for the next release though. I just ran out of time last night.
Your addresses have just confirmed that weapon upgrades are indeed separate values just like the life upgrades. I didn't remember that clearly.

Once again, thanks for all your help!! This really helps me keep it going

injoon84

Just notice another bug when try to play the game.
If X and Zero share soul and rank, the rank will not increase even though Alia reporting rank improvement.
It somehow freeze the rank. Since X started the game as rank D, the game will stay at rank D.

acediez

Can you describe me step by step how to reproduce the problem? It' working fine here, so you're probably doing something differently than me.
Remember to not reuse save sates taken from different bins.




By the way, I've been working on some new options over the weekend.
- Missing stuff from the previous version (shared Energy bar upgrades, Red Orb values) and fixes (swapped "disable losing lives" options).
- Nightmare Effects: you'll be able to disable them (individually, or all of them). Can someone confirm if any of these is needed to access an item or injured reploid, or is it safe to just disable them in all cases? I'm thinking of adding this to an alternate version of the base patch.
- Customizable Ranks table. Not just the Souls requirement, also how many parts can you equip on each rank.
- The "Mark injured reploid as rescued by default" section is gonna be rewritten into a complete list of Parts you can individually select to start the game with (which will mark the corresponding Reploid as rescued).
- Characters (armors) available on a new game (giving the option to play as Zero right away)


It'll look a bit like this...

All the hacking is done, now I just need to implement all these new inputs into the patcher.

Once properly tested, I'm thinking this will be the last "big" update, at least for awhile. I hope I got most easily fixable issues with the game covered  :D