Mega Man X5 Improvement Project Addendum (v2.1.3)

Started by acediez, October 22, 2019, 12:15:57 AM

Previous topic - Next topic

pating

#560
Nice update looking forward to Megaman X5 version 2.1

it is possible to change the Zero's learned skills such as the following...

C-Sword  to Mikazukizan
F-Splasher to Hisuishou
E-Blade to Denjin
C-Flasher to Messenkou
W-Shredder to Hayate
Quake Blazer to Danchien
Twin Dream to Sougenmu

Just to match everything from X4 to X8

injoon84

acediez,
I can't pm you. Seems like your inbox is full again. Do you have any info for the Ram value for the buttons press at the Stage Selection Menu before selecting a character? 

I want to create Gameshark code something like this but can only be used at Stage Selection Menu:
#Warp-In Animation + Hensin (Hold: Next+Previous & Single Press: Up/Down) (Note: Bug if used during warning and in-game-conversation)
D009A11C 0604 (If Up+Next+Previous)
8009A170 0000 (=No Wrap-In)
D009A11C 0608 (If Down+Next+Previoust)
8009A170 0000 (=No Wrap-In)
D009A11F 0406 (If Hold: Next+Previous & Single Press: Up)
8009A170 0001 (=Wrap-In)
D009A11F 0806 (If Hold: Next+Previous & Single Press: Down)
8009A170 0001 (=Wrap-In)
D009A11F 0406 (If Hold: Next+Previous & Single Press: Up)
200D1C4A 0010 (= +10)
D009A11F 0806 (If Hold: Next+Previous & Single Press: Down)
210D1C4A 0010 (= -10)
E00D1C4A 0020 (If All Armors & Zero = 20)
300D1C4A 0010 (=Normal X & Black Zero)
E00D1C4A 0021 (If All Armors & Zero = 21)
300D1C4A 0011 (=X, Fourth & Black Zero)
E00D1C4A 0022
300D1C4A 0012
E00D1C4A 0023
300D1C4A 0013
E00D1C4A 0024
300D1C4A 0014
E00D1C4A 0025
300D1C4A 0015
E00D1C4A 0026
300D1C4A 0016
E00D1C4A 0027
300D1C4A 0017
E00D1C4A 0028
300D1C4A 0018
E00D1C4A 0029
300D1C4A 0019
E00D1C4A 002A
300D1C4A 001A
E00D1C4A 002B
300D1C4A 001B
E00D1C4A 002C
300D1C4A 001C
E00D1C4A 002D
300D1C4A 001D
E00D1C4A 002E
300D1C4A 001E
E00D1C4A 002F
300D1C4A 001F
E00D1C4A 00F0 (If All Armors & Zero = F0)
300D1C4A 0000 (=Normal X & Red Zero)
E00D1C4A 00F1 (If All Armors & Zero = F1)
300D1C4A 0001 (=X, Fourth & Red Zero)
E00D1C4A 00F2
300D1C4A 0002
E00D1C4A 00F3
300D1C4A 0003
E00D1C4A 00F4
300D1C4A 0004
E00D1C4A 00F5
300D1C4A 0005
E00D1C4A 00F6
300D1C4A 0006
E00D1C4A 00F7
300D1C4A 0007
E00D1C4A 00F8
300D1C4A 0008
E00D1C4A 00F9
300D1C4A 0009
E00D1C4A 00FA
300D1C4A 000A
E00D1C4A 00FB
300D1C4A 000B
E00D1C4A 00FC
300D1C4A 000C
E00D1C4A 00FD
300D1C4A 000D
E00D1C4A 00FE
300D1C4A 000E
E00D1C4A 00FF
300D1C4A 000F
D009A11C 0604 (If Up+Next+Previous)
3009A19A 0000 (=Normal X)
D009A11C 0608 (If Down+Next+Previoust)
3009A19A 0000 (=Normal X)

acediez

