KEMBAR78
DC: BUILD: Always disable SCUMMv7+ on Dreamcast (Bug#6008) by dwatteau · Pull Request #4693 · scummvm/scummvm · GitHub
Skip to content

Conversation

@dwatteau
Copy link
Contributor

@dwatteau dwatteau commented Feb 7, 2023

See Trac#6008 for some context.

With the recent v7/v8 changes in the SCUMM engine, trying to run a v7/v8 SCUMM game is not a nice user experience anymore, because the game just won't fit in the limited default memory available on Dreamcast.

This is also a problem for some other engines on this platform, but the SCUMM engine being one of the most popular engines, quite a lot of users end up burning a toast CD-R on their Dreamcast until they figure out that only SCUMMv6 and earlier still work nowadays (with some limitations, too). Disabling v7/v8 from the SCUMM engine plugin should also free up some memory for a better experience with earlier SCUMM titles (from a quick test, scumm.plg gets ~15% smaller).

This PR hardcodes this behavior into configure so that we're sure that scumm-7-8 is never enabled there. I'm doing this there (and not in dockerized-bb) because AFAIK the Dreamcast release builds are not made from the buildbot. A nicer solution (as discussed on Discord) would be to have a way to know about "capabilities" (or something similar) between backends and engines, but this PR is mainly meant as a quick fix for the 2.7.0 release.

@zeldin: Do you agree with this approach? SCUMM v7/v8 has been limited on DC for years, and it's been confirmed to be useless recently, and we have no immediate fix for this, so for end-users I think this is fair.

Please DON'T MERGE unless @zeldin is OK with it. Thanks.

With the recent v7/v8 changes in the SCUMM engine, trying to run a v7/v8
SCUMM game is not a nice user experience anymore, because the game just
won't fit in the limited default memory available on Dreamcast anymore.

This is also a problem for some other engines on this platform, but the
SCUMM engine being one of the most popular engines, quite a lot of users
end up burning a toast CD-R on their Dreamcast until they figure out
that only SCUMMv6 and earlier still work nowadays (with some limitations
too).  Disabling v7/v8 from the SCUMM engine plugin should also free up
some memory for a better experience with earlier SCUMM titles.
@dwatteau dwatteau assigned dwatteau and unassigned dwatteau Feb 7, 2023
@zeldin
Copy link
Contributor

zeldin commented Feb 7, 2023

The memory issues with SCUMM v7/v8 have a long history and I honestly I don't think they ever worked very well. Which is a bit annoying because IIRC at least the v7 games had a memory requirement of 8 MB on DOS, so they should be playable on a 16 MB machine, but I guess it is what it is...

So I agree with prioritising v6 and earlier if there is a tradeoff to be made. It would still be possible to re-enable v7/8 support with --enable-engine=scumm_7_8 if someone really wants to, correct?

@sev-
Copy link
Member

sev- commented Feb 7, 2023

Thank you!

@sev- sev- merged commit 7e3d551 into scummvm:master Feb 7, 2023
@dwatteau dwatteau deleted the feat/dreamcast-always-disable-scumm-v7-v8-for-better-user-experience branch February 8, 2023 10:10
@dwatteau
Copy link
Contributor Author

dwatteau commented Feb 8, 2023

The memory issues with SCUMM v7/v8 have a long history and I honestly I don't think they ever worked very well. Which is a bit annoying because IIRC at least the v7 games had a memory requirement of 8 MB on DOS, so they should be playable on a 16 MB machine, but I guess it is what it is...

Yes, I agree. Optimizing this can be added to the SCUMM TODOs (and some other engines could benefit from such optimization goals as well) but unless someone shows up with a particular interest in improving this, it's probably better to disable what's known not to work, IMO.

So I agree with prioritising v6 and earlier if there is a tradeoff to be made. It would still be possible to re-enable v7/8 support with --enable-engine=scumm_7_8 if someone really wants to, correct?

Unfortunately, in the way configure works, I believe this is not easily possible. One would have to edit config.mk by hand, or build with ENABLE_SCUMM_7_8=1 -- but if you're hacking on the Dreamcast port, you're maybe OK doing this?

Another solution would be to hardcode --disable-engine=scumm-7-8 into the buildbot settings and in your personal build script for releases, and update the Dreamcast documentation as well. As you prefer :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants