Vicen04 / Dw1DataAndPatches

A repository to show some info about the code from Digimon World 1, some patches to fix errors from the game and mods for the game.
25 stars 1 forks source link

Modding and Improvements #15

Closed Em4nu3lV1ct0r closed 3 weeks ago

Em4nu3lV1ct0r commented 1 month ago

Got some more advances, now I can use any skill with the right animation.

Machinedramon with Power Crane, Heat Laser and Infinity Burn, I also changed the animations of Fire Tower and Winter Blast too.

https://github.com/user-attachments/assets/1bb1f983-def9-447b-913e-19065cb9bd06

I have a question, to list a Digimon in a skill, is it necessary to delete another?

for example, in the Infinity Burn skill, I had to delete Gigadramon to put Machinedramon.

Is this a limitation or is it possible to work around it?

Vicen04 commented 1 month ago

Before I start, please stop opening issues to ask similar questions, it would be better to just keep one of them open and keep asking stuff there.

Short answer: For now, yes, you have to delete one to add another one.

Long answer: It is possible to expand the amount of digimon a technique can hold, but the method is not simple and I don't have any easy way to explain it:

  1. You have to first move everything below the technique list a few bytes down (a multiple of 40 hex (64 in decimal) bytes would be ideal).
  2. You have to change all of the pointers in the technique script to match the new locations. Each technique has its own unique script, so each technique needs a different way to change it.

And that is a simplified version of how it works, how to locate the pointers is a different issue, and as mentioned, each technique has different values, a different amount of pointers and has the pointers in different locations. This process takes quite a bit of time and testing, there are a lot of pointers and just missing or misplacing one breaks the technique.

Em4nu3lV1ct0r commented 1 month ago

Sorry for opening multiple issues, I'm new to Github too, if you want you can delete the others, I'll keep just one.

So I reached my limit on Skills haha, but I learned a lot more than I imagined.

Now I'm going to try to learn about the Digi-evolution lines, for example, put Gigadramon as a possible digivolution line of Drimogemon.

Thank you very much for the teachings man, and once again sorry for any disrespect.

Em4nu3lV1ct0r commented 4 weeks ago

Gigadramon added: Wind Cutter with Dinamite Kick Animation Change: Thunder Justice with Metal Sprinter Animation and Prominence Beam with Power Crane Animation

https://github.com/user-attachments/assets/a80f792f-bf03-4612-b1eb-294db4708519

Was it cool?

Vicen04 commented 4 weeks ago

The Prominence Beam and Wind Cutter look good, the Thunder Justice one kinda looks bad at the end of it... it can be solved if you just manually set the position of the thunder itself at the start, rather than attaching it to a body part (it can be done by using 0 in the node value, since 0 means no body part attachment).

I'm not sure if making the Beam appear from an arm is a good idea, a big digimon may be fine, but a smaller one has a good chance of avoiding it... I'm pretty sure all the digimon with the Beam (with the exception of Guardromon, but the arms are closer on that animation) make it appear in the center of its body...

I'll think about the Thunder Justice one...

I'm not willing to add Wind Cutter, the idea of Gigadramon (at least on my hack) is to be a full fire type, that means it can perform any of the fire techs.

Now, I'm not saying the ideas are bad or it should be discarded, something that you could do is to create your own patch with your changes, some people may prefer these ideas. You can use PPFStudio to make the patches, it is simple to use (you may also need to recalculate the ECC/EDC before making a patch).

Em4nu3lV1ct0r commented 4 weeks ago

Prominence beam worked well against Betamons and Kunemons in testing (unlike Ice Statue on Machinedramon which made some mistakes).

I understand, my goal is just to contribute with some ideas that may be cool, weird or impossible haha, it will be up to you to judge what may be interesting or not.

Depending on whether you're going to keep updating the mod, of course.

Em4nu3lV1ct0r commented 4 weeks ago

Is there any peculiarity in Panjyamon's animations?