Most of the code in-game (and most of the code I've written) uses these addresses to read button inputs:

8009A11C Input Press/Direction, HELD
8009A11D Input Press/Direction, HELD (Mirror)
8009A120 Input Press/Direction, SINGLE PRESS
8009A122 Input Press/Direction, SINGLE PRESS (Mirror)

0100 (1h)   Right
0200 (2h)   Left
0400 (4h)   Up
0800 (8h)   Down
1000 (10h)  Special
2000 (20h)  Attack
4000 (40h)  Giga Attack
8000 (80h)  Jump
0001 (100h) Dash
0002 (200h) Next Weapon
0004 (400h) Prev. Weapon

These use the game's button mapping, not the "real" button inputs (example: it will read "Dash" on whatever button you mapped it, it's not "Circle")

The thing is, this address is not used outside of gameplay.

To work things into menus, you have to go to the actual source of the button inputs, which references specific buttons of the controller regardless of your in-game mapping:

800C931C Input Press/Direction, HELD
800C931E Input Press/Direction, HELD (Mirror)
800C9320 Input Press/Direction, SINGLE PRESS
800C9322 Input Press/Direction, SINGLE PRESS (Mirror)

0100 (1h)    L2
0200 (2h)    R2
0400 (4h)    L1
0800 (8h)    R1
1000 (10h)   Triangle
2000 (20h)   Circle
4000 (40h)   X
8000 (80h)   Square
0001 (100h)  Select
0002 (200h)  -
0004 (400h)  -
0008 (800h)  Start
0010 (1000h) DPad Up
0020 (2000h) DPad Right
0040 (4000h) DPad Down
0080 (8000h) DPad Left

These do work outside of gameplay, and you can use it to hack stuff into menus.

(In fact, I just used it for a new thing 👀)

injoon84

#563
Quote from: acediez on July 14, 2022, 12:25:01 AMTo work things into menus, you have to go to the actual source of the button inputs, which references specific buttons of the controller regardless of your in-game mapping:

800C931C Input Press/Direction, HELD
800C931E Input Press/Direction, HELD (Mirror)
800C9320 Input Press/Direction, SINGLE PRESS
800C9322 Input Press/Direction, SINGLE PRESS (Mirror)

0100 (1h)    L2
0200 (2h)    R2
0400 (4h)    L1
0800 (8h)    R1
1000 (10h)  Triangle
2000 (20h)  Circle
4000 (40h)  X
8000 (80h)  Square
0001 (100h)  Select
0002 (200h)  -
0004 (400h)  -
0008 (800h)  Start
0010 (1000h) DPad Up
0020 (2000h) DPad Right
0040 (4000h) DPad Down
0080 (8000h) DPad Left

These do work outside of gameplay, and you can use it to hack stuff into menus.

