SRB2MFE: Mostly-Fixed Edition.

Status
Not open for further replies.

JTE

Member
I can't fix everything. But I can try.

ERZ2 still crashes a lot, yes, and I haven't actually "added" anything (as that's not the point of this edit)... I just felt I should go back and fix sprite scaling in software mode, since hardware mode is currently defunct and you guys used scaling without fixing it (and indeed, ended up breaking it a bit more).

I also fixed some of the issues with the camera and other things that have been bugging me for a long time which hadn't been changed in the slightest.

Latest changes:

  • Fixed Knuckles climbing ability (hopefully)
  • Fixed vertical flip on objects with uncentered sprites and abnormal scale (no more floating/sinking, or should be)
  • Fixed thok mobjs to work with the new colors
  • Re-added netgame support (for now)
  • Removed Spazzo's name from the title bar (It was a joke, honest!)
  • Changed the color "Random" to "Junk" to avoid confusion
  • Broke the laws of colormaps with HMS123 (This needs to be fixed, actually! For every colormap of every skin, there is a complete copy of the entire palette!?! TODO: Create a default translation table that works for all objects the same, keeping colors in one place, IMPORTANT: remove all these stupid joke colors)
  • Renamed 1.09 Grey to Black
  • Added MORE colors: Hot Pink (Amy), Light Blue, Light Orange, White Yellow, Pitch (Ridiculously dark Black), Grey (In-between Silver and Black: Now the entire spectrum of grays is available for your monotonous purposes!)
  • Scaled up drowning numbers so you can see them when big
  • Updated FLASHPAL (it was still the old palette), but I doubt it's even used anymore, so I'm not gonna include a wad just for the sake of it
  • Made the default (non-player) yellow colormap actually yellow instead of a copy of gold.

Previous changes:

  • Fixed the chasecam so it can handle larger distances again
  • Made the chasecam autoreset most of the time when it gets stuck on something (No more camera-stuck-on-a-wall making you blind!)
  • Fixed many graphical errors with object scaling, particularly with non-players (No more junk on non-player sprites, sprites appear correct)
  • Fixed many physics errors with player scaling (Eggrock 3 is still extremely slippery and low-gravity, if not more so, possibly to accommodate Jazz's major ****ups in this area.)
  • Made springs affected by scaling (both on scaled players and on scaled springs)
  • Fixed "step-up" for scale changes
  • Fixed player animation speeds becoming wrong when scaled
  • Changed the scale command's cap to 5-400, since that much is graphically possible, though you should still stay within 25-250 if you really care about "correctness"
  • Fixed ERZ3's map flag to scale instantly instead of smoothly (As it was always intended to do)
  • Added scaling for rings, bubbles, etc. coming from scaled objects
  • Fixed water jumping physics, splashes, skipping, and other stuff
  • Fixed shield position scaling
  • Changed MF_TRANSLATION to allow up to 255 unique colormaps for mobjs. Currently, 22 colors are available.
  • Fixed the console variable "stretch" to properly clear the blank areas of the screen while off. Now you get black bars widescreen instead. (But only in Win32 DirectDraw software mode)
Newest download always available from: http://www.echidnatribe.org/SRB2/
 

Attachments

  • srb2MFE.zip
    657 KB · Views: 3,283
  • srb2MFE-src.zip
    1 MB · Views: 2,274
Last edited:
Oh My ****ing God!

Gliding is waaaaaay too fast than in ERZ3 in the original SRB2. And ERZ3 becomes a lot harder now because of screwed up gravity.
 
Wow, I never would have seen this coming! There are still a few bugs, such as gliding too fast ERZ3, and when I run at scale 5 and stop, I stay in running animation.
r953kj.png

2qlzewj.png

25h0q6p.png
 
Awesome fix for the scaling artifacting, JTE. That's been stumping some of our dev people for a while now. =P

I will admit that there are still some problems, though, but most of which have already been stated.
 
This is mostly good. There's some quirks:

Fixed many graphical errors with object scaling, particularly with non-players (No more junk on non-player sprites, sprites appear correct)
Not particularly related to what you fixed, but there's a problem. The shield sprite is "moved" while jumping so it appears centered around the character sprites. While scaled, it doesn't take the scale into consideration and offsets it by the same amount, becoming off-center.

Fixed many physics errors with player scaling (Eggrock 3 is still extremely slippery and low-gravity, if not more so, possibly to accommodate Jazz's major ****ups in this area.)
The physics are much better, but there are some shortcomings.

The biggest one is actionspd. It needs to be scaled, because everything thoks and glides too fast when tiny and too slow when big.

Climbing doesn't work properly when scaled down. It's fine while you're just dancing around the wall, but try to reach up over the top. You won't make it because Knuckles "jumps off" way too early.

Water splashes are equally messed up. It splashes even if you're so tiny you can't get out of the hole.

Disabled "step-up" when midair since it makes little sense in that context anyway and will usually just screw you up
This was a pretty bad move. Having no step-up while airborne IS what screws you up now, since you're expecting to be able to reach the platform and instead come out short. Besides, this should make some levels which stretch the jump reach to the maximum uncompletable.

There's more, though. You can't run across short gaps between even-leveled floors anymore, because you fall a short bit before reaching the other end and then ram into solid air, halting you instantly. I noticed this when I mysteriously started dying a lot in the slide section in ERZ2.

Speaking of ERZ2, I also seemed to trip a lot when gravflipped. Then I noticed I couldn't "run up" anything! Right, because since you're technically not touching the floor, you're "midair".

Oh, and, I've encountered a baffling bug. SRB2MFE refuses to convert my SRB file into an MFE file. What am I doing wrong? My computer is a Pentium and I have Windows XP Professional.
 
Not particularly related to what you fixed, but there's a problem. The shield sprite is "moved" while jumping so it appears centered around the character sprites. While scaled, it doesn't take the scale into consideration and offsets it by the same amount, becoming off-center.
I noticed, but I couldn't find where it stores/uses the offsets for software rendering that I could scale it... Oh, I forgot to look in the shield chase function. Silly me~

The biggest one is actionspd. It needs to be scaled, because everything thoks and glides too fast when tiny and too slow when big.
I think I made Sonic and Tails' abilities much better, it's mostly just Knuckles that's still bad. (They were worse.)

Climbing doesn't work properly when scaled down. It's fine while you're just dancing around the wall, but try to reach up over the top. You won't make it because Knuckles "jumps off" way too early.
Guess I need to find the place where it decides when to jump off then, huh? I'm having trouble testing Knuckles' ability because it's so much more complex than Sonic's and Tails'.

Water splashes are equally messed up. It splashes even if you're so tiny you can't get out of the hole.
Or it doesn't splash or consider you underwater if you're so tiny you should be drowning in a puddle you normally couldn't.

Having no step-up while airborne IS what screws you up now, since you're expecting to be able to reach the platform and instead come out short. Besides, this should make some levels which stretch the jump reach to the maximum uncompletable.
Yep. :) And this is a problem because...? Should I make the maximum normal jump height larger? It already goes up for 2D mode.

There's more, though. You can't run across short gaps between even-leveled floors anymore, because you fall a short bit before reaching the other end and then ram into solid air, halting you instantly. I noticed this when I mysteriously started dying a lot in the slide section in ERZ2.

Speaking of ERZ2, I also seemed to trip a lot when gravflipped. Then I noticed I couldn't "run up" anything! Right, because since you're technically not touching the floor, you're "midair".
Ah, right. I guess those are things I should consider~

Oh, and, I've encountered a baffling bug. SRB2MFE refuses to convert my SRB file into an MFE file. What am I doing wrong? My computer is a Pentium and I have Windows XP Professional.
Did you give it an output file name? The syntax is "srb2mfe srb2.srb -o out.mfe", and it won't work on files larger than 6 mb (forum restriction.)

Also, everything is way too fast in ERZ3, even normal jumping, and I'm not sure why. It's like the entire map is one big frictionless low-gravity chunk. As I'd need to mess with the map itself to fix it, I'm not gonna. Deal?
 
Last edited:
Jason the Echidna said:
Fixed many physics errors with player scaling (Eggrock 3 is still extremely slippery and low-gravity, if not more so, possibly to accommodate Jazz's major ****ups in this area.)

Source code?

I'd like to see how you handled scaled physics.
 
OFF TOPIC: Make Bots :D Please

On topic: Looks good Jte Glad to see you back but I don't think I will be getting this right now.
 
Should I make the maximum normal jump height larger?
I think you should just leave midair step-up alone. It's disconcerting to have one of the fundamental physics in the game changed after 10 years.

Also, everything is way too fast in ERZ3, even normal jumping, and I'm not sure why. It's like the entire map is one big frictionless low-gravity chunk. As I'd need to mess with the map itself to fix it, I'm not gonna. Deal?
Ignore ERZ3. The levels need to be redesigned according to the corrected physics, not the other way around.
 
I'd like to see how you handled scaled physics.
You were wrong about P_ScaleMomentum. The jump height wasn't incorrect due to thrust; It was incorrect due to gravity. So, I scaled gravity (smaller things are lighter, after all) and suddenly everything worked just fine~... except for the things that eventually end up using P_ScaleMomentum.
 
Oh, also wrong with the physics was the fact that in multiple places, things were using FIXEDSCALE which were not even of type fixed_t, let alone were they expressed in FRACUNITs. Don't do that. Instead, <stuff>*<scale>/100 for those, will work much much much much better. (Make a DECIMALSCALE if so inclined, to go with FLOATSCALE and FIXEDSCALE). There are, of course, also many things which weren't scaled at all, such as water entering/exiting physics, splashes, bubbles, springs.

I am fixing them, because this is my code to fix, not Shuffle's, MattW's, or Jazz's.
 
You were wrong about P_ScaleMomentum. The jump height wasn't incorrect due to thrust; It was incorrect due to gravity. So, I scaled gravity (smaller things are lighter, after all) and suddenly everything worked just fine~... except for the things that eventually end up using P_ScaleMomentum.

I didn't even think about that. I suppose that explains why I had to scale by that fraction to get it to sort of work, but even then the jump heights never did perfectly line up with what they were supposed to be...
 
Last edited:
Status
Not open for further replies.

Who is viewing this thread (Total: 0, Members: 0, Guests: 0)

Back
Top