Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added option to force ARM9 67MHz Clock Speed in DSi mode #157

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

Dartz150
Copy link
Contributor

@Dartz150 Dartz150 commented Apr 24, 2024

This is based on Gericom´s previous implementation in other project.

Fixes issues in these games:

BJXE - Harry Potter and the Order of the Phoenix (USA,EUR)
BWWE - WWE - Survivor Series (USA,EUR) - Fixes running too fast
AH3E - Hamtaro - Ham-Ham Heartbreak (USA) - Fixes hanging in the title screen
AH3P - Hamtaro - Ham-Ham Heartbreak (Europe) (En,Fr,De,Es,It) - Fixes hanging in the title screen
AMVJ - Magical Vacation (JAP) - Fixes hanging in the title screen
BAVE - Activision Anthology (USA) - Fixes sound issues
A9ME - Moto Racer Advance (USA) - Fixes running too fast
A9MP - Moto Racer Advance (EUR) - Fixes running too fast
ABZE - NFL Blitz 20-02 (USA,EUR) - Fixes running too fast

This setting can be used later if more issues related to clock speeds are found.

Json setting example:

{
    "runSettings": {
        "forceDSArm9Clock": true
    }
}

Tested in both DSi and 3DS consoles, in both SD card and DSpico in DSi mode.

This fixes #120, #110, #81 and #63

Fixes issues in these games:

BJXE - Harry Potter and the Order of the Phoenix (USA,EUR)
BWWE - WWE - Survivor Series (USA,EUR)
AH3E - Hamtaro - Ham-Ham Heartbreak (USA)
AH3P - Hamtaro - Ham-Ham Heartbreak (Europe) (En,Fr,De,Es,It)
AMVJ - Magical Vacation (JAP)
BAVE - Activision Anthology (USA)
A9ME - Moto Racer Advance (USA)
A9MP - Moto Racer Advance (EUR)
ABZE - NFL Blitz 20-02 (USA,EUR)
@cotodevel
Copy link

cotodevel commented Jun 12, 2024

I kinda had the same issue when porting TGDS-multimediaplayer from NTR mode to TWL mode. Turns out the bios calls in DKARM are NTR mode-only (r45), thus when the games are calling them internally through GBA mode, they don't act properly in TWL mode (they'll run twice as fast).

As a workaround I made TGDS homebrew timing consistent, thus, I could use the default BIOS @ 0xFFFF0000 and it'd magically work for both NTR/TWL modes, sounds, interrupts overall worked incredibly well.

Thus:

  1. Reverse engineer what NTR bios does, and apply these fixes in custom BIOS @0x00000000 vectors
  2. Reverse engineer what TWL bios does, and apply these fixes in custom BIOS @0x00000000 vectors
  3. detect TWL mode and use each one accordingly. Pretty sure it'll fix plenty of timing issues.

As for M&L: SS, the issue is cache regions in DS mode in GBA IO segments where caches should be disabled.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Game] Motoracer Advance - EUR version of the game plays very fast
2 participants