https://emulation.gametechwiki.com/api.php?action=feedcontributions&user=5.177.165.239&feedformat=atomEmulation General Wiki - User contributions [en]2024-03-19T08:35:43ZUser contributionsMediaWiki 1.32.0https://emulation.gametechwiki.com/index.php?title=MSX_emulators&diff=23804MSX emulators2018-12-15T09:22:40Z<p>5.177.165.239: /* Comparisons */</p>
<hr />
<div>{{Infobox console<br />
|title = MSX<br />
|logo = Msx.png<br />
|developer = Microsoft Japan, Sanyo<br />
|type = [[:Category:Computers|Computers]]<br />
|generation = Z80-based home computers<br />
|release = 1983<br />
|discontinued = 1996<br />
|emulated = {{✓}}<br />
}}'''MSX''' is a [[wikipedia:Zilog_Z80|Z80]]-based family of home computers, designed by Microsoft in cooperation with ASCII Corporation, which appeared in 1983. They were popular in Asian, South American and European countries as well as the former [[wikipedia:Soviet_Union|Soviet Union]], but they are virtually unknown in USA.<br />
<br />
The games came either as cassettes or floppy disks, but only the former is preserved on the No-Intro set for now. You'll also need an extensive BIOS pack, though RA's bluemsx core only requires four. There are game manager tools to help with configuring which BIOS and games come with which feature. The Japanese Wii [[Virtual Console]] also included basic MSX 2 emulation.<br />
<br />
==Generations==<br />
<br />
The MSX standard evolved in several steps, which are reflected in greater or lesser support by emulators:<br />
<br />
* ''the MSX 1'' is the original 1983 machine, with a 3.58Mhz Z80, an AY 3-8910 sound chip, and a TMS video processor — it offers resolutions up to 256x192 with attribute-based colours, single-colour sprites and no hardware scrolling. This machine primarily differs from contemporaries such as the ColecoVision and Sega SC-3000 only in its sound chip;<br />
* ''the MSX 2'' is a 1985 revision that significantly upgrades the video processor; the maximum resolution is now 512x212, sprites are up to 16 colour, hardware vertical scrolling is available, more normative bitmap and non-attribute-based tile colour modes are offered, and primitive graphics acceleration is available — the video processor can independently perform tasks such as drawing lines and filling rectangles. Unlike the TMS chip in the MSX 1, no other machines use this video processor, so MSX 2 emulation is attempted less often than MSX 1 emulation;<br />
* ''the MSX 2+'' is a minor revision from 1988 that adds hardware support for horizontal scrolling and a few extra colour modes; some 2+ models offer an optional modest speed improvement to the Z80 to 5.37Mhz;<br />
* ''the TurboR'' from 1990 offers the R800 processor as an alternative to the Z80, which is an offspring of the Z800, offering Z80 backwards compatibility with significantly increased throughput.<br />
<br />
Commercial software overwhelmingly targets the MSX 1 or MSX 2 standards, with some able to benefit from the improved horizontal scrolling of the MSX 2+. Neither the 2+ nor the TurboR sold in substantial volumes, and a proposed MSX 3 standard never reached consumers.<br />
<br />
==Specific Machines==<br />
{{Main|https://en.wikipedia.org/wiki/MSX#Manufacturers Manufacturers list}} (Wikipedia)<br />
<br />
MSX machines were manufactured by a wide range of companies including Pioneer, Panasonic, Sharp, Sony, Sanyo, Philips and LG Goldstar. Some of the notable machines include:<br />
<br />
* the '''Pioneer Palcom PX-7''', an MSX1 computer aimed at the Japanese market. It was meant for attaching to a [[LaserDisc]] player, and as such has Superimpose capabilities (putting pictures and texts above the Laser Disc image). The PSG sound is stereo, contrary to almost all MSX machines. Pioneer also sold the '''ER-101''' interface (Laser Vision) unit which made it possible for all MSX computers to have the same functionalities as the Palcom PX-7;<br />
* Panasonic's '''FS-A1''' (1986), '''FS-A1mkII''' (W/ added keypad) and its Italian counterpart, the '''Toshiba FS-TM1''' were based on the MSX2 standard; and<br />
* Panasonic's '''FS-A1FX''' (1988) and '''FS-A1WX''' (W/ added MSX-MUSIC & a Japanese Word processor) are MSX 2+ derived hardware; the '''FS-A1WSX''' (1989) was the last MSX 2+ computer.<br />
<br />
==Emulators==<br />
{| class="wikitable" style="text-align:center;"<br />
! scope="col"|Name<br />
! scope="col"|Operating System(s)<br />
! scope="col"|Latest Version<br />
! scope="col"|Active<br />
! score="col"|MSX 1<br />
! score="col"|MSX 2<br />
! score="col"|MSX 2+<br />
! score="col"|MSXturboR<br />
! scope="col"|[[Emulation Accuracy|Accuracy]]<br />
! scope="col"|[[libretro|Libretro Core]]<br />
! scope="col"|[[Recommended Emulators|Recommended]]<br />
|-<br />
|[[openMSX]]<br />
|Multi-platform<br />
|[https://github.com/openMSX/openMSX/releases/tag/RELEASE_0_14_0 0.14.0]<br />
|{{✓}} <br />
|{{✓}} <br />
|{{✓}} <br />
|{{✓}} <br />
|{{✓}} ||Cycle ||{{✗}} ||{{✓}}<br />
|-<br />
|[[blueMSX]]<br />
|Windows, Multi-platform<ref group=N name=libretro>Only available outside of Windows as a libretro core (e.g. [[RetroArch]]).</ref><br />
|[http://www.vik.cc/bluemsx/download.html 2.8.2]<br />
|{{✗}} <br />
|{{✓}} <br />
|{{✓}} <br />
|{{✓}} <br />
|{{✓}} ||Cycle ||{{✓}} ||{{✓}}<br />
|-<br />
|[[MAME]]<br />
|Multi-platform<br />
|[http://www.mamedev.org/release.html {{MAMEVer}}]<br />
|{{✓}}<br />
|{{~}}<br />
|{{~}} <br />
|{{~}} <br />
|{{~}} ||High ||{{✓}} ||{{✓}}<br />
|-<br />
|[[Clock Signal|CLK]]<br />
|macOS and UNIXalikes<br />
|[https://github.com/TomHarte/CLK/releases {{clkver}}]<br />
|{{✓}} <br />
|{{✓}} <br />
|{{✗}} <br />
|{{✗}} <br />
|{{✗}} ||Cycle ||{{✗}} ||{{✗}}<br />
|-<br />
|[[Pantheon]]<br />
|Windows<br />
|[http://bostjan-grandovec.si/Content/News.htm {{PantheonVer}}]<br />
|{{✓}}<br />
|{{✓}} <br />
|{{✓}} <br />
|{{~}} <br />
|{{~}} ||High ||{{✗}} ||{{✗}}<br />
|-<br />
|[http://webmsx.org/ WebMSX]<br />
|Web<br />
|[https://github.com/ppeccin/WebMSX Git]<br />
|{{✓}}<br />
|{{✓}}<br />
|{{✓}} <br />
|{{✓}} <br />
|{{✗}} ||High ||{{✗}} ||{{✓}}<br />
|-<br />
|[[MSXPLAYer]]<br/><small>(fMSX based)</small><br />
|Windows<br />
|<small>MSX Game Reader<br/>(Commercial)</small><br />
|{{✗}}<br />
|{{✓}}<br />
|{{~}} <br />
|{{~}} <br />
|{{✓}} ||Mid ||{{✗}} ||{{✗}}<br />
|-<br />
|[[fMSX]]<br />
|Multi-platform<br />
|[http://fms.komkon.org/fMSX/#Downloads 5.4]<br />
|{{✓}}<br />
|{{✓}}<br />
|{{✓}} <br />
|{{✓}} <br />
|{{✗}} ||Mid ||{{✓}} ||{{✗}}<br />
|-<br />
|[https://web.archive.org/web/20071206014650/http://www.dridus.com:80/~nyef/darcnes/ DarcNES]<br />
|Multi-platform<br />
|[https://segaretro.org/DarcNES 9b0401/9b0313]<br />
|{{✗}}<br />
|{{~}}<br />
|{{✗}} <br />
|{{✗}} <br />
|{{✗}} ||Low ||{{✗}} ||{{✗}}<br />
|-<br />
!colspan="11"|Mobile<br />
|-<br />
|[http://www.explusalpha.com/home/msx-emu MSX.emu]<br/><small>(blueMSX tech)</small><br />
|[[Android emulators|Android]], iOS, [https://www.ouya.tv/game/MSXemu/ Ouya], <br/>Linux, WebOS<br />
|[https://play.google.com/store/apps/details?id=com.explusalpha.MsxEmu 1.5.34]<br />[https://github.com/Rakashazi/emu-ex-plus-alpha Git]<br />
|{{✓}}<br />
|{{~}}<br />
|{{~}} <br />
|{{~}} <br />
|{{~}} ||High ||{{✗}} ||{{~}}<br />
|-<br />
|[https://pyra-handheld.com/boards/threads/emu-ex-plus-alpha-ported-to-the-pandora.70450/ MSX.emu]<br/><small>(blueMSX tech)</small><br />
|Pandora<br />
|[https://repo.openpandora.org/?page=detail&app=MSXemu_ptitseb Build 15]<br />
|{{✓}}<br />
|{{~}}<br />
|{{~}} <br />
|{{~}} <br />
|{{~}} ||High ||{{✗}} ||{{~}}<br />
|}<br />
<references group=N /><br />
<br />
===Comparisons===<br />
;[[openMSX]]:An open-source project in active development. In recent years, it has surpassed blueMSX in terms of accuracy and the quantity of emulated hardware.<br />
;[[blueMSX]]:Another open-source project that's cycle accurate with very high compatibility.<br />
;WebMSX:An open-source MSX emulator written in HTML5 and JavaScript. It can install as a WebApp on iOS/Android/Desktop, and then run offline. An extensive list of Features can be found at its GitHub page. It has customizable touch controls/virtual keyboard that suit Android and iOS usage, and you can join friends in multiplayer games. [https://www.msx.org/news/en/new-webmsx-emulator Made by Paulo Peccin (ppeccin)].<br />
;[[MSXPLAYer]]:This commercial emulator from the early 2000's were initially found bundled with magazines or hardware. Nowadays, the most recent version of [https://www.msx.org/wiki/MSX-PLAYer MSXPLAYer] is to be found accompanied with the MSX Game Reader released in 2004-2005. [https://www.msx.org/articles/msxplayer-gamereader-edition Its emulation accuracy of MSX 1 was only above average, but its TurboR accuracy was surprisingly good.]<br />
<br />
<u>'''Mobile:'''</u><br />
;MSX.emu:An open-source emulator that uses blueMSX's emulation backend and built on top of the developer's Imagine engine used in all his applications. It emulates the MSX range and [[ColecoVision_emulators|ColecoVision]]. Most MSX games should run & audio can be goo. [[SG-1000 emulators|Sega SG-1000]] support is planned in the future. Contact developer for the [http://cydia.saurik.com/package/com.explusalpha.msxemu/ Cydia store version] on [http://www.explusalpha.com/home/general-info/platforms/ios iOS].<br />
<br />
;<u>Lists:</u><br />
:- [http://takeda-toshiya.my.coocan.jp/ Official website of Takeda] consisting of Takeda Toshiya's emulators for many old Japanese computer systems (See Source Code & Binary Archives under the Download sector [http://takeda-toshiya.my.coocan.jp/common/index.html here]. Includes yayaMSX1, yayaMSX2, yayaMSX2+ (MSX/MSX2/MSX2+ emulators by Mr.tanam and Mr.umaiboux), yayaFS-A1 (by Mr.umaiboux) and ePX-7.)<br />
::- [http://www.emu-france.com/emulateurs/10-ordinateurs/282-takeda-emulation/ Takeda Common Binaries] (An archive of all Takeda emulators for Japanese systems including the FM-7 at Emu-France.com. Smaller file size than at the official website.)<br />
<br />
==Resources==<br />
* [http://map.grauw.nl/ MSX Assembly Pages] (The ultimate source of information for the MSX programmer)<br />
* [https://www.generation-msx.nl/msxdb/statistics Generation MSX] (Fully searchable statistics & info database)<br />
* [http://msx.jpn.org/tagoo/ Tagoo] (The most extensive Japanese MSX Software database on the internet)<br />
* [https://www.msx.org/wiki/MSX_for_beginners MSX for beginners] (MSX Resource Center)<br />
* [http://msxtranslations.com/links.php Links page of 'MSX Translations']<br />
* [http://www.faq.msxnet.org/suffix.html ROM and disk images] (The Ultimate MSX FAQ)<br />
* [http://www.msxcartridgeshop.com/ MegaFlashRom] (MSX Cartridge Shop. Cartridge with flash ROM memory.)<br />
<br />
==External links==<br />
* [http://www.msx.org/articles/mrc-emurank-charts Accuracy ratings] (from 2005)<br />
* [https://www.reddit.com/r/MSX/comments/4b3216/any_lists_of_msx2_games_that_contain_enough/ "Any lists of MSX/2 games that contain enough English..."] (Reddit thread, Mar-20-2016. Many useful links.)<br />
<br />
[[Category:Computers]]<br />
[[Category:MSX emulators|*]]</div>5.177.165.239https://emulation.gametechwiki.com/index.php?title=MSX_emulators&diff=23803MSX emulators2018-12-15T09:20:50Z<p>5.177.165.239: /* Emulators */</p>
<hr />
<div>{{Infobox console<br />
|title = MSX<br />
|logo = Msx.png<br />
|developer = Microsoft Japan, Sanyo<br />
|type = [[:Category:Computers|Computers]]<br />
|generation = Z80-based home computers<br />
|release = 1983<br />
|discontinued = 1996<br />
|emulated = {{✓}}<br />
}}'''MSX''' is a [[wikipedia:Zilog_Z80|Z80]]-based family of home computers, designed by Microsoft in cooperation with ASCII Corporation, which appeared in 1983. They were popular in Asian, South American and European countries as well as the former [[wikipedia:Soviet_Union|Soviet Union]], but they are virtually unknown in USA.<br />
<br />
The games came either as cassettes or floppy disks, but only the former is preserved on the No-Intro set for now. You'll also need an extensive BIOS pack, though RA's bluemsx core only requires four. There are game manager tools to help with configuring which BIOS and games come with which feature. The Japanese Wii [[Virtual Console]] also included basic MSX 2 emulation.<br />
<br />
==Generations==<br />
<br />
The MSX standard evolved in several steps, which are reflected in greater or lesser support by emulators:<br />
<br />
* ''the MSX 1'' is the original 1983 machine, with a 3.58Mhz Z80, an AY 3-8910 sound chip, and a TMS video processor — it offers resolutions up to 256x192 with attribute-based colours, single-colour sprites and no hardware scrolling. This machine primarily differs from contemporaries such as the ColecoVision and Sega SC-3000 only in its sound chip;<br />
* ''the MSX 2'' is a 1985 revision that significantly upgrades the video processor; the maximum resolution is now 512x212, sprites are up to 16 colour, hardware vertical scrolling is available, more normative bitmap and non-attribute-based tile colour modes are offered, and primitive graphics acceleration is available — the video processor can independently perform tasks such as drawing lines and filling rectangles. Unlike the TMS chip in the MSX 1, no other machines use this video processor, so MSX 2 emulation is attempted less often than MSX 1 emulation;<br />
* ''the MSX 2+'' is a minor revision from 1988 that adds hardware support for horizontal scrolling and a few extra colour modes; some 2+ models offer an optional modest speed improvement to the Z80 to 5.37Mhz;<br />
* ''the TurboR'' from 1990 offers the R800 processor as an alternative to the Z80, which is an offspring of the Z800, offering Z80 backwards compatibility with significantly increased throughput.<br />
<br />
Commercial software overwhelmingly targets the MSX 1 or MSX 2 standards, with some able to benefit from the improved horizontal scrolling of the MSX 2+. Neither the 2+ nor the TurboR sold in substantial volumes, and a proposed MSX 3 standard never reached consumers.<br />
<br />
==Specific Machines==<br />
{{Main|https://en.wikipedia.org/wiki/MSX#Manufacturers Manufacturers list}} (Wikipedia)<br />
<br />
MSX machines were manufactured by a wide range of companies including Pioneer, Panasonic, Sharp, Sony, Sanyo, Philips and LG Goldstar. Some of the notable machines include:<br />
<br />
* the '''Pioneer Palcom PX-7''', an MSX1 computer aimed at the Japanese market. It was meant for attaching to a [[LaserDisc]] player, and as such has Superimpose capabilities (putting pictures and texts above the Laser Disc image). The PSG sound is stereo, contrary to almost all MSX machines. Pioneer also sold the '''ER-101''' interface (Laser Vision) unit which made it possible for all MSX computers to have the same functionalities as the Palcom PX-7;<br />
* Panasonic's '''FS-A1''' (1986), '''FS-A1mkII''' (W/ added keypad) and its Italian counterpart, the '''Toshiba FS-TM1''' were based on the MSX2 standard; and<br />
* Panasonic's '''FS-A1FX''' (1988) and '''FS-A1WX''' (W/ added MSX-MUSIC & a Japanese Word processor) are MSX 2+ derived hardware; the '''FS-A1WSX''' (1989) was the last MSX 2+ computer.<br />
<br />
==Emulators==<br />
{| class="wikitable" style="text-align:center;"<br />
! scope="col"|Name<br />
! scope="col"|Operating System(s)<br />
! scope="col"|Latest Version<br />
! scope="col"|Active<br />
! score="col"|MSX 1<br />
! score="col"|MSX 2<br />
! score="col"|MSX 2+<br />
! score="col"|MSXturboR<br />
! scope="col"|[[Emulation Accuracy|Accuracy]]<br />
! scope="col"|[[libretro|Libretro Core]]<br />
! scope="col"|[[Recommended Emulators|Recommended]]<br />
|-<br />
|[[openMSX]]<br />
|Multi-platform<br />
|[https://github.com/openMSX/openMSX/releases/tag/RELEASE_0_14_0 0.14.0]<br />
|{{✓}} <br />
|{{✓}} <br />
|{{✓}} <br />
|{{✓}} <br />
|{{✓}} ||Cycle ||{{✗}} ||{{✓}}<br />
|-<br />
|[[blueMSX]]<br />
|Windows, Multi-platform<ref group=N name=libretro>Only available outside of Windows as a libretro core (e.g. [[RetroArch]]).</ref><br />
|[http://www.vik.cc/bluemsx/download.html 2.8.2]<br />
|{{✗}} <br />
|{{✓}} <br />
|{{✓}} <br />
|{{✓}} <br />
|{{✓}} ||Cycle ||{{✓}} ||{{✓}}<br />
|-<br />
|[[MAME]]<br />
|Multi-platform<br />
|[http://www.mamedev.org/release.html {{MAMEVer}}]<br />
|{{✓}}<br />
|{{~}}<br />
|{{~}} <br />
|{{~}} <br />
|{{~}} ||High ||{{✓}} ||{{✓}}<br />
|-<br />
|[[Clock Signal|CLK]]<br />
|macOS and UNIXalikes<br />
|[https://github.com/TomHarte/CLK/releases {{clkver}}]<br />
|{{✓}} <br />
|{{✓}} <br />
|{{✗}} <br />
|{{✗}} <br />
|{{✗}} ||Cycle ||{{✗}} ||{{✗}}<br />
|-<br />
|[[Pantheon]]<br />
|Windows<br />
|[http://bostjan-grandovec.si/Content/News.htm {{PantheonVer}}]<br />
|{{✓}}<br />
|{{✓}} <br />
|{{✓}} <br />
|{{~}} <br />
|{{~}} ||High ||{{✗}} ||{{✗}}<br />
|-<br />
|[http://webmsx.org/ WebMSX]<br />
|Web<br />
|[https://github.com/ppeccin/WebMSX Git]<br />
|{{✓}}<br />
|{{✓}}<br />
|{{✓}} <br />
|{{✓}} <br />
|{{✗}} ||High ||{{✗}} ||{{✓}}<br />
|-<br />
|[[MSXPLAYer]]<br/><small>(fMSX based)</small><br />
|Windows<br />
|<small>MSX Game Reader<br/>(Commercial)</small><br />
|{{✗}}<br />
|{{✓}}<br />
|{{~}} <br />
|{{~}} <br />
|{{✓}} ||Mid ||{{✗}} ||{{✗}}<br />
|-<br />
|[[fMSX]]<br />
|Multi-platform<br />
|[http://fms.komkon.org/fMSX/#Downloads 5.4]<br />
|{{✓}}<br />
|{{✓}}<br />
|{{✓}} <br />
|{{✓}} <br />
|{{✗}} ||Mid ||{{✓}} ||{{✗}}<br />
|-<br />
|[https://web.archive.org/web/20071206014650/http://www.dridus.com:80/~nyef/darcnes/ DarcNES]<br />
|Multi-platform<br />
|[https://segaretro.org/DarcNES 9b0401/9b0313]<br />
|{{✗}}<br />
|{{~}}<br />
|{{✗}} <br />
|{{✗}} <br />
|{{✗}} ||Low ||{{✗}} ||{{✗}}<br />
|-<br />
!colspan="11"|Mobile<br />
|-<br />
|[http://www.explusalpha.com/home/msx-emu MSX.emu]<br/><small>(blueMSX tech)</small><br />
|[[Android emulators|Android]], iOS, [https://www.ouya.tv/game/MSXemu/ Ouya], <br/>Linux, WebOS<br />
|[https://play.google.com/store/apps/details?id=com.explusalpha.MsxEmu 1.5.34]<br />[https://github.com/Rakashazi/emu-ex-plus-alpha Git]<br />
|{{✓}}<br />
|{{~}}<br />
|{{~}} <br />
|{{~}} <br />
|{{~}} ||High ||{{✗}} ||{{~}}<br />
|-<br />
|[https://pyra-handheld.com/boards/threads/emu-ex-plus-alpha-ported-to-the-pandora.70450/ MSX.emu]<br/><small>(blueMSX tech)</small><br />
|Pandora<br />
|[https://repo.openpandora.org/?page=detail&app=MSXemu_ptitseb Build 15]<br />
|{{✓}}<br />
|{{~}}<br />
|{{~}} <br />
|{{~}} <br />
|{{~}} ||High ||{{✗}} ||{{~}}<br />
|}<br />
<references group=N /><br />
<br />
===Comparisons===<br />
;[[openMSX]]:An open-source project in active development. In recent years, it has surpassed blueMSX in terms of accuracy and the quantity of emulated hardware.<br />
;[[blueMSX]]:Another open-source project that's cycle accurate with very high compatibility.<br />
;WebMSX:An MSX emulator written in HTML5 and JavaScript. It can install as a WebApp on iOS/Android/Desktop, and then run offline. An extensive list of Features can be found at its GitHub page. It has customizable touch controls/virtual keyboard that suit Android and iOS usage, and you can join friends in multiplayer games. [https://www.msx.org/news/en/new-webmsx-emulator Made by Paulo Peccin (ppeccin)].<br />
;[[MSXPLAYer]]:This commercial emulator from the early 2000's were initially found bundled with magazines or hardware. Nowadays, the most recent version of [https://www.msx.org/wiki/MSX-PLAYer MSXPLAYer] is to be found accompanied with the MSX Game Reader released in 2004-2005. [https://www.msx.org/articles/msxplayer-gamereader-edition Its emulation accuracy of MSX 1 was only above average, but its TurboR accuracy was surprisingly good.]<br />
<br />
<u>'''Mobile:'''</u><br />
;MSX.emu:An open-source emulator that uses blueMSX's emulation backend and built on top of the developer's Imagine engine used in all his applications. It emulates the MSX range and [[ColecoVision_emulators|ColecoVision]]. Most MSX games should run & audio can be goo. [[SG-1000 emulators|Sega SG-1000]] support is planned in the future. Contact developer for the [http://cydia.saurik.com/package/com.explusalpha.msxemu/ Cydia store version] on [http://www.explusalpha.com/home/general-info/platforms/ios iOS].<br />
<br />
;<u>Lists:</u><br />
:- [http://takeda-toshiya.my.coocan.jp/ Official website of Takeda] consisting of Takeda Toshiya's emulators for many old Japanese computer systems (See Source Code & Binary Archives under the Download sector [http://takeda-toshiya.my.coocan.jp/common/index.html here]. Includes yayaMSX1, yayaMSX2, yayaMSX2+ (MSX/MSX2/MSX2+ emulators by Mr.tanam and Mr.umaiboux), yayaFS-A1 (by Mr.umaiboux) and ePX-7.)<br />
::- [http://www.emu-france.com/emulateurs/10-ordinateurs/282-takeda-emulation/ Takeda Common Binaries] (An archive of all Takeda emulators for Japanese systems including the FM-7 at Emu-France.com. Smaller file size than at the official website.)<br />
<br />
==Resources==<br />
* [http://map.grauw.nl/ MSX Assembly Pages] (The ultimate source of information for the MSX programmer)<br />
* [https://www.generation-msx.nl/msxdb/statistics Generation MSX] (Fully searchable statistics & info database)<br />
* [http://msx.jpn.org/tagoo/ Tagoo] (The most extensive Japanese MSX Software database on the internet)<br />
* [https://www.msx.org/wiki/MSX_for_beginners MSX for beginners] (MSX Resource Center)<br />
* [http://msxtranslations.com/links.php Links page of 'MSX Translations']<br />
* [http://www.faq.msxnet.org/suffix.html ROM and disk images] (The Ultimate MSX FAQ)<br />
* [http://www.msxcartridgeshop.com/ MegaFlashRom] (MSX Cartridge Shop. Cartridge with flash ROM memory.)<br />
<br />
==External links==<br />
* [http://www.msx.org/articles/mrc-emurank-charts Accuracy ratings] (from 2005)<br />
* [https://www.reddit.com/r/MSX/comments/4b3216/any_lists_of_msx2_games_that_contain_enough/ "Any lists of MSX/2 games that contain enough English..."] (Reddit thread, Mar-20-2016. Many useful links.)<br />
<br />
[[Category:Computers]]<br />
[[Category:MSX emulators|*]]</div>5.177.165.239https://emulation.gametechwiki.com/index.php?title=OpenEmu&diff=23800OpenEmu2018-12-15T09:04:41Z<p>5.177.165.239: </p>
<hr />
<div>{{Infobox emulator<br />
|logo = OpenEmu.png<br />
|active = Yes<br />
|version = 2.0.1<br />
|platform = macOS<br />
|target = [[Atari 2600 emulators|Atari 2600]], [[Atari 5200 emulators|Atari 5200]], [[Atari 7800 emulators|Atari 7800]], [[Atari Lynx emulators|Atari Lynx]], [[WonderSwan emulators|Bandai WonderSwan/Color]], [[ColecoVision emulators|ColecoVision]], [[Intellivision emulators|Mattel Intellivision]], [[Magnavox Odyssey² emulators|Magnavox Odyssey²]], [[PC Engine (TurboGrafx-16) emulators|NEC PC Engine (TurboGrafx-16)]], [[PC-FX emulators|PC-FX]], [[Nintendo 64 emulators|Nintendo 64]], [[Nintendo Entertainment System emulators|Nintendo Entertainment System]], [[Nintendo DS emulators|Nintendo DS]], [[Game Boy/Game Boy Color emulators|Game Boy/Color]], [[Game Boy Advance emulators|Game Boy Advance]], [[Virtual Boy emulators|Virtual Boy]], [[SG-1000 emulators|Sega SG-1000]], [[Master System emulators|Master System]], [[Master System emulators|Game Gear]], [[Sega Genesis emulators|Genesis/Mega Drive]], [[Sega Genesis emulators|Sega/Mega CD]], 32X, [[Sega Saturn emulators|Sega Saturn]], [[Neo Geo Pocket emulators|SNK Neo Geo Pocket/Color]], [[PlayStation emulators|Sony PlayStation]], [[PlayStation Portable emulators|PlayStation Portable]], [[Super Nintendo emulators|Super Nintendo Entertainment System]], [[Vectrex emulators|Vectrex]]<br />
|developer = [https://github.com/OpenEmu/OpenEmu/graphs/contributors OpenEmu Team]<br />
|website = [http://openemu.org OpenEmu.org]<br />
|support = [https://www.patreon.com/openemu Patreon]<br />
|source = [https://github.com/OpenEmu GitHub]<br />
}}<br />
'''OpenEmu''' is an open-source, [[Multi-system emulators|multi-system emulator]] for macOS.<br />
<br />
==Download==<br />
[http://openemu.org/ OpenEmu]<br />
<br />
==Supported Systems==<br />
{| class="wikitable"<br />
|-<br />
! scope="col"|System<br />
! scope="col"|Code based on<br />
|-<br />
|[[Atari 2600 emulators|Atari 2600]]<br />
|[[Stella]]<br />
|-<br />
|[[Atari 5200 emulators|Atari 5200]]<br />
|Atari800<br />
|-<br />
|[[Atari 7800 emulators|Atari 7800]]<br />
|[[ProSystem]]<br />
|-<br />
|[[Atari Lynx emulators|Atari Lynx]]<br />
|[[Mednafen]]<br />
|-<br />
|[[WonderSwan emulators|Bandai WonderSwan/Color]]<br />
|[[Mednafen]]<br />
|-<br />
|[[ColecoVision emulators|ColecoVision]]<br />
|CrabEmu<br />
|-<br />
|[[Nintendo Entertainment System emulators#Family Computer Disk System|Family Computer Disk System]]<br />
|[[Nestopia]]<br />
|-<br />
|[[Intellivision emulators|Mattel Intellivision]]<br />
|Bliss<br />
|-<br />
|[[Magnavox Odyssey² emulators|Magnavox Odyssey²]]/Videopac+<br />
|[[O2EM]]<br />
|-<br />
|[[PC Engine (TurboGrafx-16) emulators|NEC PC Engine/TurboGrafx-16/SuperGrafx/PC Engine CD/TurboGrafx-CD]]<br />
|[[Mednafen]]<br />
|-<br />
|[[PC-FX emulators|NEC PC-FX]]<br />
|[[Mednafen]]<br />
|-<br />
|[[Nintendo 64 emulators|Nintendo 64]]<br />
|[[Mupen64Plus]]<br />
|-<br />
|[[Nintendo Entertainment System emulators|Nintendo Entertainment System]] (Family Computer)<br />
|[[FCEUX]], [[Nestopia]]*<br />
|-<br />
|[[Nintendo DS emulators|Nintendo DS]]<br />
|[[DeSmuME]]<br />
|-<br />
|[[Game Boy/Game Boy Color emulators|Nintendo Game Boy/Color]]<br />
|[[Gambatte]]<br />
|-<br />
|[[Game Boy Advance emulators|Nintendo Game Boy Advance]]<br />
|[[mGBA]]<br />
|-<br />
|[[Virtual Boy emulators|Nintendo Virtual Boy]]<br />
|[[Mednafen]]<br />
|-<br />
|Sega 32X<br />
|[[PicoDrive]]<br />
|-<br />
|[[Sega Saturn emulators|Sega Saturn]]<br />
|[[Mednafen]]<br />
|-<br />
|[[SG-1000 emulators|Sega SG-1000]], [[Master System emulators|Master System]], [[Master System emulators|Game Gear]], [[Sega Genesis emulators|Genesis/Mega Drive]], [[Sega Genesis emulators|Sega/Mega CD]]<br />
|[[Genesis Plus GX]]<br />
|-<br />
|[[Neo Geo Pocket emulators|SNK Neo Geo Pocket/Color]]<br />
|[[Mednafen]]<br />
|-<br />
|[[PlayStation emulators|Sony PlayStation]]<br />
|[[Mednafen]]<br />
|-<br />
|[[PlayStation Portable emulators|Sony PlayStation Portable]]<br />
|[[PPSSPP]]<br />
|-<br />
|[[Super Nintendo emulators|Super Nintendo Entertainment System]] (Super Family Computer)<br />
|[[higan]], [[Snes9x]]*<br />
|-<br />
|[[Vectrex emulators|Vectrex]]<br />
|[[vecx]]<br />
|}<br />
<nowiki>*</nowiki> Default core<br />
<br />
==External Links==<br />
[https://github.com/OpenEmu/OpenEmu/wiki OpenEmu Wiki @ GitHub]<br />
<br />
[[Category:Multi-emulators]]<br />
[[Category:macOS emulation software]]</div>5.177.165.239https://emulation.gametechwiki.com/index.php?title=OpenEmu&diff=23799OpenEmu2018-12-15T09:04:06Z<p>5.177.165.239: Finished table and infobox.</p>
<hr />
<div>{{Infobox emulator<br />
|logo = OpenEmu.png<br />
|active = Yes<br />
|version = 2.0.1<br />
|platform = macOS<br />
|target = [[Atari 2600 emulators|Atari 2600]], [[Atari 5200 emulators|Atari 5200]], [[Atari 7800 emulators|Atari 7800]], [[Atari Lynx emulators|Atari Lynx]], [[WonderSwan emulators|Bandai WonderSwan/Color]], [[ColecoVision emulators|ColecoVision]], [[Intellivision emulators|Mattel Intellivision]], [[Magnavox Odyssey² emulators|Magnavox Odyssey²]], [[PC Engine (TurboGrafx-16) emulators|NEC PC Engine (TurboGrafx-16)]], [[PC-FX emulators|PC-FX]], [[Nintendo 64 emulators|Nintendo 64]], [[Nintendo Entertainment System emulators|Nintendo Entertainment System]], [[Nintendo DS emulators|Nintendo DS]], [[Game Boy/Game Boy Color emulators|Game Boy/Color]], [[Game Boy Advance emulators|Game Boy Advance]], [[Virtual Boy emulators|Virtual Boy]], [[SG-1000 emulators|Sega SG-1000]], [[Master System emulators|Master System]], [[Master System emulators|Game Gear]], [[Sega Genesis emulators|Genesis/Mega Drive]], [[Sega Genesis emulators|Sega/Mega CD]], 32X, [[Sega Saturn emulators|Sega Saturn]][[Neo Geo Pocket emulators|SNK Neo Geo Pocket/Color]], [[PlayStation emulators|Sony PlayStation]], [[PlayStation Portable emulators|PlayStation Portable]], [[Super Nintendo emulators|Super Nintendo Entertainment System]], [[Vectrex emulators|Vectrex]]<br />
|developer = [https://github.com/OpenEmu/OpenEmu/graphs/contributors OpenEmu Team]<br />
|website = [http://openemu.org OpenEmu.org]<br />
|support = [https://www.patreon.com/openemu Patreon]<br />
|source = [https://github.com/OpenEmu GitHub]<br />
}}<br />
'''OpenEmu''' is an open-source, [[Multi-system emulators|multi-system emulator]] for macOS.<br />
<br />
==Download==<br />
[http://openemu.org/ OpenEmu]<br />
<br />
==Supported Systems==<br />
{| class="wikitable"<br />
|-<br />
! scope="col"|System<br />
! scope="col"|Code based on<br />
|-<br />
|[[Atari 2600 emulators|Atari 2600]]<br />
|[[Stella]]<br />
|-<br />
|[[Atari 5200 emulators|Atari 5200]]<br />
|Atari800<br />
|-<br />
|[[Atari 7800 emulators|Atari 7800]]<br />
|[[ProSystem]]<br />
|-<br />
|[[Atari Lynx emulators|Atari Lynx]]<br />
|[[Mednafen]]<br />
|-<br />
|[[WonderSwan emulators|Bandai WonderSwan/Color]]<br />
|[[Mednafen]]<br />
|-<br />
|[[ColecoVision emulators|ColecoVision]]<br />
|CrabEmu<br />
|-<br />
|[[Nintendo Entertainment System emulators#Family Computer Disk System|Family Computer Disk System]]<br />
|[[Nestopia]]<br />
|-<br />
|[[Intellivision emulators|Mattel Intellivision]]<br />
|Bliss<br />
|-<br />
|[[Magnavox Odyssey² emulators|Magnavox Odyssey²]]/Videopac+<br />
|[[O2EM]]<br />
|-<br />
|[[PC Engine (TurboGrafx-16) emulators|NEC PC Engine/TurboGrafx-16/SuperGrafx/PC Engine CD/TurboGrafx-CD]]<br />
|[[Mednafen]]<br />
|-<br />
|[[PC-FX emulators|NEC PC-FX]]<br />
|[[Mednafen]]<br />
|-<br />
|[[Nintendo 64 emulators|Nintendo 64]]<br />
|[[Mupen64Plus]]<br />
|-<br />
|[[Nintendo Entertainment System emulators|Nintendo Entertainment System]] (Family Computer)<br />
|[[FCEUX]], [[Nestopia]]*<br />
|-<br />
|[[Nintendo DS emulators|Nintendo DS]]<br />
|[[DeSmuME]]<br />
|-<br />
|[[Game Boy/Game Boy Color emulators|Nintendo Game Boy/Color]]<br />
|[[Gambatte]]<br />
|-<br />
|[[Game Boy Advance emulators|Nintendo Game Boy Advance]]<br />
|[[mGBA]]<br />
|-<br />
|[[Virtual Boy emulators|Nintendo Virtual Boy]]<br />
|[[Mednafen]]<br />
|-<br />
|Sega 32X<br />
|[[PicoDrive]]<br />
|-<br />
|[[Sega Saturn emulators|Sega Saturn]]<br />
|[[Mednafen]]<br />
|-<br />
|[[SG-1000 emulators|Sega SG-1000]], [[Master System emulators|Master System]], [[Master System emulators|Game Gear]], [[Sega Genesis emulators|Genesis/Mega Drive]], [[Sega Genesis emulators|Sega/Mega CD]]<br />
|[[Genesis Plus GX]]<br />
|-<br />
|[[Neo Geo Pocket emulators|SNK Neo Geo Pocket/Color]]<br />
|[[Mednafen]]<br />
|-<br />
|[[PlayStation emulators|Sony PlayStation]]<br />
|[[Mednafen]]<br />
|-<br />
|[[PlayStation Portable emulators|Sony PlayStation Portable]]<br />
|[[PPSSPP]]<br />
|-<br />
|[[Super Nintendo emulators|Super Nintendo Entertainment System]] (Super Family Computer)<br />
|[[higan]], [[Snes9x]]*<br />
|-<br />
|[[Vectrex emulators|Vectrex]]<br />
|[[vecx]]<br />
|}<br />
<nowiki>*</nowiki> Default core<br />
<br />
==External Links==<br />
[https://github.com/OpenEmu/OpenEmu/wiki OpenEmu Wiki @ GitHub]<br />
<br />
[[Category:Multi-emulators]]<br />
[[Category:macOS emulation software]]</div>5.177.165.239https://emulation.gametechwiki.com/index.php?title=Dynamic_recompilation&diff=23796Dynamic recompilation2018-12-15T08:17:26Z<p>5.177.165.239: /* Gaming */</p>
<hr />
<div>'''Dynamic recompilation''' (sometimes abbreviated to '''dynarec''' or '''DRC''') is a feature of some emulators and virtual machines, where the system may recompile some part of a program ''during execution''. By compiling during execution, the system can tailor the generated code to reflect the program's run-time environment, and potentially produce more efficient code by exploiting information that is not available to a traditional static compiler.<br />
<br />
{{Main|wikipedia:Dynamic recompilation}}<br />
<br />
==Uses==<br />
Most dynamic recompilers are used to convert machine code between architectures at runtime. This is a task often needed in the emulation of legacy gaming platforms. In other cases, a system may employ dynamic recompilation as part of an adaptive optimization strategy to execute a portable program representation such as Java or .NET Common Language Runtime bytecodes. Full-speed debuggers also utilize dynarec to reduce the space overhead incurred in most deoptimization techniques, and other features such as dynamic thread migration.<br />
<br />
==Tasks==<br />
The main tasks a dynamic recompiler has to perform are:<br />
* Reading in machine code from the source platform<br />
* Emitting machine code for the target platform<br />
<br />
A dynamic recompiler may also perform some auxiliary tasks:<br />
* Managing a cache of recompiled code<br />
* Updating of elapsed cycle counts on platforms with cycle count registers<br />
* Management of interrupt checking<br />
* Providing an interface to virtualized support hardware for example a GPU<br />
* Optimizing higher level code structures to run efficiently on the target hardware (see below)<br />
<br />
==Example==<br />
Suppose a program is being run in an emulator and needs to copy a null-terminated string. The program is compiled originally for a very simple processor. This processor can only copy a byte at a time, and must do so by first reading it from the source string into a register, then writing it from that register into the destination string. The original program might look something like this:<br />
<br />
<source lang=asm><br />
beginning:<br />
mov A,[first string pointer] ; Put location of first character of source string<br />
; in register A<br />
mov B,[second string pointer] ; Put location of first character of destination string<br />
; in register B<br />
loop:<br />
mov C,[A] ; Copy byte at address in register A to register C<br />
mov [B],C ; Copy byte in register C to the address in register B<br />
inc A ; Increment the address in register A to point to<br />
; the next byte<br />
inc B ; Increment the address in register B to point to<br />
; the next byte<br />
cmp C,#0 ; Compare the data we just copied to 0 (string end marker)<br />
jnz loop ; If it wasn't 0 then we have more to copy, so go back<br />
; and copy the next byte<br />
end: ; If we didn't loop then we must have finished,<br />
; so carry on with something else.</source><br />
<br />
The emulator might be running on a processor which is similar, but extremely good at copying strings, and the emulator knows it can take advantage of this.<br />
It might recognize the string copy sequence of instructions and decide to rewrite them more efficiently just before execution, to speed up the emulation.<br />
<br />
Say there is an instruction on our new processor called ''movs'', specifically designed to copy strings efficiently. Our theoretical movs instruction copies 16 bytes at a time, without having to load them into register C in between,<br />
but will stop if it copies a 0 byte (which marks the end of a string) and set the zero flag. It also knows that the addresses of the strings will be in registers A and B, so it increments A and B by 16 every time it executes, ready for the next copy.<br />
<br />
Our new recompiled code might look something like this:<br />
<br />
<source lang=asm>beginning:<br />
mov A,[first string pointer] ; Put location of first character of source string<br />
; in register A<br />
mov B,[second string pointer] ; Put location of first character of destination string<br />
; in register B<br />
loop:<br />
movs [B],[A] ; Copy 16 bytes at address in register A to address<br />
; in register B, then increment A and B by 16<br />
jnz loop ; If the zero flag isn't set then we haven't reached<br />
; the end of the string, so go back and copy some more.<br />
end: ; If we didn't loop then we must have finished,<br />
; so carry on with something else.</source><br />
<br />
There is an immediate speed benefit simply because the processor doesn't have to load so many instructions to do the same task, but also because the movs instruction is likely to be optimized by the processor designer to be more efficient than the sequence used in the first example. (For example, it may make better use of parallel execution in the processor to increment A and B while it is still copying bytes).<br />
<br />
===Gaming===<br />
*[[MAME]] uses dynamic recompilation in its CPU emulators for MIPS, SuperH, PowerPC and even the Voodoo graphics processing units.<br />
*[[1964]], an open-source [[Nintendo 64 emulators|Nintendo 64 emulator]] for [[wikipedia:x86|x86]] hardware.<br />
*Wii64, a [[Nintendo 64 emulators|Nintendo 64 emulator]] for the Nintendo Wii.<br />
*WiiSX, a Sony PlayStation emulator for the Nintendo Wii.<br />
*[[Mupen64Plus]], an open-source, multi-platform, plugin-based Nintendo 64 emulator.<ref>[http://pandorawiki.org/Mupen64plus_dynamic_recompiler Mupen64Plus]</ref><br />
*[[Yabause]], an open-source multi-platform [[Sega Saturn emulators|Sega Saturn emulator]].<ref>[http://wiki.yabause.org/index.php5?title=SH2_dynamic_recompiler SH2]</ref><br />
*The backwards compatibility functionality of the [[Xbox 360 emulators|Xbox 360]] (i.e. running games written for the original [[Xbox emulators|Xbox]]) is widely assumed to use dynamic recompilation.<br />
*[[PPSSPP]], an open-source, multi-platform [[PlayStation Portable emulators|Sony PlayStation Portable emulator]]. Recompilers for both x86 and ARM.<br />
*PSEmu Pro, a [[PlayStation emulators|Sony PlayStation emulator]].<br />
*[[UltraHLE]], the first [[Nintendo 64 emulators|Nintendo 64 emulators]] emulator to fully run commercial games.<br />
*[[PCSX2]],<ref>[http://www.pcsx2.net PCSX2]</ref> an open-source, plugin-based [[PlayStation 2 emulators|Sony PlayStation 2 emulator]], has a recompiler called "microVU", the successor of "SuperVU".<br />
*[[Dolphin]], an open-source [[GameCube emulators|Nintendo GameCube]] and [[Wii emulators|Wii emulator]], has a dynarec option.<br />
*GCEmu,<ref>[http://sourceforge.net/projects/gcemu-project GCEmu]</ref> a [[GameCube emulators|Nintendo GameCube emulator]].<br />
*[[nullDC]], an open-source [[Sega Dreamcast emulators|Sega Dreamcast]] and [[Sega NAOMI and variants|Naomi emulator]] for [[wikipedia:x86|x86]].<br />
*GEM,<ref>{{cite web|url=http://gem.tni.nl/ |title=Gameboy Emulator for MSX &#124; The New Image |publisher=GEM |date= |accessdate=2014-01-12}}</ref> a [[Game Boy/Game Boy Color emulators|Nintendo Game Boy/Color]] emulator for [[MSX emulators|MSX]] uses an optimizing dynamic recompiler.<br />
*[[DeSmuME]],<ref>[http://desmume.org/2013/04/30/desmume-0-9-9-released/ DeSmuME v0.9.9]</ref> an open-source [[Nintendo DS emulators|Nintendo DS emulator]], has a dynarec option.<br />
*Soywiz's Psp,<ref>{{cite web|author=Publicado por Carlos Ballesteros Velasco |url=http://pspemu.soywiz.com/2013/07/release-soywizs-psp-emulator-2013-07-28.html |title=Soywiz's PSP Emulator: Release : Soywiz's Psp Emulator 2013-07-28 (r525) |publisher=Pspemu.soywiz.com |date=2013-07-28 |accessdate=2014-01-12}}</ref> a [[PlayStation Portable emulators|Sony PlayStation Portable emulator]], has a dynarec option.<br />
<br />
==See also==<br />
* Comparison of platform virtual machines<br />
* Binary translation<br />
* Just-in-time compilation<br />
* Binary recompiler<br />
<br />
==References==<br />
{{Reflist|30em}}<br />
<br />
==External links==<br />
*[http://web.archive.org/web/20051018182930/www.zenogais.net/Projects/Tutorials/Dynamic%20Recompiler.html Dynamic recompiler tutorial]<br />
*[http://emulatemii.com/wordpress/?tag=dynarec Blog posts about writing a MIPS to PPC dynamic recompiler]<br />
<br />
[[Category:Wikipedia copies]]</div>5.177.165.239https://emulation.gametechwiki.com/index.php?title=Dynamic_recompilation&diff=23795Dynamic recompilation2018-12-15T08:14:46Z<p>5.177.165.239: /* Gaming */</p>
<hr />
<div>'''Dynamic recompilation''' (sometimes abbreviated to '''dynarec''' or '''DRC''') is a feature of some emulators and virtual machines, where the system may recompile some part of a program ''during execution''. By compiling during execution, the system can tailor the generated code to reflect the program's run-time environment, and potentially produce more efficient code by exploiting information that is not available to a traditional static compiler.<br />
<br />
{{Main|wikipedia:Dynamic recompilation}}<br />
<br />
==Uses==<br />
Most dynamic recompilers are used to convert machine code between architectures at runtime. This is a task often needed in the emulation of legacy gaming platforms. In other cases, a system may employ dynamic recompilation as part of an adaptive optimization strategy to execute a portable program representation such as Java or .NET Common Language Runtime bytecodes. Full-speed debuggers also utilize dynarec to reduce the space overhead incurred in most deoptimization techniques, and other features such as dynamic thread migration.<br />
<br />
==Tasks==<br />
The main tasks a dynamic recompiler has to perform are:<br />
* Reading in machine code from the source platform<br />
* Emitting machine code for the target platform<br />
<br />
A dynamic recompiler may also perform some auxiliary tasks:<br />
* Managing a cache of recompiled code<br />
* Updating of elapsed cycle counts on platforms with cycle count registers<br />
* Management of interrupt checking<br />
* Providing an interface to virtualized support hardware for example a GPU<br />
* Optimizing higher level code structures to run efficiently on the target hardware (see below)<br />
<br />
==Example==<br />
Suppose a program is being run in an emulator and needs to copy a null-terminated string. The program is compiled originally for a very simple processor. This processor can only copy a byte at a time, and must do so by first reading it from the source string into a register, then writing it from that register into the destination string. The original program might look something like this:<br />
<br />
<source lang=asm><br />
beginning:<br />
mov A,[first string pointer] ; Put location of first character of source string<br />
; in register A<br />
mov B,[second string pointer] ; Put location of first character of destination string<br />
; in register B<br />
loop:<br />
mov C,[A] ; Copy byte at address in register A to register C<br />
mov [B],C ; Copy byte in register C to the address in register B<br />
inc A ; Increment the address in register A to point to<br />
; the next byte<br />
inc B ; Increment the address in register B to point to<br />
; the next byte<br />
cmp C,#0 ; Compare the data we just copied to 0 (string end marker)<br />
jnz loop ; If it wasn't 0 then we have more to copy, so go back<br />
; and copy the next byte<br />
end: ; If we didn't loop then we must have finished,<br />
; so carry on with something else.</source><br />
<br />
The emulator might be running on a processor which is similar, but extremely good at copying strings, and the emulator knows it can take advantage of this.<br />
It might recognize the string copy sequence of instructions and decide to rewrite them more efficiently just before execution, to speed up the emulation.<br />
<br />
Say there is an instruction on our new processor called ''movs'', specifically designed to copy strings efficiently. Our theoretical movs instruction copies 16 bytes at a time, without having to load them into register C in between,<br />
but will stop if it copies a 0 byte (which marks the end of a string) and set the zero flag. It also knows that the addresses of the strings will be in registers A and B, so it increments A and B by 16 every time it executes, ready for the next copy.<br />
<br />
Our new recompiled code might look something like this:<br />
<br />
<source lang=asm>beginning:<br />
mov A,[first string pointer] ; Put location of first character of source string<br />
; in register A<br />
mov B,[second string pointer] ; Put location of first character of destination string<br />
; in register B<br />
loop:<br />
movs [B],[A] ; Copy 16 bytes at address in register A to address<br />
; in register B, then increment A and B by 16<br />
jnz loop ; If the zero flag isn't set then we haven't reached<br />
; the end of the string, so go back and copy some more.<br />
end: ; If we didn't loop then we must have finished,<br />
; so carry on with something else.</source><br />
<br />
There is an immediate speed benefit simply because the processor doesn't have to load so many instructions to do the same task, but also because the movs instruction is likely to be optimized by the processor designer to be more efficient than the sequence used in the first example. (For example, it may make better use of parallel execution in the processor to increment A and B while it is still copying bytes).<br />
<br />
===Gaming===<br />
*[[MAME]] uses dynamic recompilation in its CPU emulators for MIPS, SuperH, PowerPC and even the Voodoo graphics processing units.<br />
*[[1964]], an open-source [[Nintendo 64 emulators|Nintendo 64 emulator]] for x86 hardware.<br />
*Wii64, a [[Nintendo 64 emulators|Nintendo 64 emulator]] for the Wii.<br />
*WiiSX, a Sony PlayStation emulator for the Nintendo Wii.<br />
*[[Mupen64Plus]], an open-source, multi-platform, plugin-based Nintendo 64 emulator.<ref>[http://pandorawiki.org/Mupen64plus_dynamic_recompiler Mupen64Plus]</ref><br />
*[[Yabause]], an open-source multi-platform [[Sega Saturn emulators|Sega Saturn emulator]].<ref>[http://wiki.yabause.org/index.php5?title=SH2_dynamic_recompiler SH2]</ref><br />
*The backwards compatibility functionality of the [[Xbox 360 emulators|Xbox 360]] (i.e. running games written for the original [[Xbox emulators|Xbox]]) is widely assumed to use dynamic recompilation.<br />
*[[PPSSPP]], an open-source, multi-platform [[PlayStation Portable emulators| Sony PlayStation Portable emulator]]. Recompilers for both x86 and ARM.<br />
*PSEmu Pro, a [[PlayStation emulators|Sony PlayStation emulator]].<br />
*[[UltraHLE]], the first [[Nintendo 64 emulators|Nintendo 64 emulators]] emulator to fully run commercial games.<br />
*[[PCSX2]],<ref>[http://www.pcsx2.net PCSX2]</ref> an open-source, plugin-based [[PlayStation 2 emulators|Sony PlayStation 2 emulator]], has a recompiler called "microVU", the successor of "SuperVU".<br />
*[[Dolphin]], an open-source [[GameCube emulators|Nintendo GameCube]] and [[Wii emulators|Wii emulator]], has a dynarec option.<br />
*GCEmu,<ref>[http://sourceforge.net/projects/gcemu-project GCEmu]</ref> a [[GameCube emulators|Nintendo GameCube emulator]].<br />
*[[nullDC]], an open-source [[Sega Dreamcast emulators|Sega Dreamcast]] and [[Sega NAOMI and variants|Naomi emulator]] for [[wikipedia:x86|x86]].<br />
*GEM,<ref>{{cite web|url=http://gem.tni.nl/ |title=Gameboy Emulator for MSX &#124; The New Image |publisher=GEM |date= |accessdate=2014-01-12}}</ref> a [[Game Boy/Game Boy Color emulators|Nintendo Game Boy/Color]] emulator for [[MSX emulators|MSX]] uses an optimizing dynamic recompiler.<br />
*[[DeSmuME]],<ref>[http://desmume.org/2013/04/30/desmume-0-9-9-released/ DeSmuME v0.9.9]</ref> an open-source [[Nintendo DS emulators|Nintendo DS emulator]], has a dynarec option.<br />
*Soywiz's Psp,<ref>{{cite web|author=Publicado por Carlos Ballesteros Velasco |url=http://pspemu.soywiz.com/2013/07/release-soywizs-psp-emulator-2013-07-28.html |title=Soywiz's PSP Emulator: Release : Soywiz's Psp Emulator 2013-07-28 (r525) |publisher=Pspemu.soywiz.com |date=2013-07-28 |accessdate=2014-01-12}}</ref> a [[PlayStation Portable emulators|Sony PlayStation Portable emulator]], has a dynarec option.<br />
<br />
==See also==<br />
* Comparison of platform virtual machines<br />
* Binary translation<br />
* Just-in-time compilation<br />
* Binary recompiler<br />
<br />
==References==<br />
{{Reflist|30em}}<br />
<br />
==External links==<br />
*[http://web.archive.org/web/20051018182930/www.zenogais.net/Projects/Tutorials/Dynamic%20Recompiler.html Dynamic recompiler tutorial]<br />
*[http://emulatemii.com/wordpress/?tag=dynarec Blog posts about writing a MIPS to PPC dynamic recompiler]<br />
<br />
[[Category:Wikipedia copies]]</div>5.177.165.239https://emulation.gametechwiki.com/index.php?title=Dynamic_recompilation&diff=23794Dynamic recompilation2018-12-15T08:13:47Z<p>5.177.165.239: /* Gaming */</p>
<hr />
<div>'''Dynamic recompilation''' (sometimes abbreviated to '''dynarec''' or '''DRC''') is a feature of some emulators and virtual machines, where the system may recompile some part of a program ''during execution''. By compiling during execution, the system can tailor the generated code to reflect the program's run-time environment, and potentially produce more efficient code by exploiting information that is not available to a traditional static compiler.<br />
<br />
{{Main|wikipedia:Dynamic recompilation}}<br />
<br />
==Uses==<br />
Most dynamic recompilers are used to convert machine code between architectures at runtime. This is a task often needed in the emulation of legacy gaming platforms. In other cases, a system may employ dynamic recompilation as part of an adaptive optimization strategy to execute a portable program representation such as Java or .NET Common Language Runtime bytecodes. Full-speed debuggers also utilize dynarec to reduce the space overhead incurred in most deoptimization techniques, and other features such as dynamic thread migration.<br />
<br />
==Tasks==<br />
The main tasks a dynamic recompiler has to perform are:<br />
* Reading in machine code from the source platform<br />
* Emitting machine code for the target platform<br />
<br />
A dynamic recompiler may also perform some auxiliary tasks:<br />
* Managing a cache of recompiled code<br />
* Updating of elapsed cycle counts on platforms with cycle count registers<br />
* Management of interrupt checking<br />
* Providing an interface to virtualized support hardware for example a GPU<br />
* Optimizing higher level code structures to run efficiently on the target hardware (see below)<br />
<br />
==Example==<br />
Suppose a program is being run in an emulator and needs to copy a null-terminated string. The program is compiled originally for a very simple processor. This processor can only copy a byte at a time, and must do so by first reading it from the source string into a register, then writing it from that register into the destination string. The original program might look something like this:<br />
<br />
<source lang=asm><br />
beginning:<br />
mov A,[first string pointer] ; Put location of first character of source string<br />
; in register A<br />
mov B,[second string pointer] ; Put location of first character of destination string<br />
; in register B<br />
loop:<br />
mov C,[A] ; Copy byte at address in register A to register C<br />
mov [B],C ; Copy byte in register C to the address in register B<br />
inc A ; Increment the address in register A to point to<br />
; the next byte<br />
inc B ; Increment the address in register B to point to<br />
; the next byte<br />
cmp C,#0 ; Compare the data we just copied to 0 (string end marker)<br />
jnz loop ; If it wasn't 0 then we have more to copy, so go back<br />
; and copy the next byte<br />
end: ; If we didn't loop then we must have finished,<br />
; so carry on with something else.</source><br />
<br />
The emulator might be running on a processor which is similar, but extremely good at copying strings, and the emulator knows it can take advantage of this.<br />
It might recognize the string copy sequence of instructions and decide to rewrite them more efficiently just before execution, to speed up the emulation.<br />
<br />
Say there is an instruction on our new processor called ''movs'', specifically designed to copy strings efficiently. Our theoretical movs instruction copies 16 bytes at a time, without having to load them into register C in between,<br />
but will stop if it copies a 0 byte (which marks the end of a string) and set the zero flag. It also knows that the addresses of the strings will be in registers A and B, so it increments A and B by 16 every time it executes, ready for the next copy.<br />
<br />
Our new recompiled code might look something like this:<br />
<br />
<source lang=asm>beginning:<br />
mov A,[first string pointer] ; Put location of first character of source string<br />
; in register A<br />
mov B,[second string pointer] ; Put location of first character of destination string<br />
; in register B<br />
loop:<br />
movs [B],[A] ; Copy 16 bytes at address in register A to address<br />
; in register B, then increment A and B by 16<br />
jnz loop ; If the zero flag isn't set then we haven't reached<br />
; the end of the string, so go back and copy some more.<br />
end: ; If we didn't loop then we must have finished,<br />
; so carry on with something else.</source><br />
<br />
There is an immediate speed benefit simply because the processor doesn't have to load so many instructions to do the same task, but also because the movs instruction is likely to be optimized by the processor designer to be more efficient than the sequence used in the first example. (For example, it may make better use of parallel execution in the processor to increment A and B while it is still copying bytes).<br />
<br />
===Gaming===<br />
*[[MAME]] uses dynamic recompilation in its CPU emulators for MIPS, SuperH, PowerPC and even the Voodoo graphics processing units.<br />
*[[1964]], an open-source [[Nintendo 64 emulators|Nintendo 64 emulator]] for x86 hardware.<br />
*Wii64, a [[Nintendo 64 emulators|Nintendo 64 emulator]] for the Wii.<br />
*WiiSX, a Sony PlayStation emulator for the Nintendo Wii.<br />
*[[Mupen64Plus]], an open-source, multi-platform, plugin-based Nintendo 64 emulator.<ref>[http://pandorawiki.org/Mupen64plus_dynamic_recompiler Mupen64Plus]</ref><br />
*[[Yabause]], an open-source multi-platform [[Sega Saturn emulators|Sega Saturn emulator]].<ref>[http://wiki.yabause.org/index.php5?title=SH2_dynamic_recompiler SH2]</ref><br />
*The backwards compatibility functionality of the [[Xbox 360 emulators|Xbox 360]] (i.e. running games written for the original [[Xbox emulators|Xbox]]) is widely assumed to use dynamic recompilation.<br />
*[[PPSSPP]], an open-source, multi-platform [[PlayStation Portable emulators| SonyPlayStation Portable emulator]]. Recompilers for both x86 and ARM.<br />
*PSEmu Pro, a [[PlayStation emulators|Sony PlayStation emulator]].<br />
*[[UltraHLE]], the first [[Nintendo 64 emulators|Nintendo 64 emulators]] emulator to fully run commercial games.<br />
*[[PCSX2]],<ref>[http://www.pcsx2.net PCSX2]</ref> an open-source, plugin-based [[PlayStation 2 emulators|Sony PlayStation 2 emulator]], has a recompiler called "microVU", the successor of "SuperVU".<br />
*[[Dolphin]], an open-source [[GameCube emulators|Nintendo GameCube]] and [[Wii emulators|Wii emulator]], has a dynarec option.<br />
*GCEmu,<ref>[http://sourceforge.net/projects/gcemu-project GCEmu]</ref> a [[GameCube emulators|Nintendo GameCube emulator]].<br />
*[[nullDC]], an open-source [[Sega Dreamcast emulators|Sega Dreamcast]] and [[Sega NAOMI and variants|Naomi emulator]] for [[wikipedia:x86|x86]].<br />
*GEM,<ref>{{cite web|url=http://gem.tni.nl/ |title=Gameboy Emulator for MSX &#124; The New Image |publisher=GEM |date= |accessdate=2014-01-12}}</ref> a [[Game Boy/Game Boy Color emulators|Nintendo Game Boy/Color]] emulator for [[MSX emulators|MSX]] uses an optimizing dynamic recompiler.<br />
*[[DeSmuME]],<ref>[http://desmume.org/2013/04/30/desmume-0-9-9-released/ DeSmuME v0.9.9]</ref> an open-source [[Nintendo DS emulators|Nintendo DS emulator]], has a dynarec option.<br />
*Soywiz's Psp,<ref>{{cite web|author=Publicado por Carlos Ballesteros Velasco |url=http://pspemu.soywiz.com/2013/07/release-soywizs-psp-emulator-2013-07-28.html |title=Soywiz's PSP Emulator: Release : Soywiz's Psp Emulator 2013-07-28 (r525) |publisher=Pspemu.soywiz.com |date=2013-07-28 |accessdate=2014-01-12}}</ref> a [[PlayStation Portable emulators|Sony PlayStation Portable emulator]], has a dynarec option.<br />
<br />
==See also==<br />
* Comparison of platform virtual machines<br />
* Binary translation<br />
* Just-in-time compilation<br />
* Binary recompiler<br />
<br />
==References==<br />
{{Reflist|30em}}<br />
<br />
==External links==<br />
*[http://web.archive.org/web/20051018182930/www.zenogais.net/Projects/Tutorials/Dynamic%20Recompiler.html Dynamic recompiler tutorial]<br />
*[http://emulatemii.com/wordpress/?tag=dynarec Blog posts about writing a MIPS to PPC dynamic recompiler]<br />
<br />
[[Category:Wikipedia copies]]</div>5.177.165.239https://emulation.gametechwiki.com/index.php?title=Mupen64Plus&diff=23793Mupen64Plus2018-12-15T08:12:17Z<p>5.177.165.239: </p>
<hr />
<div>{{Infobox emulator<br />
|logo = Mupen64plus-r1.pnd.png<br />
|logowidth = 138<br />
|version = 2.5<br />
|active = Yes<br />
|target = [[Nintendo 64 emulators|Nintendo 64]]<br />
|platform = Multi-platform<br />
|developer = bsmiles32, Francisco Zurita, Milan Nikolic, Gilles Siberlin, littleguy77, Logan, Dorian Fevrier, Richard Goedeken<br />
|website = [http://www.mupen64plus.org/ Mupen64Plus.org]<br />
|source = [https://github.com/mupen64plus GitHub]<br />
}}<br />
'''Mupen64Plus''' is an open-source, multi-platform, plugin-based [[Nintendo 64 emulators|Nintendo 64 emulator]] that forks from and updates Mupen64. Its developers elected to move away from Zilmar's plugin spec and developed their own set, meaning plugins from other N64 emulators won't work with it. It also has [https://github.com/libretro/mupen64plus-libretro a forked a libretro core] under active development.<br />
<br />
==Downloads==<br />
* [https://github.com/mupen64plus/mupen64plus-core/releases Latest release]<br />
* [https://bitbucket.org/ecsv/mupen64plus-mxe-daily/overview Windows builds] - Frequent Windows builds of Mupen64Plus, bundled with every plugin. It is recommended to use the i686-pc-mingw32 build if on 32-bit Windows or x86_64-w64-mingw32 if on 64-bit. Just go to the "Downloads" tab and click "Download Repository" and it will let you download both builds in a 7z file.<br />
* [https://play.google.com/store/apps/details?id=org.mupen64plusae.v3.fzurita&hl=en Mupen64Plus FZ] - Beta port of Mupen64Plus to Android. It's currently the best N64 emulator since [https://play.google.com/store/apps/details?id=paulscode.android.mupen64plus&hl=en Mupen64Plus AE] stopped getting updated and also adware.<br />
* [http://consoleemu.com/emulator/mupen64plus macOS SVN builds]<br />
<br />
==Review==<br />
Mupen64Plus lacks a GUI, so it may be difficult to use without using a front-end. It is run either directly from the command line with arguments or by dragging and dropping ROM files onto the executable.<br />
<br />
Unlike every other N64 emulator, Mupen64Plus uses its own plugin spec, so it is not compatible with any plugins except those specifically ported to its spec.<br />
<br />
By default, Mupen64Plus applies a ton of audio buffering, causing extremely delayed audio, more so than most other emulators. This can be mitigated by lowering the buffer settings in the mupen64plus.cfg file, though putting it too low will cause audio crackling. For improved audio latency and sync, consider using mupen64plus-libretro through RetroArch.<br />
<br />
==Front-ends==<br />
* [https://code.google.com/p/mupen64plus/wiki/ThirdPartyPlugins#Third-Party_Front-end_and_Launcher_Applications Front-ends]<br />
* [http://m64py.sourceforge.net/ M64Py] is highly recommended for a Mupen64Plus frontend. Not only does it come with everything set up, but it also comes with every plugin developed for the emulator. This is great since it's very hard to find some of the plugins without compiling them from the source code. Sadly, it's not perfect, since the input config utility doesn't work with some gamepads.<br />
* [https://github.com/dh4/mupen64plus-qt mupen64plus-qt]<br />
* [https://github.com/m64p/mupen64plus-gui/ mupen64plus-gui] is a nice Qt5 GUI newly created in 2017. [https://m64p.github.io/ m64p] is a package created by the same author, which combines recent builds of mupen64plus with the GLideN64 and the Angrylion RDP Plus video plugins and Mupen64plus-gui. This is arguably the most complete out-of-the-box package for the end user as of August 2017.<br />
<br />
==Using Mupen64Plus==<br />
'''Windows'''<br />
# First create this directory: <code>C:\Users\<username>\AppData\Roaming\Mupen64Plus</code><br />
# Copy all the .ini and .cfg files into this folder, then create a folder in there called "save".<br />
# To play games, you can do the following:<br />
#* Drag and drop your ROM onto mupen64plus.exe.<br />
#* Alternatively, associate .n64/.z64/.v64 files to mupen64plus.exe via Default Apps, then double-click the ROMs to play them.<br />
# You can change plugins and settings by editing the mupen64plus.cfg file.<br />
<br />
==Recommended plugin setups==<br />
Mupen64Plus has its own set of plugins, which are incompatible with plugins used in other emulators. The following is an overview of recommended setups.<br />
<br />
'''Commonly used'''<br />
* Video: Glide64mk2<br />
* RSP: cxd4-ssse3<br />
* Glide64mk2 is just Glide64 with additional tweaks and enhancements for use with Mupen64Plus. The cxd4 plugin is a port of BatCat's RSP plugin for Project64. You will need to enable "DisplayListToGraphicsPlugin" in the cxd4-ssse3 settings for this to work. This appears to be the best combination for use with most games, though toasters may have performance issues. If the mk2 variant is too slow, try regular Glide64.<br />
<br />
'''Best performance and graphics'''<br />
* Video: Rice<br />
* RSP: rsp-hle<br />
* These are Mupen64Plus's default plugins. Rice's Video is a plugin used on other N64 emulators, most known for its support for hi-res texture packs, now enhanced for Mupen64plus. It also has support for bilinear, trilinear, and anisotropic filtering, texture scaling, and up to 16x MSAA. It is not quite up to Glide64's level, but it does well enough for many games and is quite fast. The default RSP plugin appears to be just an enhanced port of vanilla Mupen64's RSP. Use this combination if you have a lower end PC and can't handle the Commonly Used setup.<br />
<br />
'''Accuracy/Rogue Squadron'''<br />
* Video: z64<br />
* RSP: cxd4-ssse3<br />
* z64 is a port of z64gl, a low-level emulation video plugin for N64 emulators. It comes with its own accompanying z64 RSP, but cxd4 (a port of BatCat's RSP Interpreter plugin) appears to be more accurate and very well optimized. This setup is capable of playing difficult games like Rogue Squadron with very few graphical glitches, and it is faster than on Project64 to boot.<br />
<br />
[[Category:Emulators]]<br />
[[Category:Nintendo 64 emulators]]<br />
[[Category:Windows emulation software]]<br />
[[Category:Linux emulation software]]<br />
[[Category:macOS emulation software]]<br />
[[Category:Custom Assets]]</div>5.177.165.239https://emulation.gametechwiki.com/index.php?title=Dynamic_recompilation&diff=23792Dynamic recompilation2018-12-15T08:10:57Z<p>5.177.165.239: /* Gaming */</p>
<hr />
<div>'''Dynamic recompilation''' (sometimes abbreviated to '''dynarec''' or '''DRC''') is a feature of some emulators and virtual machines, where the system may recompile some part of a program ''during execution''. By compiling during execution, the system can tailor the generated code to reflect the program's run-time environment, and potentially produce more efficient code by exploiting information that is not available to a traditional static compiler.<br />
<br />
{{Main|wikipedia:Dynamic recompilation}}<br />
<br />
==Uses==<br />
Most dynamic recompilers are used to convert machine code between architectures at runtime. This is a task often needed in the emulation of legacy gaming platforms. In other cases, a system may employ dynamic recompilation as part of an adaptive optimization strategy to execute a portable program representation such as Java or .NET Common Language Runtime bytecodes. Full-speed debuggers also utilize dynarec to reduce the space overhead incurred in most deoptimization techniques, and other features such as dynamic thread migration.<br />
<br />
==Tasks==<br />
The main tasks a dynamic recompiler has to perform are:<br />
* Reading in machine code from the source platform<br />
* Emitting machine code for the target platform<br />
<br />
A dynamic recompiler may also perform some auxiliary tasks:<br />
* Managing a cache of recompiled code<br />
* Updating of elapsed cycle counts on platforms with cycle count registers<br />
* Management of interrupt checking<br />
* Providing an interface to virtualized support hardware for example a GPU<br />
* Optimizing higher level code structures to run efficiently on the target hardware (see below)<br />
<br />
==Example==<br />
Suppose a program is being run in an emulator and needs to copy a null-terminated string. The program is compiled originally for a very simple processor. This processor can only copy a byte at a time, and must do so by first reading it from the source string into a register, then writing it from that register into the destination string. The original program might look something like this:<br />
<br />
<source lang=asm><br />
beginning:<br />
mov A,[first string pointer] ; Put location of first character of source string<br />
; in register A<br />
mov B,[second string pointer] ; Put location of first character of destination string<br />
; in register B<br />
loop:<br />
mov C,[A] ; Copy byte at address in register A to register C<br />
mov [B],C ; Copy byte in register C to the address in register B<br />
inc A ; Increment the address in register A to point to<br />
; the next byte<br />
inc B ; Increment the address in register B to point to<br />
; the next byte<br />
cmp C,#0 ; Compare the data we just copied to 0 (string end marker)<br />
jnz loop ; If it wasn't 0 then we have more to copy, so go back<br />
; and copy the next byte<br />
end: ; If we didn't loop then we must have finished,<br />
; so carry on with something else.</source><br />
<br />
The emulator might be running on a processor which is similar, but extremely good at copying strings, and the emulator knows it can take advantage of this.<br />
It might recognize the string copy sequence of instructions and decide to rewrite them more efficiently just before execution, to speed up the emulation.<br />
<br />
Say there is an instruction on our new processor called ''movs'', specifically designed to copy strings efficiently. Our theoretical movs instruction copies 16 bytes at a time, without having to load them into register C in between,<br />
but will stop if it copies a 0 byte (which marks the end of a string) and set the zero flag. It also knows that the addresses of the strings will be in registers A and B, so it increments A and B by 16 every time it executes, ready for the next copy.<br />
<br />
Our new recompiled code might look something like this:<br />
<br />
<source lang=asm>beginning:<br />
mov A,[first string pointer] ; Put location of first character of source string<br />
; in register A<br />
mov B,[second string pointer] ; Put location of first character of destination string<br />
; in register B<br />
loop:<br />
movs [B],[A] ; Copy 16 bytes at address in register A to address<br />
; in register B, then increment A and B by 16<br />
jnz loop ; If the zero flag isn't set then we haven't reached<br />
; the end of the string, so go back and copy some more.<br />
end: ; If we didn't loop then we must have finished,<br />
; so carry on with something else.</source><br />
<br />
There is an immediate speed benefit simply because the processor doesn't have to load so many instructions to do the same task, but also because the movs instruction is likely to be optimized by the processor designer to be more efficient than the sequence used in the first example. (For example, it may make better use of parallel execution in the processor to increment A and B while it is still copying bytes).<br />
<br />
===Gaming===<br />
*[[MAME]] uses dynamic recompilation in its CPU emulators for MIPS, SuperH, PowerPC and even the Voodoo graphics processing units.<br />
*[[1964]], an open-source [[Nintendo 64 emulators|Nintendo 64 emulator]] for x86 hardware.<br />
*Wii64, a [[Nintendo 64 emulators|Nintendo 64 emulator]] for the Wii.<br />
*WiiSX, a Sony PlayStation emulator for the Nintendo Wii.<br />
*[[Mupen64Plus]], an open-source, multi-platform, plugin-based Nintendo 64 emulator.<ref>[http://pandorawiki.org/Mupen64plus_dynamic_recompiler Mupen64Plus]</ref><br />
*[[Yabause]], an open-source multi-platform [[Sega Saturn emulators|Sega Saturn emulator]].<ref>[http://wiki.yabause.org/index.php5?title=SH2_dynamic_recompiler SH2]</ref><br />
*The backwards compatibility functionality of the [[Xbox 360 emulators|Xbox 360]] (i.e. running games written for the original [[Xbox emulators|Xbox]]) is widely assumed to use dynamic recompilation.<br />
*[[PPSSPP]], an open-source, multi-platform [[PlayStation Portable emulators| SonyPlayStation Portable emulator]]. Recompilers for both x86 and ARM.<br />
*PSEmu Pro, a [[PlayStation emulators|Sony PlayStation emulator]].<br />
*[[UltraHLE]], the first [[Nintendo 64 emulators|Nintendo 64 emulators]] emulator to fully run commercial games.<br />
*[[PCSX2]],<ref>[http://www.pcsx2.net PCSX2]</ref> an open-source, plugin-based [[PlayStation 2 emulators|Sony PlayStation 2 emulator]], has a recompiler called "microVU", the successor of "SuperVU".<br />
*[[Dolphin]], an open-source [[GameCube emulators|Nintendo GameCube]] and [[Wii emulators|Wii emulator]], has a dynarec option.<br />
*GCEmu,<ref>[http://sourceforge.net/projects/gcemu-project GCEmu]</ref> a [[GameCube emulators|Nintendo GameCube emulator]].<br />
*[[nullDC]], an open-source [[Sega Dreamcast emulators|Sega Dreamcast]] and [[Sega NAOMI and variants|Naomi emulator]] for [[wikipedia:x86|x86]].<br />
*GEM,<ref>{{cite web|url=http://gem.tni.nl/ |title=Gameboy Emulator for MSX &#124; The New Image |publisher=GEM |date= |accessdate=2014-01-12}}</ref> a [[Game Boy/Game Boy Color emulators|Nintendo Game Boy/Color]] emulator for [[MSX emulators|MSX]] uses an optimizing dynamic recompiler.<br />
*[[DeSmuME]],<ref>[http://desmume.org/2013/04/30/desmume-0-9-9-released/ DeSmuME v0.9.9]</ref> an open-source [[Nintendo DS emulators|Nintendo DS emulator]], has a dynarec option.<br />
*Soywiz's Psp,<ref>{{cite web|author=Publicado por Carlos Ballesteros Velasco |url=http://pspemu.soywiz.com/2013/07/release-soywizs-psp-emulator-2013-07-28.html |title=Soywiz's PSP Emulator: Release : Soywiz's Psp Emulator 2013-07-28 (r525) |publisher=Pspemu.soywiz.com |date=2013-07-28 |accessdate=2014-01-12}}</ref> a [[PlayStation Portable emulators| Sony PlayStation Portable emulator]], has a dynarec option.<br />
<br />
==See also==<br />
* Comparison of platform virtual machines<br />
* Binary translation<br />
* Just-in-time compilation<br />
* Binary recompiler<br />
<br />
==References==<br />
{{Reflist|30em}}<br />
<br />
==External links==<br />
*[http://web.archive.org/web/20051018182930/www.zenogais.net/Projects/Tutorials/Dynamic%20Recompiler.html Dynamic recompiler tutorial]<br />
*[http://emulatemii.com/wordpress/?tag=dynarec Blog posts about writing a MIPS to PPC dynamic recompiler]<br />
<br />
[[Category:Wikipedia copies]]</div>5.177.165.239https://emulation.gametechwiki.com/index.php?title=Dynamic_recompilation&diff=23791Dynamic recompilation2018-12-15T08:10:23Z<p>5.177.165.239: /* Gaming */</p>
<hr />
<div>'''Dynamic recompilation''' (sometimes abbreviated to '''dynarec''' or '''DRC''') is a feature of some emulators and virtual machines, where the system may recompile some part of a program ''during execution''. By compiling during execution, the system can tailor the generated code to reflect the program's run-time environment, and potentially produce more efficient code by exploiting information that is not available to a traditional static compiler.<br />
<br />
{{Main|wikipedia:Dynamic recompilation}}<br />
<br />
==Uses==<br />
Most dynamic recompilers are used to convert machine code between architectures at runtime. This is a task often needed in the emulation of legacy gaming platforms. In other cases, a system may employ dynamic recompilation as part of an adaptive optimization strategy to execute a portable program representation such as Java or .NET Common Language Runtime bytecodes. Full-speed debuggers also utilize dynarec to reduce the space overhead incurred in most deoptimization techniques, and other features such as dynamic thread migration.<br />
<br />
==Tasks==<br />
The main tasks a dynamic recompiler has to perform are:<br />
* Reading in machine code from the source platform<br />
* Emitting machine code for the target platform<br />
<br />
A dynamic recompiler may also perform some auxiliary tasks:<br />
* Managing a cache of recompiled code<br />
* Updating of elapsed cycle counts on platforms with cycle count registers<br />
* Management of interrupt checking<br />
* Providing an interface to virtualized support hardware for example a GPU<br />
* Optimizing higher level code structures to run efficiently on the target hardware (see below)<br />
<br />
==Example==<br />
Suppose a program is being run in an emulator and needs to copy a null-terminated string. The program is compiled originally for a very simple processor. This processor can only copy a byte at a time, and must do so by first reading it from the source string into a register, then writing it from that register into the destination string. The original program might look something like this:<br />
<br />
<source lang=asm><br />
beginning:<br />
mov A,[first string pointer] ; Put location of first character of source string<br />
; in register A<br />
mov B,[second string pointer] ; Put location of first character of destination string<br />
; in register B<br />
loop:<br />
mov C,[A] ; Copy byte at address in register A to register C<br />
mov [B],C ; Copy byte in register C to the address in register B<br />
inc A ; Increment the address in register A to point to<br />
; the next byte<br />
inc B ; Increment the address in register B to point to<br />
; the next byte<br />
cmp C,#0 ; Compare the data we just copied to 0 (string end marker)<br />
jnz loop ; If it wasn't 0 then we have more to copy, so go back<br />
; and copy the next byte<br />
end: ; If we didn't loop then we must have finished,<br />
; so carry on with something else.</source><br />
<br />
The emulator might be running on a processor which is similar, but extremely good at copying strings, and the emulator knows it can take advantage of this.<br />
It might recognize the string copy sequence of instructions and decide to rewrite them more efficiently just before execution, to speed up the emulation.<br />
<br />
Say there is an instruction on our new processor called ''movs'', specifically designed to copy strings efficiently. Our theoretical movs instruction copies 16 bytes at a time, without having to load them into register C in between,<br />
but will stop if it copies a 0 byte (which marks the end of a string) and set the zero flag. It also knows that the addresses of the strings will be in registers A and B, so it increments A and B by 16 every time it executes, ready for the next copy.<br />
<br />
Our new recompiled code might look something like this:<br />
<br />
<source lang=asm>beginning:<br />
mov A,[first string pointer] ; Put location of first character of source string<br />
; in register A<br />
mov B,[second string pointer] ; Put location of first character of destination string<br />
; in register B<br />
loop:<br />
movs [B],[A] ; Copy 16 bytes at address in register A to address<br />
; in register B, then increment A and B by 16<br />
jnz loop ; If the zero flag isn't set then we haven't reached<br />
; the end of the string, so go back and copy some more.<br />
end: ; If we didn't loop then we must have finished,<br />
; so carry on with something else.</source><br />
<br />
There is an immediate speed benefit simply because the processor doesn't have to load so many instructions to do the same task, but also because the movs instruction is likely to be optimized by the processor designer to be more efficient than the sequence used in the first example. (For example, it may make better use of parallel execution in the processor to increment A and B while it is still copying bytes).<br />
<br />
===Gaming===<br />
*[[MAME]] uses dynamic recompilation in its CPU emulators for MIPS, SuperH, PowerPC and even the Voodoo graphics processing units.<br />
*[[1964]], an open-source [[Nintendo 64 emulators|Nintendo 64 emulator]] for x86 hardware.<br />
*Wii64, a [[Nintendo 64 emulators|Nintendo 64 emulator]] for the Wii.<br />
*WiiSX, a Sony PlayStation emulator for the Nintendo Wii.<br />
*[[Mupen64Plus]], an open-source, multi-platform, plugin-based Nintendo 64 emulator.<ref>[http://pandorawiki.org/Mupen64plus_dynamic_recompiler Mupen64Plus]</ref><br />
*[[Yabause]], an open-source multi-platform [[Sega Saturn emulators|Sega Saturn emulator]].<ref>[http://wiki.yabause.org/index.php5?title=SH2_dynamic_recompiler SH2]</ref><br />
*The backwards compatibility functionality of the [[Xbox 360 emulators|Xbox 360]] (i.e. running games written for the original [[Xbox emulators|Xbox]]) is widely assumed to use dynamic recompilation.<br />
*[[PPSSPP]], an open-source, multi-platform [[PlayStation Portable emulators| SonyPlayStation Portable emulator]]. Recompilers for both x86 and ARM.<br />
*PSEmu Pro, a [[PlayStation emulators|Sony PlayStation emulator]].<br />
*[[UltraHLE]], the first [[Nintendo 64 emulators|Nintendo 64 emulators]] emulator to fully run commercial games.<br />
*[[PCSX2]],<ref>[http://www.pcsx2.net PCSX2]</ref> an open-source, plugin-based [[Sony PlayStation 2 emulators|PlayStation 2 emulator]], has a recompiler called "microVU", the successor of "SuperVU".<br />
*[[Dolphin]], an open-source [[GameCube emulators|Nintendo GameCube]] and [[Wii emulators|Wii emulator]], has a dynarec option.<br />
*GCEmu,<ref>[http://sourceforge.net/projects/gcemu-project GCEmu]</ref> a [[GameCube emulators|Nintendo GameCube emulator]].<br />
*[[nullDC]], an open-source [[Sega Dreamcast emulators|Sega Dreamcast]] and [[Sega NAOMI and variants|Naomi emulator]] for [[wikipedia:x86|x86]].<br />
*GEM,<ref>{{cite web|url=http://gem.tni.nl/ |title=Gameboy Emulator for MSX &#124; The New Image |publisher=GEM |date= |accessdate=2014-01-12}}</ref> a [[Game Boy/Game Boy Color emulators|Nintendo Game Boy/Color]] emulator for [[MSX emulators|MSX]] uses an optimizing dynamic recompiler.<br />
*[[DeSmuME]],<ref>[http://desmume.org/2013/04/30/desmume-0-9-9-released/ DeSmuME v0.9.9]</ref> an open-source [[Nintendo DS emulators|Nintendo DS emulator]], has a dynarec option.<br />
*Soywiz's Psp,<ref>{{cite web|author=Publicado por Carlos Ballesteros Velasco |url=http://pspemu.soywiz.com/2013/07/release-soywizs-psp-emulator-2013-07-28.html |title=Soywiz's PSP Emulator: Release : Soywiz's Psp Emulator 2013-07-28 (r525) |publisher=Pspemu.soywiz.com |date=2013-07-28 |accessdate=2014-01-12}}</ref> a [[PlayStation Portable emulators| Sony PlayStation Portable emulator]], has a dynarec option.<br />
<br />
==See also==<br />
* Comparison of platform virtual machines<br />
* Binary translation<br />
* Just-in-time compilation<br />
* Binary recompiler<br />
<br />
==References==<br />
{{Reflist|30em}}<br />
<br />
==External links==<br />
*[http://web.archive.org/web/20051018182930/www.zenogais.net/Projects/Tutorials/Dynamic%20Recompiler.html Dynamic recompiler tutorial]<br />
*[http://emulatemii.com/wordpress/?tag=dynarec Blog posts about writing a MIPS to PPC dynamic recompiler]<br />
<br />
[[Category:Wikipedia copies]]</div>5.177.165.239https://emulation.gametechwiki.com/index.php?title=Dynamic_recompilation&diff=23790Dynamic recompilation2018-12-15T08:09:24Z<p>5.177.165.239: Removed redlinks, spelling, PCSX 2 -> PCSX2</p>
<hr />
<div>'''Dynamic recompilation''' (sometimes abbreviated to '''dynarec''' or '''DRC''') is a feature of some emulators and virtual machines, where the system may recompile some part of a program ''during execution''. By compiling during execution, the system can tailor the generated code to reflect the program's run-time environment, and potentially produce more efficient code by exploiting information that is not available to a traditional static compiler.<br />
<br />
{{Main|wikipedia:Dynamic recompilation}}<br />
<br />
==Uses==<br />
Most dynamic recompilers are used to convert machine code between architectures at runtime. This is a task often needed in the emulation of legacy gaming platforms. In other cases, a system may employ dynamic recompilation as part of an adaptive optimization strategy to execute a portable program representation such as Java or .NET Common Language Runtime bytecodes. Full-speed debuggers also utilize dynarec to reduce the space overhead incurred in most deoptimization techniques, and other features such as dynamic thread migration.<br />
<br />
==Tasks==<br />
The main tasks a dynamic recompiler has to perform are:<br />
* Reading in machine code from the source platform<br />
* Emitting machine code for the target platform<br />
<br />
A dynamic recompiler may also perform some auxiliary tasks:<br />
* Managing a cache of recompiled code<br />
* Updating of elapsed cycle counts on platforms with cycle count registers<br />
* Management of interrupt checking<br />
* Providing an interface to virtualized support hardware for example a GPU<br />
* Optimizing higher level code structures to run efficiently on the target hardware (see below)<br />
<br />
==Example==<br />
Suppose a program is being run in an emulator and needs to copy a null-terminated string. The program is compiled originally for a very simple processor. This processor can only copy a byte at a time, and must do so by first reading it from the source string into a register, then writing it from that register into the destination string. The original program might look something like this:<br />
<br />
<source lang=asm><br />
beginning:<br />
mov A,[first string pointer] ; Put location of first character of source string<br />
; in register A<br />
mov B,[second string pointer] ; Put location of first character of destination string<br />
; in register B<br />
loop:<br />
mov C,[A] ; Copy byte at address in register A to register C<br />
mov [B],C ; Copy byte in register C to the address in register B<br />
inc A ; Increment the address in register A to point to<br />
; the next byte<br />
inc B ; Increment the address in register B to point to<br />
; the next byte<br />
cmp C,#0 ; Compare the data we just copied to 0 (string end marker)<br />
jnz loop ; If it wasn't 0 then we have more to copy, so go back<br />
; and copy the next byte<br />
end: ; If we didn't loop then we must have finished,<br />
; so carry on with something else.</source><br />
<br />
The emulator might be running on a processor which is similar, but extremely good at copying strings, and the emulator knows it can take advantage of this.<br />
It might recognize the string copy sequence of instructions and decide to rewrite them more efficiently just before execution, to speed up the emulation.<br />
<br />
Say there is an instruction on our new processor called ''movs'', specifically designed to copy strings efficiently. Our theoretical movs instruction copies 16 bytes at a time, without having to load them into register C in between,<br />
but will stop if it copies a 0 byte (which marks the end of a string) and set the zero flag. It also knows that the addresses of the strings will be in registers A and B, so it increments A and B by 16 every time it executes, ready for the next copy.<br />
<br />
Our new recompiled code might look something like this:<br />
<br />
<source lang=asm>beginning:<br />
mov A,[first string pointer] ; Put location of first character of source string<br />
; in register A<br />
mov B,[second string pointer] ; Put location of first character of destination string<br />
; in register B<br />
loop:<br />
movs [B],[A] ; Copy 16 bytes at address in register A to address<br />
; in register B, then increment A and B by 16<br />
jnz loop ; If the zero flag isn't set then we haven't reached<br />
; the end of the string, so go back and copy some more.<br />
end: ; If we didn't loop then we must have finished,<br />
; so carry on with something else.</source><br />
<br />
There is an immediate speed benefit simply because the processor doesn't have to load so many instructions to do the same task, but also because the movs instruction is likely to be optimized by the processor designer to be more efficient than the sequence used in the first example. (For example, it may make better use of parallel execution in the processor to increment A and B while it is still copying bytes).<br />
<br />
===Gaming===<br />
*[[MAME]] uses dynamic recompilation in its CPU emulators for MIPS, SuperH, PowerPC and even the Voodoo graphics processing units.<br />
*[[1964]], an open-source [[Nintendo 64 emulators|Nintendo 64 emulator]] for x86 hardware.<br />
*Wii64, a [[Nintendo 64 emulators|Nintendo 64 emulator]] for the Wii.<br />
*WiiSX, a Sony PlayStation emulator for the Nintendo Wii.<br />
*[[Mupen64Plus]], an open-source, multi-platform, plugin-based Nintendo 64 emulator.<ref>[http://pandorawiki.org/Mupen64plus_dynamic_recompiler Mupen64Plus]</ref><br />
*[[Yabause]], an open-source multi-platform [[Sega Saturn emulators|Sega Saturn emulator]].<ref>[http://wiki.yabause.org/index.php5?title=SH2_dynamic_recompiler SH2]</ref><br />
*The backwards compatibility functionality of the [[Xbox 360 emulators|Xbox 360]] (i.e. running games written for the original [[Xbox emulators|Xbox]]) is widely assumed to use dynamic recompilation.<br />
*[[PPSSPP]], an open-source, multi-platform [[Sony PlayStation Portable emulators|PlayStation Portable emulator]]. Recompilers for both x86 and ARM.<br />
*PSEmu Pro, a [[Sony PlayStation emulators|PlayStation emulator]].<br />
*[[UltraHLE]], the first [[Nintendo 64 emulators|Nintendo 64 emulators]] emulator to fully run commercial games.<br />
*[[PCSX2]],<ref>[http://www.pcsx2.net PCSX2]</ref> an open-source, plugin-based [[Sony PlayStation 2 emulators|PlayStation 2 emulator]], has a recompiler called "microVU", the successor of "SuperVU".<br />
*[[Dolphin]], an open-source [[GameCube emulators|Nintendo GameCube]] and [[Wii emulators|Wii emulator]], has a dynarec option.<br />
*GCEmu,<ref>[http://sourceforge.net/projects/gcemu-project GCEmu]</ref> a [[GameCube emulators|Nintendo GameCube emulator]].<br />
*[[nullDC]], an open-source [[Sega Dreamcast emulators|Sega Dreamcast]] and [[Sega NAOMI and variants|Naomi emulator]] for [[wikipedia:x86|x86]].<br />
*GEM,<ref>{{cite web|url=http://gem.tni.nl/ |title=Gameboy Emulator for MSX &#124; The New Image |publisher=GEM |date= |accessdate=2014-01-12}}</ref> a [[Game Boy/Game Boy Color emulators|Nintendo Game Boy/Color]] emulator for [[MSX emulators|MSX]] uses an optimizing dynamic recompiler.<br />
*[[DeSmuME]],<ref>[http://desmume.org/2013/04/30/desmume-0-9-9-released/ DeSmuME v0.9.9]</ref> an open-source [[Nintendo DS emulators|Nintendo DS emulator]], has a dynarec option.<br />
*Soywiz's Psp,<ref>{{cite web|author=Publicado por Carlos Ballesteros Velasco |url=http://pspemu.soywiz.com/2013/07/release-soywizs-psp-emulator-2013-07-28.html |title=Soywiz's PSP Emulator: Release : Soywiz's Psp Emulator 2013-07-28 (r525) |publisher=Pspemu.soywiz.com |date=2013-07-28 |accessdate=2014-01-12}}</ref> a [[Sony PlayStation Portable emulators|PlayStation Portable emulator]], has a dynarec option.<br />
<br />
==See also==<br />
* Comparison of platform virtual machines<br />
* Binary translation<br />
* Just-in-time compilation<br />
* Binary recompiler<br />
<br />
==References==<br />
{{Reflist|30em}}<br />
<br />
==External links==<br />
*[http://web.archive.org/web/20051018182930/www.zenogais.net/Projects/Tutorials/Dynamic%20Recompiler.html Dynamic recompiler tutorial]<br />
*[http://emulatemii.com/wordpress/?tag=dynarec Blog posts about writing a MIPS to PPC dynamic recompiler]<br />
<br />
[[Category:Wikipedia copies]]</div>5.177.165.239https://emulation.gametechwiki.com/index.php?title=EKA2L1&diff=23789EKA2L12018-12-15T08:02:04Z<p>5.177.165.239: </p>
<hr />
<div>{{stub}}<br />
'''EKA2L1''' is a [[High/Low level emulation|high-level]] [[Cellphone emulators#N-Gage (Nokia)|Symbian OS emulator]].<br />
[[Category:Emulators]]<br />
[[Category:Windows emulation software]]</div>5.177.165.239https://emulation.gametechwiki.com/index.php?title=Template:Apple&diff=23783Template:Apple2018-12-15T07:49:52Z<p>5.177.165.239: </p>
<hr />
<div><includeonly><center><br />
<div style="box-shadow: 0 0 .3em #999; border-radius: .2em; margin: .5em 0 .5em 0; padding: 1px;font-size:110%;width:60%;"><br />
<div style="padding: .8em;"><br />
{|<br />
! scope="col" colspan="1" style="text-align:center;"|Apple Inc.<br />
|-<br />
|[[File:1998 apple logo.jpg|90px|left]]<br />
|'''Desktop:''' [[Apple I emulators|Apple I]] • [[Apple II emulators|Apple ][ Line]] • [[Apple /// emulators|apple /// Line]]<br>'''Mobile:''' [[iOS emulators|iOS]]<br />
|}<br />
</div></div><br />
</center></includeonly><noinclude>[[Category:Templates]]</noinclude></div>5.177.165.239https://emulation.gametechwiki.com/index.php?title=Apple_II_line&diff=23782Apple II line2018-12-15T07:49:12Z<p>5.177.165.239: </p>
<hr />
<div>{{Infobox console<br />
|title = Apple ][<br />
|logo = AppleIIwithdd.png<br />
|image = A2p.png<br />
|image2 = Apple IIe 001b.jpg<br />
|image3 = Apple IIc with monitor.jpg<br />
|image4 = A2e.png<br />
|image5 = A2plat.png<br />
|image6 = Apple IIc Plus (front).jpg<br />
|imagecaption = First, Apple ][. <br> Second, Apple ][+. <br> Third, Apple //e. <br> Fourth, Apple IIc. <br> Fifth, Apple //e Enhanced. <br> Sixth, Apple //e Platinum. <br> Seventh, Apple IIc Plus.<br />
|developer = Apple Computer, Inc.<br />
|type = [[:Category:Computers|Computers]]<br />
|generation = <br />
|release = June 1977<br />
|discontinued = November 1993<br />
|predecessor = [[Apple I emulators|Apple I]]<br />
|successor = [[Apple /// emulators|apple ///]]<br />
|emulated = {{✓}}<br />
}}<br />
The Apple ][ line of computers is the line that put Apple on the map and is now one of Apple's most successful line of computers. Steve Wozniak wanted to make a computer that was, "...small, reliable, convenient to use and inexpensive."<br />
==Emulators==<br />
{| class="wikitable" style="text-align:center;"<br />
! scope="col"|Name<br />
! scope="col"|Operating System(s)<br />
! scope="col"|Latest Version<br />
! scope="col"|Apple ][ Emulation<br />
! scope="col"|Apple ][+ Emulation<br />
! scope="col"|Apple //e Emulation<br />
! scope="col"|Apple IIc Emulation<br />
! scope="col"|Apple //e Enhanced Emulation<br />
! scope="col"|Apple //e Platinum Emulation<br />
! scope="col"|Apple IIc Plus Emulation<br />
! scope="col"|Active<br />
! scope="col"|[[Recommended Emulators|Recommended]]<br />
|-<br />
!colspan="12"|PC<br />
|-<br />
|[[MAME]]<br />
|Multi-platform<br />
|[http://www.mamedev.org/release.html {{MAMEVer}}]<br />
|{{✓}} ||{{✓}} ||{{✓}} ||{{✓}} ||{{✓}} ||{{✓}} ||{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[https://github.com/AppleWin/AppleWin AppleWin]<br />
|Windows<br />
|[https://github.com/AppleWin/AppleWin/releases v1.27.12.0]<br />
|{{✓}} ||{{✓}} ||{{✓}} ||{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[https://web.archive.org/web/20071206014650/http://www.dridus.com:80/~nyef/darcnes/ DarcNES]<br />
|Multi-platform<br />
|[https://segaretro.org/DarcNES 9b0401/9b0313]<br />
|{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}<br />
|-<br />
|[http://kegs.sourceforge.net/ KEGS]<br />
|Windows<br />
|[http://kegs.sourceforge.net/ v0.91]<br />
|{{✓}} ||{{✓}} ||{{✓}} ||{{✗}} ||{{✓}} ||{{✓}} ||{{✗}} ||{{✗}} ||?<br />
|-<br />
|-<br />
|[[BizHawk]]<br />
|Windows<br />
|[https://github.com/TASVideos/BizHawk/releases 2.3.1]<br />
|{{✓}} ||? ||{{✓}} ||{{✗}} ||{{✓}} ||{{✓}} ||{{✗}} ||{{✓}} ||?<br />
|-<br />
!colspan="12"|Consoles<br />
|-<br />
|[http://wiibrew.org/wiki/WiiApple WiiApple]<br />
|[[Wii emulators|Wii]]<br />
|[http://tinyhack.com/wii/wiiapple/wiiapple.zip 0.07]<br />
|{{✓}} ||{{✗}} ||{{✓}} ||{{✗}} ||? ||? ||{{✗}} ||{{✗}} ||{{✗}}<br />
|-<br />
|[http://dl.qj.net/Apple-II-Portable-v0.1-PSP-Emulators/pg/12/fid/171/catid/117 Apple II Portable]<br />
|[[PlayStation Portable emulators|PlayStation Portable]]<br />
|[https://psp.brewology.com/downloads/download.php?id=4081&mcid=1 0.1-0173]<br />
|{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}<br />
<br />
|-<br />
|[https://www.zophar.net/consoles/nds/apple2/a2ds.html A2DS]<br />
|[[Nintendo DS emulators|Nintendo DS]]<br />
|? ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}<br />
|-<br />
!colspan="12"|Mobile<br />
|-<br />
|[https://www.scullinsteel.com/apple2/ AppleIIjs]<br />
|Web Browser (Java)<br />
|? ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✓}} ||{{✗}}<br />
|-<br />
|[http://www.virtualapple.org/ Virtual Apple II]<br />
|Web Browser<br />
|4.5<br />
|{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}<br />
|-<br />
|}<br />
<br />
==Models==<br />
====[[wikipedia:Apple_II|Apple ][]]====<br />
The Apple ][ was released in June of '77 and retailed for $1,298 ($5,407.66 in 2018 money) and had a 6502 CPU at 1.023 MHz, 4KB of RAM, a cassette tape for storage, a 1-bit speaker, 7 expansion slots, it's keyboard was only uppercase, a low-res 40x48 16-color graphics mode, and a hi-res 280x192 6-color graphics mode.<br />
====[[wikipedia:Apple_II_Plus|Apple ][+]]====<br />
The Apple ][+ was released in June of '79 and retailed for $1,195 ($4,179.77 in 2018 money) and had the same 6502 CPU, 16KB of RAM, the same graphics modes, speaker, expansion slots, and keyboard as the original.<br />
<br />
====[[wikipedia:Apple_IIe|Apple //e]]====<br />
The Apple //e was released in January of '83 and had the same CPU and expansion slots as the Apple ][, 64KB of RAM, had a full ASCII keyboard, it introduced the double-low-resolution graphics mode which had a resolution of 80x48 in 16-color, and a double-high-resolution of 560×192 in 16 colors.<br />
====[[wikipedia:Apple_IIc|Apple IIc]]====<br />
The Apple IIc was released on April 24, 1984 and retailed for $1,295 ($3,176.39 in 2018 money) and had a 65C02 CPU at 1.023 MHz, 128KB of RAM, same graphics modes, speaker, as the Apple //e, it had built-in storage, and a built in 140KB single sided 5.25-inch floppy drive. It did not have any expansion slots.<br />
====[[wikipedia:Apple_IIe#Enhanced IIe|Apple //e Enhanced]]====<br />
The Apple //e Enhanced was released in March of '85 and was a Apple //e but with a 65C02 CPU at 1.023 MHz.<br />
====[[wikipedia:Apple_IIe#Platinum IIe|Apple //e Platinum]]====<br />
The Apple //e Platinum was just an Apple //e Enhanced but with a full numeric keypad and 128KB of RAM.<br />
====[[wikipedia:Apple_IIc_Plus|Apple IIc Plus]]====<br />
The Apple IIc Plus was released in April of '88 and retailed for $675 ($1,424.85 in 2018 money) and had a 65C02 CPU at 1MHz or 4MHz (it was user selectable for older programs), 8KB SRAM cache, same RAM, graphics modes, speaker as the Apple //e Platinum, and a built in 800KB double sided 3.5-inch floppy drive.<br />
{{Apple}}<br />
[[Category:Computers]]</div>5.177.165.239https://emulation.gametechwiki.com/index.php?title=Emulators_on_TI_calculators&diff=23769Emulators on TI calculators2018-12-15T07:21:00Z<p>5.177.165.239: </p>
<hr />
<div>There are multiple Texas Instruments calculators that are capable of running emulators. Each of these and their emulators are listed below.<br />
<br />
=TI-Nspire Series=<br />
The TI-Nspire CX is the most powerful calculator produced by Texas Instruments, and because of this, there are many emulators that run on it. In order to get emulators to run, [http://ndless.me/ Ndless] must be installed on the device. Note that while many programs for the Nspire CX will also work the Nspire, some will not work due to the Nspire having less RAM and a grayscale display.<br />
<br />
==Nintendo==<br />
<br />
===NES===<br />
[https://www.ticalc.org/archives/files/fileinfo/432/43217.html NESpire]<br />
<br />
===SNES===<br />
[https://www.ticalc.org/archives/files/fileinfo/465/46538.html PocketSNES]<br />
<br />
===Game Boy / Color===<br />
[https://www.ticalc.org/archives/files/fileinfo/426/42630.html gbc4nspire]<br />
<br />
===Game Boy Advance===<br />
[https://www.ticalc.org/archives/files/fileinfo/449/44971.html gbSP-Nspire]<br />
<br />
==SEGA==<br />
<br />
===Genesis===<br />
[https://www.ticalc.org/archives/files/fileinfo/465/46547.html PicoDrive]<br />
<br />
===Master System / Game Gear===<br />
[https://www.ticalc.org/archives/files/fileinfo/467/46743.html SMS_Plus]<br />
<br />
===SG-1000===<br />
{{no known emulators}}<br />
<br />
==Other Consoles==<br />
<br />
===WonderSwan===<br />
[https://www.ticalc.org/archives/files/fileinfo/464/46494.html Gameblabla's Oswan]<br />
<br />
===PC Engine / TurboGrafx-16===<br />
[https://www.ticalc.org/archives/files/fileinfo/467/46744.html Temper]<br />
<br />
===Vectrex===<br />
[https://www.ticalc.org/archives/files/fileinfo/465/46508.html vecx]<br />
<br />
==Computers==<br />
<br />
===Macintosh Plus===<br />
[https://www.ticalc.org/archives/files/fileinfo/453/45317.html Mini vMac]<br />
<br />
=TI-84 Series=<br />
Between the TI-84+, the TI-84+ Silver Edition, the TI-84+ C Silver Edition, and the TI-84+ CE, there a few emulators that run on this family of calculators. Most programs for the TI-84+ will also run on the TI-83+ and TI-83+ SE, and they are included here for completeness.<br />
<br />
==Nintendo==<br />
<br />
===Game Boy/Color===<br />
<br />
{| class="wikitable" style="text-align:center;"<br />
! scope="col"|Name<br />
! scope="col"|Link<br />
! scope="col"|83+<br />
! scope="col"|83+ SE<br />
! scope="col"|84+<br />
! scope="col"|84+ SE<br />
! scope="col"|84+ C SE<br />
! scope="col"|84+ CE<br />
|-<br />
|TI-Boy SE<br />
|[https://www.ticalc.org/archives/files/fileinfo/419/41990.html Link]<br />
|{{✗}}<br />
|{{✓}}<br />
|{{✓}}<br />
|{{✓}}<br />
|{{✗}}<br />
|{{✗}}<br />
|-<br />
|TI-Boy CE<br />
|[https://github.com/calc84maniac/tiboyce/releases Link]<br />
|{{✗}}<br />
|{{✗}}<br />
|{{✗}}<br />
|{{✗}}<br />
|{{✗}}<br />
|{{✓}}<br />
|}<br />
<br />
==Computers==<br />
<br />
===DOS===<br />
<br />
{| class="wikitable" style="text-align:center;"<br />
! scope="col"|Name<br />
! scope="col"|Link<br />
! scope="col"|83+<br />
! scope="col"|83+ SE<br />
! scope="col"|84+<br />
! scope="col"|84+ SE<br />
! scope="col"|84+ C SE<br />
! scope="col"|84+ CE<br />
|-<br />
|CalcDOS<br />
|[https://www.ticalc.org/archives/files/fileinfo/319/31908.html Link]<br />
|{{✓}}<br />
|{{✓}}<br />
|{{✓}}<br />
|{{✓}}<br />
|{{✗}}<br />
|{{✗}}<br />
|}<br />
[[Category:Emulators on consoles]]</div>5.177.165.239https://emulation.gametechwiki.com/index.php?title=Neo_Geo_Pocket_emulators&diff=23768Neo Geo Pocket emulators2018-12-15T07:15:20Z<p>5.177.165.239: </p>
<hr />
<div>{{Infobox console<br />
|title = SNK Neo Geo Pocket/Color<br />
|logo = neogeopocket.png<br />
|developer = SNK<br />
|type = [[:Category:Consoles|Handheld game console]]<br />
|generation = [[:Category:Fifth-generation video game consoles|Fifth generation]]<br />
|release = 1998<br />
|discontinued = 1999<br />
|emulated = {{✓}}<br />
}}<br />
The '''Neo Geo Pocket''' (NGP) and '''[[gametech:Neo Geo Pocket Color|Neo Geo Pocket Color]]''' (NGPC) are fifth-generation handheld game consoles produced by [[wikipedia:SNK|SNK Playmore]] in 1998. The NGP was only released in Japan, due to its low popularity, however the NGPC was released worldwide. It was the last handheld console produced by SNK.<br />
<br />
==Emulators==<br />
{| class="wikitable" style="text-align:center;"<br />
|-<br />
! scope="col"|Name<br />
! scope="col"|Operating System(s)<br />
! scope="col"|Latest Version<br />
! scope="col"|[[Libretro|Libretro Core]]<br />
! scope="col"|Active<br />
! scope="col"|NGP<br />
! scope="col"|NGPC<br />
! scope="col"|[[Recommended Emulators|Recommended]]<br />
|-<br />
! colspan="8"|PC<br />
|-<br />
|[[Mednafen]]<br />
|Multi-platform<br />
|[{{MednafenURL|releases/}} {{MednafenVer}}]<br />
|{{✓}} ||{{✓}} ||{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[[MAME]]<br />
|Multi-platform<br />
|[http://www.mamedev.org/release.html {{MAMEVer}}]<br />
|{{✓}} ||{{✓}} ||{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|vdmgr<br />
|Windows<br />
|[http://www.geocities.jp/g_lsluk/download.html 0.1.8]<br />
|{{✗}} ||{{✓}} ||{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|NeoGPC<br />
|Windows<br />
|[https://code.google.com/p/neogpc/downloads/list 1.1]<br />
|{{✗}} ||{{✗}} ||? ||{{✓}} ||{{✗}}<br />
|-<br />
|[[NeoPop]]<br />
|Windows<br />
|[http://www.emulator-zone.com/doc.php/misc/neopop.html 1.06b]<br />
|{{✗}} ||{{✗}} ||{{✓}} ||{{✓}} ||{{✗}}<br />
|}<br />
<br />
[[Category:Consoles]]<br />
[[Category:Fifth-generation video game consoles]]</div>5.177.165.239https://emulation.gametechwiki.com/index.php?title=Neo_Geo_and_variants&diff=23767Neo Geo and variants2018-12-15T07:14:26Z<p>5.177.165.239: </p>
<hr />
<div>{{Infobox console<br />
|title = SNK Neo Geo<br />
|logo = Neo_Geo_full_on.png<br />
|image = Neo-Geo-AES-Console-Set.jpg<br />
|image2 = Neo-Geo-CD-Console-Set.jpg<br />
|imagecaption = '''Top:''' The Neo Geo MVS.<br/>'''Middle:''' The Neo Geo AES.<br/>'''Bottom:''' The Neo Geo CD.<br />
|developer = SNK<br />
|type = [[:Category:Consoles|Home video game console]], [[:Category:Arcade|arcade system board]]<br />
|generation = [[:Category:Fourth-generation video game consoles|Fourth generation]]<br />
|release = 1990<br />
|discontinued = 2004<br />
|emulated = {{✓}}<br />
}}<br />
The '''[[wikipedia:Neo_Geo_(system)|Neo Geo AES]]''' (Advanced Entertainment System) home console and the '''[[gametech:Neo-Geo|Neo Geo MVS]]''' (Multi Video System) arcade system was first released by [[wikipedia:SNK|SNK Playmore]] on January 1990 in Japan. MVS and AES are technically the same systems, but their cartridges are not compatible with each other due to a different layout. <br />
<br />
Neo Geo CD (NG-CD) was the CD version of the AES (not compatible with the game cartridges)<br />
<br />
Hyper Neo-Geo 64 (HNG-64) was the successor to the Neo-Geo with 3D graphics, no home console release.<br />
<br />
When emulating Neo-Geo games with RetroArch, the Neo-Geo BIOS files need to be in the game directory.<br />
<br />
==Emulators==<br />
{| class="wikitable" style="text-align:center;"<br />
! scope="col"|Name<br />
! scope="col"|Operating System(s)<br />
! scope="col"|Latest Version<br />
! scope="col"|NG<br />
! scope="col"|NG-CD<br />
! scope="col"|HNG-64<br />
! scope="col"|[[libretro|Libretro Core]]<br />
! scope="col"|Active<br />
! scope="col"|[[Recommended Emulators|Recommended]]<br />
|-<br />
! colspan="9"|PC<br />
|-<br />
|[[FinalBurn Alpha]]<br />
|Windows<br />
|[http://www.fbalpha.com/downloads/ 0.2.97.43]<br />
|{{✓}} ||{{✓}} ||{{~}} ||{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[[MAME]]<br />
|Multi-platform<br />
|[http://www.mamedev.org/release.html {{MAMEVer}}]<br />
|{{✓}} ||{{✓}} ||{{✓}} ||{{✓}}<ref group=N>As 0.153 (2014), 0.139 (2010), 0.78 (2003)</ref> ||{{✓}} ||{{✓}}<br />
|-<br />
|[[Raine]]<br />
|Windows, Linux, macOS<br />
|[http://raine.1emulation.com/download/latest.html 0.64.15]<br />
|{{✓}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[https://web.archive.org/web/20141105014113/http://www.xe-emulator.com/ Xe]<br />
|Windows, Linux<br />
|[https://web.archive.org/web/20141022230129/http://www.xe-emulator.com/index.php?m=download 2.16.2]<br />
|{{✓}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}<br />
|-<br />
|[[Kawaks]]<br />
|Windows<br />
|[http://cps2shock.emu-france.info/download.html 1.65]<br />
|{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}<br />
|-<br />
|GnGeo<br />
|Linux<br />
|[https://salsa.debian.org/coringao-guest/gngeo Git]<br />
|{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}<br />
|-<br />
! colspan="9"|Consoles<br />
|-<br />
|GxGeo<br />
|[[Wii emulators|Wii]]<br />
|[https://code.google.com/archive/p/gxgeo r23]<br />
|{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✓}}<br />
|-<br />
|UOmvspsp<br />
|[[PlayStation Portable emulators|PlayStation Portable]]<br />
|[http://www.mediafire.com/?2qzaz2089f99cvk 2.3.1]<br />
|{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✓}}<br />
|-<br />
|UOncdzpsp<br />
|[[PlayStation Portable emulators|PlayStation Portable]]<br />
|[http://www.mediafire.com/?883tfd76v4qckz2 2.3.1]<br />
|{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✓}}<br />
|-<br />
|[[Virtual Console]]<br />
|[[Wii emulators|Wii]]<br />
|n/a<br />
|{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✓}} ||{{✓}}<br />
|}<br />
<br />
<references group=N /><br />
<br />
==Emulation issues==<br />
* Hyper Neo-Geo 64 is poorly emulated.<br />
<br />
[[Category:Consoles]]<br />
[[Category:Fourth-generation video game consoles]]<br />
[[Category:Arcade]]<br />
[[Category:Arcade emulators]]</div>5.177.165.239https://emulation.gametechwiki.com/index.php?title=WonderSwan_emulators&diff=23766WonderSwan emulators2018-12-15T07:12:03Z<p>5.177.165.239: </p>
<hr />
<div>{{Infobox console<br />
|title = Bandai WonderSwan/Color<br />
|logo = WonderSwan-Black-Left.jpg<br />
|image = WonderSwan-Color-Blue-Left.jpg<br />
|image2 = WonderSwanCrystal.png<br />
|image3 = SwanCrystal-Wine-Left.jpg<br />
|imagecaption = '''Top:''' The WonderSwan.<br/>'''Middle:''' The WonderSwan Color.<br/>'''Bottom:''' The SwanCrystal.<br />
|developer = Bandai<br />
|type = [[:Category:Consoles|Handheld game console]]<br />
|generation = [[:Category:Fifth-generation video game consoles|Fifth generation]]<br />
|release = 1999 <small>(WonderSwan)</small><br/>2000 <small>(WonderSwan Color)</small><br/>2002 <small>(Swan Crystal)</small><br />
|discontinued = 2003<br />
|emulated = {{✓}}<br />
}}<br />
The '''WonderSwan''', '''WonderSwan Color''' and '''SwanCrystal''' are fifth-generation handheld game consoles produced by [[wikipedia:Bandai|Bandai]] in 1999, 2000 and 2002, respectively. It is the brainchild of Game Boy/Color creator, [[wikipedia:Gunpei_Yokoi|Gunpei Yokoi]]. There were three versions eventually released: A black-and-white version, a color version, and a '''Crystal''' version with an improved screen.<br />
<br />
==Emulators==<br />
{| class="wikitable" style="text-align:center;"<br />
|-<br />
! scope="col"|Name<br />
! scope="col"|Operating System(s)<br />
! scope="col"|Latest Version<br />
! scope="col"|[[Libretro|Libretro Core]]<br />
! scope="col"|Active<br />
! scope="col"|WS<br />
! scope="col"|WSC<br />
! scope="col"|[[Recommended Emulators|Recommended]]<br />
|-<br />
! colspan="8"|PC<br />
|-<br />
|[[Mednafen]]<br />
|Multi-platform<br />
|[{{MednafenURL|releases/}} {{MednafenVer}}]<br />
|{{✓}} ||{{✓}} ||{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[[higan]]<br />
|Multi-platform<br />
|[http://byuu.org/emulation/higan/ {{higanVer}}]<br />
|{{✓}} ||{{✓}} ||{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[[BizHawk]]<br />
|Windows<br />
|[http://tasvideos.org/BizHawk/ReleaseHistory.html {{BizHawkVer}}]<br />
|{{✗}} ||{{✓}} ||{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[[Cygne]]<br />
|Windows<br />
|[http://cygne.emuunlim.com/ 2.1a]<br />
|{{✗}} ||{{✗}} ||{{✓}} ||{{✓}} ||{{✗}}<br />
|-<br />
|[[MAME]]<br />
|Multi-platform<br />
|[http://www.mamedev.org/release.html {{MAMEVer}}]<br />
|{{✓}} ||{{✓}} ||{{✓}} ||{{✓}} ||{{✗}}<br />
|-<br />
|[http://sourceforge.jp/projects/oswan/devel/ Oswan]<br />
|Windows<br />
|[http://sourceforge.jp/projects/oswan/releases/p5046 1.7.3]<br />
|{{✗}} ||{{✗}} ||{{✓}} ||{{✓}} ||{{✗}}<br />
|-<br />
|[https://web.archive.org/web/20141105014113/http://www.xe-emulator.com/ Xe]<br />
|Windows, Linux<br />
|[https://web.archive.org/web/20141022230129/http://www.xe-emulator.com/index.php?m=download 2.16.2]<br />
|{{✗}} ||{{✗}} ||{{✓}} ||{{✓}} ||{{✗}}<br />
|}<br />
<br />
[[Category:Consoles]]<br />
[[Category:Fifth-generation video game consoles]]</div>5.177.165.239https://emulation.gametechwiki.com/index.php?title=WonderSwan_emulators&diff=23765WonderSwan emulators2018-12-15T07:11:15Z<p>5.177.165.239: </p>
<hr />
<div>{{Infobox console<br />
|title = Bandai WonderSwan/Color<br />
|logo = WonderSwan-Black-Left.jpg<br />
|image = WonderSwan-Color-Blue-Left.jpg<br />
|image2 = WonderSwanCrystal.png<br />
|image3 = SwanCrystal-Wine-Left.jpg<br />
|imagecaption = '''Top:''' The WonderSwan.<br/>'''Middle:''' The WonderSwan Color.<br/>'''Bottom:''' The SwanCrystal.<br />
|developer = Bandai<br />
|type = [[:Category:Consoles|Handheld game console]]<br />
|generation = [[:Category:Fifth-generation video game consoles|Fifth generation]]<br />
|release = 1999 <small>(WonderSwan)</small><br/>2000 <small>(WonderSwan Color)</small><br/>2002 <small>(Swan Crystal)</small><br />
|discontinued = 2003<br />
|emulated = {{✓}}<br />
}}<br />
The '''WonderSwan''', '''WonderSwan Color''' and '''SwanCrystal''' is the fifth-generation handheld game consoles produced by [[wikipedia:Bandai|Bandai]] in 1999, 2000 and 2002, respectively. It is the brainchild of Game Boy/Color creator, [[wikipedia:Gunpei_Yokoi|Gunpei Yokoi]]. There were three versions eventually released: A black-and-white version, a color version, and a '''Crystal''' version with an improved screen.<br />
<br />
==Emulators==<br />
{| class="wikitable" style="text-align:center;"<br />
|-<br />
! scope="col"|Name<br />
! scope="col"|Operating System(s)<br />
! scope="col"|Latest Version<br />
! scope="col"|[[Libretro|Libretro Core]]<br />
! scope="col"|Active<br />
! scope="col"|WS<br />
! scope="col"|WSC<br />
! scope="col"|[[Recommended Emulators|Recommended]]<br />
|-<br />
! colspan="8"|PC<br />
|-<br />
|[[Mednafen]]<br />
|Multi-platform<br />
|[{{MednafenURL|releases/}} {{MednafenVer}}]<br />
|{{✓}} ||{{✓}} ||{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[[higan]]<br />
|Multi-platform<br />
|[http://byuu.org/emulation/higan/ {{higanVer}}]<br />
|{{✓}} ||{{✓}} ||{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[[BizHawk]]<br />
|Windows<br />
|[http://tasvideos.org/BizHawk/ReleaseHistory.html {{BizHawkVer}}]<br />
|{{✗}} ||{{✓}} ||{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[[Cygne]]<br />
|Windows<br />
|[http://cygne.emuunlim.com/ 2.1a]<br />
|{{✗}} ||{{✗}} ||{{✓}} ||{{✓}} ||{{✗}}<br />
|-<br />
|[[MAME]]<br />
|Multi-platform<br />
|[http://www.mamedev.org/release.html {{MAMEVer}}]<br />
|{{✓}} ||{{✓}} ||{{✓}} ||{{✓}} ||{{✗}}<br />
|-<br />
|[http://sourceforge.jp/projects/oswan/devel/ Oswan]<br />
|Windows<br />
|[http://sourceforge.jp/projects/oswan/releases/p5046 1.7.3]<br />
|{{✗}} ||{{✗}} ||{{✓}} ||{{✓}} ||{{✗}}<br />
|-<br />
|[https://web.archive.org/web/20141105014113/http://www.xe-emulator.com/ Xe]<br />
|Windows, Linux<br />
|[https://web.archive.org/web/20141022230129/http://www.xe-emulator.com/index.php?m=download 2.16.2]<br />
|{{✗}} ||{{✗}} ||{{✓}} ||{{✓}} ||{{✗}}<br />
|}<br />
<br />
[[Category:Consoles]]<br />
[[Category:Fifth-generation video game consoles]]</div>5.177.165.239https://emulation.gametechwiki.com/index.php?title=Apple_II_line&diff=23764Apple II line2018-12-15T07:08:59Z<p>5.177.165.239: </p>
<hr />
<div>{{Infobox console<br />
|title = Apple ][<br />
|logo = AppleIIwithdd.png<br />
|image = A2p.png<br />
|image2 = Apple IIe 001b.jpg<br />
|image3 = Apple IIc with monitor.jpg<br />
|image4 = A2e.png<br />
|image5 = A2plat.png<br />
|image6 = Apple IIc Plus (front).jpg<br />
|imagecaption = First, Apple ][. <br> Second, Apple ][+. <br> Third, Apple //e. <br> Fourth, Apple IIc. <br> Fifth, Apple //e Enhanced. <br> Sixth, Apple //e Platinum. <br> Seventh, Apple IIc Plus.<br />
|developer = Apple Computer, Inc.<br />
|type = [[:Category:Computers|Computers]]<br />
|generation = <br />
|release = June 1977<br />
|discontinued = November 1993<br />
|predecessor = [[Apple I emulators|Apple I]]<br />
|successor = [[Apple III emulators|apple ///]]<br />
|emulated = {{✓}}<br />
}}<br />
The Apple ][ line of computers is the line that put Apple on the map and is now one of Apple's most successful line of computers. It was released in June of 1977 and was discontinued in November of 1993. Steve Wozniak wanted to make a computer that was, "...small, reliable, convenient to use and inexpensive."<br />
==Emulators==<br />
{| class="wikitable" style="text-align:center;"<br />
! scope="col"|Name<br />
! scope="col"|Operating System(s)<br />
! scope="col"|Latest Version<br />
! scope="col"|Apple ][ Emulation<br />
! scope="col"|Apple ][+ Emulation<br />
! scope="col"|Apple //e Emulation<br />
! scope="col"|Apple IIc Emulation<br />
! scope="col"|Apple //e Enhanced Emulation<br />
! scope="col"|Apple //e Platinum Emulation<br />
! scope="col"|Apple IIc Plus Emulation<br />
! scope="col"|Active<br />
! scope="col"|[[Recommended Emulators|Recommended]]<br />
|-<br />
!colspan="12"|PC<br />
|-<br />
|[[MAME]]<br />
|Multi-platform<br />
|[http://www.mamedev.org/release.html {{MAMEVer}}]<br />
|{{✓}} ||{{✓}} ||{{✓}} ||{{✓}} ||{{✓}} ||{{✓}} ||{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[https://github.com/AppleWin/AppleWin AppleWin]<br />
|Windows<br />
|[https://github.com/AppleWin/AppleWin/releases v1.27.12.0]<br />
|{{✓}} ||{{✓}} ||{{✓}} ||{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[https://web.archive.org/web/20071206014650/http://www.dridus.com:80/~nyef/darcnes/ DarcNES]<br />
|Multi-platform<br />
|[https://segaretro.org/DarcNES 9b0401/9b0313]<br />
|{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}<br />
|-<br />
|[http://kegs.sourceforge.net/ KEGS]<br />
|Windows<br />
|[http://kegs.sourceforge.net/ v0.91]<br />
|{{✓}} ||{{✓}} ||{{✓}} ||{{✗}} ||{{✓}} ||{{✓}} ||{{✗}} ||{{✗}} ||?<br />
|-<br />
|-<br />
|[[BizHawk]]<br />
|Windows<br />
|[https://github.com/TASVideos/BizHawk/releases 2.3.1]<br />
|{{✓}} ||? ||{{✓}} ||{{✗}} ||{{✓}} ||{{✓}} ||{{✗}} ||{{✓}} ||?<br />
|-<br />
!colspan="12"|Consoles<br />
|-<br />
|[http://wiibrew.org/wiki/WiiApple WiiApple]<br />
|[[Wii emulators|Wii]]<br />
|[http://tinyhack.com/wii/wiiapple/wiiapple.zip 0.07]<br />
|{{✓}} ||{{✗}} ||{{✓}} ||{{✗}} ||? ||? ||{{✗}} ||{{✗}} ||{{✗}}<br />
|-<br />
|[http://dl.qj.net/Apple-II-Portable-v0.1-PSP-Emulators/pg/12/fid/171/catid/117 Apple II Portable]<br />
|[[PlayStation Portable emulators|PlayStation Portable]]<br />
|[https://psp.brewology.com/downloads/download.php?id=4081&mcid=1 0.1-0173]<br />
|{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}<br />
<br />
|-<br />
|[https://www.zophar.net/consoles/nds/apple2/a2ds.html A2DS]<br />
|[[Nintendo DS emulators|Nintendo DS]]<br />
|? ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}<br />
|-<br />
!colspan="12"|Mobile<br />
|-<br />
|[https://www.scullinsteel.com/apple2/ AppleIIjs]<br />
|Web Browser (Java)<br />
|? ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✓}} ||{{✗}}<br />
|-<br />
|[http://www.virtualapple.org/ Virtual Apple II]<br />
|Web Browser<br />
|4.5<br />
|{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}<br />
|-<br />
|}<br />
<br />
==Models==<br />
====[[wikipedia:Apple_II|Apple ][]]====<br />
The Apple ][ was released in June of '77 and retailed for $1,298 ($5,407.66 in 2018 money) and had a 6502 CPU at 1.023 MHz, 4KB of RAM, a cassette tape for storage, a 1-bit speaker, 7 expansion slots, it's keyboard was only uppercase, a low-res 40x48 16-color graphics mode, and a hi-res 280x192 6-color graphics mode.<br />
====[[wikipedia:Apple_II_Plus|Apple ][+]]====<br />
The Apple ][+ was released in June of '79 and retailed for $1,195 ($4,179.77 in 2018 money) and had the same 6502 CPU, 16KB of RAM, the same graphics modes, speaker, expansion slots, and keyboard as the original.<br />
<br />
====[[wikipedia:Apple_IIe|Apple //e]]====<br />
The Apple //e was released in January of '83 and had the same CPU and expansion slots as the Apple ][, 64KB of RAM, had a full ASCII keyboard, it introduced the double-low-resolution graphics mode which had a resolution of 80x48 in 16-color, and a double-high-resolution of 560×192 in 16 colors.<br />
====[[wikipedia:Apple_IIc|Apple IIc]]====<br />
The Apple IIc was released on April 24, 1984 and retailed for $1,295 ($3,176.39 in 2018 money) and had a 65C02 CPU at 1.023 MHz, 128KB of RAM, same graphics modes, speaker, as the Apple //e, it had built-in storage, and a built in 140KB single sided 5.25-inch floppy drive. It did not have any expansion slots.<br />
====[[wikipedia:Apple_IIe#Enhanced IIe|Apple //e Enhanced]]====<br />
The Apple //e Enhanced was released in March of '85 and was a Apple //e but with a 65C02 CPU at 1.023 MHz.<br />
====[[wikipedia:Apple_IIe#Platinum IIe|Apple //e Platinum]]====<br />
The Apple //e Platinum was just an Apple //e Enhanced but with a full numeric keypad and 128KB of RAM.<br />
====[[wikipedia:Apple_IIc_Plus|Apple IIc Plus]]====<br />
The Apple IIc Plus was released in April of '88 and retailed for $675 ($1,424.85 in 2018 money) and had a 65C02 CPU at 1MHz or 4MHz (it was user selectable for older programs), 8KB SRAM cache, same RAM, graphics modes, speaker as the Apple //e Platinum, and a built in 800KB double sided 3.5-inch floppy drive.<br />
{{Apple}}<br />
[[Category:Computers]]</div>5.177.165.239https://emulation.gametechwiki.com/index.php?title=Apple_III_line&diff=23763Apple III line2018-12-15T07:08:04Z<p>5.177.165.239: </p>
<hr />
<div>{{lowercase title}}<br />
{{Infobox console<br />
|title = apple ///<br />
|logo = A3p.png<br />
|developer = Apple Computer, Inc.<br />
|type = [[:Category:Computers|Computers]]<br />
|generation = <br />
|release = 1980<br />
|discontinued = 1984<br />
|predecessor = [[Apple II emulators|Apple ][]]<br />
|successor = <br />
|emulated = {{✓}}<br />
}}<br />
The '''[[wikipedia:Apple III|apple ///]]''' is mostly a souped-up [[Apple II emulators|Apple ][]] that melted its own guts and made the FCC mad.<br />
<br />
==Emulators==<br />
{| class="wikitable" style="text-align:center;"<br />
! scope="col"|Name<br />
! scope="col"|Operating System(s)<br />
! scope="col"|Latest Version<br />
! scope="col"|apple /// Emulation<br />
! scope="col"|apple /// Revised Emulation<br />
! scope="col"|apple /// Plus Emulation<br />
! scope="col"|Active<br />
! scope="col"|[[Recommended Emulators|Recommended]]<br />
|-<br />
|[[MAME]]<br />
|Multi-platform<br />
|[http://www.mamedev.org/release.html {{MAMEVer}}]<br />
|{{✓}}<br />
|{{✓}}<br />
|{{✓}}<br />
|{{✓}}<br />
|{{✓}}<br />
|-<br />
|Sara<br />
|macOS<br />
|[http://www.blackcatsystems.com/software/sara.html 0.5.1]<br />
|{{✓}}<br />
|?<br />
|?<br />
|{{✗}}<br />
|{{✗}}<br />
|}<br />
This computer doesn't have too many emulators because of how bad it flopped. The first one that works fully properly is [[MAME]].<br />
<br />
===Models===<br />
===[[wikipedia:Apple_III|apple ///]]===<br />
The apple /// was released in May of '80 and retailed for $4340 ($13,417.13 in 2018 money) and had a 6502A CPU at 1.8 MHz, 128K of RAM, a 80-column, 24-line display, 6-bit audio, built in 140KB 5.25-inch floppy drive, two graphics modes 560x192 in black and white and 280x192 with 16 colors or shades of gray. It had 4 expansion slots.<br />
===[[wikipedia:Apple_III#Revisions|apple /// Revised]]===<br />
The apple /// was released in the second half of '81 and retailed for $3,495 ($9,755.33 in 2018 money). The reason for this is that the public had found a flaw in the logic board design so Apple had to pull the /// off shelves and re-release it. This re-release had 256KB of RAM as standard. The FCC made Apple discontinue the apple /// Revised because Apple didn't change the name.<br />
===[[wikipedia:Apple_III#Apple_III_Plus|apple /// Plus]]===<br />
The apple /// Plus was released in December of 1983 and it retailed for $2,995 ($7,476.71 in 2018 money), after Apple had to discontinue the apple /// Revised because they did not change the computer's name after they modified it, they re-re-released it with a built-in clock, 55-watt power supply, and a //e-like keyboard.<br />
<br />
{{Apple}}<br />
<br />
[[Category:Computers]]</div>5.177.165.239