Difference between revisions of "User:Dwatteau"
(→Indy3) |
(Small updates for my own stuff) |
||
(10 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
Bonjour bonjour ! I've been using ScummVM for so long that I thought that I might as well contribute to it after all these years, even though I'm Not a Developer™. | Bonjour bonjour ! I've been using ScummVM for so long that I thought that I might as well contribute to it after all these years, even though I'm Not a Developer™. | ||
I currently ( | I currently (2024) maintain the macOS 10.4/10.5 PowerPC release, which hopefully helps preserving [[HOWTO-Debug-Endian-Issues|big-endian compatibility]] of various engines (e.g. [[Dragons]]) for various other big-endian ports (such as [[PlayStation 3|PS3]], Wii, GameCube, AmigaOS…). | ||
Lately, I've also written some of our [[SCUMM/Game Enhancements|SCUMM enhancements]]. As a side project, I also maintain Thomas Combeleran's ScummTR translation tools for various LucasArts adventure titles. | Lately, I've also written some of our [[SCUMM/Game Enhancements|SCUMM enhancements]]. As a side project, I also maintain Thomas Combeleran's ScummTR translation tools for various LucasArts adventure titles. | ||
Line 8: | Line 8: | ||
==macOS PPC builds== | ==macOS PPC builds== | ||
* Publish the dependency and release OSX PPC build scripts somewhere. | |||
** I have it all and can share it on request, it's just not very clean yet. | |||
** No cross-compilation through Docker (as done for the other macOS builds in dockerized-bb) is possible for older OSX PPC, AFAIK. | |||
* Find a better way of testing G3 (non-Altivec) compatibility | |||
** There are some runtime checks for Altivec in some components (SDL1.2, libjpeg-turbo), but it's really easy to trigger an unconditional Altivec instruction if things are not properly built (e.g. SDL1.2 defaults with a newer compiler) | |||
** I currently boot a G4 with <code>sudo nvram boot-args="novmx=1"</code> to emulate the behavior of a G3 and it's helpful, but still it's not an accurate guarantee | |||
* Upgrade the C++11 compiler from GCC 4.8.5 to GCC 7.5.0 at some point | |||
** Official builds are currently made with the "Unofficial TenFourFox Development Toolkit", because it's much faster and more reliable to set up than a native MacPorts build. GCC 4.8.5 is a battle-tested C++11 compiler for Tiger and so it's usually the default, but GCC 7.5.0 is also an option (but its bootstrap sometimes randomly gets stuck in the <code>compare</code> phase, see https://trac.macports.org/ticket/56922) | |||
** As of May 2024, I have a local 2.9.0pre build that successfully builds with GCC 7.5.0. | |||
==SCUMM enhancement ideas== | ==SCUMM enhancement ideas== | ||
Line 15: | Line 25: | ||
* If Bernard picks up the radio tube and puts it back in the radio, he will never be able to pick it up again. | * If Bernard picks up the radio tube and puts it back in the radio, he will never be able to pick it up again. | ||
** Not sure if I'm going to fix this, since Maniac Mansion intentionally had some unfair actions on purpose. | ** Not sure if I'm going to fix this, since Maniac Mansion intentionally had some unfair actions on purpose. | ||
* In at least V2 EN and the NES releases, script 7-59 is missing a byte in one of the last opcodes (<code>printEgo("It's already full")</code> is missing its first <code>D8</code> opcode byte, and so the sequence is interpreted as an invalid | * In at least V2 EN and the NES releases, script 7-59 is missing a byte in one of the last opcodes (<code>printEgo("It's already full")</code> is missing its first <code>D8</code> opcode byte, and so the sequence is interpreted as an invalid <code>faceActor()</code>). I'm not sure there's any point of fixing this, though, because I can't find a way of triggering this part of the script. | ||
* See if there's a way of restoring some of the [https://www.movie-censorship.com/report.php?ID=3819 censored content] from the NES release, especially if the original resources are still embedded somewhere (I doubt that is the case, though). | * See if there's a way of restoring some of the [https://www.movie-censorship.com/report.php?ID=3819 censored content] from the NES release, especially if the original resources are still embedded somewhere (I doubt that is the case, though). | ||
Line 45: | Line 55: | ||
===Loom=== | ===Loom=== | ||
* In the talkie release, when Bishop Mandible speaks with Goodmold, the latter may glitch on the screen if pressing Esc at a specific time. | |||
** I only managed to trigger this once, though. | |||
* Study the v1.0/v1.1/v1.2 EGA differences a bit more, in case serious bugfixes need to be backported to the older releases. eientei provided some useful script diffs. | |||
* Actor 3 (one of the shepherds) sometimes disappears (as a SCUMM actor, but not visually) from room 23, in some (but not all!) EGA releases. Restoring it everywhere could help with the other shepherd workaround in <code>o5_startScript()</code>. | |||
===Monkey1=== | ===Monkey1=== | ||
* The [https://www.youtube.com/watch?v=E4QylmP9U6s leap of faith] bug with the map in the forest. | |||
** I sometimes see it as a small hidden feature, though. I don't think it causes any issue, and you can only trigger it purposefully. So we might just leave it as is… | |||
* My VGA FR and VGA EN floppy releases appear to contain different script bugfixes (see PR#4178). To be investigated a bit more… | |||
* I really miss the original red verb effect when you're under the Monkey Head, in the v5 release. | |||
* It may be possible to get stuck in the catacombs, when some specific room generation is triggered (Trac#13710). | |||
* I'm told the FM-TOWNS release completely removed Stan from the scene where Guybrush falls into the grog machine (script 78-133), for whatever reason. | |||
** We could maybe restore it, as for one of the map piece scenes in Monkey2 FM-TOWNS (Trac#2233), but since the FM-TOWNS releases are so rare, maybe they're meant to keep their peculiarities, instead of being streamlined with the rest? | |||
===Monkey2=== | ===Monkey2=== | ||
* On Scabb Island, if you talk to Dread, choose the last dialogue option, and try skipping it with the Esc key, the dialogue will restart again instead of stopping (old Trac#1681). | |||
* At Phatt's mansion, you're supposed to be able to interact with the paintings behind the stairs, but the stairs have a higher priority, "hiding" the paintings. There's no particular content though, is just triggers the default reaction for useless room objects. | |||
* Amiga: on original hardware, the most important part of Elaine's reaction during the end credits is said to be missing ([https://forums.mixnmojo.com/topic/200438-differences-in-the-amiga-version-of-mi2/ Mixnmojo thread]). | |||
** By luck (or accident), it looks like our Amiga reimplementation is not entirely accurate, and so I can't reproduce this problem in ScummVM. | |||
* Amiga: when Guybrush and Wally escape from LeChuck's torture chamber, you will "see" them being moved to their new room ''before'' the lights go off. | |||
** Maybe check what happens in an original Amiga interpreter before patching anything, since it looks like we behave a bit differently for this version. | |||
* Various small glitches were found by RetroSpeedruns on YouTube for this game, but most of the time they're minor issues where you need to do a long series of weird but intentional actions to trigger them, so there's probably less incentive in fixing those. | |||
* In some conditions, the "Dem Bones" scene with Guybrush's parents can lock up. | |||
** The Ultimate Talkie Edition fixed this by completely rewriting the impacted script. | |||
** I don't know if this problem also happened with the original interpreter. If it was ScummVM-only, it may have been fixed by having a more accurate v5 implementation now. | |||
* Small animation issues after stealing Elaine's map piece in Easy Mode: | |||
** If you use the knife or the shovel on the map piece when it's on the floor, Guybrush will say it's too late, even though the map piece hasn't moved at all. | |||
** If you just pick it up, Guybrush doesn't bend over before picking it up, even though the proper <code>anim()</code> calls appear to be there, as in Normal Mode. | |||
===Indy4=== | ===Indy4=== | ||
* https://www.youtube.com/watch?v=kPre4Gv4mKg: if you don't follow Sophia when she's about to be possessed by Nur-ab-Sal at the center of Atlantis, funny things will happen. | |||
** I may have something for this ("soon"), but it really requires good testing because several scripts are impacted. | |||
* https://www.youtube.com/watch?v=qdNievi_wTc: In Atlantis, you can completely bypass the sentry room if you're fast enough (I remember hitting that with the original interpreter back in 2003). | |||
** Speed-runners will need to uncheck the Enhancement box if they want to keep using this (very nice) shortcut. | |||
* In teams path at the dig site near Algiers, Sophia can get stuck in one of her reactions if you press Esc at the right time after she gives the amber fish to Indy. | |||
* Talkie: if you look at Sophia while she's being detained in Kerner's room in the U-Boot, several lines will be badly cut. | |||
'''Very old memories of mine with the French floppy release:''' | |||
* In fists path, if you forgot to pick up some object before leaving the dig site near Algiers, the game would systematically crash (with a "missing object in room" error?) just when you go over the ocean with the balloon. | |||
** Can't remember if this was with ScummVM or the original DOS interpreter. Sometime between 2004 and 2007, I'd say. Can't reproduce it with current ScummVM, though (and the game makes sure that you don't forget the sunstone). | |||
* When you're alone on Thera and need to make a balloon, I remember being stuck with two useless objects if I assembled the ballon's parts in some weird order. | |||
** Can't reproduce it, so maybe I was just not very smart. | |||
* The original interpreter would give an <code>new name of object 647 too long</code> fatal error in Knossos in the French release, once you discover the hidden door with the amber fish. | |||
** That's because <code>wall -> door</code> becomes <code>mur -> porte</code> in French, but they should have used <code>mur@@ -> porte</code> for proper resource name padding. | |||
** Not an issue in ScummVM, because we don't have a hard requirement on <code>@</code> padding (and that's very fortunate, because a lot of fan translations would break). | |||
===DOTT=== | ===DOTT=== | ||
* Improve Dr. Fred's hitbox when you need to use the rope on him. It's way too small. | |||
* https://tcrf.net/Maniac_Mansion:_Day_of_the_Tentacle lists of lot of good content and jokes being untriggerable. | |||
** For some of them, we don't know if it's an intentional cut, but most of the time it looks like they're just script oversights. | |||
* If you try reading the boring green book to the cast with Hoagie in the past, the cat has the same reaction as when you try to touch it, but this time there's no sound at all. | |||
** It's not very hard to restore it, but how to make sure that the audio offset is the proper one, since the two scripts (23-203 and room-23-obcd-162) can't "see" each other when we do opcode workarounds in script_v5.cpp? | |||
===Sam & Max=== | ===Sam & Max=== | ||
* French release: in the intro, Sam calls Max "Sam", which is not intended in this part of the game. | |||
** The floppy release has a different dub, and there's no such mistake there, but it's a very rare release and the audio quality is very low. | |||
** Maybe we could patch in a different "Max" voice clip from some other place, but I fear that it's going to be too complex/hackish. | |||
** This ''does'' exist as a joke later in the game, though! So, is it that much of a problem in Sam & Max's wonderfully weird world? | |||
* French and German releases: several dubbed lines are cut way too early (e.g. if you at the one of the creatures inside the Tunnel of Love) | |||
** The mistake is in the original audio resources, not in the scripts, so we probably can't do anything about this. | |||
* Improve the hitbox of the rightmost door in room 53 (bigfoot party), because only a handful of pixels on the very top of it are clickable. | |||
* Improve the hitbox for the last room of the game: you need to click in very small area in the rightmost part of the screen, but it would be nice if the you could just click in the middle of the screen, since this is where you can ''see'' the next room, so it's more intuitive to click there. | |||
===Full Throttle=== | ===Full Throttle=== | ||
* In the German and French releases, ''several'' lines are dubbed by the wrong actor (see Trac#13646). | |||
** I'm pretty sure we can't do anything about this, though, as it looks like this was a line-by-line dub and not a scene-by-scene dub. The 2017 remaster didn't fix this either, so the mistake is probably right in the recording process of that area. | |||
* In the French release, several lines and SFX are completely missing from some SAN sequences (e.g. SNSETRDE.SAN and boot param <code>900</code>), so you only get subtitles. | |||
** Again, unfortunately, there's probably nothing to restore. | |||
* In the French release, the volume level of (way too) many lines is very poorly adjusted (i.e. you can't hear anything). | |||
** There is maybe a way of fixing this… but that's quite low on my priority list. | |||
** I also need to check if the 2017 remaster didn't improve this in some way. | |||
===The Dig=== | |||
===COMI=== | ===COMI=== |
Latest revision as of 11:04, 5 May 2024
Bonjour bonjour ! I've been using ScummVM for so long that I thought that I might as well contribute to it after all these years, even though I'm Not a Developer™.
I currently (2024) maintain the macOS 10.4/10.5 PowerPC release, which hopefully helps preserving big-endian compatibility of various engines (e.g. Dragons) for various other big-endian ports (such as PS3, Wii, GameCube, AmigaOS…).
Lately, I've also written some of our SCUMM enhancements. As a side project, I also maintain Thomas Combeleran's ScummTR translation tools for various LucasArts adventure titles.
Here's a list of the various things I would like to improve in ScummVM. I make no promise and have no deadline, but of course if you're interested in something below, feel free to ping me. Maybe I can provide you more information or maybe we can work together on some points.
macOS PPC builds
- Publish the dependency and release OSX PPC build scripts somewhere.
- I have it all and can share it on request, it's just not very clean yet.
- No cross-compilation through Docker (as done for the other macOS builds in dockerized-bb) is possible for older OSX PPC, AFAIK.
- Find a better way of testing G3 (non-Altivec) compatibility
- There are some runtime checks for Altivec in some components (SDL1.2, libjpeg-turbo), but it's really easy to trigger an unconditional Altivec instruction if things are not properly built (e.g. SDL1.2 defaults with a newer compiler)
- I currently boot a G4 with
sudo nvram boot-args="novmx=1"
to emulate the behavior of a G3 and it's helpful, but still it's not an accurate guarantee
- Upgrade the C++11 compiler from GCC 4.8.5 to GCC 7.5.0 at some point
- Official builds are currently made with the "Unofficial TenFourFox Development Toolkit", because it's much faster and more reliable to set up than a native MacPorts build. GCC 4.8.5 is a battle-tested C++11 compiler for Tiger and so it's usually the default, but GCC 7.5.0 is also an option (but its bootstrap sometimes randomly gets stuck in the
compare
phase, see https://trac.macports.org/ticket/56922) - As of May 2024, I have a local 2.9.0pre build that successfully builds with GCC 7.5.0.
- Official builds are currently made with the "Unofficial TenFourFox Development Toolkit", because it's much faster and more reliable to set up than a native MacPorts build. GCC 4.8.5 is a battle-tested C++11 compiler for Tiger and so it's usually the default, but GCC 7.5.0 is also an option (but its bootstrap sometimes randomly gets stuck in the
SCUMM enhancement ideas
Maniac Mansion
- If Bernard picks up the radio tube and puts it back in the radio, he will never be able to pick it up again.
- Not sure if I'm going to fix this, since Maniac Mansion intentionally had some unfair actions on purpose.
- In at least V2 EN and the NES releases, script 7-59 is missing a byte in one of the last opcodes (
printEgo("It's already full")
is missing its firstD8
opcode byte, and so the sequence is interpreted as an invalidfaceActor()
). I'm not sure there's any point of fixing this, though, because I can't find a way of triggering this part of the script. - See if there's a way of restoring some of the censored content from the NES release, especially if the original resources are still embedded somewhere (I doubt that is the case, though).
Zak McKracken
- At Lou's Loans, if one uses the blue crystal on the lotto sign and gets caught by the Caponian, the Buy/Sell verbs are not properly deactivated, and so they glitch when Zak is put in the Mindbender.
- In Zak's kitchen, if one opens the pipe and let the water flow, the water animation will just freeze when Zak checks the room before leaving his flat.
- This looks a bit naive, especially in the less limited V3 release, but naive animations are not uncommon in this game, and they may be part of its charm?
- Restore some missing V2 features in the v3 FM-TOWNS release:
- Selling the Sell window to Lou
- Let Zak sleep in his bed (the animation is still there in the resources)
- Original V1/V2 intro order (as some say that the new intro order of the FM-TOWNS release makes no sense).
- Fix missing CashCard cheat at Lou's (Trac#13400); speed-runners can just uncheck the enhancement option
- Fix the broom alien pixel leftovers after picking it from the bed.
- The resources haven't been properly drawn, so I don't think that fixing this would be easy, especially since we don't want to embed full copyrighted resources.
Indy3
- The DOS VGA and the FM-TOWNS releases both have some 256-color porting oversights, as described in https://web.archive.org/web/20111015233333/http://home.comcast.net/~ervind/ij3misc.html and https://web.archive.org/web/20110926050144/http://home.comcast.net/~ervind/ij3fmtowns.html
- Some of them are already fixed, some probably can't because the resources differ too much and we can't embed them, and others may be questionable (e.g. the butler, and the old man reading a newspaper).
- Apparently, some oversights from the English FM-TOWNS release were fixed in the Japanese FM-TOWNS release, such as the palette-shifting effect of the giant propeller, and the lightning storm at Castle Brunwald.
- Find an original censored German release and compare it with the regular releases.
- The current workarounds would need to be double-checked there, and it may have some unique issues (such as with the encoding of some characters, or that bug with a giant Henry Senior in front of Castle Brunwald).
- Zeppelin fight bug reported on Discord on 2022-08-15: "in the zeppelin when you fight a german beneath a crossroad (well it isn't really a crossroad) you get ported to the higher level after the fight".
- I can reproduce it on all versions I own, but I can't say if that's easy to fix.
- Irene does a "spontaneous appearance" if starting a new game, immediately going outside, skipping the cutscene, and then going to her office.
- AFAICS, this happens in all releases, except for the Passport to Adventure demo.
- Maybe related to Trac#6680 in some way?
Loom
- In the talkie release, when Bishop Mandible speaks with Goodmold, the latter may glitch on the screen if pressing Esc at a specific time.
- I only managed to trigger this once, though.
- Study the v1.0/v1.1/v1.2 EGA differences a bit more, in case serious bugfixes need to be backported to the older releases. eientei provided some useful script diffs.
- Actor 3 (one of the shepherds) sometimes disappears (as a SCUMM actor, but not visually) from room 23, in some (but not all!) EGA releases. Restoring it everywhere could help with the other shepherd workaround in
o5_startScript()
.
Monkey1
- The leap of faith bug with the map in the forest.
- I sometimes see it as a small hidden feature, though. I don't think it causes any issue, and you can only trigger it purposefully. So we might just leave it as is…
- My VGA FR and VGA EN floppy releases appear to contain different script bugfixes (see PR#4178). To be investigated a bit more…
- I really miss the original red verb effect when you're under the Monkey Head, in the v5 release.
- It may be possible to get stuck in the catacombs, when some specific room generation is triggered (Trac#13710).
- I'm told the FM-TOWNS release completely removed Stan from the scene where Guybrush falls into the grog machine (script 78-133), for whatever reason.
- We could maybe restore it, as for one of the map piece scenes in Monkey2 FM-TOWNS (Trac#2233), but since the FM-TOWNS releases are so rare, maybe they're meant to keep their peculiarities, instead of being streamlined with the rest?
Monkey2
- On Scabb Island, if you talk to Dread, choose the last dialogue option, and try skipping it with the Esc key, the dialogue will restart again instead of stopping (old Trac#1681).
- At Phatt's mansion, you're supposed to be able to interact with the paintings behind the stairs, but the stairs have a higher priority, "hiding" the paintings. There's no particular content though, is just triggers the default reaction for useless room objects.
- Amiga: on original hardware, the most important part of Elaine's reaction during the end credits is said to be missing (Mixnmojo thread).
- By luck (or accident), it looks like our Amiga reimplementation is not entirely accurate, and so I can't reproduce this problem in ScummVM.
- Amiga: when Guybrush and Wally escape from LeChuck's torture chamber, you will "see" them being moved to their new room before the lights go off.
- Maybe check what happens in an original Amiga interpreter before patching anything, since it looks like we behave a bit differently for this version.
- Various small glitches were found by RetroSpeedruns on YouTube for this game, but most of the time they're minor issues where you need to do a long series of weird but intentional actions to trigger them, so there's probably less incentive in fixing those.
- In some conditions, the "Dem Bones" scene with Guybrush's parents can lock up.
- The Ultimate Talkie Edition fixed this by completely rewriting the impacted script.
- I don't know if this problem also happened with the original interpreter. If it was ScummVM-only, it may have been fixed by having a more accurate v5 implementation now.
- Small animation issues after stealing Elaine's map piece in Easy Mode:
- If you use the knife or the shovel on the map piece when it's on the floor, Guybrush will say it's too late, even though the map piece hasn't moved at all.
- If you just pick it up, Guybrush doesn't bend over before picking it up, even though the proper
anim()
calls appear to be there, as in Normal Mode.
Indy4
- https://www.youtube.com/watch?v=kPre4Gv4mKg: if you don't follow Sophia when she's about to be possessed by Nur-ab-Sal at the center of Atlantis, funny things will happen.
- I may have something for this ("soon"), but it really requires good testing because several scripts are impacted.
- https://www.youtube.com/watch?v=qdNievi_wTc: In Atlantis, you can completely bypass the sentry room if you're fast enough (I remember hitting that with the original interpreter back in 2003).
- Speed-runners will need to uncheck the Enhancement box if they want to keep using this (very nice) shortcut.
- In teams path at the dig site near Algiers, Sophia can get stuck in one of her reactions if you press Esc at the right time after she gives the amber fish to Indy.
- Talkie: if you look at Sophia while she's being detained in Kerner's room in the U-Boot, several lines will be badly cut.
Very old memories of mine with the French floppy release:
- In fists path, if you forgot to pick up some object before leaving the dig site near Algiers, the game would systematically crash (with a "missing object in room" error?) just when you go over the ocean with the balloon.
- Can't remember if this was with ScummVM or the original DOS interpreter. Sometime between 2004 and 2007, I'd say. Can't reproduce it with current ScummVM, though (and the game makes sure that you don't forget the sunstone).
- When you're alone on Thera and need to make a balloon, I remember being stuck with two useless objects if I assembled the ballon's parts in some weird order.
- Can't reproduce it, so maybe I was just not very smart.
- The original interpreter would give an
new name of object 647 too long
fatal error in Knossos in the French release, once you discover the hidden door with the amber fish.- That's because
wall -> door
becomesmur -> porte
in French, but they should have usedmur@@ -> porte
for proper resource name padding. - Not an issue in ScummVM, because we don't have a hard requirement on
@
padding (and that's very fortunate, because a lot of fan translations would break).
- That's because
DOTT
- Improve Dr. Fred's hitbox when you need to use the rope on him. It's way too small.
- https://tcrf.net/Maniac_Mansion:_Day_of_the_Tentacle lists of lot of good content and jokes being untriggerable.
- For some of them, we don't know if it's an intentional cut, but most of the time it looks like they're just script oversights.
- If you try reading the boring green book to the cast with Hoagie in the past, the cat has the same reaction as when you try to touch it, but this time there's no sound at all.
- It's not very hard to restore it, but how to make sure that the audio offset is the proper one, since the two scripts (23-203 and room-23-obcd-162) can't "see" each other when we do opcode workarounds in script_v5.cpp?
Sam & Max
- French release: in the intro, Sam calls Max "Sam", which is not intended in this part of the game.
- The floppy release has a different dub, and there's no such mistake there, but it's a very rare release and the audio quality is very low.
- Maybe we could patch in a different "Max" voice clip from some other place, but I fear that it's going to be too complex/hackish.
- This does exist as a joke later in the game, though! So, is it that much of a problem in Sam & Max's wonderfully weird world?
- French and German releases: several dubbed lines are cut way too early (e.g. if you at the one of the creatures inside the Tunnel of Love)
- The mistake is in the original audio resources, not in the scripts, so we probably can't do anything about this.
- Improve the hitbox of the rightmost door in room 53 (bigfoot party), because only a handful of pixels on the very top of it are clickable.
- Improve the hitbox for the last room of the game: you need to click in very small area in the rightmost part of the screen, but it would be nice if the you could just click in the middle of the screen, since this is where you can see the next room, so it's more intuitive to click there.
Full Throttle
- In the German and French releases, several lines are dubbed by the wrong actor (see Trac#13646).
- I'm pretty sure we can't do anything about this, though, as it looks like this was a line-by-line dub and not a scene-by-scene dub. The 2017 remaster didn't fix this either, so the mistake is probably right in the recording process of that area.
- In the French release, several lines and SFX are completely missing from some SAN sequences (e.g. SNSETRDE.SAN and boot param
900
), so you only get subtitles.- Again, unfortunately, there's probably nothing to restore.
- In the French release, the volume level of (way too) many lines is very poorly adjusted (i.e. you can't hear anything).
- There is maybe a way of fixing this… but that's quite low on my priority list.
- I also need to check if the 2017 remaster didn't improve this in some way.