(In fact, I just used it for a new thing 👀)
I see. Silly me. Never notice they are the same as Joker Command. Thanks a lot and I managed to come up with this: Old
#Black/Red Zero (Press: Up/Down+Select+Start) (Note: Cannot be activated in-gameplay but can be activated during Stage Select Screen, Alia's report, cutscenes, most of the loading, and etc.)
E00D4F56 0001 (If enable X-Buster/Z-Buster)
800C931E 0100 (=Press: Select)
E009A19A 0001 (If current character is Fourth)
800C931E 0100 (=Press: Select)
E009A19A 0002 (If current character is Falcon)
800C931E 0100 (=Press: Select)
E009A19A 0003 (If current character is Gaea)
800C931E 0100 (=Press: Select)
E009A19A 0004 (If current character is Ultimate)
800C931E 0100 (=Press: Select)
E009A19A 0005 (If current character is Zero)
800C931E 0100 (=Press: Select)
D00C931E 1900 (If Press: Up+Select+Start)
200D1C4A 0010 (=Value +10 To All Armors & Zero)
D00C931E 4900 (If Press: Down+Select+Start)
210D1C4A 0010 (=Value -10 To All Armors & Zero)
E00D1C4A 0020 (If All Armors & Zero = 20)
300D1C4A 0010 (=Normal X & Black Zero)
E00D1C4A 0021 (If All Armors & Zero = 21)
300D1C4A 0011 (=X, Fourth & Black Zero)
E00D1C4A 0022
300D1C4A 0012
E00D1C4A 0023
300D1C4A 0013
E00D1C4A 0024
300D1C4A 0014
E00D1C4A 0025
300D1C4A 0015
E00D1C4A 0026
300D1C4A 0016
E00D1C4A 0027
300D1C4A 0017
E00D1C4A 0028
300D1C4A 0018
E00D1C4A 0029
300D1C4A 0019
E00D1C4A 002A
300D1C4A 001A
E00D1C4A 002B
300D1C4A 001B
E00D1C4A 002C
300D1C4A 001C
E00D1C4A 002D
300D1C4A 001D
E00D1C4A 002E
300D1C4A 001E
E00D1C4A 002F
300D1C4A 001F
E00D1C4A 00F0 (If All Armors & Zero = F0)
300D1C4A 0000 (=Normal X & Red Zero)
E00D1C4A 00F1 (If All Armors & Zero = F1)
300D1C4A 0001 (=X, Fourth & Red Zero)
E00D1C4A 00F2
300D1C4A 0002
E00D1C4A 00F3
300D1C4A 0003
E00D1C4A 00F4
300D1C4A 0004
E00D1C4A 00F5
300D1C4A 0005
E00D1C4A 00F6
300D1C4A 0006
E00D1C4A 00F7
300D1C4A 0007
E00D1C4A 00F8
300D1C4A 0008
E00D1C4A 00F9
300D1C4A 0009
E00D1C4A 00FA
300D1C4A 000A
E00D1C4A 00FB
300D1C4A 000B
E00D1C4A 00FC
300D1C4A 000C
E00D1C4A 00FD
300D1C4A 000D
E00D1C4A 00FE
300D1C4A 000E
E00D1C4A 00FF
300D1C4A 000F

acediez

#564
Cool!

Quote from: injoon84 on July 13, 2022, 12:25:33 PMbut can only be used at Stage Selection Menu:

I missed this part.

If you want to limit it to a certain screen or stage, you can use this...

800D1C00

00 = Title Screen/Transition to Character Select
01 = Character Select
04 = Stage Select Menu      <------
0A = In-Game
0C = Mission Report
0D = Game Over
0E = Save Menu
11 = Credits
12 = Credits
14 = Cutscene
18 = Pause Menu

Or this...

800D1C0C

0000 = Intro Stage
0100 = Crescent Grizzly
0200 = Dark Necrobat 1
0201 = Dark Necrobat 2
0300 = Tidal Whale
0400 = Burn Dinorex 1
0401 = Burn Dinorex 2
0500 = Volt Kraken
0600 = Shining Firefly 1
0601 = Shining Firefly 2
0700 = Spike Rosered
0800 = Spiral Pegasus
0900 = Dynamo Fight 1
0A00 = Dynamo Fight 2
0B00 = Cutscenes
0C00 = Sigma Stage
0D00 = Stage Select Menu      <------
0D01 = Boss Intro
0E00 = Title Screen
0E01 = Character Select (New Game)
0F00 = Mission Report
0F01 = Credits
1000 = Zero Stage 1
1100 = Zero Stage 2
1200 = Zero Stage 3
1300 = - - -
1400 = - - -
1500 = - - -
1600 = Training

On top of that, there's also the index for the specific menu "page" where the character selection appears, but I don't have the address for that at the moment.

Ideally, you would hack the a new input reading directly into the code that reads the normal inputs for that specific menu (left, right, confirm, return). But since you're doing it with Gamesharks, you could achieve a similar result by adding as many "current screen" conditions as needed.

injoon84

Thanks a lot with the new address.
Now I can improve to this:
#Black/Red Zero (Press: Up/Down+Select+Start) (Note: Can be activated during Stage Select Screen: Parts, Stage, and Weapon)
E20D1C00 0004 (If Screen To Load Is Lower Than 04)
800C931E 0100 (=Press: Select)
E30D1C00 0004 (If Screen To Load Is Greater Than 04)
800C931E 0100 (=Press: Select)
D00C931E 1900 (If Press: Up+Select+Start)
200D1C4A 0010 (=Value +10 To All Armors & Zero)
D00C931E 4900 (If Press: Down+Select+Start)
210D1C4A 0010 (=Value -10 To All Armors & Zero)
E00D1C4A 0020 (If All Armors & Zero = 20)
300D1C4A 0010 (=Normal X & Black Zero)
E00D1C4A 0021 (If All Armors & Zero = 21)
300D1C4A 0011 (=X, Fourth & Black Zero)
E00D1C4A 0022
300D1C4A 0012
E00D1C4A 0023
300D1C4A 0013
E00D1C4A 0024
300D1C4A 0014
E00D1C4A 0025
300D1C4A 0015
E00D1C4A 0026
300D1C4A 0016
E00D1C4A 0027
300D1C4A 0017
E00D1C4A 0028
300D1C4A 0018
E00D1C4A 0029
300D1C4A 0019
E00D1C4A 002A
300D1C4A 001A
E00D1C4A 002B
300D1C4A 001B
E00D1C4A 002C
300D1C4A 001C
E00D1C4A 002D
300D1C4A 001D
E00D1C4A 002E
300D1C4A 001E
E00D1C4A 002F
300D1C4A 001F
E00D1C4A 00F0 (If All Armors & Zero = F0)
300D1C4A 0000 (=Normal X & Red Zero)
E00D1C4A 00F1 (If All Armors & Zero = F1)
300D1C4A 0001 (=X, Fourth & Red Zero)
E00D1C4A 00F2
300D1C4A 0002
E00D1C4A 00F3
300D1C4A 0003
E00D1C4A 00F4
300D1C4A 0004
E00D1C4A 00F5
300D1C4A 0005
E00D1C4A 00F6
300D1C4A 0006
E00D1C4A 00F7
300D1C4A 0007
E00D1C4A 00F8
300D1C4A 0008
E00D1C4A 00F9
300D1C4A 0009
E00D1C4A 00FA
300D1C4A 000A
E00D1C4A 00FB
300D1C4A 000B
E00D1C4A 00FC
300D1C4A 000C
E00D1C4A 00FD
300D1C4A 000D
E00D1C4A 00FE
300D1C4A 000E
E00D1C4A 00FF
300D1C4A 000F

Ripthorn

#566
Is there any way to turn on double tap dash?
It's kind of hard for me to play without it :(

Edit: I found a way

acediez

#567
Update! A big one. But not about what I said it would be...
I had to take a long detour before I even starting what I set out to do.
It's been quite a trip. I'm gonna break it down in detail.

(Running out of space for) Boss modifications

Working on basic boss parameters (ex.: attack damage, movement durations) was one of the few things I could get into without having to face a major roadblock this project has had for awhile: I had no space left for custom code. By v2.0, I already pretty much maxed out all the usable space within the main executable.

Then I realized that, to do some of the more fun changes I was planning to make, it was unavoidable. I confirmed this while I was taking a look at the "N-Edition" hack. I hadn't looked at it closely until now. I had noticed they took things from this project (hacks and custom assets. like the title screen, boss names, menu fixes, etc). But they didn't take the more code-heavy features (like the incomplete armors). Instead, they used that space for a surprisingly large amount of code involved in their boss modifications. Surely, they also realized there just wasn't anywhere else to fit it in.

What does that mean for this project? Well, I don't want to remove previous features to make room for new ones, so... time to bite the bullet. Before I could work on anything significant, I HAD to make room for more code, one way or another.

