Maniac Mansion (NES)

Ask for help with ScummVM problems

Moderator: ScummVM Team

Post Reply
Madness
Posts: 3
Joined: Wed Jun 09, 2010 8:50 pm

Maniac Mansion (NES)

Post by Madness »

Running the NES Maniac Mansion on Windows 7. Curiously, all the kids have yellow skin. They look like they all have jaundice! Yet, their skin looks normal if I run it on a NES emulator; so what's the deal w/ SVM?
User avatar
Freddo
Posts: 287
Joined: Mon Oct 31, 2005 4:41 pm

Post by Freddo »

The NES have a palette of 48 colors and 6 grays it can use. And unlike games for many other platforms, there is no real color information within the NES games, and every creator of a NES emulator pretty much made their own NES palette they feel is the most accurate, because every TV display them slightly differently.

So I guess the guy behind the NES support in ScummVM didn't feel like wasting a lot of time in looking at the colors on the screen from an original NES to make his own palette, or something.

I actually made my own NES palette ~15 years ago though, and use emulators that have support for an external palette files.

So what you need to do is to edit the ScummVM source code and change the palette into your liking.
LaurentLaSalle
Posts: 3
Joined: Wed Jul 09, 2014 11:39 pm

Re: Maniac Mansion (NES)

Post by LaurentLaSalle »

This post might be 7 years old, but I'd like to share my input anyway since I enjoy using ScummVM with the NES version of Maniac Mansion so much, but the off colors were bugging me. FYI, the color palette information of the games using the Scumm engine are located in /engines/scumm/palette.cpp. You want to tweak the following :

Code: Select all

	static const byte tableNESPalette[] = {
		/*    0x1D     */
		0x24, 0x24, 0x24, 	0x00, 0x24, 0x92, 	0x00, 0x00, 0xDB, 	0x6D, 0x49, 0xDB,
		0x92, 0x00, 0x6D, 	0xB6, 0x00, 0x6D, 	0xB6, 0x24, 0x00, 	0x92, 0x49, 0x00,
		0x6D, 0x49, 0x00, 	0x24, 0x49, 0x00, 	0x00, 0x6D, 0x24, 	0x00, 0x92, 0x00,
		0x00, 0x49, 0x49, 	0x00, 0x00, 0x00, 	0x00, 0x00, 0x00, 	0x00, 0x00, 0x00,

		0xB6, 0xB6, 0xB6, 	0x00, 0x6D, 0xDB, 	0x00, 0x49, 0xFF, 	0x92, 0x00, 0xFF,
		0xB6, 0x00, 0xFF, 	0xFF, 0x00, 0x92, 	0xFF, 0x00, 0x00, 	0xDB, 0x6D, 0x00,
		0x92, 0x6D, 0x00, 	0x24, 0x92, 0x00, 	0x00, 0x92, 0x00, 	0x00, 0xB6, 0x6D,
							/*    0x00     */
		0x00, 0x92, 0x92, 	0x6D, 0x6D, 0x6D, 	0x00, 0x00, 0x00, 	0x00, 0x00, 0x00,

		0xFF, 0xFF, 0xFF, 	0x6D, 0xB6, 0xFF, 	0x92, 0x92, 0xFF, 	0xDB, 0x6D, 0xFF,
		0xFF, 0x00, 0xFF, 	0xFF, 0x6D, 0xFF, 	0xFF, 0x92, 0x00, 	0xFF, 0xB6, 0x00,
		0xDB, 0xDB, 0x00, 	0x6D, 0xDB, 0x00, 	0x00, 0xFF, 0x00, 	0x49, 0xFF, 0xDB,
		0x00, 0xFF, 0xFF, 	0x49, 0x49, 0x49, 	0x00, 0x00, 0x00, 	0x00, 0x00, 0x00,

		0xFF, 0xFF, 0xFF, 	0xB6, 0xDB, 0xFF, 	0xDB, 0xB6, 0xFF, 	0xFF, 0xB6, 0xFF,
		0xFF, 0x92, 0xFF, 	0xFF, 0xB6, 0xB6, 	0xFF, 0xDB, 0x92, 	0xFF, 0xFF, 0x49,
		0xFF, 0xFF, 0x6D, 	0xB6, 0xFF, 0x49, 	0x92, 0xFF, 0x6D, 	0x49, 0xFF, 0xDB,
		0x92, 0xDB, 0xFF, 	0x92, 0x92, 0x92, 	0x00, 0x00, 0x00, 	0x00, 0x00, 0x00
	};
