Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Dejavu Vita: Difference between revisions

From GameBrew
No edit summary
m (Text replacement - "Category:Support the author" to "")
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{#seo:
{{#seo:
|title=Vita Homebrew Apps (Plugins) - GameBrew!
|title=Vita Homebrew Apps (Plugins) - GameBrew
|title_mode=append
|title_mode=append
|image=dejavuvita.jpg
|image=dejavuvita2.png
|image_alt=dejavu
|image_alt=déjàvu
}}
}}
{{Infobox Vita Homebrews
{{Infobox Vita Homebrews
|title=déjàvu
|title=déjàvu
|image=dejavuvita.jpg
|image=dejavuvita2.png
|description=Savestate plugin for PSVITA/PSTV.
|description=Experimental savestate plugin.
|author=TheFloW
|author=TheFloW
|lastupdated=2020/03/05
|lastupdated=2020/03/05
Line 15: Line 15:
|license=MIT
|license=MIT
|download=https://dlhb.gamebrew.org/vitahomebrews/dejavuvita.7z
|download=https://dlhb.gamebrew.org/vitahomebrews/dejavuvita.7z
|website=
|website=https://www.reddit.com/r/vitahacks/comments/fe30jv/release_d%C3%A9j%C3%A0vu_vita_savestate_plugin/
|source=https://github.com/TheOfficialFloW/dejavu
|source=https://github.com/TheOfficialFloW/dejavu
|donation=https://www.patreon.com/TheOfficialFloW
}}
}}
'''déjàvu''' is a savestate plugin for PSVITA/PSTV.
déjàvu is a plugin for the PlayStation Vita that allows you to make a snapshot of the RAM at any point and later restore it.
 
==What is  déjàvu?=
'''déjàvu''' is a plugin for the PlayStation Vita that allows you to make a snapshot of the RAM at any point and later restore it.


It allows you save in games where it is officially not possible. A potential use case for developers is to temporarily downgrade/update the firmware (in RAM) in order test things (this has not been tested yet).
It allows you save in games where it is officially not possible. A potential use case for developers is to temporarily downgrade/update the firmware (in RAM) in order test things (this has not been tested yet).


== Requirements ==
'''Note:''' The is not 100% stable, your SD Card and/or Memory Card may be corrupted and you may lose your data. Use at your own risk.
*A Memory Card is required for this plugin.