New code, new files

A definitive solution meant breaking free from the space limitations of the main executable. RAM has plenty of space to fit more data (and obviously, the disc too!). But loading new files in the disc to RAM as needed wasn't a trivial challenge.

I had already managed to do it for data files, expanding the "ROCK_X5.DAT" pack of files (from now on, the "DAT"). This is how I got additional mugshot variants into the game (both in X6 and X5). I did it by appending new files at the end of the "DAT", and modifying the table of contents to add new entries that would point to that extended part of the file. To load them in RAM, I hooked into the existing code that reads files from the "DAT" file. I just added new entries to the table. This is something I figured out for "X6 Tweaks", and replicating it in X5 was very straight forward.

Technically, it would've been possible to load code from additional files in the "DAT" too, but that would've mean locating code at the end of a big data file, where size and addresses are prone to change in the future. That's fine for a handful of files, not so much for code. It would've been a mess to maintain it (even more so with all the hex editing instructions, imagine having to review all that everytime any data file gets bigger)

So, how does the original game do it?

There's two major sources of code: the main executable ("SLUS_013.34"), and "ROCK_X5.BIN". This "BIN" file has code that's only used in specific situations. To pick what to load, it works very similarly to how the "DAT" file does: it has a table of contents at the start of the file, and uses the screen/stage index (located in 800D1C0C) to pick which part of the "BIN" is going to be loaded on each loading screen.

Again, I figured out I could get away with hooking into the existing system, simply by expanding the same file and adding new entries to the table. And once again, it worked. Exactly as it would've from the "DAT" file, except that the "BIN" would be located before it in the disc, so I would not have the problem of the moving disc addresses.

I also realized that, instead of appending data to the existing "DAT" and "BIN" files, I could simply create a new file and locate it right after it in the disc. Internally, the results are exactly the same (the content stays in the same location regardless). That cleans up and simplifies the disc building process significantly.

The actual hard time-consuming part of all of this was moving my previously done code to the new files. And more so than the moving, was the debugging. I don't have a tool for recalculating all the addresses changes automatically, I had to replace them all manually. This, unfortunately, has the risk of introducing bugs on previously verified stuff, but as you should undertand now... it needed to be done in order to be able to continue adding things to the project.

All of this work, risk of regressions, and still no new features?

Well, there are a few things. Since I had to move so much stuff anyway, I took the chance to do a couple of things I've been meaning to do for awhile but put aside because they would involve moving stuff around. Now that I had to do it anyway, it was the perfect time.

The "All Media" disc
Getting deeper into adding and accessing more files within the disc, I figured out a way of adding back to the disc the audio tracks (and videos) that were replaced:
- The US opening movie
- Tidal Whale's stage music (Bubble Crab's stage remix)
- Dr. Light (Mega Man X1 remix)

Although the ones used by the base patch by default will be the same as previous versions (prioritizing unique tracks and japanese originals over remixes), there are two benefits from this:
- Being able to restore ANY of the replaced tracks (not just the reused ones) INDIVIDUALLY through simple hex edits.
- Being able to include the alternate tracks in new ways.

For this last part, this is what I implemented in this version:
- Opening: Holding "L1" before the opening starts will play the alternate video (the original USA version)
- Tidal Whale's stage: Holding "L1" before entering the stage will play the alternate track (the original "Bubble Crab Remix" track)
- Dr. Light capsules: the Ultimate Armor capsule will play the alternate track (the original "Mega Man X1 Remix" track)

Swapping which one is the main one and which one is the alternate in your build is also possible through hex editing instructions.

Because of this, the "no music changes" and "all music changes except opening" variant patches have been discontinued. You can now get more specific changes through hex editing instructions on the main patch. More options for you, less files for me to mantain.

Sound effects oddities
Gaea Armor's teleport sound effects are now the same as the other armors (instead of using Zero's)

I dreaded digging into sound effect files... It's complex, and even though I already did it once in X6, I didn't write any useful notes of the process (a mistake I'm not making again). But I finally got to it.

The Ultimate Armor capsule
Kinda lame that Dr. Light gives you a speech about preparing you for the next battle with this armor, and then expects you to exit the stage to actually use it. I bet this wasn't intended to be done this way, but the way the files are set up does make it tricky to implement an immediate transformation. And I bet it was mostly because of the pause menu mugshot. It's always the mugshots.

Here's a rundown of what needed to be done:

- Having unarmored X use a copy of the Ultimate Armor files instead of a copy of the Fourth Armor files.
Easy. In X5 you can strip down any armor file to unarmored X and get the same results with any of them (unlike X6, where the Shadow Armor had different sound effects, so I had to figure out how to include the unarmored X sound effects for the incomplete armor). In this case, swapping entire files was enough.
- Having the value for "current armor" be updated live.
Easy. Nothing new here either.
- Updating the mugshot.
Veeery tricky. Mugshots in X5 are just a part of the pause menu tileset. They're NOT in a separate file, and they don't have dedicated code to manage them (like they do in X6). Imagine how much of a chore would it be to both figure out a way to manage them as separate files AND how to implement them in code: loading a second mugshot to RAM, and then getting it to load in VRAM as needed...

... Good thing I already did all that, right? It's what I did for the incomplete armors. So, this time, it was just a matter of adding a new file, and adding a couple of lines to a system I already implemented. Lucky!


Voilá!

Still, this was only possible now that I have enough space to add more code!

To sum up:

v2.1
- Major rewrites, making room for more custom code.
- Media: the disc now includes all media files previously replaced from disc.
      - Opening: Holding "L1" before the opening starts will play the variant video (the original USA version)
      - Tidal Whale's stage: Holding "L1" before entering the stage will play the variant track (the original "Bubble Crab Remix" track)
      - Dr. Light capsules: the Ultimate Armor capsule will play the variant track (the original "Mega Man X1 Remix" track)
      - You can now make individual changes, such as   swapping the main tracks for the variants, through hex editing instructions.
      - Because of this, the "no music changes" and "all music changes except opening" variant patches have been discontinued.
- Sound effects: Gaea Armor's teleport sound effects are now the same as the other armors (instead of using Zero's)
- Unlockables: getting the Ultimate Armor through the capsule in Zero Stage 3 will now activate the armor immediately (instead of simply unlocking it for future use)

DOWNLOAD LINKS IN THE FIRST POST

Now, back to boss modifications (v2.2?)

I will now continue what I said on my last update I would be documenting, while also comparing my finds with what's already been done in the "N-Edition" hack. I will port to this project whatever change I find interesting, adjusting it to my liking (I mean, since we're already openly sharing on their side...)

I'm gonna take my time with this, but in the meantime I'll be maintaining any issues that may arise for this version as quickly as possible.
For anyone wanting to do a safe playthrough instead of helping looking out for bugs, v2.0.4 is still up.

See ya!

reiji505


Hey guys, can you do the Zero buster with the damage equivalent to x6?, I can't see any use in a buster that needs 4 shots to kill a common enemy, this is a disregard for the zero buster

Elyos03

#569
I kinda wish I was able to change UAX's palette to his boss/X4 palette again. I "found" the palette sets, changed them, and... Nothing changed.

Guess you were right about the addresses' position changing from update to update. Who am I to judge, tho?

By the way, there's some minor spelling mistake at the Enigma success cutscene in the new script version.

How it is:
"It a virus reading... and it's a new one."

How it should be:
"It's a virus reading... and it's a new one."
buy mega man zero/zx legacy collection with money

acediez

Quote from: Elyos03 on July 17, 2022, 11:11:20 PMI "found" the palette sets, changed them, and... Nothing changed.
There's several copies of the palette in game besides the one used for the player sprite. There's the one in the stage select menu sprite, the one for the boss battle, etc. Make sure you replace all of them.

I'll fix that typo on the next release.

Quote from: reiji505 on July 17, 2022, 05:11:23 PMHey guys, can you do the Zero buster with the damage equivalent to x6?, I can't see any use in a buster that needs 4 shots to kill a common enemy, this is a disregard for the zero buster
The damage tables are documented on the workbook (it's on the same download page)

erecyog

Here are some bugs I found while playing 2.1 on duckstation:

I can't seem to save after missions at all, it says data is corrupted.
When you fire the enigma shot, it goes to black screen and locks after the "firing" cutscene.

Aceearly1993

#572
Quote from: erecyog on July 18, 2022, 12:19:04 AMHere are some bugs I found while playing 2.1 on duckstation:

I can't seem to save after missions at all, it says data is corrupted.
When you fire the enigma shot, it goes to black screen and locks after the "firing" cutscene.
Same issue here if started without temporary save from previous version. No issue if started with temporary save from previous version though.
On my PSPgo it works as intended as eboot, maybe either real bugs or some unknown anti piracy switch triggered?
Quote"Did you know when one's most desperation time is? It's when he was beaten up by someone critically...
And he can't find who caused this."

acediez

#573
Quote from: erecyog on July 18, 2022, 12:19:04 AMWhen you fire the enigma shot, it goes to black screen and locks after the "firing" cutscene.

Ok, can confirm. I'll update with this fix right away.
(It's likely it worked on some situations and not others, as the problem comes from the code being located in a section of the file that was not being loaded on every situation)

As for not being able to save, I can't reproduce it, and it's unlikely that it's related to this hack. Probably something going on with your memory card file or your file permissions (maybe you're on a cloud service folder?)


Quote from: Aceearly1993 on July 18, 2022, 12:26:27 AMSame issue here if started without temporary save from previous version.

edit: I tried this too, deleting my save file and creating a new one, but still can't reproduce it, it worked fine (RetroArch Beetle PSX).
Either you're both having similar issues giving getting your emulator to write new files, or the hack has some very specific issue that's only being triggered in some emulators and not others (in which case, I'll just have to test it on real hardware, but I don't have it with me at the moment)

ZEROmaverick

#574
I found the music in the Ultimate Armor Capsule (X1 remix) has a little jump after the song ends and start again (sounds like "chopped")
Tested the vanilla X5 and there it sounds like an endless theme, withouth noticing start/stop

(Tested in PSVita using Adrenaline)

P.S. I also noticed that the 4th armor plasma shot is not causing multiple hits. I checked the README and looks 4th armor was modified in 2.1 (I modified it back to hexa value 5A)

Elyos03

#575
Quote from: acediez on July 18, 2022, 12:06:29 AMThere's several copies of the palette in game besides the one used for the player sprite. There's the one in the stage select menu sprite, the one for the boss battle, etc. Make sure you replace all of them.

You mean all of the "0000 BC90 AC8C FAAD BBC6 06D3 23B6 24B1 17EB 72D6 8ABD C59C 07EE A6E5 04D5 C4BC"?

According to HxD, there's the same hex numbers in 46 different offest addresses. (At least, that's what it could find in my end.)

Edit: And yet, nothing still changed... Maybe I should stop worrying about it.

Also, is it me, or is the Enable Title Screen voice clip HEX data breaking the game? I can't hear the voice, I can't see a Press Start text, let alone being able to press Start to play!
buy mega man zero/zx legacy collection with money

acediez

#576
The first hotfix is up

v2.1.1
- Fixed the Enigma shot freeze
- Reverted Fourth Armor buster remnants behavior back to original (for now)



Quote from: ZEROmaverick on July 18, 2022, 02:05:37 AMI found the music in the Ultimate Armor Capsule (X1 remix) has a little jump after the song ends and start again (sounds like "chopped")
Tested the vanilla X5 and there it sounds like an endless theme, withouth noticing start/stop

Unfortunately, PS1 music doesn't do perfect loops. All of the tracks eventually fade out and start again.
The Dr. Light theme originally has a longer file than I could fit on the disc now (fits more loops before it starts over). I tried to make it loop as seamlessly as possible, and it does sound fine on the emulators I tested it in, but it plays a bit different on other emulators/system.
I'll try to fit a longer file though.

edit: turns out I was getting bigger filesizes for no reason other than the conversion tool acting weird. I'll restore the original length of the restored tracks on the next update.

QuoteP.S. I also noticed that the 4th armor plasma shot is not causing multiple hits. I checked the README and looks 4th armor was modified in 2.1 (I modified it back to hexa value 5A)
Forgot to mention it in the update. I'm working on introducing a few nerfs for the Fourth Armor, starting with that one, but I decided to revert it for now. I'll deal with this later.

QuoteYou mean all of the "0000 BC90 AC8C FAAD BBC6 06D3 23B6 24B1 17EB 72D6 8ABD C59C 07EE A6E5 04D5 C4BC"?

I don't know how many copies there are in total, but that should be the one.
Remember there's also the "highlights" variant for when you're shooting

https://www.romhacking.net/forum/index.php?msg=411729
https://www.romhacking.net/forum/index.php?msg=411805

QuoteAlso, is it me, or is the Enable Title Screen voice clip HEX data breaking the game? I can't hear the voice, I can't see a Press Start text, let alone being able to press Start to play!

Thanks, I missed updating that one, it has the wrong data on the current Readme.
It should be like this:

Enable Title Screen voice clip ("Rockman X5")
-----------------------------------------------------------
BIN Address: 1FB28
HEX Data Disabled: 218000002000B4AF
HEX Data Enabled: 00E8070821800000

ZEROmaverick

#577
I have to say that getting the Ultimate Armor after Light's speech makes a lot more sense! Also identifying that capsule as a special one using Light's Theme from X1 works perfect.

Bug Report:

     -I found that when pressing L1 to start with Bubble Crab theme, once you die the music returns to Unused X5 track

Questions:

I have 2 questions regarding music:

     -Is it possible to activate X1 capsule theme for the cutscenes only (the one triggered when ZERO being in conctact with the sigma virus and X ending when Light appears in front of X's destroyed body)

     -Is it possible to trigger X2 Bubble Crab remix, based on which character you choose for the stage? I was thinking in X2 theme would fit nice if you choose, let's say, unarmored X. And for all other characters/armor just trigger the unused X5 track. Or to make it triggered by any other event? Maybe after Eurasia Crash os ZERO stage are enable?

Just my 2 cents.

As always GREAT WORK! X5 and X6 now are great games thanks to you!


acediez

#578
Thanks! I'm glad you're liking the update.

Quote from: ZEROmaverick on July 18, 2022, 12:03:05 PMBug Report:

I found that when pressing L1 to start with Bubble Crab theme, once you die the music returns to Unused X5 track

Not really a bug, it still works if you hold L1 before the stage starts (press L1 from the moment you select "Continue")
But I'll see if I can implement a way for the game to remember what you selected first.

Quote from: ZEROmaverick on July 18, 2022, 12:03:05 PM-Is it possible to activate X1 capsule theme for the cutscenes only (the one triggered when ZERO being in conctact with the sigma virus and X ending when Light appears in front of X's destroyed body)
Possible, I could add those addresses to the readme.

Quote-Is it possible to trigger X2 Bubble Crab remix, based on which character you choose for the stage? I was thinking in X2 theme would fit nice if you choose, let's say, unarmored X. And for all other characters/armor just trigger the unused X5 track. Or to make it triggered by any other event? Maybe after Eurasia Crash os ZERO stage are enable?

All possible, but then I'd never be done adding possible triggers people come up with. I'll keep it in mind though.

ZEROmaverick