JustRegularLuna / pokered-clean

This will cleanup various nonsense code or junk data from Red, and make some things more flexible.
10 stars 3 forks source link

Glitched Sprites #3

Open GBC-OG opened 2 years ago

GBC-OG commented 2 years ago

The ROM build's fine now, but certain sprites are glitched. For example, I gave Brock Omanyte, Kabuto and Aerodactyl and they all look like Missingno and sometimes crash the game. Only his Geodude and Onix look normal, incidentally the only two pokemon that he has on his team in the official Pokemon Red/Blue version. I'm guessing this isn't a coincidence.

JustRegularLuna commented 2 years ago

it is a coincidence. I guess I will have to look into it. I haven't touched this repo in 2 years, I wish I'd taken it down and saved you the headache of unknowingly working with outdated stuff.

In the future though, I recommend always making sure you can build a project before making changes and testing things as you go.

GBC-OG commented 2 years ago

So upon further testing it might just be a compilation error. Sometimes when you build a rom after fixing multiple errors it ends up buggy because the build process was interrupted with error notifications. I tried it again with all the clean files and it seems to be working so far. Brock's Omanyte looks normal. I'll have to do a full playthrough of the game to be sure there's no more glitches but so far it seems everything up until Gym 1 looks ok.

JustRegularLuna commented 2 years ago

hopefully its working

JustRegularLuna commented 2 years ago

if its not, I'll take a short break from my other dev work to try and help you get it sorted tonight after work.

GBC-OG commented 2 years ago

Fingers crossed. And yes, I'll definitely be building roms first before changing files to make sure the disassembly works!

GBC-OG commented 2 years ago

Thanks I appreciate it! So far so good though, I'll be in touch if I notice any more errors, but I think I've cleaned it up so far.

GBC-OG commented 2 years ago

Hey, you can delete this issue as I think it's resolved.

But I had a question about removing wild encounters I was wondering if you could help me with. So all I did was remove the Dugtrio lines from the diglettscave.asm as I didn't want Dugtrio encounters in the cave. However, in their place now Missingno shows up instead. Do you know why that is?

JustRegularLuna commented 2 years ago

wild pokemon tables are a fixed size. thats why Route 1 for example has pidgey and rattata listed more than once in different slots at different levels. when you deleted those lines entirely, the game is still reading the same amount of data. So it read past the end of the table and interpreted whatever came after it as the level and species data for the slots you didn't define. so to get rid of the dugtrio encounters, replace those lines with diglett, don't just delete them.

GBC-OG commented 2 years ago

Ohhhhhhhh! That makes sense...thanks!

JustRegularLuna commented 2 years ago

no problem

GBC-OG commented 2 years ago

Hey, sorry to bother you again, I got one last question. So I changed trainer movesets in the trainer_parties.asm and everything works well except for certain moves like "swords dance" or "recover." I've noticed that if I give the AI those moves they will use only those moves and never anything else. Do you know why that is?

JustRegularLuna commented 2 years ago

Red Version's AI was very simple and very "dumb" so it's probably getting confused.

GBC-OG commented 2 years ago

So after testing a bunch and reading about the AI in Red/Blue/Yellow it seems to be a coding error. Moves like Swords Dance and Recover are "normal" type moves but the AI reads them as effective against the enemy Pokemon even though they are non-damaging, hence the repeated usage. This is a problem hardcoded into the way move selection routines are selected so it can't be changed easily. The problem is resolved if you just switch to a different type of Pokemon. That, or change movesets lol.