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

Animal Crossing Wild World Local Play Communication Error #985

Closed BannerBomb closed 2 years ago

BannerBomb commented 4 years ago

Your console: O3DS

Launch Method: My CFW: Luma3DS v10.1.3 System Firmware: 11.13.0-45U

Launch Method: TWiLight Menu++ v15.3.0 (nds-bootstrap v0.35.1) from a 32GB SDHC card. Version used: Release

Game tested/used/applicable: Animal Crossing Wild World [ADME01]

Expected Behavior: It was expected to not disconnect from the local connection.

Actual Behavior: As soon as the player successfully arrives on the other players island (both players are using TWiLightMenu++ with the exact same information I have listed in this issue) via Local Play (DS to DS) the connection disconnects and the game shows the error "Communication has ended and the game will reset. You may lose progress from the last save."

Steps to reproduce

  1. Start the game on 2 separate consoles.
  2. On one console talk to cooper and tell him you want to Invite visitors via DS to DS.
  3. On the second console talk to cooper and tell him you want to go somewhere via DS to DS and confirm the island is locates.
  4. Let the game do the rest.
    • By this point you should notice both consoles are connected as the signal strength indicator won't be red with 0 bars anymore.
  5. On console 1 you will see the player arrive at the island while on console 2 you will see the player starting to departure.
    • After a few seconds both consoles will receive the error "Communication has ended and the game will reset. You may lose progress from the last save." and the player is forced to restart the game which can be done by pressing A or tapping the touchscreen.

nds-bootstrap.ini contents: I've tried DS Mode, DSi Mode, Arm7, Arm9

[NDS-BOOTSTRAP]
DEBUG = 0
LOGGING = 0
CACHE_FAT_TABLE = 0
ROMREAD_LED = 0
DMA_ROMREAD_LED = -1
CONSOLE_MODEL = 2
NDS_PATH = sd:/roms/Nintendo DS/Animal Crossing - Wild World (U).nds
SAV_PATH = sd:/roms/Nintendo DS/saves/Animal Crossing - Wild World (U).sav
RAM_DRIVE_PATH = sd:/null.img
LANGUAGE = -1
DSI_MODE = 1
BOOST_CPU = 0
BOOST_VRAM = 0
DONOR_SDK_VER = 0
PATCH_MPU_REGION = 0
PATCH_MPU_SIZE = 0
CARDENGINE_CACHED = 1
FORCE_SLEEP_PATCH = 0
EXTENDED_MEMORY = 0
CACHE_BLOCK_SIZE = 0
PRECISE_VOLUME_CONTROL = 0
SOUND_FREQ = 0
GAME_SOFT_RESET = 1

Logs

The debug logs don't show anything useful except for blank lines and the exact path of the game rom and rom save file.

sd:/roms/Nintendo DS/Animal Crossing - Wild World (U).nds
sd:/roms/Nintendo DS/saves/Animal Crossing - Wild World (U).sav

Other notes

SleepyLark commented 4 years ago

