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 2: | Line 2: | ||
|logo = Newlogo-1-.png | |logo = Newlogo-1-.png | ||
|logowidth = 280 | |logowidth = 280 | ||
− | |version = {{ | + | |version = {{MednafenVer}} |
|active = Yes | |active = Yes | ||
− | |platform = | + | |platform = Windows, Linux, BSD and more |
− | + | |target = [[Atari Lynx emulators|Atari Lynx]], [[Apple II emulators|Apple II]], [[WonderSwan emulators|Bandai WonderSwan/Color]], [[Game Boy Advance emulators|Nintendo Game Boy Advance]], [[Nintendo Entertainment System emulators|Nintendo Entertainment System]], [[Super Nintendo emulators|Super Nintendo Entertainment System]], [[Virtual Boy emulators|Virtual Boy]], [[PC Engine (TurboGrafx-16) emulators|NEC PC Engine (TurboGrafx-16)]], [[PC-FX emulators|PC-FX]], [[Neo Geo Pocket emulators|SNK Neo Geo Pocket/Color]], [[PlayStation emulators|Sony PlayStation]], [[Master System emulators|Sega Master System]], [[Master System emulators|Game Gear]], [[Sega Genesis emulators|Genesis (Mega Drive)]], [[Sega Saturn emulators|Saturn]] | |
− | |developer = Ryphecha | + | |developer = Ryphecha, Mednafen Team |
− | |website = [https://mednafen.github.io mednafen.github.io] | + | |website = [https://mednafen.github.io/ mednafen.github.io] |
|source = [http://sourceforge.net/projects/mednafen/files/latest/download?source=files SourceForge] | |source = [http://sourceforge.net/projects/mednafen/files/latest/download?source=files SourceForge] | ||
|license = GNU GPLv2 | |license = GNU GPLv2 | ||
− | |||
}} | }} | ||
− | + | '''Mednafen''' (an acronym for '''My Emulator Doesn't Need A Frickin' Excellent Name''', formerly '''Nintencer''') is an open-source, [[Multi-system emulators|multi-system emulator]], driven from the command-line. Many of its cores are ports of other emulators, but many of them are also original. Its [[PlayStation emulators|Sony PlayStation]], [[Sega Saturn emulators|Sega Saturn]], [[Virtual Boy emulators|Nintendo Virtual Boy]], and [[PC Engine (TurboGrafx-16) emulators|NEC PC Engine (TurboGrafx-16)]] original cores are notable for their high quality, compatibility and accuracy. | |
− | '''Mednafen''' (an acronym for '''My Emulator Doesn't Need A Frickin' Excellent Name''', formerly '''Nintencer''') is an open-source, [[Multi-system emulators|multi-system emulator]], driven from the command-line. | ||
− | |||
− | Many of its cores are ports of other emulators | ||
==Downloads== | ==Downloads== | ||
Line 27: | Line 23: | ||
|align=center|{{Icon|Lin|BSD}} | |align=center|{{Icon|Lin|BSD}} | ||
|[https://pkgs.org/download/mednafen <code>mednafen</code> Package Listing]<br/><small>at pkgs.org</small> | |[https://pkgs.org/download/mednafen <code>mednafen</code> Package Listing]<br/><small>at pkgs.org</small> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|} | |} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Supported systems== | ==Supported systems== | ||
Line 66: | Line 35: | ||
|- | |- | ||
|[[Apple II emulators|Apple II]] | |[[Apple II emulators|Apple II]] | ||
− | |Original | + | |Original |
|- | |- | ||
|[[WonderSwan emulators|Bandai WonderSwan/Color]] | |[[WonderSwan emulators|Bandai WonderSwan/Color]] | ||
Line 78: | Line 47: | ||
|- | |- | ||
|[[Nintendo Entertainment System emulators|NES (Famicom)]] | |[[Nintendo Entertainment System emulators|NES (Famicom)]] | ||
− | |[http:// | + | |[http://freecode.com/projects/fceultra FCE Ultra] |
|- | |- | ||
|[[Game Boy Advance emulators|Nintendo Game Boy Advance]] | |[[Game Boy Advance emulators|Nintendo Game Boy Advance]] | ||
Line 90: | Line 59: | ||
|- | |- | ||
|[[Master System emulators|Sega Master System]] and [[Master System emulators|Game Gear]] | |[[Master System emulators|Sega Master System]] and [[Master System emulators|Game Gear]] | ||
− | |[ | + | |[http://www.techno-junk.org/smsplus.php SMS Plus] |
|- | |- | ||
|[[Sega Saturn emulators|Sega Saturn]] | |[[Sega Saturn emulators|Sega Saturn]] | ||
− | |Original | + | |Original |
|- | |- | ||
|[[Neo Geo Pocket emulators|SNK Neo-Geo Pocket/Color]] | |[[Neo Geo Pocket emulators|SNK Neo-Geo Pocket/Color]] | ||
Line 99: | Line 68: | ||
|- | |- | ||
|[[PlayStation emulators|Sony PlayStation]] | |[[PlayStation emulators|Sony PlayStation]] | ||
− | |Original | + | |Original |
|- | |- | ||
|[[Super Nintendo emulators|SNES (Super Famicom)]] | |[[Super Nintendo emulators|SNES (Super Famicom)]] | ||
|[[higan|bsnes v059]] & Original ([https://mednafen.github.io/documentation/snes_faust.html SNES Faust]) | |[[higan|bsnes v059]] & Original ([https://mednafen.github.io/documentation/snes_faust.html SNES Faust]) | ||
|} | |} | ||
+ | |||
+ | ==Overview== | ||
+ | The best cores in Mednafen are those that are original - which are the Sony PlayStation, NEC PC Engine, PC-FX, Sega Saturn and Nintendo Virtual Boy cores. The NEC PC Engine core is one of the best emulators for that system, with a Fast and Accurate version. The PlayStation core is native resolution only and features a high degree of accuracy and compatibility<ref>[http://forum.fobby.net/index.php?t=msg&th=1114 Mednafen PSX bugs reports]</ref>. The Nintendo Virtual Boy core is one of the best for the system. | ||
+ | |||
+ | Other 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. | ||
+ | |||
+ | It is unknown at this time whether Mednafen's Nintendo Game Boy Advance core is better than [[VisualBoy Advance#VBA-M|VBA-M]]. | ||
+ | |||
+ | [[RetroArch]] uses the Sony PlayStation, NEC PC Engine, SNK Neo Geo Pocket/Color, Nintendo Virtual Boy, Sega Saturn and Bandai WonderSwan/Color cores of Mednafen, so it might make sense to use that instead. | ||
==Using Mednafen== | ==Using Mednafen== | ||
Line 109: | Line 89: | ||
===BIOS=== | ===BIOS=== | ||
− | Most cores do not require any BIOS except for the Sony PlayStation, NEC PC Engine CD, PC-FX, and Sega Saturn cores. BIOS files need to be placed into a folder called "firmware" in your Mednafen directory. Mednafen is very picky about which BIOS to use, but all of these come with the [[Emulator_Files#Multi-System|Mednafen BIOS pack]] and are correctly named. | + | Most cores do not require any BIOS except for the Sony PlayStation, NEC PC Engine CD, PC-FX, and Sega Saturn cores. BIOS files need to be placed into a folder called "firmware" in your Mednafen directory. Mednafen is very picky about which BIOS to use, but all of these come with the [[Emulator_Files#Multi-System|Mednafen BIOS pack]] and are correctly named. The ones that you might need are: |
'''Sony PlayStation''' | '''Sony PlayStation''' | ||
Line 123: | Line 103: | ||
'''Sega Saturn''' | '''Sega Saturn''' | ||
− | * sega_101.bin | + | * sega_101.bin |
− | * mpr-17933.bin | + | * mpr-17933.bin |
− | |||
===CUE=== | ===CUE=== | ||
Line 151: | Line 130: | ||
===Configuring controls=== | ===Configuring controls=== | ||
Once in-game, to configure your controller at any time, press Alt+Shift+1 and it will guide you through the setup. Press Alt+Shift+2 and so on for each additional controller for multiplayer. | Once in-game, to configure your controller at any time, press Alt+Shift+1 and it will guide you through the setup. Press Alt+Shift+2 and so on for each additional controller for multiplayer. | ||
− | |||
− | |||
===Graphical enhancements=== | ===Graphical enhancements=== | ||
Line 164: | Line 141: | ||
====Width size corrections==== | ====Width size corrections==== | ||
+ | |||
Some cores have a wrong width resolution, doubt if this is a bug and even less a problem, but if you want some pixel perfect (to see better horizontal scrolling for example) you must disable Correct aspect ratio in these cores: | Some cores have a wrong width resolution, doubt if this is a bug and even less a problem, but if you want some pixel perfect (to see better horizontal scrolling for example) you must disable Correct aspect ratio in these cores: | ||
Line 173: | Line 151: | ||
* 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 | + | 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 182: | Line 160: | ||
* PlayStation (h_overscan 1): 1.09375 | * PlayStation (h_overscan 1): 1.09375 | ||
− | + | Example: PSX [https://i.postimg.cc/6QFrs4dR/mednafenpsxbefore.png 2.0X scale] -> [https://i.postimg.cc/TwmrT29s/mednafenpsxafter.png 2.1875X scale] | |
− | |||
− | |||
− | |||
===Cheats=== | ===Cheats=== | ||
Line 194: | Line 169: | ||
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 | + | 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 178: | ||
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 | + | # '''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 216: | ||
[[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 | + | 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== | ||
Line 258: | Line 233: | ||
* Super Nintendo Entertainment System | * Super Nintendo Entertainment System | ||
* Sony PlayStation | * Sony PlayStation | ||
− | |||
{| class="mw-collapsible mw-collapsed wikitable" style="width: 100%;" | {| class="mw-collapsible mw-collapsed wikitable" style="width: 100%;" | ||
Line 270: | Line 244: | ||
|- | |- | ||
| '''CONS''' || | | '''CONS''' || | ||
− | * Command-line only ( | + | * Command-line only (you can use a frontend, though) |
* Weird, convoluted settings (or lack thereof) | * Weird, convoluted settings (or lack thereof) | ||
− | * Super Nintendo Entertainment System emulation | + | * Super Nintendo Entertainment System emulation will be slow to you if you're on a low-end computer (uses bsnes core) |
* Sony PlayStation core is accurate but slow | * Sony PlayStation core is accurate but slow | ||
* Only supports 2 players on Genesis | * Only supports 2 players on Genesis | ||
− | |||
|} | |} | ||
Line 329: | Line 302: | ||
* [https://formulae.brew.sh/formula/mednafen MacOS instructions] | * [https://formulae.brew.sh/formula/mednafen MacOS instructions] | ||
− | |||
− | |||
==References== | ==References== | ||
<references/> | <references/> | ||
Line 336: | Line 307: | ||
[[Category:Emulators]] | [[Category:Emulators]] | ||
[[Category:Multi-emulators]] | [[Category:Multi-emulators]] | ||
− | + | [[Category:Atari consoles]] | |
− | |||
− | |||
− | |||
− | |||
− | [[Category:Atari | ||
[[Category:Nintendo Entertainment System emulators]] | [[Category:Nintendo Entertainment System emulators]] | ||
[[Category:Super Nintendo emulators]] | [[Category:Super Nintendo emulators]] | ||
[[Category:PC Engine (TurboGrafx-16) emulators]] | [[Category:PC Engine (TurboGrafx-16) emulators]] | ||
[[Category:PC-FX emulators]] | [[Category:PC-FX emulators]] | ||
− | |||
[[Category:Game Boy/Game Boy Color emulators]] | [[Category:Game Boy/Game Boy Color emulators]] | ||
[[Category:Game Boy Advance emulators]] | [[Category:Game Boy Advance emulators]] | ||
Line 354: | Line 319: | ||
[[Category:Sega Saturn emulators]] | [[Category:Sega Saturn emulators]] | ||
[[Category:Virtual Boy emulators]] | [[Category:Virtual Boy emulators]] | ||
− | |||
[[Category:Netplay]] | [[Category:Netplay]] | ||
[[Category:Windows emulation software]] | [[Category:Windows emulation software]] | ||
[[Category:Linux emulation software]] | [[Category:Linux emulation software]] | ||
− | [[Category: | + | [[Category:MacOS emulation software]] |
+ | [[Category:IOS emulation software]] |