nipkownix / re4_tweaks

Fixes and tweaks for the "UHD" port of Resident Evil 4
zlib License
342 stars 32 forks source link

No Limit for grenades and flashes #335

Open Scoovy opened 2 years ago

Scoovy commented 2 years ago

Describe the feature you'd like to see added

normally in the game only about 20 enemies can get hit from these types of grenades which makes playing sometimes really annoying when there are alot of enemies on screen

so i think this would be a good addition to tweaks

Qingsheng mentioned that offset 285E2D in the bio4.exe is where the limit is stored

emoose commented 2 years ago

Do you know if qingsheng had any luck changing it? I found the code he mentioned, seems it decides max number based on weapon ID, but then makes use of stack memory where there's only room for 20 slots, so increasing the number would just make it overwrite other stack memory.

Not really sure if we can adjust how much stack memory it had, but it'd probably be possible to get it to use our own block of memory instead with more space, would need a way to test it out for myself though...

Scoovy commented 2 years ago

i didnt edit this myself as i didnt need to but i know Futon changed it using that offset

this is what qingsheng said in the full message

"If you want the grenade to damage more enemies, you can modify the EXE file, offset 285E2D 1400 that is 20 enemies 0014"

emoose commented 2 years ago

Hmm, they might have got lucky or maybe didn't test it for that long, I'm pretty sure if you edit that and it returns more than 20 enemies it'd overflow the stack and start overwriting other stuff, probably making it crash, or maybe what it overwrites isn't too important so game still works, but would probably start corrupting stuff at least.

Like I said it wouldn't be too hard to make it use our own block of memory though, could probably make it so when grenade goes off it allocates enough memory for it based on how many cEm actors are active - would still need some way of testing it for myself though, not really sure how to get that many enemies at once.