Gericom / GBARunner2

A GBA hypervisor for DS. (like nintendont for gc on wii)
757 stars 60 forks source link

Most Chinese games can't be played #27

Open yoyoliyang opened 6 years ago

yoyoliyang commented 6 years ago

As the title, A lot of Sinicization games can't be played.

FlameKat53 commented 4 years ago

Most of my iQue games work, Famicom Collection is broken though, and Polarium Advance CHN (And all other regions, too) got broken

SLKun commented 4 years ago

If the game contains a custom title, it must be removed.

For example, I try to remove the custom title for "The Legend of Zelda - A Link to the Past and Four Swords". It works normally. However, it requires using no$gba for debugging dynamically(:3」∠)

What's more, many pokemon mod cannot work even if the title was removed. I don't know why a game works well on the simulator, but not work for real console.

If there are some ways to know why game hangs or gets trapped into blackscreen, it will be much useful. Copying files between PC and console frequently is really cumbersome.

SLKun commented 4 years ago

QQ截图20200112223817 A example of custom title code. @Gericom

In this code, first open the screen (0x40000000), then write to DMA3 SourceAddr (0x400000D4), then write to DMA3 DestAddr (0x400000D8), then write to DMA3 Word Count (0x400000DC), then wait for key by read KEYINPUT(0x4000130) repeatly. Finally, close the screen (0x40000000) and back to entry point(0x800000C0).

I don't why they don't write to DMA3 Control(0x400000DE). But I think the main issue seems to be related to the DMA3.

The test version is GBARunner2_arm7dldi_dsi.nds(v20191224-164221_b740476) on NDSi with TWiLightMenu.

zenseii commented 4 years ago

You probably shouldn't share that rom here. Otherwise good job!

Gericom commented 4 years ago

Wait, it seems to use the LDRT and STRT instructions (which are no different from LDR and STR respectively on gba). I do not handle that instruction in the abort handler currently. Edit: This is unrelated to this issue by the way

zenseii commented 4 years ago

Btw @Summerslyb the ROM is still available in the history of your post. I'm not sure how to remove that actually...

Gericom commented 4 years ago

That "title code" this was referring to rom intros which appearently use strt/ldrt sometimes. It is unrelated to chinese games. If the chinese games just work when clean I can probably close this issue and make a separate one for ldrt/strt support

SLKun commented 4 years ago

Chinese game is a complicated issue. Different games may have different problems.

“Custom title” is just a common problem I found. After removing the title, some games will still not work, which may require further testing.

Anyway, I think it is necessary to open a new Issue for ldrt/strt support.

SLKun commented 4 years ago

Btw @Summerslyb the ROM is still available in the history of your post. I'm not sure how to remove that actually...

I deleted the history permanently.

SLKun commented 4 years ago

I try to modify the "strt/ldrt" to "str/ldr". It will no longer get stuck. But the screen doesn't show anything useful but stays blank. And the interrupt for touch on bottom screen is blocked util you enter the key.

QQ截图20200216145216

Gericom commented 4 years ago

Did you try with center and mask disabled?

SLKun commented 4 years ago

Oh, when disabled 'center and mask', the title showed. It may related to the frame delay.

Gericom commented 4 years ago

No, the reason is that that title appearently doesn't use any irqs which is the issue. I will implement support for ldrt and strt and then close this issue

SLKun commented 2 years ago

When getting iQue famicom mini collection game TO WORK on mGBA v.0.9.3 on my PC, the game still crashing in previous GBARunner2 versions, but has still doesn't work anymore in latest mGBA3DS versions.

The famicom mini collection is not supported by GBARunner2.