I tried to change the giga Freeze animation (from War Cry to Muscle charge) but without success.

00B9499C Panjyamon animations

Vicen04 commented 4 weeks ago

Did you make sure to ignore the ECC chunk? The BIN is full of those, since it divides each part by sectors: image

It always has a size of 130 hex

Em4nu3lV1ct0r commented 4 weeks ago

PAJYA

I must be making a mistake, will panjyamon's battle animations start here?

Vicen04 commented 4 weeks ago

Yes, that should be the first battle animation pointer

Em4nu3lV1ct0r commented 4 weeks ago

I still keep making mistakes haha

Em4nu3lV1ct0r commented 4 weeks ago

Yes, that should be the first battle animation pointer

Still no success, could you mark the giga freeze and muscle charge pointers?

xuroka commented 4 weeks ago

DWV I cannot see the Digimon chart. Would you like to upload the new one?

Vicen04 commented 4 weeks ago

Still no success, could you mark the giga freeze and muscle charge pointers?

The yellow one is Giga Freeze, the other is Muscle Charge image

Also, make sure the order of the techniques is the same: image

I'm not sure if you changed them while testing or something like that.

I cannot see the Digimon chart. Would you like to upload the new one?

I changed the link, now it will just open Github, but the image is there

Em4nu3lV1ct0r commented 4 weeks ago

https://github.com/user-attachments/assets/fced8e0a-4c24-4337-874d-32f97164c799

I did it, thanks bro, it was lower than I thought.

Em4nu3lV1ct0r commented 4 weeks ago

https://github.com/user-attachments/assets/32193007-966a-42be-9fdd-59823ba9ad33

