zhupengfei
He/Him
Joined: 10/2/2018
Posts: 17
Location: China
phoenix1291 wrote:
I was able to do it today, but most of the games ("app") are not recognized and Citra tells me they are encrypted and indicate an "invalid region", while on my laptop I have no problem with games dumped from my 3DS with ThreeSD. (I copied and pasted the folder from my laptop into the folder on my desktop PC in sdmc -> Nintendo 3DS)
Try copying the entire Citra User directory including nand, sysdata, etc. Those folders allow Citra to decrypt the games, among other things. Also the canary build I was referring to is already out.
Joined: 7/17/2012
Posts: 543
Location: Switzerland
zhupengfei wrote:
Try copying the entire Citra User directory including nand, sysdata, etc. Those folders allow Citra to decrypt the games, among other things. Also the canary build I was referring to is already out.
It worked, thanks! Yes, I have downloaded the latest version, so I will make a new list with my tests. I created a new folder "2021 - Canary 1946" as the version number of the new release, there is also a "ThreeSD" folder inside to dissociate the movies recorded on a game version dumped from my 3DS or not. Majora's Mask & Resident Evil Revelations (ThreeSD) use Citra promp window for name entry For games like Kid Icarus, it would be great to have a "Virtual Pad", like in Bizhawk. And zhupengfei is it possible to have a native solution for "larger sceen" to choose % of the botoom screen? I think of 2x the actual size, but having more solutions is good too. And can choose if the "botton screen" is bottom, middle or top, natively... The actual size is way too small. ----------------------------------------------------------------------------------- Citra 1946 *Ocarina of Time (ThreeSD), quick test of ~8minutes, sync Hyrule Warriors Legends (ThreeSD), quick test of ~15minutes, sync (it desync at the beginning before) Rayman Origins (intro + 3 first levels) sync Pokemon Alpha Sapphire, quick test of ~20minutes sync Driver Renegade, quick test of ~9minutes sync Azure Striker Gunvolt Striker Pack (SP), quick test of ~8minutes, like my previous tests, sync now Azure Striker Gunvolt 2, quick test of ~8minutes, like my previous tests, sync now Metroid: Samus Returns, quick test of ~12minutes, like my previous tests, sync now ZARA the Fastest Fairy, quick test, like my previous tests, sync now but still have audio glitches on intro Luigi's Mansion 1 (ThreeSD), quick test of ~10minutes, like my previous tests, sync now Super Street Fighter IV 3D Edition (ThreeSD), quick test of ~10minutes, like my previous tests, sync now, but when you play, the graphics are freezing at the end of the movie, not on video rendering or movie replay) Shovel Knight: Treasure Trove (ThreeSD), quick test of ~8minutes, like my previous tests, sync now (before, desync at name entry) Mario & Luigi Paper Jam (ThreeSD), quick test of ~14minutes, like my previous tests, sync now Kid Ikarus: Uprising (ThreeSD), quick test of ~9minutes, like my previous tests, sync now Dr. Mario: Miracle Cure (ThreeSD), quick test of ~12minutes, like my previous tests, sync now Minecraft: New Nintendo 3DS Edition, quick test of ~8minutes (obviously you must use seeds) sync. To replay the movie it's a bit complicated, you must first restart the game and delete the map (the maps are not saved in the save folder (I don't know if zhupengfei knows where they are?), then play the movie and enter the seed when requested (I used 2332928043 for my test) Mighty Gunvolt (ThreeSD), game completed with Gunvolt, sync now (but the game has graphical glitches) Mario Kart 7 (ThreeSD) ~1h45 casual play all cups, 150CC sync Severed, quick test of ~14minutes, sync Bust-A-Move Universe, quick test of ~9minutes, sync Bit.Trip Saga, Bit.Trip Runner, Zone 1 completed ~28minutes, sync The Legend Of Zelda: A Link Between Worlds (ThreeSD), Dungeon 1 completed ~27minutes, sync Ultimate NES Remix no sound in mini-games, only few sfx ~25minutes, sync Super Mario 3D Land (ThreeSD), to World 3-1, ~24minutes sync Dead or Alive Dimensions (ThreeSD), Chronlicle mode1, ~30minutes sync Mario Party: Top100 (ThreeSD), quick ~10minutes test (decrypted rom is recognized as encrypted when replay a movie, and console tilt sync well for now (ThreeSD)) sync Super Mario Bros (ThreeSD), using warp to 4-1 and 8-1 (HLE the sound is so horrible and buggy that it is not listenable, LLE Multi-core, movie desync at 1-2, LLE accurate just a black screen and movie lag and finnish at 2minutes) sync Aqua Moto Racing 3D, ~15minutes sync ATV Wild Ride 3D, ~22minutes sync Mini Mario & Friends: Amiibo Challenge (ThreeSD), quick test of ~5minutes sync but Amniibo are not stored in the ctm file so you must load them manually Garfield Kart (ThreeSD) ~48minutes all cups, 150CC sync Mario & Sonic at the London 2012 Olympic Games (ThreeSD) ~23minutes sync well now, but I have no idea on how to use Mic... I have tested with a real mic and with my smartphone via WO Mic, nothing work. We really need a hotkey for this like in DeSmuME. Mario & Sonic at the Rio 2016 Olympic Games (ThreeSD) ~19minutes sync Angry Birds Trilogy (ThreeSD) ~7minutes sync Cooking Mama 4, 1 recipe ~9minutes sync Dr Kawashima`s Devilish Brain Training, ~16minutes sync remember me this TAS (I most often use a graphic tablet for games that mainly play with a stylus) Disney Magical World 2, ~32minutes sync Need For Speed The Run, ~20minutes sync I am an air traffic controller AIRPORT HERO OSAKA-KIX, ~26minutes sync Family Table Tennis 3D, ~32minutes (Beginner & Journeyman Tournament) sync Super Strike Beach Volleyball, ~22minutes (Campaign mode) sync Senran Kagura 2: Deep Crimson, ~28minutes sync Senran Kagura Burst, ~28minutes sync *Ocarina of Time (ThreeSD), ~42minutes, sync Kirby Planet Robobot, ~15minutes sync Resident Evil Revelations (ThreeSD) desync at first fight against the first enemy, as before. Donkey Kong Country Returns (ThreeSD), quick test of ~10minutes, like my previous tests, desync at Stage 3, World 1 Monster Hunter Generations, desync Monster Hunter XX (JP with ENG translation v.4) Citra crash at start (log file: https://pastebin.com/Bqd9rV3R) Asphalt 3D desync in the 1st race (because of save data corrupted at start maybe?) desync Asphalt 3D (test 2) desync in the 2nd race desync WarioWare Gold (maybe because Mii selection?) desync now Dementium Remastered desync after the first ingame save more or less desync Luigi's Mansion Dark Moon ~35minutes test desync after ~11minutes (plus I thought I had launched the ThreeSD version, but it seems not because during the replay of the movie, the 3DS version is launched) desync How to recover the content of the movie to be able to paste it in a new one, made with the ThreeSD version or change which version to launch in the movie file? Mario Party: Island Tour (ThreeSD), ~1h test desync after ~17:40minutes desync Mario Party: Star Rush (ThreeSD), ~45minutes test desync after ~38:40minutes desync Dragon Quest 8 orchestra & uncensored (ThreeSD), ~38minutes test desync after ~7minutes desync Disney Magical World make Citra crash desync Resident Evil The Mercenaries 3D (TreeSD) quick test of ~12minutes, desync after ~5minutes desync
My Citra 3DS rerecording movie files test repositery: https://cutt.ly/vdM0jzl Youtube playlist "Citra Tests": https://cutt.ly/AdM0wg9 http://www.youtube.com/user/phoenix1291
Joined: 9/12/2014
Posts: 539
Location: Waterford, MI
Have you had any issues with input breaking after a while? As in, inputs stop being registered in the game?
Joined: 7/17/2012
Posts: 543
Location: Switzerland
InfamousKnight wrote:
Have you had any issues with input breaking after a while? As in, inputs stop being registered in the game?
The problem being that I'm mostly doing short tests at the moment, no, I haven't had those kinds of problems, and I haven't had those problems at all in the few tests I've done that were almost an hour away. Hopefully I'll have time to test the games a little longer in the next few days. Do you have any specific examples? The problem also with the fact of being able to record only in FFV1 (for lossless) is that this format is very heavy, we quickly have dozens, even hundreds of GB for a few minutes of gameplay, which would be much more affordable with Camstudio or Lagarith, for lossless codecs. In fact, I've only been able to record a video with a correct quality with mp4 or another lossy codec. Coming back to your problem, maybe it's because some games don't have the same framerate (30, 60 or less) between the game and the cutscenes and Citra doesn't really know how fast to render the game and goes at too high speed and therefore misses some inputs?
My Citra 3DS rerecording movie files test repositery: https://cutt.ly/vdM0jzl Youtube playlist "Citra Tests": https://cutt.ly/AdM0wg9 http://www.youtube.com/user/phoenix1291
Joined: 9/12/2014
Posts: 539
Location: Waterford, MI
Driver renegade was the game in question. The input breaks before you can complete a single mission. I think before an alleyway it breaks
Joined: 7/17/2012
Posts: 543
Location: Switzerland
InfamousKnight wrote:
Driver renegade was the game in question. The input breaks before you can complete a single mission. I think before an alleyway it breaks
I did a quick test (~9m) and the game (just a decrypted rom, not ThreeSD) syncs without any problem. You can find the .ctm file in the folder indicated in my previous post. Link to video
My Citra 3DS rerecording movie files test repositery: https://cutt.ly/vdM0jzl Youtube playlist "Citra Tests": https://cutt.ly/AdM0wg9 http://www.youtube.com/user/phoenix1291
Darth_Marios
He/Him
Joined: 5/11/2015
Posts: 108
phoenix1291 wrote:
zhupengfei wrote:
Try copying the entire Citra User directory including nand, sysdata, etc. Those folders allow Citra to decrypt the games, among other things. Also the canary build I was referring to is already out.
It worked, thanks! Yes, I have downloaded the latest version, so I will make a new list with my tests. I created a new folder "2021 - Canary 1946" as the version number of the new release, there is also a "ThreeSD" folder inside to dissociate the movies recorded on a game version dumped from my 3DS or not. Majora's Mask & Resident Evil Revelations (ThreeSD) use Citra promp window for name entry ----------------------------------------------------------------------------------- Ocarina of Time (ThreeSD), quick test of ~8minutes, sync Hyrule Warriors Legends (ThreeSD), quick test of ~15minutes, sync (it desync at the beginning before) Rayman Origins (intro + 3 firts levels) sync Pokemon Alpha Sapphire, quick test of ~20minutes sync Driver Renegade, quick test of ~9minutes sync Resident Evil Revelations (ThreeSD) desync at first fight against the first enemy, as before. Donkey Kong Coutry Returns (ThreeSD) desync at Stage 3, World 1
I still dont get my new internet connection yet, in two months :/ Italy... So, do you can test Monster Hunter XX (Generations Ultimate in USA) for me?
Joined: 7/17/2012
Posts: 543
Location: Switzerland
Darth Marios wrote:
I still dont get my new internet connection yet, in two months :/ Italy... So, do you can test Monster Hunter XX (Generations Ultimate in USA) for me?
Monster Hunter XX (JP with ENG translation v.4) Citra crash at start (log file: https://pastebin.com/Bqd9rV3R) Monster Hunter Generations desync ctm file in my folder as usual.
My Citra 3DS rerecording movie files test repositery: https://cutt.ly/vdM0jzl Youtube playlist "Citra Tests": https://cutt.ly/AdM0wg9 http://www.youtube.com/user/phoenix1291
zhupengfei
He/Him
Joined: 10/2/2018
Posts: 17
Location: China
Thanks! I'll start working on the newly found desyncs tomorrow. Meanwhile, could you please test more of the previously desyncing games? Thank you in advance.
Joined: 7/17/2012
Posts: 543
Location: Switzerland
zhupengfei wrote:
Thanks! I'll start working on the newly found desyncs tomorrow.
I saw that there was a new version you participated in, what's new in it so far? It would also be good to have hotkeys to save and load the current savestate, in addition to being able to save savestates by name outside of the 10 basic slots provided (as in Bizhawk). A function that would also be great is to be able to choose precisely which frame to stop at when replaying a .ctm (movie) file.
zhupengfei wrote:
Meanwhile, could you please test more of the previously desyncing games? Thank you in advance.
I updated my list in my previous post, (Azure Striker Gunvolt SP & 2, Metroid: Samus Returns, ZARA the Fastest Fairy, Luigi's Mansion 1, Super Street Fighter IV 3D Edition, Shovel Knight: Treasure Trove, DKC Returns, etc) and I will continue the tests in the next few days because this week I have some time, normally. Thank you once again for your amazing work zhupengfei!
My Citra 3DS rerecording movie files test repositery: https://cutt.ly/vdM0jzl Youtube playlist "Citra Tests": https://cutt.ly/AdM0wg9 http://www.youtube.com/user/phoenix1291
Evan0512
He/Him
Joined: 10/18/2017
Posts: 169
Location: San Francisco
I planned to TAS the game "Super Mario 3D Land," but I don't know about how the speed, graphics, and save states were. I think while recording the movie, 100% speed is lower than full frames. I think 30 fps as 100% speed is a great idea. Also, the save states were difficult, when I save it, I press ctrl+c and when I load it, I press ctrl+v instead of I and P respectively.
Planned runs: Marble Madness (Arcade, Genesis J, GG/SMS) Proposed: Ecco the Dolphin (Genesis, GG/SMS, CD: regular, camera freeze) Ecco: The Tides of Time (Genesis, GG/SMS, CD; normal mode) Mario Kart DS (all cups, all missions) In progress: Grand Poo World 3 (all exits hard mode)
Joined: 7/17/2012
Posts: 543
Location: Switzerland
Evan0512 wrote:
I planned to TAS the game "Super Mario 3D Land," but I don't know about how the speed, graphics, and save states were. I think while recording the movie, 100% speed is lower than full frames. I think 30 fps as 100% speed is a great idea. Also, the save states were difficult, when I save it, I press ctrl+c and when I load it, I press ctrl+v instead of I and P respectively.
https://goombastomp.com/understanding-super-mario-3d-land/#:~:text=Despite%20running%20at%20thirty%20frames,rarely%2C%20if%20ever%2C%20missed. For savestates you can changes hotkeys -> Emulation -> Configure -> Controls -> Hotkeys Link to video
My Citra 3DS rerecording movie files test repositery: https://cutt.ly/vdM0jzl Youtube playlist "Citra Tests": https://cutt.ly/AdM0wg9 http://www.youtube.com/user/phoenix1291
Joined: 7/17/2012
Posts: 543
Location: Switzerland
I uploaded a video with some of my last tests with Citra (list at the top of this page) for those interested. (The video is chaptered on Youtube) Link to video
My Citra 3DS rerecording movie files test repositery: https://cutt.ly/vdM0jzl Youtube playlist "Citra Tests": https://cutt.ly/AdM0wg9 http://www.youtube.com/user/phoenix1291
Joined: 11/22/2004
Posts: 1468
Location: Rotterdam, The Netherlands
It's amazing how far this has come. Really nice work. Are all these patches landing in Citra master or are you maintaining a separate repo?
Joined: 7/17/2012
Posts: 543
Location: Switzerland
Dada wrote:
It's amazing how far this has come. Really nice work. Are all these patches landing in Citra master or are you maintaining a separate repo?
All the work zhupengfei has done is merged regularly in the Canary build. Go to the download page -> Manual dowload -> pick the latest Canary build (currently Canary Build - 7a60d46)
My Citra 3DS rerecording movie files test repositery: https://cutt.ly/vdM0jzl Youtube playlist "Citra Tests": https://cutt.ly/AdM0wg9 http://www.youtube.com/user/phoenix1291
Evan0512
He/Him
Joined: 10/18/2017
Posts: 169
Location: San Francisco
I’ve tried running New Super Mario Bros 2 in my computer, but it only runs 5 FPS. My computer is over 8 years old with a 2 core processor.
Planned runs: Marble Madness (Arcade, Genesis J, GG/SMS) Proposed: Ecco the Dolphin (Genesis, GG/SMS, CD: regular, camera freeze) Ecco: The Tides of Time (Genesis, GG/SMS, CD; normal mode) Mario Kart DS (all cups, all missions) In progress: Grand Poo World 3 (all exits hard mode)
Spikestuff
They/Them
Editor, Publisher, Expert player (2631)
Joined: 10/12/2011
Posts: 6435
Location: The land down under.
Evan0512 wrote:
My computer is over 8 years old with a 2 core processor.
Found the answer. Next question.
WebNations/Sabih wrote:
+fsvgm777 never censoring anything.
Disables Comments and Ratings for the YouTube account. Something better for yourself and also others.
Joined: 9/25/2016
Posts: 23
Hey, I made a thing: Link to video My plan was honestly to submit this movie as a surprise and let the discussion on whether Citra runs ought to be publishable be a part of the movie discussion. I have also gone to great lengths to document Citra found here: https://pastebin.com/JZyVM7TL I would love to be able to submit this movie for judging but I didn't realize that the submission process automatically checked file format of the movie file. I'd love to discuss this and maybe see about getting my movie submitted :) I'd also like to note that I see myself as sort of a guest on this site. I do not want to cause controversy or whatnot because of some unfamiliarity about how things are done around here. I tried to read as many discussions and post try and learn the lay of the land before posting about this, but my methods are likely imperfect. I hope people enjoy the TAS regardless :)
Joined: 7/26/2014
Posts: 14
benstephens1000 wrote:
Hey, I made a thing: Link to video My plan was honestly to submit this movie as a surprise and let the discussion on whether Citra runs ought to be publishable be a part of the movie discussion. I have also gone to great lengths to document Citra found here: https://pastebin.com/JZyVM7TL I would love to be able to submit this movie for judging but I didn't realize that the submission process automatically checked file format of the movie file. I'd love to discuss this and maybe see about getting my movie submitted :) I'd also like to note that I see myself as sort of a guest on this site. I do not want to cause controversy or whatnot because of some unfamiliarity about how things are done around here. I tried to read as many discussions and post try and learn the lay of the land before posting about this, but my methods are likely imperfect. I hope people enjoy the TAS regardless :)
Love this. Bump
Emulator Coder, Judge, Experienced player (703)
Joined: 2/26/2020
Posts: 772
Location: California
The main issues for accepting Citra movies are: 1. There is no parser for Citra movie files (you encountered this I see). Most importantly the time is parsed from the movie file (among other things), without a parser this isn't possible. 2. Can we sync it? Your notes seem to say it's likely so. From what I recall from Citra their sync rate was very low, but perhaps some games sync better than others? Having anything would be better than nothing too, so. 3. Is AVI dumping usable? Well, I guess your encode answers that. So 1. is a primary issue here. The site is open source and parsers decently easy to implement. Anyone could make a parser, although some documentation of the movie format would be needed here.
Joined: 9/25/2016
Posts: 23
CasualPokePlayer wrote:
The main issues for accepting Citra movies are: 1. There is no parser for Citra movie files (you encountered this I see). Most importantly the time is parsed from the movie file (among other things), without a parser this isn't possible. 2. Can we sync it? Your notes seem to say it's likely so. From what I recall from Citra their sync rate was very low, but perhaps some games sync better than others? Having anything would be better than nothing too, so. 3. Is AVI dumping usable? Well, I guess your encode answers that. So 1. is a primary issue here. The site is open source and parsers decently easy to implement. Anyone could make a parser, although some documentation of the movie format would be needed here.
1. Had no idea the site parsed the file during submission. I'm not particularly code savvy but I know the Citra movie file format very well so I will try my hand at getting this working I suppose. 2. I have had very high sync rates with all games I've tested. The movie file for the TAS linked above never desynced once on any computer or environment I tried it on. 3. Lossless AVI dumping is a thing. I appreciate the quick response!
Emulator Coder, Judge, Experienced player (703)
Joined: 2/26/2020
Posts: 772
Location: California
Just some documentation on the movie format would maybe be enough, I could see if I could get a parser going for Citra, although of course anyone may do it and PR it.
Joined: 9/25/2016
Posts: 23
Below is a breakdown of what's happening in the header. It should be noted that the input count is what handles all timing related stuff. That field can be converted into seconds by dividing it by 234 which comes straight from the Citra source code. I have tested this pretty extensively and confirmed that it is very accurate. Input count can also be converted to frames by multiplying it by 0.255689103308912 and rounding to the nearest integer. This is not currently in the Citra source code, but it is based on extensive testing done by me that I'm working on getting merged into the main Citra branch. Basically all of my documentation can be found here. Once again, I feel I'm a guest here, mostly, so I would never ask anyone to take this on for me. I will be working to see what I can throw together based on what I know.
Joined: 7/17/2012
Posts: 543
Location: Switzerland
Excellent TAS benstephens1000! Very impressive. How long did it take you to do it? Hope this inspires other people to get into 3DS TAS. CasualPokePlayer you can look in my signature, there is my CTM test repository, most games sync well.
My Citra 3DS rerecording movie files test repositery: https://cutt.ly/vdM0jzl Youtube playlist "Citra Tests": https://cutt.ly/AdM0wg9 http://www.youtube.com/user/phoenix1291
Joined: 7/26/2014
Posts: 14
benstephens1000 wrote:
Below is a breakdown of what's happening in the header. It should be noted that the input count is what handles all timing related stuff. That field can be converted into seconds by dividing it by 234 which comes straight from the Citra source code. I have tested this pretty extensively and confirmed that it is very accurate. Input count can also be converted to frames by multiplying it by 0.255689103308912 and rounding to the nearest integer. This is not currently in the Citra source code, but it is based on extensive testing done by me that I'm working on getting merged into the main Citra branch. Basically all of my documentation can be found here. Once again, I feel I'm a guest here, mostly, so I would never ask anyone to take this on for me. I will be working to see what I can throw together based on what I know.
Wonderful image. Helps me understand what's going on a lot. Thanks so much