DS-Homebrew / nds-bootstrap

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

Dragon Quest V - Black screen if DMA active #1147

Closed Nemris closed 3 years ago

Nemris commented 3 years ago

Your console: New 3DS Launch Method: microSD card Version used: Release v0.39.1 Game tested/used/applicable: Dragon Quest V, PAL, YV5P, MD5 87215d7ddf71304f80afbbfd7b8a8455, both vanilla and trimmed via GodMode9

Expected Behavior: The game should have booted. Actual Behavior: After the nds-bootstrap logo, the 3DS black-screens.

Steps to reproduce

  1. Ensure "Card read DMA" is enabled.
  2. Boot the game.

The nds-bootstrap.ini file follows.

[NDS-BOOTSTRAP]
NDS_PATH = sd:/roms/nds/Dragon Quest V - Hand of the Heavenly Bride (Trimmed) [YV5P].nds
SAV_PATH = sd:/roms/nds/saves/Dragon Quest V - Hand of the Heavenly Bride (Trimmed) [YV5P].sav
DONOR_SDK_VER = 0
BOOTSTRAP_PATH = sd:/_nds/nds-bootstrap.nds
ROMREAD_LED = 0
BOOST_CPU = 1
DEBUG = 1
LOCK_ARM9_SCFG_EXT = 0
PATCH_MPU_REGION = 0
PATCH_MPU_SIZE = 0
LOGGING = 1
LOADING_SCREEN = 1
CONSOLE_MODEL = 2
LOADING_DARK_THEME = 1
LOADING_SWAP_LCDS = 1
LOADING_SCREEN_FOLDER = /_nds/TWiLightMenu/dsimenu/loading/
LOADING_FRAMES = 0
LOADING_FPS = 0
LOADING_BAR_Y = 0
LANGUAGE = -1
DSI_MODE = 1
BOOST_VRAM = 1
GAME_SOFT_RESET = 0
FORCE_SLEEP_PATCH = 1
COLOR_MODE = 0
LOADING_BAR = 1
RAM_DRIVE_PATH = sd:/null.img
CARDENGINE_CACHED = 0
PRECISE_VOLUME_CONTROL = 0
SOUND_FREQ = 1
AP_FIX_PATH = sd:/_nds/nds-bootstrap/apFix.ips
DMA_ROMREAD_LED = -1
CACHE_FAT_TABLE = 0
HOMEBREW_ARG =
EXTENDED_MEMORY = 0
CACHE_BLOCK_SIZE = 0
MACRO_MODE = 0
REGION = -2
CARD_READ_DMA = 1
GUI_LANGUAGE = en

Logs

findModuleParamsOffset:
Module params offset restored: 02000C08
sdk_version: 04027531
arm9 is compressed

Switched to NTR mode BIOS
patchCardNds

findSwi12Offset:
swi 0x12 call not found

swi12 location : 00000000

cardIrqEnable location : 020870C4

startOffset : 02000000

cardRead location : 02071588
023F0000

cardPullOut location : 02071968

cardId location : 02071644

patchCardSetDma

NDMA CARD SET METHOD ACTIVE
cardSetDma location : 02071374

NDMA CARD READ METHOD ACTIVE
cardEndReadDma location : 020713DE

patchMpuSize: 00000000

patchMpuSize: 00000000

Mpu2 init: 0208833C

ERR_NONE

cardIrqEnable location : 02383B0C

forwardedRelocStartAddr
023801D0
vAddrOfRelocSrc
023801E8
Relocation src: 023801E8
Relocation dst: 037F8000

Arm7 (patch vAll)

JumpTableFunc: 0238BC54
Eeprom read:    0238BC60
Eeprom page write:  0238BC74
Eeprom page prog:   0238BC88
Eeprom verify:  0238BC9C
Eeprom page erase:  0238BCAC
swiHalt location : 02380694

swi12 location : 0238C0A8

swiGetPitchTable location : 02387604

ERR_NONE

hookNdsRetailArm7
hookLocation arm7: 02390810

ERR_NONE
hookLocation arm9: 027E0000

AP-fix found and applied
chipID: 80007FC2

Other notes

As mentioned, the game boots when "Card read DMA" is off. Interestingly, a previously AP-patched trimmed ROM appeared to boot without additional adjustments.

servandios commented 3 years ago

I am experiencing the same issue as above. My USA dump version boots with DMA but it freezes entering certain places like the top of the lighthouse in Lodestar. I tried switching all settings but only DMA=off solves it. I hope it helps.

Squall-Leonhart commented 3 years ago

clear the patch and fat caches

RocketRobz commented 3 years ago

Don't remember if this game got added to the DMA blacklist, but since turning it off fixes this, this will be closed now.