removed: Counter and Ice Needle add: Wind Cutter and Winter Blast change: Giga Freeze (getting the skill aligned is the hardest part, I don't know if it gets better than this)

Em4nu3lV1ct0r commented 4 weeks ago

https://github.com/user-attachments/assets/c037c74b-214f-478f-8491-dac2a82e7924

now yes, perfect position

30 00 04 00 46 00 FA FF 00 00

Vicen04 commented 4 weeks ago

Ah, I already changed the position myself.

Tbh, it was supposed to have the "scold" animation there too, I don't know why it has "War Cry"

Em4nu3lV1ct0r commented 4 weeks ago

mysteries of the code haha, is it very complicated to transform Panjyamon into Ultimate?

Vicen04 commented 4 weeks ago

It probably was overwritten at some point, I have too many changes and versions...

You can just check SydMontague data spreadsheet, there is an evolution guide on gamefaqs with the link to it. Compare the first sheet to the part where you can change which techniques the digimon has. You can also use the other sheets to make changes in other parts...

Edit: I forgot to answer the question itself. It is easy, it just needs 1 byte to be changed in the area I mentioned. It was actually more difficult to maintain it as a champion since it has to be able to evolve.

Em4nu3lV1ct0r commented 3 weeks ago

Edit: I forgot to answer the question itself. It is easy, it just needs 1 byte to be changed in the area I mentioned. It was actually more difficult to maintain it as a champion since it has to be able to evolve.

I can now change the digievolutions haha

Panjyamon Ultimate Level with WereGarurumon Status: Captura de tela 2024-09-25 000534 Captura de tela 2024-09-24 211314

I want to make machinedramon exclusive to factorial town and machi coder.

Now I need to change the noble mane to be accepted only by champion level digimons, right? Could you show me how?

Thank you so much Man, you have been very patient 😅.

Vicen04 commented 3 weeks ago

No need to change the Noble Mane, it automatically detects the level of the target digimon, all the evo items do that. In the same way the chart also changes automatically as you could test.

The Machi coder is an exception, that one was not originally an evolution item, so it relies on extra code I made

Em4nu3lV1ct0r commented 3 weeks ago

No need to change the Noble Mane, it automatically detects the level of the target digimon, all the evo items do that. In the same way the chart also changes automatically as you could test.

would the level code be here? panjyalevel

level children continues to accept noble mane, and level champion does not accept it.

https://github.com/user-attachments/assets/3647bd0b-3fb9-44de-8fea-d99238a379da

I must have got something wrong.

Vicen04 commented 3 weeks ago

Ah right, I forgot about something...

The Noble Mane, the Giga Hand and the Metal Banana do have special code for them. You have to change the code for those, it is not the evolution item code, but the item rejection code which is the problem.

In the offset 14CD51D4: change that byte from 03 to 04. That should change which digimon can accept the Noble Mane.

The function is in the repository if you are curious about it.

Em4nu3lV1ct0r commented 3 weeks ago

Ah right, I forgot about something...

The Noble Mane, the Giga Hand and the Metal Banana do have special code for them. You have to change the code for those, it is not the evolution item code, but the item rejection code which is the problem.

In the offset 14CD51D4: change that byte from 03 to 04. That should change which digimon can accept the Noble Mane.

The function is in the repository if you are curious about it.

Worked perfectly, thanks man.

Em4nu3lV1ct0r commented 3 weeks ago

Can you show me Etemon's battle animations pointer? I think there's an ECC Chunk in the middle, I'm not sure haha.

Vicen04 commented 3 weeks ago

Those are pretty easy to spot:

Em4nu3lV1ct0r commented 3 weeks ago

Those are pretty easy to spot:

  • The animations pointers never use the last byte and, at most, it uses a bit of the third byte, so it will always be like this: XX XX 0X 00
  • If you see something that is not 00 at the last byte, that is probably the start of the ECC.
  • The ECC is always 130 hex long and it will end in this way: A bunch of FF, then XX XX XX XX XX 00 00 XX 00 00 00 XX 00 (Well, the ECC itself is technically 118 hex bytes long, but I'm making it more simple to explain, the start with the FF is technically the start of a sector, which is 18 hex bytes long, 118 hex + 18 hex = 130 hex).
  • Usually the last two XX are a "08", but some may be different depending on the location.

I learned how to check the ECC chunk, thanks Man.

I checked and Etemon does not have ECC chunk.

I was trying to get the IDs of Muscle Charge and War Cry to use in MetalEtemon.

but Etemon and MetalEtemon seem to work differently than Gigadramon and Megadramon (which share the same battle animation IDs)

Could you show me what the animation IDs are for MetalEtemon's War Cry and Muscle Charge?

Vicen04 commented 3 weeks ago

Ah right, MetalEtemon originally did not have an animation that Etemon does have, so it has completely different attack animation pointers due to that (the missing animation is not an attack, it is something else). While I added it back it the hack, it was at the end of the file, so the pointers remained unchanged.

Muclse charge is 50 D9 00 00 War Cry should be the animation for Confused Storm: 92 CE 00 00

Just remember that those values are only valid in my hack, these don't work on vanilla/Maeson.

Em4nu3lV1ct0r commented 3 weeks ago

Ah right, MetalEtemon originally did not have an animation that Etemon does have, so it has completely different attack animation pointers due to that (the missing animation is not an attack, it is something else). While I added it back it the hack, it was at the end of the file, so the pointers remained unchanged.

Muclse charge is 50 D9 00 00 War Cry should be the animation for Confused Storm: 92 CE 00 00

Just remember that those values are only valid in my hack, these don't work on vanilla/Maeson.

Thanks bro, I looked for these pointers everywhere haha.

I've already made almost all the changes I wanted to the digimons and digivolutions.

I also learned how to make a patch of these changes, I'll upload it here soon.

Q1: Do playable Digimon share skills with non-playable Digimon? Example: playable Ogremon ID: 22, non-playable Ogremon ID: 9A, Is it only necessary to have Ogremon's playable ID in a Skill so that both can use it? I know that, for example, Megadramon Playable/No Playable and Gigadramon share skills, requiring only Megadramon's ID for the three to be able to use a certain skill, but I don't know if the same happens with the rest of the Digimon's.

Q2: Machinedramon (in Ogre Fortress) continues to use an ability that I retired (I put infinite burn in place) with different animation (before it was Ult Poop Hell with All Range Beam Animation, now it is Ult Poop Hell with Megaton Punch Animation), I think all machinedramons (Playable, Final Boss, Orgre Fortress, Ice Santuary, Gray Lord Mansion and Arena) share a single set of animations, right? but each one has its own list of skills, so do I need to correct the list of skills for each Machinedramon? (unlike Megadramon, which has a set of animations for the Playable and another for the non-playable, if I change an animation in the playable one, it won't interfere with the non-playable one).I believe that the 4 extra Digimon have this uniqueness, a unique set of animations for both playable and non-playable characters.

Q3: Is it possible to exchange the item that Jijimon delivers? I wanted to make the following change: Jijimon Delivery: Machi Coder and PC Box in Bonus Area: Chain Melon.

Vicen04 commented 3 weeks ago

1: Explained here. But to be short, an NPC copy of playable digimon uses the same ID as the playable one when it checks for the tech.

2: Yes, you have to make the NPC and the playable one match, both share the same model because the game only has 1 model, so the animations will be the same for both.

3: It is possible, but you will also need to change the text so it makes sense and that's something that would require a different set of tools, data and explanations.

xuroka commented 3 weeks ago
  1. Is it possible to include both Machinedramon and Myotismon at the same time?
  2. There is no guide to change evolution chart for unhacked Digimon. Do you know the addresses for all normal Digimon?
  3. Is there a way to make poisoned Digimon move normally without tired movements? Thanks.
Vicen04 commented 3 weeks ago
  1. It is possible if you remove either Panjyamon, Gigadramon or MetalEtemon in exchange for Myotismon.
  2. Here, at the bottom of that guide.
  3. It is possible? Yes, but I actually have no idea how to do it as now. I have not found that part of the code since I never thought about changing that.
Em4nu3lV1ct0r commented 3 weeks ago

1: Explained here. But to be short, an NPC copy of playable digimon uses the same ID as the playable one when it checks for the tech.

2: Yes, you have to make the NPC and the playable one match, both share the same model because the game only has 1 model, so the animations will be the same for both.

3: It is possible, but you will also need to change the text so it makes sense and that's something that would require a different set of tools, data and explanations.

1: I understand, Wind cutter, for example, has playable and non-playable Bakemon listed, I used the non-playable byte to insert Panjyamon (Leomon's ID).

2: I understand, could you show me the pointers of the NPCS Machinedramon skills? maybe Panjyamon, Gigadramon and MetalEtemon too, if it's not too much to ask😅.

3: it's beyond my learning, I thought it would be a simple pointer haha.

Vicen04 commented 3 weeks ago
  1. Wait, but you already changed the moveset on your own, how do you not know where those are? The NPC Machinedramon is just the second Machinedramon in that area.
  2. I mean, it is not complicated, but I have not explained it anywhere and I don't have the time now to make a tutorial for that. There are already tools to help change all of that... For the Japanese and the PAL versions, not for the NTSC-U version... Tool from Uzuhenry
Em4nu3lV1ct0r commented 3 weeks ago
  1. Wait, but you already changed the moveset on your own, how do you not know where those are? The NPC Machinedramon is just the second Machinedramon in that area.

    1. I mean, it is not complicated, but I have not explained it anywhere and I don't have the time now to make a tutorial for that. There are already tools to help change all of that... For the Japanese and the PAL versions, not for the NTSC-U version... Tool from Uzuhenry

2: I had found the second Machinedramon and changed it, but it hadn't worked, but now it works haha, in this case it's just 1 Machinedramon NPC? 1MACHINEDRAMON 2MACHINEDRAMON

3:I'm going to this tutorial, thanks man.

New Question: It's more of a curiosity, what is that staircase in the Arena Lobby? Is there any unused lost code or secret function?

Vicen04 commented 3 weeks ago

Yes, there is only that NPC Machinedramon, which is technically the original Machinedramon.

The staircase is just something visual, it is always set to say the same no matter what you do. I have no idea if the devs had other plans for that part, but the script is just the text that always triggers and that's all.

Em4nu3lV1ct0r commented 3 weeks ago

Yes, there is only that NPC Machinedramon, which is technically the original Machinedramon.

The staircase is just something visual, it is always set to say the same no matter what you do. I have no idea if the devs had other plans for that part, but the script is just the text that always triggers and that's all.

I see, it would be cool to have something, an extra room with a gekomon selling digievolution items haha.

I reused the animation from the special to change the ice statue, I think it looked cool

https://github.com/user-attachments/assets/05c57f72-05d1-4e35-a4fb-f7a38d7e6e54

Em4nu3lV1ct0r commented 3 weeks ago

Tool from Uzuhenry

I joined DMC's Discord through Uzehenry's link and saw Weregarurumon there, it's your project right? It's really cool Man, congratulations

xuroka commented 3 weeks ago

Is there a way to expand the Tech animation list (xyz coordinates) without replacing the already exist codes? I am afraid of breaking the codes. Thanks.

Vicen04 commented 3 weeks ago

Short answer: For now, yes, you have to delete one to add another one.

Long answer: It is possible to expand the amount of digimon a technique can hold, but the method is not simple and I don't have any easy way to explain it:

  1. You have to first move everything below the technique list a few bytes down (a multiple of 40 hex (64 in decimal) bytes would be ideal).
  2. You have to change all of the pointers in the technique script to match the new locations. Each technique has its own unique script, so each technique needs a different way to change it.

And that is a simplified version of how it works, how to locate the pointers is a different issue, and as mentioned, each technique has different values, a different amount of pointers and has the pointers in different locations. This process takes quite a bit of time and testing, there are a lot of pointers and just missing or misplacing one breaks the technique.

Em4nu3lV1ct0r commented 3 weeks ago

Is it possible to assign statuses to digivolve to Vademon?

Vicen04 commented 3 weeks ago

The stats requirements are located at 14D6C254, the stat gains and other stuff are close to that.

Em4nu3lV1ct0r commented 3 weeks ago

The stats requirements are located at 14D6C254, the stat gains and other stuff are close to that.

Thanks bro, I forgot to ask for Megaseadramon too😵, I didn't remember that he doesn't have defined status, if you can send it.

Is it possible to create new statuses for Digievolution? For example, exclusive statuses for Megaseadramon, Vademon or Gigaadramon, without changing the memory limit.

Vicen04 commented 3 weeks ago

The stats requirements are located at 14D6C254, the stat gains and other stuff are close to that.

That was for the entire list, not for Vademon. Starting with the Tamer, Botamon, Koromon... Also, MegaSeadramon already has stats requirements...

Em4nu3lV1ct0r commented 3 weeks ago

Os requisitos de estatísticas estão localizados em 14D6C254, os ganhos estatísticos e outras coisas estão próximas disso.

Isso foi para toda a lista, não para Vademon. Começando com o Tamer, Botamon, Koromon... Além disso, MegaSeadramon já tem requisitos de estatísticas...

I understood, Tanemon? Captura de tela 2024-09-29 180132

Does this part of the code consist of 10 (hex) bits?

Vicen04 commented 3 weeks ago

Each digimon uses 1C hex, since you are in the modding community discord, just check the resources tab for a direct link to Syd spreadsheet data. You can compare the data there.

Em4nu3lV1ct0r commented 3 weeks ago

Each digimon uses 1C hex, since you are in the modding community discord, just check the resources tab for a direct link to Syd spreadsheet data. You can compare the data there.

nice, i will check, thanks man.