zhupengfei
He/Him
Joined: 10/2/2018
Posts: 17
Location: China
Sorry that I haven't looked at this thread for a rather long time. I'm currently a bit occupied with other things, but hopefully I'll be back at working on Citra rerecording soon.
Darth_Marios
He/Him
Joined: 5/11/2015
Posts: 109
zhupengfei wrote:
Sorry that I haven't looked at this thread for a rather long time. I'm currently a bit occupied with other things, but hopefully I'll be back at working on Citra rerecording soon.
No need to justify; work on citra tools when you can and if you want.
Joined: 7/17/2012
Posts: 543
Location: Switzerland
zhupengfei wrote:
Sorry that I haven't looked at this thread for a rather long time. I'm currently a bit occupied with other things, but hopefully I'll be back at working on Citra rerecording soon.
As Dart Marios says:
Darth Marios wrote:
No need to justify; work on citra tools when you can and if you want.
Since the list of implementation requests is getting long (mostly my fault, but we only want what's best for Citra), would it be more useful to make a list on github or google docs instead of requests here and there on this thread? That it would be easier for Citra devs? By the way, according to my recent tests, it seems to me that the games most prone to desynchronize are 30fps games, maybe there's something to look at there? Also, the issue of inputs not taken into account after reloading a backup comes, in my opinion, from the time it takes for the savestate to be loaded (I always save and load savestates with the emulator paused, but Citra doesn't save and load savestates while the emulator is paused, it seems to me, maybe something to fix)? In addition to the ideas submitted in the previous posts, I can add that it would be nice to have an osd to know if a savestate is saved or loaded, to have "named" (exported) backups in addition to the ten basic saveslots, like in BizHawk (also to have hotkeys to backup/load on the same (current) slot and choose the backup slot) to know which save slot you're in, plus the keys you press (this can be VERY useful to see when a movie goes out of sync.) and the fact that you can save a (exported) movie at any time (and whether a movie is being recorded or not, via an icon etc...))
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
phoneix1291 wrote:
Since the list of implementation requests is getting long (mostly my fault, but we only want what's best for Citra), would it be more useful to make a list on github or google docs instead of requests here and there on this thread? That it would be easier for Citra devs?
I'd appreciate it if you can post a list of requests as a comment in my PR: https://github.com/citra-emu/citra/pull/5448
Spikestuff
They/Them
Editor, Publisher, Expert player (2632)
Joined: 10/12/2011
Posts: 6435
Location: The land down under.
Went ahead and decided to figure out making an early AviSynth for 3DS. This is the script to follow it like the DS main encode. Note: This follows the native resolution of 400x480. There's a section below in what to switch around if you're using a higher internal resolution when dumping.
Language: AviSynth

vid = "source.avi" cw = vid.Width / 10 ch = vid.Height / 2 top = vid.crop(0, 0, -0, -ch) bot = vid.crop(cw, ch, -cw, -0).AddBorders(0, ch, 0, 0) StackHorizontal(top.PointResize(top.width*2,top.height*2), bot) #If you're not following the native res of 400x480 use this instead: StackHorizontal(top, bot.LanczosResize(bot.width/2,bot.height/2))
Native example: 10 times native resolution example:
WebNations/Sabih wrote:
+fsvgm777 never censoring anything.
Disables Comments and Ratings for the YouTube account. Something better for yourself and also others.
Darth_Marios
He/Him
Joined: 5/11/2015
Posts: 109
@phoenix1291 : i see you've tested M&L Paper Jam and labeled as desync; so i might expect that Dream Team bros desync as well? That's sad
Joined: 7/17/2012
Posts: 543
Location: Switzerland
Thanks for the script Spikestuff! I'll try Dream Team bros today or tommorow Darth Marios! On a 11m test it sync. (the movie is in my folder in my signature as usual. Would you a youtube encode?) I'll do that zhupengfei! Done! (if anyone have feature request, pm me so I'll update the comment)
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
Regarding the fact that the keys pressed are not taken into account when loading a savestate, I think it may be related to the fact that Citra doesn't save or load savestates when the emulator is paused, so the loading of savestates is done once the pause is disabled, which takes more or less time depending on the games. It would be nice to allow saving and loading savestates when Citra is on pause, if that's possible?
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: 109
phoenix1291 wrote:
Thanks for the script Spikestuff! I'll try Dream Team bros today or tommorow Darth Marios! On a 11m test it sync. (the movie is in my folder in my signature as usual. Would you a youtube encode?) I'll do that zhupengfei! Done! (if anyone have feature request, pm me so I'll update the comment)
I would like an assisted playthrough for now, since its to premature to do Tas with Citra right now. I will test rerecording of Azure Striker Gunvolt 2 with Shovel Knight amiibo for Copen air dash glitch as soon as possible
Joined: 7/17/2012
Posts: 543
Location: Switzerland
I created a Youtube playlist "Citra tests" for those interested. I put the link in my signature as well to make it easier to find it. Of course I continue to update the list at the bottom of page three of this topic.
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
Metroid: Samus Returns desync right after the intro cinematic. I think there's a real problem with the games being in 30fps.
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: 109
phoenix1291 wrote:
Metroid: Samus Returns desync right after the intro cinematic. I think there's a real problem with the games being in 30fps.
That's interesting... so almost all 3DS games will desync? XD Azure Striker Gunvolt 2 is 30fps game... so it'll desync for sure But both M&L Dream Team and Paper Jam run on same engine; So Dream team is 60fps game and Paper Jam 30fps?
Joined: 7/17/2012
Posts: 543
Location: Switzerland
Darth Marios wrote:
phoenix1291 wrote:
Azure Striker Gunvolt 2 is 30fps game... so it'll desync for sure
Azure Striker Gunovlt Striker Pack and Azure Striker Gunovlt 2 -> 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
Darth_Marios
He/Him
Joined: 5/11/2015
Posts: 109
phoenix1291 wrote:
Darth Marios wrote:
phoenix1291 wrote:
Azure Striker Gunvolt 2 is 30fps game... so it'll desync for sure
Azure Striker Gunovlt Striker Pack and Azure Striker Gunovlt 2 -> desync
That's bad... :/
Joined: 7/17/2012
Posts: 543
Location: Switzerland
Sorry, I'm in training with certification in digital marketing, + the basic work, I have a little less time to test games on Citra, but I would normally have time to test some more soon.
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: 540
Location: Waterford, MI
Eh, don't be sorry. Anyhow, on the pr another commit was made which fixes some desync issues. I dont know which ones though. There is still a long road ahead before Citra can be accepted to tasvideos.
zhupengfei
He/Him
Joined: 10/2/2018
Posts: 17
Location: China
Sorry for having kinda abandoned this. I didn't have much time to work on Citra in September. I've pushed a new fix to the PR which should be available in the next Canary build. It seemed to at least fix Hyrule Warriors for me. Hopefully it would work better on some other games too. PS. Starting emulation as paused can actually already be achived by enabling frame advance before booting the game.
Darth_Marios
He/Him
Joined: 5/11/2015
Posts: 109
zhupengfei wrote:
Sorry for having kinda abandoned this. I didn't have much time to work on Citra in September. I've pushed a new fix to the PR which should be available in the next Canary build. It seemed to at least fix Hyrule Warriors for me. Hopefully it would work better on some other games too. PS. Starting emulation as paused can actually already be achived by enabling frame advance before booting the game.
You mean Hyrule Warriors is perfect synced now? I will test Mercenaries 3D again ASAP.
zhupengfei
He/Him
Joined: 10/2/2018
Posts: 17
Location: China
I pushed a new update to implement two of the requested features (see a comment in the PR), which will be present in the next canary. Some other requested features will probably come in future PRs.
Darth_Marios
He/Him
Joined: 5/11/2015
Posts: 109
I have another idea/request, but since english isnt my native language i dont know how to ask properly, but i will try: Its possible to implement the possibility to use save and load state during video dumping even if you not recording your input? Pcsx2 desync as hell but have this function, ok not good for tasing but allow segmented portions of superplay or assisted playthrough, then you edit all parts togheter to get a finished movie. Citra freeze if you try to dump frames when you save or load a state.
zhupengfei
He/Him
Joined: 10/2/2018
Posts: 17
Location: China
Just to let you know, I'm still waiting to hear about what games desync now (with the updates I pushed a while ago)
Darth_Marios
He/Him
Joined: 5/11/2015
Posts: 109
zhupengfei wrote:
Just to let you know, I'm still waiting to hear about what games desync now (with the updates I pushed a while ago)
Im waiting to get my new internet connection, then i will download the newest citra version and do some test👍
Joined: 7/17/2012
Posts: 543
Location: Switzerland
zhupengfei wrote:
Just to let you know, I'm still waiting to hear about what games desync now (with the updates I pushed a while ago)
Hi zhupengfei, I will have some time soon to start testing again. I have created a 2021 directory into my dtm gdrive folder where I will put the new .ctm.
-implementation of Lagarith and/or Camstudio lossless codecs option to dump the video and the audio in separate files - Not sure why these would be useful?
To answer these questions, Lagarith and Camstudio are lossless codecs and are much lighter than FFV1. And the fact that I can have a separate file between video and sound is that sometimes I have to edit the video in Adobe software, and like other software, I guess, they only recognize the video, so in some cases I have to dissociate the video and the sound before editing. And that would also allow me to resynchronize the sound if there is a discrepancy between the video and the sound. Putting this as an option offers a security option anyway, I don't know what other people think about that? I have to try to transfer my games dumped with ThreeSD from my laptop if it still works in the next few days. I will mainly try the games I had put as desync in my list to see which ones work now.
- option to save the movie at any time (like in Bizhawk again) Implemented.
I don't seem to have seen this option, where is it? EDIT It's "Save without exit" under Tools -> Movie menu Mario Open Tennis asks to tilt the 3DS in front of you, is this possible with Citra? Since Citra does not have an OSD, would it be possible to add the following information to this bar? The fact that the game is recording or not (I still have a lot of trouble understanding how Citra works to continue a movie, often I reload a game and save with read-only mode disabled but it doesn't continue recording,), would it also be possible to display in this bar, without OSD, the keys pressed, and I still have the problem of keys not being taken into account (in some games) because the save char takes time on Citra, again, would it be possible to load saves while the emulator is paused, with an indication that this has happened? ----------------------------------------------------------------------- - Sonic Generations seems to synchronize now. - Captain Toad: Treasure Tracker sync doesn't desync after the intro stage now - Boxboy! doesn't desync after the intro stage now (I've have finished World 1) - Dragon Ball Fusions (not ThreeSD) sync - The Great Ace Attorney 2 Demo sync (I did the whole demo, about 1h) - Bravely Second (~50 minutes test) sync - The Adventure of Tintin seems to sync now - New Super Mario Bros. 2 now seems to sync (1-1 to 1-5) - F1 2011 sync - Another World sync - Pac-Man and the Ghostly Adventures seems to synchronize (~15m of gameplay) - Pac-Man and the Ghostly Adventures 2 seems to sync but the game run at 1~2fps (I have a RTX 2060...) - Super Monkey Ball 3D sync (World 1.1 to 1.10) - 80's Overdrive sync - Majora's Mask (not ThreeSD) -> desync - Ridge Racer 3D make Citra crash - Azure Striker Gunvolt: SP -> desync - Super Street Fighter IV 3D Edition -> desync at language selection - Heavy Fire Special Operations -> desync at start because of "Save Data corrupted" AND black screen ingame (even if you don't replay a movie). By restarting a second game it is possible to pass the "Save Data corrupted" screen, but once in play, there is always a black screen, it is possible to shoot, but not to move the weapon's sight, as on the initial game. - Heavy Fire: The Chosen Few 3D Same Since Citra does not have an OSD, would it be possible to add the following information to this bar? The fact that the game is recording or not (I still have a lot of trouble understanding how Citra works to continue a movie, often I reload a game and save with read-only mode disabled but it doesn't continue recording,), would it also be possible to display in this bar, without OSD, the keys pressed, and I still have the problem of keys not being taken into account (in some games) because the save state takes time on Citra, again, would it be possible to load saves while the emulator is paused, with an indication that this has happened? - Shovel Knight: Treasure Trove -> desync at the very beginning - ZARA the Fastest Fairy -> desync + audio glitches - Ridge Racer 3D (can't choose an avatar).
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
phoenix1291 wrote:
Mario Open Tennis asks to tilt the 3DS in front of you, is this possible with Citra?
Yes it's possible (with mouse right click & drag or UDP input servers), but I don't think there's a way to input motion data accurate enough for TAS yet. This might be implemented in the future (with a TAS Input dialog or something)
phoenix1291 wrote:
The fact that the game is recording or not (I still have a lot of trouble understanding how Citra works to continue a movie, often I reload a game and save with read-only mode disabled but it doesn't continue recording,)
Citra should roughly follow the Laws of TAS on savestates. Please report any unexpected behavior you found.
phoenix1291 wrote:
Would it also be possible to display in this bar, without OSD, the keys pressed
I think that would clutter the status bar too much; I'm thinking of implementing an actual overlay with imgui.
phoenix1291 wrote:
and I still have the problem of keys not being taken into account (in some games) because the save char takes time on Citra, again, would it be possible to load saves while the emulator is paused, with an indication that this has happened?
Hmm, saving while paused won't be easy, since pause works simply by suspending the emuthread (and therefore things can be in an undefined state while paused) For a bit more control, you can try using Frame Advance. Your save/load state request will be handled on the next Frame Advance, and Citra also waits for Frame Advance immediately after saving/loading is completed. ----------------------------------------------------------------------- As for those desyncs, the next Citra Canary release should incldue a fix. Would appreciate some more testing, thanks a lot!
Joined: 7/17/2012
Posts: 543
Location: Switzerland
Thanks for your answers zhupengfei!
I have to try to transfer my games dumped with ThreeSD from my laptop if it still works in the next few days.
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) For the next tests, I will update the list in the post above, until the next Citra Canary release.
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