ref: 15a1c4924707f78ca4f9e109292e1ca35e83f1f7
parent: a4ff8b18d8c02b566ec1e203f983fc111408a752
author: Simon Howard <[email protected]>
date: Mon Mar 28 19:33:09 EDT 2011
Emulate bug with IDMUS cheat when emulating v1.9 (thanks Alexandre Xavier). Subversion-branch: /trunk/chocolate-doom Subversion-revision: 2314
--- a/NEWS
+++ b/NEWS
@@ -27,6 +27,8 @@
* The null sector dereference emulation code has been imported
from Prboom+ - this fixes a desync with CLNJ-506.LMP (thanks
entryway).
+ * The IDMUS cheat doesn't work when emulating the v1.9 executable
+ (thanks Alexandre Xavier).
Bugs fixed:
* Menu navigation when using joystick/joypad (thanks Alexandre
--- a/NOT-BUGS
+++ b/NOT-BUGS
@@ -110,3 +110,20 @@
http://rome.ro/lee_killough/editing/visplane.shtml
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+== IDMUS## cheat doesn't work with shareware/registered Doom IWADs ==
+
+The IDMUS cheat allows the in-game music to be changed. However, in
+the original v1.9 this cheat didn't work properly when playing with
+the Doom 1 (shareware and registered) IWADs. This bug was fixed in
+the Ultimate Doom and Final Doom executables.
+
+Chocolate Doom emulates this bug. When playing with the shareware or
+registered Doom IWADs, the IDMUS cheat therefore does not work
+properly. If you are playing with the Ultimate Doom IWAD, the
+Ultimate Doom executable is emulated by default, so the cheat works
+properly.
+
+# vim: tw=70
+
--- a/src/st_stuff.c
+++ b/src/st_stuff.c
@@ -521,8 +521,13 @@
plyr->message = DEH_String(STSTR_MUS);
cht_GetParam(&cheat_mus, buf);
-
- if (gamemode == commercial)
+
+ // Note: The original v1.9 had a bug that tried to play back
+ // the Doom II music regardless of gamemode. This was fixed
+ // in the Ultimate Doom executable so that it would work for
+ // the Doom 1 music as well.
+
+ if (gamemode == commercial || gameversion < exe_ultimate)
{
musnum = mus_runnin + (buf[0]-'0')*10 + buf[1]-'0' - 1;