DS-Homebrew / nds-bootstrap

Boot an nds file
https://wiki.ds-homebrew.com/nds-bootstrap/
GNU General Public License v3.0
1.16k stars 75 forks source link

Proper dma read card functions implementations #517

Open ahezard opened 5 years ago

ahezard commented 5 years ago

The current implementation of the dma read card functions deactivate all dma card read. This behavior can affect performance and compatibility.

Game that uses dma to acces the card : GTA chinatown wars Golden Sun Elektroplanton Castlevania Dawn of Sorrow Pokemon Dash Kirby Canvas Curse Mario & Luigi: Bowser's Inside Story (sometimes) Spectrobes Professor Layton and the Curious Village (during cutscenes) Meteos Final Fantasy XII - Revenant Wings Maplestory Mr Bean Yu-Gi-Oh 5Ds World Championship 2011: Over The Nexus Assassin's Creed - Altair's Chronicles Nanashi no Geemu Theme Park Tales of Innocence

How to spot a game that uses dma via no$gba : Enable DMA log on ARM9 A DMA access to the card uses AF000001 as the third parameter eg : DMA2: 04100010 023C18C0 AF000001

ahezard commented 5 years ago

As of now this full method is available on master. Some more testing is needed.

hubert-skowronek commented 5 years ago

@ahezard Tested 6be5c8a: Mario & Luigi BiS - graphical glitches during cutscenes still present (horizontal bars flickering) Hotel Dusk - green bars flickering during cutscenes still present

ahezard commented 5 years ago

6be5c8a did not have #517 active for Mario & Luigi BiS please retest with 2e48916

hubert-skowronek commented 5 years ago

I have a black screen for 2e48916 when running ML BiS

hubert-skowronek commented 5 years ago

@ahezard with 9de36d8 ML BiS loads but after choosing save it is the black screen

NightScript370 commented 4 years ago

Hasn't this been implemented with the release v0.29.0?

ahezard commented 4 years ago

Yes it have been implemented but I consider the work to not be 100% done. Implementation for SDK5 games still have issues. I am working on it.

RocketRobz commented 4 years ago

As of recent commits, DMA reads aren't working with heap shrink turned on. I have no idea why that is, as it worked just fine before with heap shrink.

ghost commented 4 years ago

Mario & Luigi BiS - graphical glitches during cutscenes still present (horizontal bars flickering) Hotel Dusk - green bars flickering during cutscenes still present

I have noticed similar issues in luminous arc (horizontal black bars during cutscenes) and project rub (rare horizontal red bars during cutscenes), perhaps they are related to this whole dma read card function. Both games were EU versions and were played in NTR mode

my setup - new 2ds xl; twilight menu v15.1.1; nds bootstrap v0.35.1; luna v10.2

RocketRobz commented 3 years ago

As of recent commits, some games that rely on DMA reads, will either not boot, or crash at some point. Examples are:

zosxavius commented 3 years ago

Looks like radiant Historia is having DMA issues again. At least on a japanese DSi LL. I get flickering in the title and at various points. Its happening during card reads looks like. I did play this before on an older version and I remember it being perfect like a year ago. That was with an American NDS. I doubt that matters. I have the 3ds version of radiant which is superior IMO, but just letting you know. I decided to boot up the DS version to compare a little. I checked and I'm on the latest NDS bootstrap release. It was perfect a year ago. I tried a donor ROM too and that didn't help. Turning DMA off makes it load slowly and doesn't fix anything. I also had DQVI hang right after you leave the first town. I think that was on my 3ds. I'll have to test on the DSi XL. I don't remember that hanging before though. Unrelated probably but Mario Kart hangs on multiplayer unless running at 133mhz.

There's some nice improvements here so I fully look forward to new releases.

Kaisaan commented 2 years ago

What games still have this issue on the current version (0.54.1) of nds-bootstrap?

RocketRobz commented 2 years ago

Only known one is Tropix, which crashes often with the DMA option turned on.

Kaisaan commented 2 years ago

Since turning off that setting fixes it, would it make this issue good to close?

RocketRobz commented 2 years ago

Yeah, our implementation seems to be mostly(?) good, at this point.

RocketRobz commented 1 year ago

Re-opening, since some unexpected regressions have occurred since v0.63.0 (though only in TWL titles in DSi mode).