It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
avatar
SFJake: .........................
.........................

Well, well, well.

I'm removing the links and the instructions.

If anyone of the GOG team had considered including this patch officially, please don't.

Apparently I completely missed this obvious issue, everybody else did.

The numbers I was changing are not really the "bad" damage scaling values. Well, they are, but they're also the damage scaling on the monsters.

Basically, Extra Crispy is totally screwed up in this manner, with monsters always doing the damage they should yes, but now you can kill them very easily.

This means the game just references this section wrongly and I don't have the competence to change that, in fact I didn't have to spot this problem before I bloody posted the god damn patch everywhere.

The patch was crap. Please stop using it. I'll leave the "easy" one because this one works fine as a cheat but the patch is scrapped.

This is shameful and I'm truly sorry.
No, no, no, don't be sorry! Without the source code, hex editing is probably the only way we will be able to correct issues that creep up like this. Think of it as the quality control stage of software development. Your efforts have certainly pointed us in the right direction.
avatar
DustyStyx: No, no, no, don't be sorry! Without the source code, hex editing is probably the only way we will be able to correct issues that creep up like this. Think of it as the quality control stage of software development. Your efforts have certainly pointed us in the right direction.
I whole-heartedly agree with this statement by DustyStyx, as your efforts have at least identified where the problem lies, so a fix is still a possibility (if even a very difficult one to achieve at that). If it can be fixed, though, that would be awesome, as it looks like we have a long wait for BloodXL.
-Also agreeing with Dusty's statement. Hex editing is what we have. Your efforts will only inspire people with more experience in this sort of thing. Thank you again.
avatar
SFJake: Certainly.

Original:

00 02 00 00 80 01 00 00 00 01 00 00 D0 00 00 00 A0 00

Fixed:

90 00 00 00 D0 00 00 00 00 01 00 00 30 01 00 00 70 01

Line starts at 14D4A8. Those were the damage scaling -after- load, essentially. I don't know why the game loads a separate set of values for it, but it does.

The normal damage scaling (that which you get normally) is basically the same line as the fixed one found in the original file. You can find it and alter it to, say:

90 00 00 00 90 00 00 00 90 00 00 00 90 00 00 00 90 00

...to have my 2nd cheated patch with easy damage scaling.
Original is totally correct with one exception: It is inversed. Thats the one and only problem here.

The "fixed" messes all up though. For example for Extra Crispy: Your fixed one does only 26 damage by a zombie attack, which is supposed to be at "well done" though. If you load your game with the fixed one - it goes down to the damage of still kicking -> 11. Extra Crispy is supposed to do 36 damage though!

"Original" does the following though for the zombie axe attack:

Still kicking : 11 , after loading: 36 (and 36 is supposed to be at extra crispy)
Pink on the inside: 15 , after loading : 26
Lightly Broiled: 18, after loading: 18
Well Done: 26, after loading: 15
Extra Crispy: 36, after loading: 11

Damage done by own weapons is all correct for each skill level (if it differs at all), and the monsters have the correct healths on each case - I cant look at code, but thats at least how it feels if you fork the zombies down in each case)

So your fixed hex value messes it totally up. Original was almost correct - Monolith just messed up the order for some reason.

I dont understand the numbers, but are you maybe able to fix the inverted order?

As you can see on my table its just an inversion problem. And so it should be easy to fix if you understand the numbers, which I dont do. I even dont see which number of the line corresponds to which skill level, because 18 numbers dont fit to 5 skill levels. So maybe you or someone else can correct the inverted order?
Post edited December 15, 2014 by De-M-oN
The real issue is that the numbers that I try to fix are the -same- numbers as the damage scaling the monster received.

Its hard to put it into words so I'll try my best.

The values I'm changing are "Monster Damage Scaling on Load" but are -also- "Player Attack Damage Scaling".

But both have totally different values. When you fix one, you break the other.

Its not an inversion problem. The problem is that its loading values that its NOT supposed to load. Its loading "Player Attack Damage Scaling" values instead of "Monster Damage Scaling" values.

The real solution is simple in theory. When loading a game, it looks at the wrong place, so we just need to make it point at the right line. That should only a few bytes to change somewhere, but how to find them? I have no idea.


By the way, here are the real numbers of a zombie axe attack before & after loading with the original Blood.exe:

Still kicking 11 / 36
Pink on the inside 15 / 27
Lightly Broiled 18 / 18
Well Done 22 / 15
Extra Crispy 26 / 12

I'm not sure how you got your numbers. These are the real ones. And you can see they don't fit. Extra Crispy is actually 26 damage, not 36. Well Done is 22, not 27.

Again, thats because the numbers it checks when loading are not the right numbers. They are used for something else.

I hope you understand. The fix is not in those numbers.

