ekeeke / Genesis-Plus-GX

An enhanced port of Genesis Plus - accurate & portable Sega 8/16 bit emulator
Other
676 stars 194 forks source link

Wrong colors in Dr. Hello (SMS) #406

Closed vaguerant closed 2 years ago

vaguerant commented 2 years ago

Dr. Hello (Korea) (Unl).sms (No-Intro naming) has bad colors in Genesis Plus GX:

Dr  Hello (Korea) (Unl)-220120-023510 Dr  Hello (Korea) (Unl)-220120-023530

Compare to the screenshots on SMSPower:

SMSPowerDH-Title SMSPowerDH-Gameplay

Running the game in SG-1000 mode seems to fix the colors but the game crashes before you can even start playing. I don't know enough about the SG-1000 and SMS to speculate what that means.

Tested on libretro/Genesis-Plus-GX@c1c605e.

vaguerant commented 2 years ago

Never mind, apparently this is accurate to what the game looks like on real hardware. It uses the legacy SG-1000 video mode on the SMS, which just looks broken like that. However, it presumably also needs the extra RAM of the SMS, so it can't be played in true SG-1000 mode.

Perhaps an optional (inaccurate) enhanced legacy palette for SG-1000 video mode on SMS could be added to GPGX? Where games use the real SG-1000 palette instead of the SMS's legacy palette?

ekeeke commented 2 years ago

Indeed, that screenshot was taken from an emulator (Kega Fusion probably) which does not emulate the specific TMS mode colors of the Master System VDP. And this game is actually a Master System game so yes, it is not compatible with SG-1000 hardware because of the limited RAM.

Having an option to force TMS9918 color palette in Master System VDP was already proposed I think (for playing those MSX2SMS hacks from what I remember) but I don't really like this idea as it is kinda inaccurate and emulates a system that does not exist (and can not be achieved by modding Master System hardware).

A much better solution in my opinion would be to use existing options (either System Hardware or Lock-On) to let user enable/disable SG-1000 RAM adapter when emulating SG-1000 hardware: it is a cartridge adapter that was required by some SG-1000 games (mostly MSX conversions) to extend SG-1000 hardware RAM up to 8KB (same as Master System hardware) and is already supported by this emulator (but only activated for the few games that require it atm).