Already a known issue (#869), however your issue is more detailed then the previous one.

BannerBomb commented 4 years ago

I'm not sure if this helps or anything. But I have found that right after you begin to departure to visit Player 1's island right when Player 1's (the player waiting for Player 2 to join them) Nintendo begins to fade to black you can press the home button on both Nintendo's and wait on the prompt that asks if you want to close the software for at least 5 seconds then press B to cancel you will notice Player 2 has successfully arrived on Player 1's island and is standing right in front of the gate. Of course it will disconnect a second later with the communication has ended error. I just found this to be interesting how the connection wasn't ended when on the software close prompt but did right after canceling it.

BannerBomb commented 4 years ago

@SleepyLark Ok, I was able to get player 2 to successfully join my island and they were able to freely walk around but as soon as player 1 (the host) left the station the communication error showed up again and when I exited the building player 1 was invisible on player 2's console but it still showed an invisible object pushing player 2 because they were in the way.

BannerBomb commented 4 years ago

The debug log file from the successful connection session was

findModuleParamsOffset:
Module params offset restored: 02000B64
sdk_version: 030028A0
This rom is compressed

Switched to NTR mode BIOS
old heap pointer: 0229B780

new heap pointer: 0229CF80

Heap Shrink Sucessfull

relocate_ce9
firstCardLocation 0229B780 : 02780000

armReadCardLocation 0229B874 : 02780000

thumbReadCardLocation 0229B890 : 02780000

armReadCardDmaLocation 0229B8C0 : 02780000

armReadSlot2Location 0229B8E4 : 02780000

armSetDmaCardLocation 0229B918 : 02780000

thumbReadCardDmaLocation 0229B950 : 02780000

thumbSetDmaCardLocation 0229B970 : 02780000

armReadNandLocation 0229B99C : 02780000

thumbReadNandLocation 0229B9C8 : 02780000

armWriteNandLocation 0229B9F0 : 02780000

thumbWriteNandLocation 0229BA10 : 02780000

armIrqEnableLocation 0229BA40 : 02780000

thumbIrqEnableLocation 0229BA60 : 02780000

pdashReadLocation 0229BA8C : 02780000

thumbReadSlot2Location 0229BAB0 : 02780000

ipcSyncHandlerLocation 0229BAF0 : 02780000

resetLocation 0229BB1C : 02780000

globalCardLocation 0229CE4C : 02780000

 ce9->patches 0229B7B8

patchCardNds

swi12 location : 02000232

cardIrqEnable location : 020E7248

startOffset : 02000000

cardRead location : 02123CBC

cardPullOut location : 0212441C

patchCardSetDma
cardReadDma location : 02123DBC

patchMpuSize: 00000000

reset location : 0211AE28

ERR_NONE

Arm7 (patch v2)
forwardedRelocStartAddr
02380198
vAddrOfRelocSrc
023801B0
Relocation src: 0238028C
Relocation dst: 037F8000
cardReadEndAddr: 02388D68
cardstructAddr: 038090C0
readCacheEnd: 02388EA4
JumpTableFunc: 02388EA8
returned_A0_with_MKDS: 02388F48
addrOfSomething_85C0: 0238884C
anotherLocinA7WRAM: 038096E4
amal_8CBC: 02388F48
aFinalLocation: FE388F2C
Eeprom protect: 02388F88
Card id:    02388F90
Card read:  02388FB0
Eeprom read:    02388FC8
Eeprom page write:  02388FE0
Eeprom page prog:   02388FF8
Eeprom verify:  02389010
Eeprom page erase:  02389020
swi12 location : 0238948C

swiGetPitchTable location : 02384448

ERR_NONE

hookNdsRetailArm7
hookLocation arm7: 0238F7C0

ERR_NONE
hookLocation arm9: 027E0000

chipID: 00001FC2
debug: true
ndsPath: "sd:/roms/Nintendo DS/Animal Crossing - Wild World (U).nds"
savPath: "sd:/roms/Nintendo DS/saves/Animal Crossing - Wild World (U).sav"
donorE2Path: ""
donor2Path: ""
donor3Path: ""
donorPath: ""
donorTwlPath: ""
saveSize: 40000
language: FF
dsiMode: 1
donorSdkVer: 0
patchMpuRegion: 0
patchMpuSize: 0
ceCached: true
cacheBlockSize: 4000
extendedMemory: false
consoleModel: 2
colorMode: 0
romRead_LED: 0
dmaRomRead_LED: FFFFFFFF
boostCpu: true
boostVram: true
soundFreq: false
forceSleepPatch: false
logging: true
initDisc: false
gameOnFlashcard: false
saveOnFlashcard: false
backlightMode: 0
kEnder242 commented 4 years ago

Another fellow AC Wild World player here. I have a DSi and DSiXL. Been following development here. Had some success with Multiplayer around April with nds-bootstrap v0.32.1 but stability went downhill after that release.

The last few releases crash to Resetti right after joining another village no matter what knobs I try.

When it worked, I also Tried with DSiXL host with similar behavior, was able to connect, save, visit a house, but got Resetti when out of the village on both sessions. Captured NDSBTSRP if that's helpful

tricky-pitfall-seed commented 3 years ago

Made an account just to post this so I hope I'm doing this right, I was also playing twi to twi and was getting resetti as soon as the connection started, fixed it by, in both DS' twi menu settings, setting "Card read DMA" to off under games and app settings

RocketRobz commented 2 years ago

Card Read DMA has been improved since, and should no longer cause communication errors.

RocketRobz commented 2 years ago

Has been recently reported that the issue still occurs.

OsmarBros commented 2 years ago

This issue doesn’t happens in 0.64.0 at least for me

RocketRobz commented 2 years ago

Then it's safe to assume it's indeed fixed.

tempaccountforacww commented 1 year ago

I've only signed up because of this problem. I've been despairing of the problem for days now and it's slowly but surely driving me insane, because .. I've tried almost everything I could find about this problem- absolutely nothing has helped so far.

I'll try to give as many details as I can, that this problem will hopefully one day be really solved. The reason I'm posting this is because I've just given up now and don't have the strength to try anymore. It really amazes me how it can work again for all the other people who reported the problem. I just hope that the problem will be taken care of again- I am willing to actively try out all possible solutions if anyone has any ideas or suggestions. The game means so much to me and my friend, it would be so awesome if we could play it together again.

I've opened a new issue https://github.com/DS-Homebrew/nds-bootstrap/issues/1592, so this issue here will be hopefully reopened.