Oh, and if you want to read the numbers, the numbers are probably stored in 4 bytes each. So its actually, in order...

NOTE: This is the "Player Attack Damage Scaling"

00 02 00 00 (Still Kicking: 512)
80 01 00 00 (Pink on the inside: 384)
00 01 00 00 (Lightly Broiled: 256)
D0 00 00 00 (Well Done: 208)
A0 00 00 00 (Extra Crispy: 160)

And for some reason 80 01 actually means 01 80 (which is 384) and so on.

It looked confusing simply because I don't include the 2 last bytes because I don't directly modify them.

I'm not sure how you got your numbers.
I tested it ingame.

The damages seem to be random range though.

For example Still kicking damage: Sometimes they do 12, mostly 11, and sometimes only 10.
__

Oh and how do you know that 36 is not supposed for extra crispy?

I mean I have 36 damage by zombie at extra crispy before loading the game.
Post edited December 15, 2014 by De-M-oN
One hit lowers health from 100 to 74. Thats 26. Check it again.
Yes for your fix it does 26.

But now I'm totally irritated - This time I used again the original values (not your fix. Original. And my report means original as well) and this time loading didnt change the damages, but they were wrong directly at the beginning.

Means: I started extra crispy, didnt load, just saved and the zombie did only 11 damage. I couldnt reproduce what happened yesterday anymore o.O

I'm totally confused now and annoys me, because I had it yesterday like I reported. Before loading 36, after loading 11 and so on. And now it is directly at 11? (same for all other skill levels - this time still kicking is directly at 36 damage instead of 11)

Thats bullshit. How can that be if I used the same numbers? If I would've known that, I would've recorded it directly. Damn. Yes I wanted to do a video of this, so that you can see what I reported and then while I record happens that :(

And you are really really sure that extra crispy should do 26 instead of 36?


But therefore I got a funny bug while testing. Read video description for further details :)

youtube.com/watch?v=qXHvFykhm_k&hd=1
Post edited December 17, 2014 by De-M-oN
If I use "original", but if I do 00 02 at extra crispy, then it is 36 damage, but if I load then it goes back to 11.

Like you already said: I can change whatever I want - it goes back to 11 damage on load for extra crispy.

And if I change additionally Still kicking to FF FF 00 00, then Extra Crispy still stays the same, but on still kicking I die now instantly from just 1 axe hit, but if I load the game, then the damage is 36.

So it seems that it really looks on load on a complete else place than on this area...

But you always mention my own damage, but why? It never changed. Just the zombie has different health values for each skill, but also that was always untouched. I dont see any change in my own weapons. That makes me wonder, why you mention player damage?

And since it is inversed damages for normal and also load it still feels to me an inversion problem, which could be fixed, if it wouldnt look on a complete else area if you load the game.....
Post edited December 19, 2014 by De-M-oN
Damn shame this patch didn't work out. I hope one day we're finally able to do something this issue for the DOS version.
avatar
OpenRift412: Damn shame this patch didn't work out. I hope one day we're finally able to do something this issue for the DOS version.
Unless some one recompiled NBlood back down to DOS, I don't know if that will ever happen.
avatar
OpenRift412: Damn shame this patch didn't work out. I hope one day we're finally able to do something this issue for the DOS version.
avatar
DustyStyx: Unless some one recompiled NBlood back down to DOS, I don't know if that will ever happen.
A workaround has been available for the DosBox version from the same guy, SFJake, ever since June 2013. Refer to the stickied thread:
https://www.gog.com/forum/blood_series/glitch_damage_scaling_changes_when_loading_fix_inside

I finished the game twice with it and works perfectly. Breaks demos of course but you can play the entire game with proper damage values on the selected difficulty. You just override and lock the enemy damage scaling value at the one you pick using memory editing with DosShark. The thread has a very easy to follow guide on how to do it.
Post edited May 12, 2021 by idbeholdME
avatar
DustyStyx: Unless some one recompiled NBlood back down to DOS, I don't know if that will ever happen.
avatar
idbeholdME: A workaround has been available for the DosBox version from the same guy, SFJake, ever since June 2013. Refer to the stickied thread:
https://www.gog.com/forum/blood_series/glitch_damage_scaling_changes_when_loading_fix_inside

I finished the game twice with it and works perfectly. Breaks demos of course but you can play the entire game with proper damage values on the selected difficulty. You just override and lock the enemy damage scaling value at the one you pick using memory editing with DosShark. The thread has a very easy to follow guide on how to do it.
I kinda forgot about that to be honest.
Good news! With the recent reverse-engineering of Blood's DOS EXE, I've used this code to make a version that includes a proper fix for this issue (thanks to tmyqlfpir and nuke.ykt), check it out here: https://github.com/OpenRift412/Blood-SAVEFIX/releases