Editing Mednafen

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 48: Line 48:
 
Some cores improve upon emulators that have been long abandoned and rarely updated. These include the SNK Neo Geo Pocket/Color, Bandai WonderSwan/Color, and Atari Lynx cores.
 
Some cores improve upon emulators that have been long abandoned and rarely updated. These include the SNK Neo Geo Pocket/Color, Bandai WonderSwan/Color, and Atari Lynx cores.
  
Other cores are less useful, as there are better options in stand-alone emulators (Nintendo Entertainment System, Sega Genesis, Master System, and Super Nintendo Entertainment System). These cores might even be based on out-dated versions. For instance, the Super Nintendo Entertainment System core is based on an old, outdated version of bsnes. This is before the performance/accuracy/balanced cores — 0.50x territory — with a couple of changes by Ryphecha.
+
Other cores are less useful, as there are better options in stand-alone emulators (Nintendo Entertainment System, Sega Genesis, Master System, and Super Nintendo Entertainment System). These cores might even be based on out-dated versions. For instance, the Super Nintendo Entertainment System core is based on an old outdated version of bsnes. This is before the performance/accuracy/balanced cores — 0.50x territory — with a couple of changes by Ryphecha.
  
 
It is unknown at this time whether Mednafen's Nintendo Game Boy Advance core is better than [[VisualBoy Advance#VBA-M|VBA-M]].
 
It is unknown at this time whether Mednafen's Nintendo Game Boy Advance core is better than [[VisualBoy Advance#VBA-M|VBA-M]].
Line 173: Line 173:
 
* ss.correct_aspect 0
 
* ss.correct_aspect 0
  
Here is also a little list of the cores without an correct_aspect setting but its width is still wrong, so changing its xscale values will give pixel perfect.
+
Here is also a little list of the cores without an correct_aspect setting but its width is still wrong, so changing it's xscale values will give pixel perfect.
 
These cores (except PC-FX) also have a boolean setting called h_overscan which if it's enabled (1) some overscan (which is most known as black bars) on both sides will appear, but width size is still inaccurate.
 
These cores (except PC-FX) also have a boolean setting called h_overscan which if it's enabled (1) some overscan (which is most known as black bars) on both sides will appear, but width size is still inaccurate.
 
All values are replaced from 1X scale, if you want 2X or 3X scale, multiply it with a calculator.
 
All values are replaced from 1X scale, if you want 2X or 3X scale, multiply it with a calculator.
Line 194: Line 194:
 
To add an existing GS/AR/PAR/CB cheat code, use "Gameshark Codes". Else, if you have a memory address and a given value for it, choose "Search Code" then "Add Code", then put in the address (as $XXXXXXXX), the byte range depending on the values your variable can take (1 is 0-255, 2 is 0-65535, etc), and the numeric value proper (in decimal, or hexadecimal if followed by a lower-case h). Various cheat types exist too (S(substitute on read), C(substitute on read with compare) or R(replace value before vblank) -- R being the default recommended option).
 
To add an existing GS/AR/PAR/CB cheat code, use "Gameshark Codes". Else, if you have a memory address and a given value for it, choose "Search Code" then "Add Code", then put in the address (as $XXXXXXXX), the byte range depending on the values your variable can take (1 is 0-255, 2 is 0-65535, etc), and the numeric value proper (in decimal, or hexadecimal if followed by a lower-case h). Various cheat types exist too (S(substitute on read), C(substitute on read with compare) or R(replace value before vblank) -- R being the default recommended option).
  
Searching for new cheat codes is also possible. The general idea being comparing variables, going back to gameplay so that this variable changes, then back to the cheat engine searching for any variables that changed in that particular way. For example:
+
Searching for new cheat codes is also possible. The general idea being comparing variables, going back to gameplay so that this variable changes then back to the cheat engine searching for any variables that changed in that particular way. For example:
 
* '''Infinite Health / Ammo / Time / Money:''' you start with 5 hearts, reset search (in the cheat engine, not reset the game you silly!), you get hurt to 4 hearts, search variables that decreased, get healed back to 5 hearts, search variables that increased, and so on. For the money, you can start with 0 when you have 0 gold and try earning/spending money. You could try using save states as well when you don't have as much freedom changing the value.  
 
* '''Infinite Health / Ammo / Time / Money:''' you start with 5 hearts, reset search (in the cheat engine, not reset the game you silly!), you get hurt to 4 hearts, search variables that decreased, get healed back to 5 hearts, search variables that increased, and so on. For the money, you can start with 0 when you have 0 gold and try earning/spending money. You could try using save states as well when you don't have as much freedom changing the value.  
 
