Self-modifying code Method

| PJ64 1.4 |


Many games use "self modifying code". In a nutshell, this makes them harder to emulate. Project64 has several methods of dealing with this situation, which range from fast on one side to more secure (stable) on the other. In order from fastest to most secure these are:

none > cache > check memory and cache/change memory and cache > protect memory


Self-modifying code Method = string(None, Cache, Protected Memory, Check Memory, Check Memory & cache, Change Memory, Check Memory Advance)


Self-modifying code Method=Check Memory Advance


Value Result
Protected Memory
Check Memory
Check Memory & cache [Default]
Change Memory
Check Memory Advance Use Default?


  • Check Memory and Check Memory & cache appear to do the same thing.
  • If a game does not use self modifying code (e.g. Mario64) this should be set to none. A typical self modifying code game such as Zelda is optimal on "check memory and cache" or "change memory and cache" (depends on game). Some games will only run stable on "protect memory", which is a very secure method. Some trial and error is needed for you to find out which setting is best - you are looking for the fastest method that doesn't crash.

See Also

  • None
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License