Eskuero Posted February 10, 2016 Posted February 10, 2016 (edited) Recommended to ignore this thread and instead read this one: https://projectpokemon.org/forums/showthread.php?48749-Dump-online-battle-videos-from-codes I know that with homebrew I'm able to dump the battle videos from my own extdata to read them with PkHeX. I basically wanted to know if there's any difference between the battle videos files located on extdata and the ones I can see by writting a code of the battle on the Vs. Recorder while being connected to Internet? I assume doing this basically downloads the battle vide file from somewhere on Global Link servers and temporarily stores it on the RAM to read it. Would possible to extract this video from the RAM to open it with PkHeX? Has this been already documented or it's a totally new idea? I've two EUR 3DS (one Old and one New) both running CFW so I would be able to dump ram with NTR to test anything if any dev would like to research this. Thanks in advance for any answer. Edited June 2, 2016 by Eskuero
Kaphotics Posted February 10, 2016 Posted February 10, 2016 Only way to find out is to test it on a battle you have recorded. Record -> dump data Upload -> download from internet -> dump RAM You'd need to dump a lot of RAM; the RAM ideally would store an exact copy of the bvid (which it then reads from to other memory locations), so just search for chunks of the bvid you dumped. edit: SciresM confirms that battle videos are in the RAM and can be dumped 1:1.
Eskuero Posted February 10, 2016 Author Posted February 10, 2016 I managed to succesfully extract it from RAM and after selecting the exact bits I was able to read the file PkHeX. So I will leave what I did Here's the results of my research: I did this with a 10.5 New3DS running Reinand CFW and after aplying NTR CFW patches to dump memory of a EUR physical copy of Alpha Saphire. You ofc need to be connected to the internet, sign-in the Vs. Recorder and write the code of the battle you would like to dump, once it shows the preview of the teams and the trainers teams we're ready to go. Open the NTR Menu > Process Manager > Search on the ProcessList for 0000002d > dump > And choose address 0x08000000. After pressing A button to choose this option the game will likely trigger that press and attempt to load the battle crashing to a black screen but this is "normal" (in the sense that it always happens and cannot figure a fix for it). Just wait until a message in the botton screen appears saying that "dump finished at addr: whatever" Now you will probably have to force the 3ds to shutdown by keeping pressed the Power button until it does. A new file named "dump_pid2d_0.dmp" will be on the SDCard. Copy that to computer and open it with any hex editor. HxD is really recommended. There're multiple offsets in this file where your desired battle is stored. Usually it will cloned at many places. They are usually stored at 1FBA70, 208E40, 2E74AC, 8D6D30 and 8DED48. However if you struggle finding them there and you do not plan making any automated app to import those bits you need to know that the video files always starts with the following hex values "0X 01 81 E2 00 00" where X usually is a 0, I also had a few examples when it was a 5 or a 7. Anyway you need to select every bit after the 0X one I mentioned (included) until you get a length value of 2E60. Now you open a new file with HxD and copy everything you selected there and save with any desired extension-less name. If you did everything right you should be able to open this with PkHeX to see the 12 Pokemon used in the battle. Notice that if you have uploaded battles in the past when you enter the Vs. Recorder while connected to internet it will detect those and copy them to RAM. In my case I had one battle I uploaded in the past, so that was copied to the 1FBA70 offset and the other four I mentioned before were filled with copies of the one I read from the code. You can guess which one is the one you want by looking a bit down after looking for the starting offsets, the name of the trainers involved in the battle should I appear close to it. [ATTACH=CONFIG]12886[/ATTACH]
quantumsource Posted June 1, 2016 Posted June 1, 2016 I managed to succesfully extract it from RAM and after selecting the exact bits I was able to read the file PkHeX. So I will leave what I didHere's the results of my research: I did this with a 10.5 New3DS running Reinand CFW and after aplying NTR CFW patches to dump memory of a EUR physical copy of Alpha Saphire. You ofc need to be connected to the internet, sign-in the Vs. Recorder and write the code of the battle you would like to dump, once it shows the preview of the teams and the trainers teams we're ready to go. Open the NTR Menu > Process Manager > Search on the ProcessList for 0000002d > dump > And choose address 0x08000000. After pressing A button to choose this option the game will likely trigger that press and attempt to load the battle crashing to a black screen but this is "normal" (in the sense that it always happens and cannot figure a fix for it). Just wait until a message in the botton screen appears saying that "dump finished at addr: whatever" Now you will probably have to force the 3ds to shutdown by keeping pressed the Power button until it does. A new file named "dump_pid2d_0.dmp" will be on the SDCard. Copy that to computer and open it with any hex editor. HxD is really recommended. There're multiple offsets in this file where your desired battle is stored. Usually it will cloned at many places. They are usually stored at 1FBA70, 208E40, 2E74AC, 8D6D30 and 8DED48. However if you struggle finding them there and you do not plan making any automated app to import those bits you need to know that the video files always starts with the following hex values "0X 01 81 E2 00 00" where X usually is a 0, I also had a few examples when it was a 5 or a 7. Anyway you need to select every bit after the 0X one I mentioned (included) until you get a length value of 2E60. Now you open a new file with HxD and copy everything you selected there and save with any desired extension-less name. If you did everything right you should be able to open this with PkHeX to see the 12 Pokemon used in the battle. Notice that if you have uploaded battles in the past when you enter the Vs. Recorder while connected to internet it will detect those and copy them to RAM. In my case I had one battle I uploaded in the past, so that was copied to the 1FBA70 offset and the other four I mentioned before were filled with copies of the one I read from the code. You can guess which one is the one you want by looking a bit down after looking for the starting offsets, the name of the trainers involved in the battle should I appear close to it. [ATTACH=CONFIG]12886[/ATTACH] Really amazing work, and I think I am quite close to getting this to work for my self, but for one I am on a o3dsxl, but ntr works, and I have a usa version of the game AlphaSaphire, every time I try the debug menu I get inconsistent process ids. first time I got 2e, and guessed it was right seemed to work but only got my own sd card ones. next time I removed all the videos and the last two ids were 28 and 29, tried 28 it worked one time(back before the sd card ones were removed) but when I got the dump file it didn't have the video data. is there a more consistent way to figure out which process it is? Any help you could provide with the ids or anything here would be greatly appreciated
Eskuero Posted June 2, 2016 Author Posted June 2, 2016 Really amazing work, and I think I am quite close to getting this to work for my self, but for one I am on a o3dsxl, but ntr works, and I have a usa version of the game AlphaSaphire, every time I try the debug menu I get inconsistent process ids. first time I got 2e, and guessed it was right seemed to work but only got my own sd card ones. next time I removed all the videos and the last two ids were 28 and 29, tried 28 it worked one time(back before the sd card ones were removed) but when I got the dump file it didn't have the video data. is there a more consistent way to figure out which process it is? Any help you could provide with the ids or anything here would be greatly appreciated I made a much better explaination of how to just dump the specific battle video without using an HeX editor here: https://projectpokemon.org/forums/showthread.php?48749-Dump-online-battle-videos-from-codes It also provides info about how to get the proces pid at any running time.
quantumsource Posted June 2, 2016 Posted June 2, 2016 I made a much better explaination of how to just dump the specific battle video without using an HeX editor here:https://projectpokemon.org/forums/showthread.php?48749-Dump-online-battle-videos-from-codes It also provides info about how to get the process pid at any running time. Thanks so much, reading it now to get a better handle
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now