Opened 4 years ago
Closed 4 years ago
#11710 closed defect (fixed)
Blazing Dragons (GB/FR): Messed up colours with Big Endian
Reported by: | raziel- | Owned by: | digitall |
---|---|---|---|
Priority: | normal | Component: | Engine: Dragons |
Version: | Keywords: | ||
Cc: | Game: | Blazing Dragons |
Description
ScummVM 2.3.0git (Sep 12 2020 21:11:09)
Features compiled in: Vorbis FLAC MP3 RGB zLib MPEG2 Theora AAC A/52 FreeType2 FriBiDi JPEG PNG cloud (servers, local)
See the attached screenshots.
Both in-game (worse) and on the start respectively the Copyright screen are the colours completely messed up, probably because of endianess issues, since i'm using a Big Endian platform.
Blazing Dragons (Sony PlayStation/English (GB))
SLES_00247
AmigaOS4 - PPC - BE - SDL
gcc (adtools build 8.3.0) 8.3.0
Attachments (12)
Change History (28)
by , 4 years ago
Attachment: | Blazing Dragons (Sony PlayStat_000.png added |
---|
by , 4 years ago
Attachment: | Blazing Dragons (Sony PlayStat_001.png added |
---|
by , 4 years ago
Attachment: | Blazing Dragons (Sony PlayStat_002.png added |
---|
comment:1 by , 4 years ago
comment:2 by , 4 years ago
Summary: | Blazing Dragons (GB): Endianness messed up colours → Blazing Dragons (GB/FR): Messed up colours with Big Endian |
---|
by , 4 years ago
Attachment: | dragons_big_endian_hack.diff added |
---|
comment:3 by , 4 years ago
Hi,
I have a triple PPC boot (Mac OS Leopard, Debian unstable, OpenBSD) on a PowerMac G4 here, so I tried having a look at this.
The attached diff (dragons_big_endian_hack.diff) "fixes" the backgrounds, the characters, the bag, and the menus. Text is readable, but incomplete; I couldn't get alpha blending to display like it should (I'm quite lost in screen.cpp), so for the moment I just disabled it.
It's a crude and incomplete hack, it's been done through trial and error, and it may be completely inefficient (CPU usage seems high?). I'm rather submitting it so that you get what's missing in the code, and then someone might come up with a real and more elegant solution.
My understanding is that the palette is almost never switched back to native big-endian, before displaying the surfaces on big-endian systems.
Feel free to ping me if you want me to test some other patches, or run some gdb commands.
by , 4 years ago
Attachment: | image-20200929-124115.png added |
---|
by , 4 years ago
Attachment: | 2020-09-29_12h40_30.png added |
---|
by , 4 years ago
Attachment: | 2020-09-29_12h40_36.png added |
---|
comment:4 by , 4 years ago
Hi
I test your path and working better :-)
But i have somes scenes with another bug (attachments).
I listen sound problem with this scene.
Thanks
comment:5 by , 4 years ago
Hi,
Ah yes indeed I didn’t test a lot of scenes or the sound part. My C++ skills are modest so I mainly submitted the patch above to help the developers understand where the endianness problem lies :)
comment:6 by , 4 years ago
@BeWorld2018
Finally a fellow Big Endian user with the same target platform, hope to see a lot of bug reports from you...together we stand, together we fight ;-)
ok...enough metal ballads for tonight...
@dwatteau
Thanks for chiming in, hopefully this will get picked up soonish.
You can also simply add a Pull Request with your changes and findings and let other devs help you out?
comment:7 by , 4 years ago
Hi,
I've reworked my previous patch a bit, and submitted it as a draft here: https://github.com/scummvm/scummvm/pull/2784.
It's still incomplete, and probably wrong in some way, but indeed, let's suggest something and try improving it.
comment:8 by , 4 years ago
@dwatteau
Sorry for the long hiatus.
Your patch definitely had an impact on color rendering.
Actually there is only one color left that is wrong. (See screenshots)
It affects a tiny part of the outlines of sprites (actually just a few pixels that hold the color in question) in all the game, but most prominently the text background in the intro and on the options screen.
I don't know if it'd be easy to fix that last remaining artefact, but it would surely be cool.
Thank you very much for your work so far
by , 4 years ago
Attachment: | Blazing Dragons (Sony PlayStat_003.png added |
---|
by , 4 years ago
Attachment: | Blazing Dragons (Sony PlayStat_004.png added |
---|
by , 4 years ago
Attachment: | Blazing Dragons (Sony PlayStat_005.png added |
---|
comment:9 by , 4 years ago
@raziel- Happy to know that this improves the situation for you too :)
Yeah, I'm aware of the remaining visual problems on big endian, but I didn't manage to fix them, unfortunately. I think there's something to be done in the alpha-blending part, but my C++ programming skills are modest, so that part is probably too "low level" for me.
I also hear some audio problems, as reported by BeWorld2018 above (some "pops" during cutscenes), and I have some ideas and some tests to do, for that. Maybe I'll have a patch for this audio stuff, but I don't think I'll be able to fix the remaining visual problems on big-endian myself.
comment:10 by , 4 years ago
@dwatteau
Oh..ok.
It's not that it is unplayable...still nice to get fixed, though.
Thank you
comment:11 by , 4 years ago
Hi,
@raziel- Well, actually, I may have found a way of fixing most of the remaining visual problems on big-endian. It's been merged in the main Github branch.
I still see two small problems: 1. a small glitch still there around the creature on the opening copyright screen and 2. some big audio glitches in character voices, but I need to check if it's not just a problem with the French version, even on little-endian systems.
It should now be much easier for the eyes if you want to play it on an Amiga, though :)
comment:12 by , 4 years ago
@dwatteau
The gfx glitch you mentioned definitely got better (the rest of the game seems to be fine by a quick glance), but maybe the next two screenshots help understand the remaining gfx issue?
The creature does have promiment erroneous pixels around it, but also the background color, in both the last intro scene and the menu, is still wrong (it's a darkish green now, when it should be black, i assume).
Not sure if that has to do with the fact that i own the Playstation release, though
by , 4 years ago
Attachment: | Snap-1 - 650x535x24.png added |
---|
by , 4 years ago
Attachment: | Snap-2 - 650x535x24.png added |
---|
comment:13 by , 4 years ago
Could you tell me an early scene where you get the speech glitch?
I could rule out the english version on BE, if that would help?
comment:14 by , 4 years ago
So, I had a look at this again.
To sum it up:
- I think most big-endian problems are indeed now fixed.
- I do have some audio glitches, but they also happen on little-endian. I think it's just a general problem in the support for the French version. But this deserves a different bug report.
- The creature in the intro does have a visual glitch around it, but it actually happens on little-endian systems too. See https://bugs.scummvm.org/ticket/11644. So I think it's unrelated to this big-endian ticket.
- Indeed, on big-endian systems, the intro menu is greener. It's even greener on my PowerBook than on your Amiga, for whatever reason... I also think that this is just related to https://bugs.scummvm.org/ticket/11644, but I can't be sure.
comment:15 by , 4 years ago
So, this can be closed then:-)
All remaining problems are either not BE exclusive or already in other open bug items archived.
comment:16 by , 4 years ago
Owner: | set to |
---|---|
Resolution: | → fixed |
Status: | new → closed |
As per raziel-'s comment, am closing this as fixed.
Same bug here on MorphOS plateform with ScummVM 2.2.0pre.
Blazing Dragons (Sony PlayStation/French (FR))
MorphOS 3.13 - PPC - BE - SDL 2.0.12
gcc 9.2.0