Project

General

Profile

Emulator Issues #10128

Just Dance 2/3/4 issues with multiple DLC songs

Added by mbc07 almost 3 years ago. Updated 20 days ago.

Status:
Accepted
Priority:
Normal
Assignee:
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

Big issue report incoming!

Game Name?
Just Dance 2
Just Dance 3
Just Dance 4

Game ID?
SD2Y41
SJDY41
SJXE41

MD5 Hash?
None of my MD5 hashes will match good dumps as I scrubbed the ISOs, but all of them passes in Dolphin's built-in Partition Integrity Check.

What's the problem? Describe what went wrong.
The mentioned games have weird issues if you have more than 11 DLC songs on the NAND dump at the same time. What will happen varies depending of the game, but the three basically won't play some of those DLC songs and will end throwing infinite "Invalid read/write from 0xXXXXXXXX, PC=0xXXXXXXXX" at some time:

Just Dance 2: The preview in the track selection menu won't play for any of the DLC songs, regardless of how many songs you have on the NAND. If you have more than 11 DLC songs, the song you selected might start throwing "Invalid read/write from 0xXXXXXXXX, PC=0xXXXXXXXX" upon starting the song. If you disable Panic Handlers, Dolphin won't crash and the game will just be there sitting at the start of the DLC song (as if it were paused at 0:00). Sometimes you'll also hear a high pitched, continuous sound, or the game might simply keep repeating the last SFX played indefinitely. You can still pause and go back to the main menu to select another song when that occurs.

Just Dance 3: if you have more than 11 DLC songs it'll start throwing "Invalid read/write from 0xXXXXXXXX, PC=0xXXXXXXXX" as soon as you hover over some of the DLC songs in the track selection menu. If you disable Panic Handlers, the game will completely freeze with FPS 0/VPS 60 when you hover one of these DLCs that causes the Panic Alerts and the only thing you can do is force stopping the emulation (graceful shutdown won't work either after the game freezes).

Just Dance 4: if you have more than 11 DLC songs it'll start throwing "Invalid read/write from 0xXXXXXXXX, PC=0xXXXXXXXX" as soon as you hover over some of the DLC songs in the track selection menu. If you disable Panic Handlers the game won't crash, it just won't play the preview of the DLCs that causes the Panic Alerts but you can select that song and play it anyway, and although the lyrics, pictograms and background animations/effects will show and animate normally, the dancers won't appear and the music won't play. You can still pause and go back to the main menu or jump directly to another song from the pause menu when that occurs.

What steps will reproduce the problem?
You just need to have a NAND dump with more than 11 DLC songs for any of the mentioned games to trigger the issue, and it doesn't need to be a complete NAND dump (e.g. manually copying only the ticket and the DLC contents -- 00000001.app, 00000002.app, etc -- to the proper location is enough).

Which versions of Dolphin did you test on? Does using an older version of Dolphin solve your issue? If yes, which versions of Dolphin used to work?
I tested current and previous stable releases (3.0, 3.5, 4.0.2 and 5.0) and the current development build (5.0-2668) and all of them exhibits this issue.

What are your PC specifications?
CPU: Intel Core i7-3630QM @ 2.4GHz
GPU: NVIDIA GeForce GT 635M @ 2GB GDDR3
RAM: 8GB @ DDR3-1600 (2x4GB)
OS: Windows 10

Is there any other relevant information? (e.g. logs, screenshots,
configuration files)

