ares-emulator / ares

ares is a cross-platform, open source, multi-system emulator, focusing on accuracy and preservation.
https://ares-emu.net
Other
959 stars 117 forks source link

[GG] ares is setting the region to (J) even when the "prefer USA" is set #640

Closed Shideravan closed 2 years ago

Shideravan commented 2 years ago

Take a look at the image. Even choosing the prefer USA option, the game runs as a Japanese version (take a look at the katakana in places names below in the screen) image

It's valid to mention, that the game used is the same in USA and Japanese regions. The game changes it's version accordly with the Game Gear system.

Shideravan commented 2 years ago

As a reference, the game shows "Tails' house" in USA version, as below. image

Screwtapello commented 2 years ago

It's valid to mention, that the game used is the same in USA and Japanese regions.

Despite the screenshot saying "Tails' Adventures (U)", the No-Intro database entry for this game calls it "Tails Adventure (World) (En,Ja)"

Shideravan commented 2 years ago

It's valid to mention, that the game used is the same in USA and Japanese regions.

Despite the screenshot saying "Tails' Adventures (U)", the No-Intro database entry for this game calls it "Tails Adventure (World) (En,Ja)"

Yes, the game has the same code distributed in both regions. The language changes based in Game Gear itself. Eg.: Running the game in an American Game Gear, the game shows the text in English. Running the game in a Japanese Game Gear, the game show the Japanese texts. The issue is, there's no way to play this game in English in present state of the emulator. As even setting "Prefer US" in options, the game behaves as if in a Japanese Game Gear.

FitzRoyX commented 2 years ago

This is known and I've raised this issue in the past. Near was attempting to avoid having to manually set the region for Sega games, something I think is unavoidable. The current region selector is not a system dictate like it appears. Rather, you can read every setting as:

"Detect via Rom Bits and if bit = Multi-Region or None, use THIS region"

Well, because these bits are not actually what triggers regional changes, they tended not to marked correctly in the rom. And you end up with lots of situations like this where the bit is marked "Japan" and now you're blocked out of English menus and text. The region flyout should look more like this:

Try Auto USA JPN EUR

The word "Try" is really important here. Just saying "Auto" is going to make people think it's foolproof. You could also say "Guess via Rom" or whatever.

LukeUsher commented 2 years ago

The issue here is that ares only implements one variant of Game Gear, and doesn't even know that USA/JAPAN versions are different, see the system list here:

https://github.com/ares-emulator/ares/blob/3ca1f9ebb4ae3f472f7fba661746058f84126536/ares/ms/system/system.cpp#L5

The solution would be to update ares to emulate Japan and 'rest of world' versions of the game gear.

Unlike the master system, in which games detect region by checking for hardware differences, the game gear has a proper region register located in bit6 of IO port 0, that should be 0 for Japanese systems and 1 for rest of world. Ares does not yet implement this.

LukeUsher commented 2 years ago

Fixed as of 9a3d949fc2e50fc0d2fde3092e9b91c1eb202e44