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

Ghaleonh41

Glad to see that this project is still getting traction!

jordonX97

I tried downloading the tweaks patcher today and Norton blocks the exe file and removes it. has this been a logged file or is Norton screwing me, I don't want to take chances

pating

Quote from: jordonX97 on April 05, 2022, 02:04:17 AM
I tried downloading the tweaks patcher today and Norton blocks the exe file and removes it. has this been a logged file or is Norton screwing me, I don't want to take chances

Norton is screwing you either disable Norton or change it to other anti-virus like ESET

anthroxdq32

Is there any documentation for Speedster and Hyper Dash icons besides the ones for Mission Report? I tried looking through the Workbook but that was the only place for them.

Thank you.

acediez

@Danielxz  thanks for the bug reports, I never noticed those glitched sprites. As for the Shadow Armor's special weapons the problem is not enabling them, but adding back the graphics. It's on the X5 thread FAQ.

@anthroxdq32  I don't remember 100%, but I think that's because Mission Report is the only place where I modified icons by code. I modified icons in other places by editing the graphics files directly.

anthroxdq32

#985
Quote from: acediez on April 17, 2022, 12:41:33 PM
I don't remember 100%, but I think that's because Mission Report is the only place where I modified icons by code. I modified icons in other places by editing the graphics files directly.
Thank you. I was able to get the Mission Report to work fine for both of the icons through the workbook research.

I need some sort of way to modify the graphic files. I'm using the Japanese version as a base as usual.

Update: I was able to edit the save and load prompts with the icon swap using similar addresses. It seems like it's different in-game and on the Part select screens. It must be like X5's part select screen where the assets and values are in different places. I've tried using Tile Molester Mod with the .DAT file but I don't think it works. I need to try different things. I just don't have much time to try except the weekends.

acediez

Quote from: anthroxdq32 on April 17, 2022, 01:50:16 PM
Update:It seems like it's different in-game and on the Part select screens.
It is. Consider the game loads a separate section of the DAT file for different parts of the game (title screen menus, stage select menus, mission report menus, a different in-game pack for each character, etc). There's several copies of these icons.

anthroxdq32

I feel like it's possible for me to edit what's displayed in the Pause Menu parts by code. But if the Stage Select display of parts is one big asset then I am screwed. I can understand the approach why you didn't continue trying to swap icons through code methods. lol

I tried using Biofat since it has a tool that decompresses X6's DAT, but it crashes. I need to find some sort of way to make it not crash. I also tried using Nova Strike that DarkSamus993 made in 2016. If there's any tools that I've mentioned above that I could use. Please help me learn. If it's a secret used by you and the patcher you've made then I understand and I'm going to have to call it a day with just Mission Report and Save/Load edits.

I was able to port everything I wanted to another region easily with just trying different things and learning addresses from another version for both X5 and X6. Still, thank you for all you've done to make these games better.

acediez

Actually, it was the other way around. I replaced icons by editing graphics when I wasn't skilled enough to find the code that controlled it. But then I was  :angel:
It's "harder", but way more convenient. If I were to start the project by scratch, I would've done them all that way.

I unpack/repack DAT files using gledson9999's tools, that's actually on the project credits ("Disc files unpack/repack tools. Text editing tools."). I did figure out the file structure and wrote my own scripts to edit them eventually, but theirs are faster and more stable (I can only code AHK scripts 😳). I don't share gledson's tools myself because, well, I didn't make them. But if you ask them I'm sure they won't mind sharing them.

The list of files within the DAT pack is well documented both in DarkSamus pastebins (https://pastebin.com/u/DarkSamus993) and my workbook.

NovaStrike is only meant for compressed spritesheets (characters, weapons), which is stated pretty clearly on its documentation. And even then, it can only uncompress for ripping purposes, not 'recompress' edited graphics (if we could do that we'd have way cooler hacks by now)

Character and weapon spritesheets are IIRC the only compressed graphics in the game (maybe maps tilesets too, I don't remember). You can access pretty much all menu graphics just by diving into TileMolester with the right settings.

anthroxdq32

I sent a PM. I can't do anything with my DAT file at this point without those tools.

I tried looking around more. 800CDDD0 around that range and earlier in USA RAM allows single parts and graphics to be disabled or moved or re-enabled. There's not much you can change besides disabling parts with 00s, at least for 800CDDD2. I figured I could swap icons around there, but I don't think it's happening.

It leads me to believe the values for part icons are different than the ones used in Mission Report and Saving/Loading.

acediez

Quote from: anthroxdq32 on April 23, 2022, 11:38:29 AM
I tried looking around more. 800CDDD0 around that range and earlier in USA RAM allows single parts and graphics to be disabled or moved or re-enabled. There's not much you can change besides disabling parts with 00s, at least for 800CDDD2. I figured I could swap icons around there, but I don't think it's happening.

The whole "800CDDD0" table is only for playthrough data, which includes your currently collected and equipped Parts. You won't be changing any sprite data from there. But knowing where the game stores your currently collected Parts can be used to trace any code that uses that information (ex.: code that controls which Parts to display on screen)

First, you have to figure out when the icons are loaded. It's usually whenever the menu itslef is first being loaded (ex. right after you enter it). Then, you use the RAM address on the playthrough data as a breakpoint (in this case 800CDDD2).

If you get a breakpoint, it's very likely related to displaying the icons on screen (it's not gonna be used for much else outside of gameplay). It usually takes the "ID" of every Part, check if it's collected/equipped, and if it is, it uses it as an offset to look for data related to its graphics on 2-3 different tables: one for sprite position, one for sprite paletter and tile, etc. The later one is the one you need to modify.

For example, here's the one for Stage Select screen. I just looked for it.

(The RAM addresses are for the US version, but you should be able to find the same data within the JPN version's RAM and executables, it's very likely exactly the same)


RAM        Palette   Tileset
800F133C   3C02      0000        Speedster
800F1340   3C02      0001        Jumper
800F1344   3C02      0002        Hyper Dash
800F1348   3C02      0003        Energy Saver
...


You should be able to permanently change the icons just be swapping the Tileset offset for Speedster and Hyper Dash, so it would be...


RAM        Palette   Tileset
800F133C   3C02      0002        Speedster
800F1340   3C02      0001        Jumper
800F1344   3C02      0000        Hyper Dash
800F1348   3C02      0003        Energy Saver
...


You should be able to find the remaining ones (save screen, in-game pause menu) by either looking for similar tables (just play around with their values until you find the right one), or by debugging code, following the process I described.

Good luck!

anthroxdq32

#991
Thank you for doing the research for me and giving me some hope. I hope that the 800CDDD2 address for Speedster helped you find something immediately and I should have tried a breakpoint there. :crazy:

I can confirm those values are all for the Stage Select Part Equip listings like you mentioned. I have no idea why there's 4 different addresses for them and I assumed that at least maybe two of them would be for the pause menu alone. I was thinking maybe equipped graphics for either X or Zero.

I tried toggling the breakpoint for 800CDDD2 for Write breakpoint. But I don't think it would work for the pause menus since those values go away immediately. I'm trying to find if the values would be near each other now or at least a similar table.

I can confirm save/load is near where Mission Report is and those values are the same, (040000006A & 100000006C and swapping the A and C)

With the information that you gave me, all that's left for me is the pause menus. I think it's possible. I'm forever grateful to you, especially if I never have to go around editing the DAT file for graphics.

acediez

Quote from: anthroxdq32 on April 24, 2022, 04:49:39 PMI hope that the 800CDDD2 address for Speedster helped you

Actually, I meant 800CCF40 😅 ... the "Available Parts" address from the main Playthrough table (800CCED0). Sorry, that might've lead you in the wrong direction.

Finding a breakpoint for the Pause Menu is a longer rabit hole. First, the game takes the values from the Playthrough table and copies to the In-game table (800970A0). That's what it reads in-game. And it does for a two or three more subroutines not related to the icons (actual gameplay changes, such as walking speed for the Speedster). You have to NOP a couple of those to pin point the ones related to the menu.
The address is only used to put which Part ID goes in which slot. To find the icon for each, you have to, again, breakpoint from there.

This is just how most romhacking goes. Nothing too exciting, just patiently tracing where values go until you find what you need.

Anyway, I got this far just to explain it, I ended up finding it (I think. I only tried for X)


RAM        Tile Index   
80070C09    5E Speedster
80070C0A           5F Jumper
80070C0B    60 Hyper Dash
80070C0C    61 Energy Saber
...

anthroxdq32

#993
I wouldn't have been able to do this just adding 00s across the board in RAM. :D

Switching the 5B to 5D and the 5D to 5B made things work and it seems to work for X indeed. Zero is right near there at 80070C22 with a 59, making it 5B worked and 80070C24 with 59. I compared it to the next value over like the way you swapped things around in the Mission Report research you did. Zero seems to have different values for his icons. It's remarkable how changing something drastically with a crazy value dictates how the game displays them.

Thank you so much for helping me. It's hard to unsee such a thing once you notice it and now I understand why you went the route the way you did back then. Maybe this could save you some trouble in your patcher or tweaks to just edit these values rather than the graphical assets now?

I hope that my posts for X5 were helpful doing research on DarkSamus993's patch with the Crescent Grizzly truck enabler and the Shared Mission Report pickups for Life / Weapon Ups and Shared Heart Tank pickups. Without you and him I probably wouldn't have been able to enjoy these two games as much as I do now fixing all the gripes I had with them back then. Especially with my preferred version to play.

acediez

I'm glad you're done, congrats! It's always fun to guide someone trying to get things done on their own.

One last thing: make sure you got both Save/Load menus: from Mission Report, and from the Title Screen. Even though they're the same menu, their assets are stored separately, and IIRC, the code is duplicated too (I might be wrong though, but it's worth a check)

Quote from: anthroxdq32 on April 24, 2022, 06:53:37 PMI hope that my posts for X5 were helpful doing research on DarkSamus993's patch with the Crescent Grizzly truck enabler and the Shared Mission Report pickups for Life / Weapon Ups and Shared Heart Tank pickups.

Of course! And besides me, you never know who's gonna be looking back at these posts in the future. Every bit of info posted publicly helps. In fact, you should post the addresses you found on your own (pause menu for Zero, Save/Load menus). I'll be happy to add all these to my US version notes (even though I don't think I'll change the published hack at this point, since the end results is exactly the same)

Btw, if you ever want to publish your own versions of Rockman X5 and X6, you have my blessing. There's gotta be more people interested in having some of these hacks in the japanese version. Just give credit where it's due.

anthroxdq32

#995
For the save and load addresses, you can find them just by searching the ROCK_X6.bin or the Disc bin for 040000006A strings. It's similar to the mission report string's values. Though, one of them is for either save or load. I'll have to note it. Zero's addresses for my previous post should be for the US version. I need to get the addresses documented for save and load for you.

I was thinking about releasing Japanese tweaks I've applied. Though, it's pretty bare-bones by comparison. Things like damage table modification depending on what it is. Or enabling incomplete armors is something I'm not able to do. I'm not as good as you are and would require tons of work rerouting addresses back to their Japanese counterparts. I'm not even able to make Gate take normal damage. Just double his regular damage from orbs from what I gathered from the workbook and patcher functions. Even editing sprite data for damaged X and Zero from X5 is something I miss out on. I'd have to list what I've done and what people would want out of the games. I disabled the Nightmare function that turns off the lights and I disabled the ceilings from collapsing because it's not fun and annoying to me. I'm also not sure about exiting any stage you want and if people think that it would be fair. I've been following along since you went back into things with restoring the Nova Strike to the Fourth Armor and the part slot equips on X5. :beer:

I most certainly would give you credit along with DarkSamus933. I'm Nigoli from EXE fame and it would go on my Rockman blog first that's been dead for quite some time. I actually made "Perfect" game saves on GameFAQs from back in the day when these games were coming out and it's always been a dream to have these features rather than hacking them in a save file. It's an all right trilogy now that things are fixed and I love these old games. I've even bought original hardware that's modded with new kinds of gadgets using an ODE and HDMI mod. I've also used my original copies of these games from back then as my base. It's really a good feeling when everything just works and there's no nonsense like the Alia dialogues.

acediez

Quote from: anthroxdq32 on April 24, 2022, 08:19:49 PM
and would require tons of work rerouting addresses back to their Japanese counterparts.
You have no idea. For me, redoing the hacks on a different region is totally out of the question. It would actually be easier for me to port the script and fonts from the japanese version to the american one. That's something I'd like to get done someday, for both X5 and X6, but whenever I come back to these it's always more fun to work on new stuff rather than porting.

Nice to meet you Nigoli. I visited the MMBN corners of GameFAQs a lot when I was a kid, I most likely ran into something you submitted!
I've done a lot of MMBN fanart, it's on my deviantArt (same username).

pating

#997
Reading that having the Japanese version to have the tweak is also something good to hear. Especially when I bought the Japanese version and still in my shelf.

I don't know if I read it right, but is X5 already done? I heard that it has dialogue error or some sort. I really like to thank you and congratulate acediez for having his time to actually give justice for X6.

acediez

Thanks for the kind words again  :)