My suggestion would be to use the Sony CXA2025AS color palette to give the kids a more natural skin tone :

Code: Select all

	static const byte tableNESPalette[] = {
		0x00, 0x00, 0x00, 	0x00, 0x23, 0x8C, 	0x00, 0x13, 0x9B, 	0x2D, 0x05, 0x85,
		0x5D, 0x00, 0x52, 	0x7A, 0x00, 0x17, 	0x7A, 0x08, 0x00, 	0x5F, 0x18, 0x00,
		0x35, 0x2A, 0x00, 	0x09, 0x39, 0x00, 	0x00, 0x3F, 0x00, 	0x00, 0x3C, 0x22,
		0x00, 0x32, 0x5D, 	0x00, 0x00, 0x00, 	0x00, 0x00, 0x00, 	0x00, 0x00, 0x00,

		0xA1, 0xA1, 0xA1, 	0x00, 0x53, 0xEE, 	0x15, 0x3C, 0xFE, 	0x60, 0x28, 0xE4,
		0xA9, 0x1D, 0x98, 	0xD4, 0x1E, 0x41, 	0xD2, 0x2C, 0x00, 	0xAA, 0x44, 0x00,
		0x6C, 0x5E, 0x00, 	0x2D, 0x73, 0x00, 	0x00, 0x7D, 0x06, 	0x00, 0x78, 0x52,
		0x00, 0x69, 0xA9, 	0x00, 0x00, 0x00, 	0x00, 0x00, 0x00, 	0x00, 0x00, 0x00,

		0xFF, 0xFF, 0xFF, 	0x1F, 0xA5, 0xFE, 	0x5E, 0x89, 0xFE, 	0xB5, 0x72, 0xFE,
		0xFE, 0x65, 0xF6, 	0xFE, 0x67, 0x90, 	0xFE, 0x77, 0x3C, 	0xFE, 0x93, 0x08,
		0xC4, 0xB2, 0x00, 	0x79, 0xCA, 0x10, 	0x3A, 0xD5, 0x4A, 	0x11, 0xD1, 0xA4,
		0x06, 0xBF, 0xFE, 	0x42, 0x42, 0x42, 	0x00, 0x00, 0x00, 	0x00, 0x00, 0x00,

		0xFF, 0xFF, 0xFF, 	0xA0, 0xD9, 0xFE, 	0xBD, 0xCC, 0xFE, 	0xE1, 0xC2, 0xFE,
		0xFE, 0xBC, 0xFB, 	0xFE, 0xBD, 0xD0, 	0xFE, 0xC5, 0xA9, 	0xFE, 0xD1, 0x8E,
		0xE9, 0xDE, 0x86, 	0xC7, 0xE9, 0x92, 	0xA8, 0xEE, 0xB0, 	0x95, 0xEC, 0xD9,
		0x91, 0xE4, 0xFE, 	0xAC, 0xAC, 0xAC, 	0x00, 0x00, 0x00, 	0x00, 0x00, 0x00
	};
Overwrite the changes, compile, and voilà.
ZvikaZ
Posts: 58
Joined: Thu Mar 05, 2020 7:04 pm

Re: Maniac Mansion (NES)

Post by ZvikaZ »

@LaurentLaSalle , please send this as Pull Request, so it would be reviewed by the team, and merged, for everybody's benefit.
In this thread it will be lost...
digitall
ScummVM Developer
Posts: 1053
Joined: Thu Aug 02, 2012 1:40 pm

Re: Maniac Mansion (NES)

Post by digitall »

Have opened this for comment as PR #2211: https://github.com/scummvm/scummvm/pull/2211
User avatar
sev
ScummVM Lead
Posts: 2070
Joined: Wed Sep 21, 2005 1:06 pm
Contact:

Re: Maniac Mansion (NES)

Post by sev »

And it was accepted.


Eugene
Post Reply