* '''Infinite Lives:''' It's game over when the internal variable for "Lives" is 0. So in some cases, when it shows "REST/LEFT=1" in-game and you lose a life then it becomes 0 but you're still allowed to play on your last life, that means the internal counter for lives has actually changed from 2 to 1 and not from 1 to 0, but in other games (where if you die on "LIVESx1" it's game over) it's not the case. In the case of lives, you actually know the exact value: reset search initially, then (if you have 2 lives on a game that allows you to play on "LEFT=0") search for variables with values equal to 3. Lose a life, search for variables equal 2, and so on.
 
* '''Infinite Lives:''' It's game over when the internal variable for "Lives" is 0. So in some cases, when it shows "REST/LEFT=1" in-game and you lose a life then it becomes 0 but you're still allowed to play on your last life, that means the internal counter for lives has actually changed from 2 to 1 and not from 1 to 0, but in other games (where if you die on "LIVESx1" it's game over) it's not the case. In the case of lives, you actually know the exact value: reset search initially, then (if you have 2 lives on a game that allows you to play on "LEFT=0") search for variables with values equal to 3. Lose a life, search for variables equal 2, and so on.
Line 203: Line 203:
 
The goal of these searches is to narrow down the list of results to a single or handful of addresses (variables) pertinent directly to whatever we're searching for. The search always starts with "Reset Search", going back in-game (Alt+C) to play and change stuff, then back to the cheat engine to compare the "Original" value with the "Current" value. Then you check the results page which must get smaller and smaller (if it's 0 results, you screwed up and need to reset search to try again). The comparing options offered by Mednafen are as follow, with O being the Original value, and C being the Current value (when you reset a search, they're the same):
 
The goal of these searches is to narrow down the list of results to a single or handful of addresses (variables) pertinent directly to whatever we're searching for. The search always starts with "Reset Search", going back in-game (Alt+C) to play and change stuff, then back to the cheat engine to compare the "Original" value with the "Current" value. Then you check the results page which must get smaller and smaller (if it's 0 results, you screwed up and need to reset search to try again). The comparing options offered by Mednafen are as follow, with O being the Original value, and C being the Current value (when you reset a search, they're the same):
  
# '''O==V1 && C==V2''' if you know the explicit numerical values for the variable, you write it here. The first time, just write the same value in both. Subsequent times, leave O blank and press Enter so that you don't write the old value again, and write the current value under C.
+
# '''O==V1 && C==V2''' if you know the explicit numerical values for the variable you write it here. The first time, just write the same value in both. Subsequent times, leave O blank and press Enter so that you don't write the old value again, and write the current value under C.
 
# '''O==V1 && |O-C|==V2''' same, but instead of writing the current value you write by how much it changed (0 if old value equals new value)
 
# '''O==V1 && |O-C|==V2''' same, but instead of writing the current value you write by how much it changed (0 if old value equals new value)
 
# '''|O-C|==V2''' you write by how much it changed (0 if old value equals new value)
 
# '''|O-C|==V2''' you write by how much it changed (0 if old value equals new value)
Line 241: Line 241:
 
[[File:memory_card_manager.png|400px]]
 
[[File:memory_card_manager.png|400px]]
  
It allows to transfer each of the game saves from a shared memory card to a .mcr memory file used by Mednafen. As it was described above, you just need to start game and check for '''sav''' folder inside Mednafen system directory. Open with Memory Card Manager 1.4 the memory file created for your game by Mednafen and open the shared memory card file from which you wish to transfer a save entry. When there would be a dialogue 'Do you want to replace 'SAVE_ENTRY_NAME' click 'Yes' and then save the file to the '''sav''' folder (the older one should be replaced).
+
It allows to transfer each of the game saves from a shared memory card to a .mcr memory file used by Mednafen. As it was described above you just need to start game and check for '''sav''' folder inside Mednafen system directory. Open with Memory Card Manager 1.4 the memory file created for your game by Mednafen and open the shared memory card file from which you wish to transfer a save entry. When there would be a dialogue 'Do you want to replace 'SAVE_ENTRY_NAME' click 'Yes' and then save the file to the '''sav''' folder (the older one should be replaced).
  
 
==Frontends==
 
==Frontends==

Please note that all contributions to Emulation General Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Emulation General Wiki:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)