That's something I've been trying to debug for a while, and those are my findings:

  • I didn't notice anything relevant to this issue in the Dolphin log when triggering the problem.

  • By messing with the DLC files on the NAND, I noticed all of the three games can play all of the DLCs fine, the issue only occurs if you have more than 11 DLCs at the same time and even then, some will still play normally while others will just trigger the issue.

  • The song(s) that will trigger the issue varies depending of the number of DLCs you currently have on the NAND. For example, if I have 12 DLC songs, on the track list the 3rd DLC listed here will always cause the issue, but if I put more DLC songs (e.g. 14) the 3rd DLC which would previously trigger the issue will now work fine and the 7th DLC listed on the track list which previously worked (when I had 12 DLCs) will trigger the issue now. I don't know if there's a pattern between the number of the DLC songs vs the DLC which will trigger the issue, at least I couldn't find. Depending of the number of DLCs, more than one song will trigger the issue too.

  • On the NAND, all .app files for those games are U8 packed files (except for one I'll talk below) and are stored on a different folder on the NAND (e.g. normal Wii save files generally goes to User\Wii\title\00010000<game ID in hex>, the DLCs from those games goes to User\Wii\title\00010005<game ID in hex starting with 7>)

  • If there's no ticket corresponding the ID the games use for DLC (73443245 for Just Dance 2, 734a4445 for Just Dance 3 and 734a5845 for Just Dance 4, for example) inside User\Wii\ticket\00010005, the games won't "see" any DLC song, even if they're on the correct folder.

  • You can swap DLCs by putting/removing .app files from the previously mentioned NAND folder directly. I'll detail this below.

  • Every song correspond to an specific .app file (you can move these in and out freely and the game will reflect that only showing the songs from the files which are there), but you'll also have other two smaller .app files which doesn't map to any song.

  • The first .app file which doesn't map to any song is a very small .app file (around 20 to 30 kb). It's the only .app file which is not an U8 packed file, from a quick look through a hex editor it seems to store some kind of "metadata" for the DLC songs (you can read strings with the song names and some kind of timestamp, like "sD2E_v7_26dlcs.1103301553"). I didn't notice any difference in the game after I moved this file in or out of the NAND, all DLCs still played normally as long as you didn't have more than 11 on the NAND at the same time.

  • The second small .app file (of around 2 to 3 MB) is an U8 packed file just like the others and seems to be some sort of "catalog" of all available DLCs, as I found small preview tracks for all the DLC songs when I unpacked it, even of DLCs I don't have. Also, the game complains that the DLCs are corrupted and you need to go to the Wii Shop to redownload them if you move this file out of the NAND and boot any of the three games.

  • With that findings, it's possible to create "DLC packs" and it's what I did as workaround. Basically, I created multiple "content" folders inside User\Wii\title\00010005<game ID in hex> (e.g. content_a, content_b, etc). On each content folder you must have a copy of title.tmd, the "catalog" .app file and up to 11 of the bigger .app files (each one corresponds to a song, remember?). Having the smaller .app file which seems to store metadata seems irrelevant, I didn't notice anything different by having it there or not. Even without it, you're still limited to only 11 DLCs, if you put more you trigger this issue. To switch the "packs", just rename the one you want to play to "content" and boot the game.

  • Probably not relevant, but if you play a DLC song then swap to another pack without it then switch back to the previous pack which had it, your high scores will still be there.

  • Deleting/Moving the song to the SD Card from the "Archives" menu in-game does nothing. It'll claim the song was deleted/moved successfully but it'll still be there as if nothing happened.

  • This one applies only to Just Dance 2014 and onwards (they switched to a new engine AFAIK) but might be relevant: JD2014 and 2015 doesn't suffer from this issue and you can have more than 11 DLC songs without any kind of issue -- for record I have 18 DLC songs on JD2014 and 15 on JD2015 -- but I noticed both JD2014 and 2015 lists all DLCs, even the ones I don't have on their "Archives" menu, but they don't appear on the track selection (probably a different issue). Also, on the NAND there's no "catalog" file anymore (the small .app file with preview music for the DLCs the previous Just Dance games had and complained if it wasn't there), that info seems to be stored directly on the big .app file of the actual song now (and every song has a copy of the info of all other DLC songs too -- IDK why). The smaller .app which apparently stores metadata is still there, though, and just like before, deleting it makes no visible difference in the game. Moving files in and out of the NAND doesn't affect anything, all songs (even the ones I don't have) will still appear in the "Archives" in-game menu, but not in the song selection menu. JD2016 and 2017 uses the same engine and probably have this same behavior but we'll never know as they don't have a DLC store following the Nintendo WFC shutdown...

History

#1 Updated by mbc07 almost 3 years ago

Forgot to say, I also tried running the games with different combinations of JITIL/Cached Interpreter, DSP LLE Interpreter/Recompiler and Dual Core enabled/disabled but didn't notice anything different, the issue still happened if I had more than 11 DLC songs at the same time...

#2 Updated by leoetlino almost 3 years ago

Probably something wrong with ES if it has to do with NAND titles. Have you tried 4981 and 4986?

Also, just to be clear, the exact same NAND dump works on a Wii, right?

#3 Updated by mbc07 almost 3 years ago

leoetlino wrote:

Probably something wrong with ES if it has to do with NAND titles. Have you tried 4981 and 4986?

PR 4986 seems unrelated, so I tested PR 4981 and 4984 instead. No change, the issue persists on both PRs...

leoetlino wrote:

Also, just to be clear, the exact same NAND dump works on a Wii, right?

A real Wii normally wouldn't have enough space to store that many DLC songs directly on the NAND (for Just Dance 4 which I have 17 DLC songs, I can store about 14 directly on the NAND before running out of space for example, and they works fine -- on Dolphin you can't have more than 11).

Additionally, if I use an emuNAND of a bigger size (e.g. SNEEK/UNEEK) or if I use the built-in game option to move the songs to the SD Card (which doesn't work in Dolphin, BTW), I can store all of them simultaneously and it works without any issues on a real Wii. I'm using the same emuNAND contents that works fine on a real Wii in Dolphin, if that's relevant...

#4 Updated by JMC4789 over 2 years ago

  • Assignee set to leoetlino

Dolphin has since imposed stricter limits on files in the NAND, is this sitll broken?

#5 Updated by mbc07 over 2 years ago

Just retested the games on Dolphin 5.0-5106 and although the behavior changed a little bit, it's still as broken as before:

Just Dance 2: exactly the same behavior from when I opened this issue report.

Just Dance 3: mostly the same behavior from when I opened this issue report. The differences are that now all DLC songs are shown at the end of the song list, like on a real Wii (before they would appear at the beginning of the list, before the songs included on disc), some of the DLC songs simply won't appear on the list even through they are on the NAND (more on that below) and depending of which DLCs you have on the NAND when you boot the game, Dolphin simply crashes to desktop right after that white Wii Remote advice screen that appears at the start of every Wii game.

Just Dance 4: exactly the same behavior from when I opened this issue report.

Another thing that previously wouldn't work in any of the Just Dance games but now works (probably due the recent IOS HLE improvements) is that now you can delete and move songs to/from SD Card to the NAND from the in-game "Archive" menu and also to redownload the songs I own directly from the in-game store without any issue.

Redownloading the DLCs in-game
On a second batch of tests, I deleted every song listed on the archives menu, rebooted Dolphin, then went to the in-game store and started redownloading the songs I owned to the NAND. Just Dance 2 and 4 worked correctly, but after downloading more than 11 songs and going on the track list, the issue happened exactly the same way as before.

Just Dance 3, however, is more buggy, whether the store works correctly depends of the song, some would download and work fine (just as in Just Dance 2 and 4) but some songs you've just redownloaded wouldn't show in the track list but would still appear at the list of available songs in the store, like if you've never downloaded it. Trying to redownload it once more would finish without error in like 2 seconds, like as if the game just reused whatever it already downloaded to the NAND, but it would still won't show in the track list, even after a reboot.

Getting more than 11 songs would trigger the same issue again and on Just Dance 3, depending of which songs you've redownloaded, Dolphin would just crash to the desktop right after that white Wii Remote advice screen on further boots.

DLCs on the SD Card
Another thing that previously didn't work but is working now is storing DLC songs on the SD Card. What I found is (the same behavior happens on Just Dance 2/3/4):

  • Songs stored on the SD Card won't play a preview like they normally do when stored on the NAND. It's been a while since I tried on a real Wii but it seems accurate to the console as far as I remember.

  • Trying to play a DLC song stored on the SD Card will firstly copy it to the NAND temporarily before loading the song (the game even displays a progress bar). Upon stopping emulation or selecting another DLC from the SD Card, the song apparently is gone from the NAND. Pausing the song and retrying would load almost instantly, suggesting the temporary copy from the SD to NAND remains there until you finish the emulation or load another DLC song from the SD Card. This also seems accurate to the console, as far as I remeber.

  • If you already have 11 DLC songs stored on the NAND, when you try to load a DLC stored on the SD Card you will always trigger the issue (Dolphin start throwing countless "Invalid read/write from 0xXXXXXXXX, PC=0xXXXXXXXX", disabling Panic Handlers will either freeze the game completely if it's Just Dance 3 or still allow you to pause and go back to the song selection screen if it's Just Dance 2 or 4)

#6 Updated by leoetlino over 2 years ago

  • Status changed from New to Accepted

Hmm, the fact this works with SNEEK probably rules out a game limitation... Not sure what we are getting wrong.

#7 Updated by leoetlino over 2 years ago

Could you run a NAND check in Dolphin and try PR 6094?

Note that fixing issues will probably require deleting some save data. It may be possible to avoid deletion by reinstalling WADs / relaunching disc-based games.

#8 Updated by mbc07 over 2 years ago

Sure, I'll test it soon...

#9 Updated by mbc07 over 2 years ago

The behavior changed but sadly, the issue still happens in 5.0-5730

Before any testing, I ran the NAND check and it said some titles would be deleted. Coincidentally or not, the 3 titles that would be deleted corresponded exactly with the DLC content of Just Dance 2/3/4. Since I could redownload them in-game, I just continued. Dolphin then said it couldn't fix the NAND, so I went to the mentioned titles and deleted the corresponding folders manually. Running the NAND check again this time finished without errors.

Upon booting any of the Just Dance games, I was greeted by a "There's not enough free space" message, then I realized that Dolphin now accurately calculates the available blocks, thus limiting the NAND to 512 MB just like a real Wii, and my NAND folder was around 6,5 GB due the save files, channels and DLCs of other games I have (I get this limitation is necessary for accurate emulation, but I really hope in future we get some way of bypassing this limit without causing issues).

So, I decided to start fresh. I deleted the entire Wii folder, then opened Dolphin and performed an online update matching the region of my ISOs (USA). After that I ran the built-in command to extract the certificates and ran a NAND check (just in case). Then, I copied my keys.bin to the new, blank NAND and booted System Menu to perform the initial setup. Opened Wii Shop Channel to ensure everything was working (it was). After that, I booted into the games and went to the in-game store to redownload the DLCs I own. For my surprise, I could only buy, not redownload, it's like my purchase store wasn't retrieved (I thought just moving keys.bin was enough?). So, I stopped emulation then manually copied the corresponding ticket files of Just Dance 2/3/4 DLCs from my main NAND to the blank NAND in the proper location (Wii\ticket\00010005) then ran another NAND check to confirm I didn't mess anything (it passed).

Back in the in-game store, it now properly showed the DLCs I owned as redownload, and so did I. Everything worked normally, just like a regular Wii, but due to the new NAND size enforcing, I could fit only 12 or 13 DLC songs, depending of the game. Sadly, after downloading more than 11 songs, one (or multiple of them) would still trigger the issue (throwing thousands of "Invalid read/write from 0xXXXXXXXX, PC=0xXXXXXXXX")

TL;DR on Dolphin 5.0-5730 the issue still happens but Just Dance 2/3/4 now show exactly the same behavior (throwing thousands of "Invalid read/write from 0xXXXXXXXX, PC=0xXXXXXXXX" on some DLC songs if you have more than 11 at the same time). The improvements are that the in-game store works exactly the same as the real console and the weird crashes at boot and DLCs already downloaded showing again in the in-game store on Just Dance 3 were fixed too. Also, not sure if it's an improvement but now that Dolphin enforces a fixed 512MB NAND size it's very unlikely the user will be able to store more than 11 DLC songs at the same time (especially considering save data from other games also takes some space), thus avoiding this issue completely...

#10 Updated by leoetlino over 2 years ago

Thanks for the detailed testing again.

That's too bad... I was pretty sure it would be a silly NAND issue. I don't have any other ideas about what is wrong here :(

Btw, because the keys stuff is cached (even across emulation sessions... for some reason), you need to restart Dolphin after every change to keys.bin.

#11 Updated by leoetlino 24 days ago

Just wondering, do the FS fixes affect this issue?

#12 Updated by mbc07 24 days ago

Now that Wii Shop closed and that Dolphin enforces a 512 MB maximum size on the emulated NAND it's a lot trickier to test this issue, but I'll give a try, then I report back...

#13 Updated by mbc07 20 days ago

Leo, just tested the FS Fixes PR and the issue still is present. In fact, it seems to have gotten worse, so it regressed at some point (to be clear, both FS fixes PR and master has exactly the same behavior described below):

  • You must not have internet access when running Just Dance, otherwise it'll eventually completely freeze by itself (see issue 11910).
  • When you have more than 11 DLCs installed, the crash ("Invalid read/write from 0xXXXXXXXX, PC=0xXXXXXXXX") now happens directly on the preview in the song list, you don't even need to play the song anymore to trigger the bug.
  • Managing songs from the SD card using the in-game "archives" menu is now broken: songs can't be deleted from the NAND and, although moving a song to the SD card shows a progress bar and successfully create a copy on the SD card, the copied song will remain on the NAND. Trying to play the copied song from the SD Card then result in a different hang: screen will become gray once the song starts but you can still press Home on the Wiimote and go back to the Wii Menu or reset the game.
  • You can successfully move the DLC content from the NAND to the SD Card using Wii Menu, but you can't move the content back from the SD to the NAND ("Data may not have been copied" message)
  • If the DLC content has been moved to the SD Card through Wii Menu, the game won't see any DLC song at all.

TL;DR nothing changed between FS fixes and master, and master now has regressions compared to the previous tests. I'll try to bisect which Dolphin version broke, but might take a while, having to constantly turn internet on an off gets annoying very fast :P

Also available in: Atom PDF