Quote from: pating on April 25, 2022, 05:00:26 PM
is X5 already done?
Nope. I haven't gotten around to that yet, but I will, eventually. Either way, I never said that's going to be the last update ever.

I know some of you would prefer if the projects had a clear roadmap, or would even prefer if I just declared them to be either definitely finished or definitely abandoned... but the reality is, I just come back to them whenever I can and feel like it 🤷‍♂️. It's just a hobbie.

Danielxz

Quote from: acediez on April 17, 2022, 12:41:33 PM
@Danielxz  thanks for the bug reports, I never noticed those glitched sprites. As for the Shadow Armor's special weapons the problem is not enabling them, but adding back the graphics. It's on the X5 thread FAQ.
but why if you have the arm upgrade(shadow/gaea buster) and try to use special weapons the game will freeze?


this option from the patcher is bugged, once activated it'll grant infinity activations to Normal X

when loading the game from memory card regardless of Rank or amount of Nightmare Souls or anything, Ilumina will always be Lv.1, after some stages or rank upgrade her Lv. will update to the correct one


and here a few things from DmgTables, High Max has an third DmgTable that only active when fighting Shadow Armor, i think this one is very important since if someone make an custom DmgTable and/or fight him as shadow with the incomplete armor option active, he will do damage only with the Saber and/or the saber charged(arm upgrade)


and i think this one is missing from DmgTable only Metal Anchor(basic shot) and Blade Saber charged can destroy it