== How To Install déjàvu==
==Installation==
<ol>
'''Note:''' A Memory Card is required for this plugin.
<li><p>Download [https://github.com/TheOfficialFloW/dejavu/releases dejavu.skprx] and copy it to <code>ux0:tai/dejavu.skprx</code>.</p></li>
<li><p>Edit <code>ux0:tai/config.txt</code> and add its path to <code>*KERNEL</code> as follows:</p>


<pre>*KERNEL
To install, copy dejavu.skprx to ux0:tai/.
ux0:tai/dejavu.skprx</pre>


<li><p>Reboot your device and enjoy this new feature.</p></li></ol>
Edit ux0:tai/config.txt and add its path to *KERNEL as follows


==Media==
*KERNEL
<youtube>zZt_GntbGaI</youtube>
ux0:tai/dejavu.skprx


==Screenshots==
Reboot your device.
[[image:dejavuvita.jpg|600px]]


== Save/Load State Procedure On déjàvu ==
==User guide==
=== Save/Load State Procedure===
You can save or a load a state at any point by pressing a combination of three buttons.
You can save or a load a state at any point by pressing a combination of three buttons.
 
* To save a state, press the R trigger.
* To '''save''' a state, press the '''R''' trigger.
* To load a state, press the L trigger.
* To '''load''' a state, press the '''L''' trigger.


Then, select one of the six slots by pressing them:
Then, select one of the six slots by pressing them:
* SELECT
* SELECT
* START
* START
Line 59: Line 51:
* SQUARE
* SQUARE


Finally initiate the procedure by pressing the '''PS button''' while holding the previous two buttons. At this point, the device will do a soft reset and save or load the state while '''the screen remains black'''. Saving a state takes around '''60s''' while loading a state takes around '''40s'''. Depending on the file system, it can take even longer. On finish, the device will resume to the unlock screen. If you do not pay attention to your device, it may go into standby mode after a while. In that case, press the power button to resume your device manually. During the save and load procedure, '''the game card LED should flash'''.
Finally initiate the procedure by pressing the PS button while holding the previous two buttons. At this point, the device will do a soft reset and save or load the state while the screen remains black.  
 
Saving a state takes around 60s while loading a state takes around 40s. Depending on the file system, it can take even longer. On finish, the device will resume to the unlock screen. If you do not pay attention to your device, it may go into standby mode after a while.  


A snapshot of a game is around '''400-500MB''' big and will be written to the Memory Card at <code>ux0:savestate</code>. When saving a state, a backup of the savedata will made and when loading a state, the current savedata will be replaced with the old savedata.
In that case, press the power button to resume your device manually. During the save and load procedure, the game card LED should flash.
 
A snapshot of a game is around 400-500MB big and will be written to the Memory Card at ux0:savestate. When saving a state, a backup of the savedata will made and when loading a state, the current savedata will be replaced with the old savedata.


=== Caveats ===
=== Caveats ===
Loading a state is not yet 100% stable.
Loading a state is not yet 100% stable.


* '''Your SD Card and/or Memory Card may be corrupted and you may lose your data.'''
* Your SD Card and/or Memory Card may be corrupted and you may lose your data.
* The system may crash.
* The system may crash.


== Beware When Using déjàvu ==
Beware that this plugin is only experimental and may contain bugs. If you encounter any, please give a detailed feedback in [https://github.com/TheOfficialFloW/dejavu/issues Issues].
* This plugin is only experimental and may contain bugs. If you encounter any, please give a detailed feedback in [https://github.com/TheOfficialFloW/dejavu/issues Issues].
* This plugin has only been tested on a PS Vita Slim on firmware 3.65.


== déjàvu - Technical Details ==
===Technical Details ===
This plugin makes use of the soft reset feature to enter a state where all resources are suspended. At this point, a payload is executed which is mapped to address <code>0x1C000000</code>. The payload flushes and disables all the caches as well as the MMU. Using [http://elm-chan.org/fsw/ff/00index_e.html FatFs] and a reverse engineered and reimplemented Memory Card driver, the RAM and a few other states are written to Memory Card.
This plugin makes use of the soft reset feature to enter a state where all resources are suspended. At this point, a payload is executed which is mapped to address <code>0x1C000000</code>. The payload flushes and disables all the caches as well as the MMU. Using [http://elm-chan.org/fsw/ff/00index_e.html FatFs] and a reverse engineered and reimplemented Memory Card driver, the RAM and a few other states are written to Memory Card.


Line 80: Line 74:
Namely, files may not exist anymore, they may be stored in different clusters or they may have a different size. All this must all be updated accordingly. Moreover, file system caches must be invalidated. This problem has still not been solved properly and hence, corruptions and crashes may still happen.
Namely, files may not exist anymore, they may be stored in different clusters or they may have a different size. All this must all be updated accordingly. Moreover, file system caches must be invalidated. This problem has still not been solved properly and hence, corruptions and crashes may still happen.


==Changelog==
==Compatibility==
'''(v.0.1)'''
This plugin has only been tested on a PS Vita Slim on firmware 3.65.
* First Release.


== Credits ==
== Credits ==
Line 89: Line 82:
* Thanks to [https://github.com/TeamMolecule Team Molecule] for their prior research.
* Thanks to [https://github.com/TeamMolecule Team Molecule] for their prior research.
* Thanks to Dark_AleX for pspstates which inspired me to work on this project.
* Thanks to Dark_AleX for pspstates which inspired me to work on this project.
== Donation ==
If you enjoy my work and would like to support me, you can do it on [https://www.patreon.com/TheOfficialFloW patreon]. Many thanks!


== External links ==
== External links ==
* Github - https://github.com/TheOfficialFloW/dejavu
* Twitter - https://twitter.com/theflow0/status/1235686557580918786
* GitHub - https://github.com/TheOfficialFloW/dejavu
* Reddit - https://www.reddit.com/r/vitahacks/comments/fe30jv/release_d%C3%A9j%C3%A0vu_vita_savestate_plugin/
* VitaDB - https://vitadb.rinnegatamante.it/#/info/538
* VitaDB - https://vitadb.rinnegatamante.it/#/info/538

Latest revision as of 04:09, 17 Mayıs 2024

déjàvu
Dejavuvita2.png
General
AuthorTheFloW
TypePlugins
Version0.1
LicenseMIT License
Last Updated2020/03/05
Links
Download
Website
Source
Support Author

déjàvu is a plugin for the PlayStation Vita that allows you to make a snapshot of the RAM at any point and later restore it.

It allows you save in games where it is officially not possible. A potential use case for developers is to temporarily downgrade/update the firmware (in RAM) in order test things (this has not been tested yet).

Note: The is not 100% stable, your SD Card and/or Memory Card may be corrupted and you may lose your data. Use at your own risk.

Installation

Note: A Memory Card is required for this plugin.

To install, copy dejavu.skprx to ux0:tai/.

Edit ux0:tai/config.txt and add its path to *KERNEL as follows

*KERNEL
ux0:tai/dejavu.skprx

Reboot your device.

User guide

Save/Load State Procedure

You can save or a load a state at any point by pressing a combination of three buttons.

  • To save a state, press the R trigger.
  • To load a state, press the L trigger.

Then, select one of the six slots by pressing them:

  • SELECT
  • START
  • TRIANGLE
  • CIRCLE
  • CROSS
  • SQUARE

Finally initiate the procedure by pressing the PS button while holding the previous two buttons. At this point, the device will do a soft reset and save or load the state while the screen remains black.

Saving a state takes around 60s while loading a state takes around 40s. Depending on the file system, it can take even longer. On finish, the device will resume to the unlock screen. If you do not pay attention to your device, it may go into standby mode after a while.

In that case, press the power button to resume your device manually. During the save and load procedure, the game card LED should flash.

A snapshot of a game is around 400-500MB big and will be written to the Memory Card at ux0:savestate. When saving a state, a backup of the savedata will made and when loading a state, the current savedata will be replaced with the old savedata.

Caveats

Loading a state is not yet 100% stable.

  • Your SD Card and/or Memory Card may be corrupted and you may lose your data.
  • The system may crash.

Beware that this plugin is only experimental and may contain bugs. If you encounter any, please give a detailed feedback in Issues.

Technical Details

This plugin makes use of the soft reset feature to enter a state where all resources are suspended. At this point, a payload is executed which is mapped to address 0x1C000000. The payload flushes and disables all the caches as well as the MMU. Using FatFs and a reverse engineered and reimplemented Memory Card driver, the RAM and a few other states are written to Memory Card.

In order to reduce the size of the snapshot, only sections and pages that are referenced by the page table are stored. When loading the state, the same procedure happens, however instead of writing, all the memory is written back. A big challenge of this plugin is to refresh the file system after loading a state.

Namely, files may not exist anymore, they may be stored in different clusters or they may have a different size. All this must all be updated accordingly. Moreover, file system caches must be invalidated. This problem has still not been solved properly and hence, corruptions and crashes may still happen.

Compatibility

This plugin has only been tested on a PS Vita Slim on firmware 3.65.

Credits

External links

Advertising: