Follow TV Tropes

Following

History UsefulNotes / Emulation

Go To



* '''Compatibility Layers''' are an even higher form of emulation, although it's generally not considered emulation as they don't typically simulate another hardware platform. This takes advantage of software that makes ''system calls'' to an OS or firmware to perform some functionality (such as "get inputs from a controller"). Since the signature of these system calls can be known, the compatibility layer looks to see if the signature is trying to be executed, replacing it with a native system call. A famous example is {{UsefulNotes/WINE}}, which allows Windows applications to run on Linux. Another one is partly how {{UsefulNotes/Xbox360}} compatibility works. While there's still some re-translation of Xbox 360 code to the Xbox One, system calls the 360 game makes can be mapped to something the Xbox One can handle to the point where the 360 game thinks it's running on the 360's OS.

to:

* '''Compatibility Layers''' are an even higher form of emulation, although it's generally not considered emulation as they don't typically simulate another hardware platform. This takes advantage of software that makes ''system calls'' to an OS or firmware to perform some functionality (such as "get inputs from a controller"). Since the signature of these system calls can be known, the compatibility layer looks to see if the signature is trying to be executed, replacing it with a native system call. A famous example is {{UsefulNotes/WINE}}, which allows Windows applications to run on Linux. Another one is partly how {{UsefulNotes/Xbox360}} compatibility works. While there's still some re-translation of Xbox 360 code to the Xbox One, system calls that the 360 game makes can be mapped to something that the Xbox One can handle handle, to the point where the 360 game thinks that it's running on the 360's OS.


Emulators are also a popular way to make a port or UpdatedRerelease on sufficiently powerful hardware, especially given that making a native port can be far more difficult for a variety of reasons. Many older games were coded using assembly language or other platform-specific tools, meaning that porting them to run natively on other systems would essentially require rewriting them from scratch. The source code for some games--even big ones--is outright lost (either due to misplacement, uncontrollable damage, human error, or just plain throwing it out due to it not being seen as practical to keep) further makes emulation a favorable method of porting, provided that the emulator itself can faithfully run the game(s) in question[[note]]to give an idea of how much work it takes to make a good-quality native port without using source code, it took several years for a downright massive team of fans to port ''VideoGame/SuperMario64'' to PC-- most of that time was spent decompiling the game's files into something that could be converted to C code (the high-profile leak of part of the game's actual source code only occurred after the port was already complete), and it was considered an ''easy'' project to take on given that it didn't use any particularly fancy compilation techniques; taking that long to port even an old game to a current console risks releasing the port once the target system is already obsolete, given that most consoles are only relevant for a handful of years, and when factoring in the likely greater time needed to decompile a more complexly put-together game, the risk only increases[[/note]]. This can be done officially, or sometimes unofficially in the case of [[GameMod ROM hacks]] that expand a game beyond the original size of its cartridge, for example. Emulation can also make {{Compilation Rerelease}}s or services like Virtual Console easier to implement, as it means only having to create one piece of new software instead of porting each game individually.

to:

Emulators are also a popular way to make a port or UpdatedRerelease on sufficiently powerful hardware, especially given that making a native port can be far more difficult for a variety of reasons. Many older games were coded using assembly language or other platform-specific tools, meaning that porting them to run natively on other systems would essentially require rewriting them from scratch. The source code for some games--even games -- even big ones--is ones --is outright lost (either due to misplacement, uncontrollable damage, human error, or just plain throwing it out due to it not being seen as practical to keep) keep), which further makes emulation a favorable method of porting, provided that the emulator itself can faithfully run the game(s) in question[[note]]to give an idea of how much work it takes to make a good-quality native port without using source code, it took several years for a downright massive team of fans to port ''VideoGame/SuperMario64'' to PC-- most of that time was spent decompiling the game's files into something that could be converted to C code (the high-profile leak of part of the game's actual source code only occurred after the port was already complete), and it was considered an ''easy'' project to take on on, given that it didn't use any particularly fancy compilation techniques; taking that long to port even an old game to a current console risks releasing the port once the target system is already obsolete, given that most consoles are only relevant for a handful of years, and when factoring in the likely greater time needed to decompile a more complexly put-together game, the risk only increases[[/note]]. This can be done officially, or sometimes unofficially in the case of [[GameMod ROM hacks]] that expand a game beyond the original size of its cartridge, for example. Emulation can also make {{Compilation Rerelease}}s or services like Virtual Console easier to implement, as it means only having to create one piece of new software instead of porting each game individually.


Emulation services such as Nintendo's UsefulNotes/VirtualConsole and Time-Warner's [=GameTap=] are an attempt to replace illegal emulation by offering something similar legally: Cheap versions of classic games that you can download directly to your system. Nintendo has even called the Virtual Console “iTunes for video games,” referring to Apple's attempts to reduce Internet music piracy with the use of a similarly functioning but legal substitute. On the fans' side, UsefulNotes/ZXSpectrum fans at the [[http://www.worldofspectrum.org World Of Spectrum]] have gone all out to ask the original producers of the [[{{Abandonware}} games]] for permission to distribute them freely, which has been granted in the majority of cases, the exceptions mostly being games published by companies that still exist and fear that they would compromise the integrity of their current catalogues by allowing free download of something that ceased to be profitable to them in 1993.

to:

Emulation services such as Nintendo's UsefulNotes/VirtualConsole and Time-Warner's [=GameTap=] are an attempt to replace illegal emulation by offering something similar legally: Cheap versions of classic games that you can download directly to your system. Nintendo has even called the Virtual Console “iTunes for video games,” referring to Apple's attempts to reduce Internet music piracy with the use of a similarly functioning but legal substitute. On the fans' side, UsefulNotes/ZXSpectrum fans at the [[http://www.worldofspectrum.org World Of Spectrum]] have gone all out to ask the original producers of the games for permission to [[{{Abandonware}} games]] for permission to distribute them freely, freely]], which has been granted in the majority of cases, the exceptions mostly being games published by companies that still exist and fear that they would compromise the integrity of their current catalogues by allowing free download of something that ceased to be profitable to them in 1993.



* '''Low-level emulation (LLE)''' seeks to simulate the original hardware. They simulate the inner workings of the console or computer, sometimes even gate-by-gate or down to the last processor cycle. Higan is one such example of an LLE, where author byuu took the herculean effort of reverse-engineering every single enhancement chip used on SNES games. Another key point in Higan is it syncs up every piece of hardware its emulating at the original input clock speed of the SNES at ~21-24 [=MHz=] where most other emulators sync at a much slower rate. This synchronization rate allows games with programming tricks (such as messing with the PPU while its drawing something on the screen) or odd timing bugs to actually work.

to:

* '''Low-level emulation (LLE)''' seeks to simulate the original hardware. They simulate the inner workings of the console or computer, sometimes even gate-by-gate or down to the last processor cycle. Higan is one such example of an LLE, where author byuu took the herculean effort of reverse-engineering every single enhancement chip used on SNES games. Another key point in Higan is it syncs up every piece of hardware its emulating at the original input clock speed of the SNES at ~21-24 [=MHz=] where most other emulators sync at a much slower rate. This synchronization rate allows games with programming tricks (such as messing with the PPU while its it's drawing something on the screen) or odd timing bugs to actually work.


Emulation services such as Nintendo's UsefulNotes/VirtualConsole and Time-Warner's [=GameTap=] are an attempt to replace illegal emulation by offering something similar legally: Cheap versions of classic games that you can download directly to your system. Nintendo has even called the Virtual Console “iTunes for video games,” referring to Apple's attempts to reduce Internet music piracy with the use of a similarly functioning but legal substitute. On the fans' side, UsefulNotes/ZXSpectrum fans at the [[http://www.worldofspectrum.org World Of Spectrum]] have gone all out to ask the original producers of the {{Abandonware|games}} for permission to distribute them freely, which has been granted in the majority of cases, the exceptions mostly being games published by companies that still exist and fear that they would compromise the integrity of their current catalogues by allowing free download of something that ceased to be profitable to them in 1993.

to:

Emulation services such as Nintendo's UsefulNotes/VirtualConsole and Time-Warner's [=GameTap=] are an attempt to replace illegal emulation by offering something similar legally: Cheap versions of classic games that you can download directly to your system. Nintendo has even called the Virtual Console “iTunes for video games,” referring to Apple's attempts to reduce Internet music piracy with the use of a similarly functioning but legal substitute. On the fans' side, UsefulNotes/ZXSpectrum fans at the [[http://www.worldofspectrum.org World Of Spectrum]] have gone all out to ask the original producers of the {{Abandonware|games}} [[{{Abandonware}} games]] for permission to distribute them freely, which has been granted in the majority of cases, the exceptions mostly being games published by companies that still exist and fear that they would compromise the integrity of their current catalogues by allowing free download of something that ceased to be profitable to them in 1993.


Emulation services such as Nintendo's UsefulNotes/VirtualConsole and Time-Warner's [=GameTap=] are an attempt to replace illegal emulation by offering something similar legally: Cheap versions of classic games that you can download directly to your system. Nintendo has even called the Virtual Console “iTunes for video games,” referring to Apple's attempts to reduce Internet music piracy with the use of a similarly functioning but legal substitute. On the fans' side, UsefulNotes/ZXSpectrum fans at the [[http://www.worldofspectrum.org World Of Spectrum]] have gone all out to ask the original producers of the {{Abandonware games}} for permission to distribute them freely, which has been granted in the majority of cases, the exceptions mostly being games published by companies that still exist and fear that they would compromise the integrity of their current catalogues by allowing free download of something that ceased to be profitable to them in 1993.

to:

Emulation services such as Nintendo's UsefulNotes/VirtualConsole and Time-Warner's [=GameTap=] are an attempt to replace illegal emulation by offering something similar legally: Cheap versions of classic games that you can download directly to your system. Nintendo has even called the Virtual Console “iTunes for video games,” referring to Apple's attempts to reduce Internet music piracy with the use of a similarly functioning but legal substitute. On the fans' side, UsefulNotes/ZXSpectrum fans at the [[http://www.worldofspectrum.org World Of Spectrum]] have gone all out to ask the original producers of the {{Abandonware games}} {{Abandonware|games}} for permission to distribute them freely, which has been granted in the majority of cases, the exceptions mostly being games published by companies that still exist and fear that they would compromise the integrity of their current catalogues by allowing free download of something that ceased to be profitable to them in 1993.


Emulation services such as Nintendo's UsefulNotes/VirtualConsole and Time-Warner's [=GameTap=] are an attempt to replace illegal emulation by offering something similar legally: Cheap versions of classic games that you can download directly to your system. Nintendo has even called the Virtual Console “iTunes for video games,” referring to Apple's attempts to reduce Internet music piracy with the use of a similarly functioning but legal substitute. On the fans' side, UsefulNotes/ZXSpectrum fans at the [[http://www.worldofspectrum.org World Of Spectrum]] has gone all out to ask the original producers of the games for permission to distribute them freely ({{Abandonware}}), and permission which has been granted in the majority of cases, the exceptions mostly being games published by companies that still exist who fear that they compromise the integrity of their current catalogues by allowing free download of something that ceased to be profitable to them in 1993.

to:

Emulation services such as Nintendo's UsefulNotes/VirtualConsole and Time-Warner's [=GameTap=] are an attempt to replace illegal emulation by offering something similar legally: Cheap versions of classic games that you can download directly to your system. Nintendo has even called the Virtual Console “iTunes for video games,” referring to Apple's attempts to reduce Internet music piracy with the use of a similarly functioning but legal substitute. On the fans' side, UsefulNotes/ZXSpectrum fans at the [[http://www.worldofspectrum.org World Of Spectrum]] has have gone all out to ask the original producers of the games {{Abandonware games}} for permission to distribute them freely ({{Abandonware}}), and permission freely, which has been granted in the majority of cases, the exceptions mostly being games published by companies that still exist who and fear that they would compromise the integrity of their current catalogues by allowing free download of something that ceased to be profitable to them in 1993.


In terms of accuracy or faithfulness to the system being emulated, emulators can generally be classified into two major types:
* '''High-level emulation (HLE)''' implements the system's features rather than the hardware itself. For example, rather than emulate a UsefulNotes/GraphicsProcessingUnit of a console, the emulator intercepts the instructions the game sends to a "GPU" and translates it to a UsefulNotes/GraphicsAPI that the host computer can run. This started becoming popular during the UsefulNotes/TheFifthGenerationOfConsoleVideoGames, made famous by [[https://en.wikipedia.org/wiki/Bleem! Bleem!]], a UsefulNotes/PlayStation emulator, and [[http://www.emulator-zone.com/doc.php/n64/ultrahle.html [=UltraHLE=]]], a UsefulNotes/Nintendo64 emulator which [[http://books.google.com/books?id=-0zuAAAAMAAJ made]] [[https://books.google.com/books?id=LrYxAQAAIAAJ&q=ultrahle&dq=ultrahle&hl=en headlines]] for running (major) Nintendo 64 titles at a playable framerate on hardware of the time. Used almost exclusively by emulators of UsefulNotes/TheFifthGenerationOfConsoleVideoGames and after due to increasing hardware complexity.
** An even higher form of emulation, although it's generally not considered emulation, is the '''Compatibility Layer'''. This takes advantage of software that makes ''system calls'' to an OS or firmware to perform some functionality (such as "get inputs from a controller"). Since the signature of these system calls can be known, the compatibility layer looks to see if the signature is trying to be executed, replacing it with a native system call. A famous example is {{UsefulNotes/WINE}}, which allows Windows applications to run on Linux. Another one is Apple's Rosetta 2, which blurs the line a little between compatibility layer and an emulator as it allows [=x86=]-based [=macOS=] apps to run on ARM-based [=macOS=] computers.
* '''Low-level emulation (LLE)''' seeks to simulate the original hardware more faithfully instead of trying to emulate its features. They simulate the inner workings of the console or computer, sometimes even gate-by-gate or down to the last processor cycle. Higan, formerly known as bsnes, is one such example of an LLE, where author byuu took the herculean effort of reverse-engineering every single enhancement chip used on SNES games. Another key point in Higan is it syncs up every piece of hardware its emulating at the original input clock speed of the SNES at ~21-24 [=MHz=] where most other emulators sync at a much slower rate. This synchronization rate allows games with programming tricks (such as messing with the PPU while its drawing something on the screen) or odd bugs (mostly timing related issues) to actually work.

to:

In terms of accuracy or faithfulness to how faithful the system being emulated, emulator tries to simulate the original system, emulators can generally be classified categorized into two major types:
these main categories:
* '''Low-level emulation (LLE)''' seeks to simulate the original hardware. They simulate the inner workings of the console or computer, sometimes even gate-by-gate or down to the last processor cycle. Higan is one such example of an LLE, where author byuu took the herculean effort of reverse-engineering every single enhancement chip used on SNES games. Another key point in Higan is it syncs up every piece of hardware its emulating at the original input clock speed of the SNES at ~21-24 [=MHz=] where most other emulators sync at a much slower rate. This synchronization rate allows games with programming tricks (such as messing with the PPU while its drawing something on the screen) or odd timing bugs to actually work.
* '''High-level emulation (HLE)''' implements the system's features rather than the hardware itself. For example, rather than emulate a UsefulNotes/GraphicsProcessingUnit of a console, the emulator intercepts the instructions the game sends to what it thinks is a "GPU" GPU and translates it to a UsefulNotes/GraphicsAPI that the host computer can run. This started becoming popular during the UsefulNotes/TheFifthGenerationOfConsoleVideoGames, made famous by [[https://en.wikipedia.org/wiki/Bleem! Bleem!]], a UsefulNotes/PlayStation emulator, and [[http://www.emulator-zone.com/doc.php/n64/ultrahle.html [=UltraHLE=]]], a UsefulNotes/Nintendo64 emulator which [[http://books.google.com/books?id=-0zuAAAAMAAJ made]] [[https://books.google.com/books?id=LrYxAQAAIAAJ&q=ultrahle&dq=ultrahle&hl=en headlines]] for running (major) Nintendo 64 titles at a playable framerate on hardware of the time. Used almost exclusively by emulators of UsefulNotes/TheFifthGenerationOfConsoleVideoGames and after due to increasing hardware complexity.
** An
complexity making it impractical to simulate the hardware directly
* '''Compatibility Layers''' are an
even higher form of emulation, although it's generally not considered emulation, is the '''Compatibility Layer'''.emulation as they don't typically simulate another hardware platform. This takes advantage of software that makes ''system calls'' to an OS or firmware to perform some functionality (such as "get inputs from a controller"). Since the signature of these system calls can be known, the compatibility layer looks to see if the signature is trying to be executed, replacing it with a native system call. A famous example is {{UsefulNotes/WINE}}, which allows Windows applications to run on Linux. Another one is Apple's Rosetta 2, which blurs the line a little between partly how {{UsefulNotes/Xbox360}} compatibility layer and an emulator as it allows [=x86=]-based [=macOS=] apps to run on ARM-based [=macOS=] computers.
* '''Low-level emulation (LLE)''' seeks to simulate the original hardware more faithfully instead
works. While there's still some re-translation of trying to emulate its features. They simulate the inner workings of the console or computer, sometimes even gate-by-gate or down Xbox 360 code to the last processor cycle. Higan, formerly known as bsnes, is one such example of an LLE, where author byuu took Xbox One, system calls the herculean effort of reverse-engineering every single enhancement chip used on SNES games. Another key point in Higan is it syncs up every piece of hardware its emulating at the original input clock speed of the SNES at ~21-24 [=MHz=] where most other emulators sync at a much slower rate. This synchronization rate allows games with programming tricks (such as messing with the PPU while its drawing 360 game makes can be mapped to something the Xbox One can handle to the point where the 360 game thinks it's running on the screen) or odd bugs (mostly timing related issues) to actually work.
360's OS.

Added DiffLines:

** An even higher form of emulation, although it's generally not considered emulation, is the '''Compatibility Layer'''. This takes advantage of software that makes ''system calls'' to an OS or firmware to perform some functionality (such as "get inputs from a controller"). Since the signature of these system calls can be known, the compatibility layer looks to see if the signature is trying to be executed, replacing it with a native system call. A famous example is {{UsefulNotes/WINE}}, which allows Windows applications to run on Linux. Another one is Apple's Rosetta 2, which blurs the line a little between compatibility layer and an emulator as it allows [=x86=]-based [=macOS=] apps to run on ARM-based [=macOS=] computers.


* '''High-level emulation (HLE)''' implements the system's features rather than the hardware itself. For example, rather than emulate a UsefulNotes/GraphicsProcessingUnit of a console, intercept the instructions the game sends out to it and translate it to a UsefulNotes/GraphicsAPI that the host computer can run. This started becoming popular during the UsefulNotes/TheFifthGenerationOfConsoleVideoGames, made famous by [[https://en.wikipedia.org/wiki/Bleem! Bleem!]], a UsefulNotes/PlayStation emulator, and [[http://www.emulator-zone.com/doc.php/n64/ultrahle.html [=UltraHLE=]]], a UsefulNotes/Nintendo64 emulator which [[http://books.google.com/books?id=-0zuAAAAMAAJ made]] [[https://books.google.com/books?id=LrYxAQAAIAAJ&q=ultrahle&dq=ultrahle&hl=en headlines]] for running (major) Nintendo 64 titles at a playable framerate on hardware of the time. Used almost exclusively by emulators of UsefulNotes/TheFifthGenerationOfConsoleVideoGames and after due to increasing hardware complexity.
* '''Low-level emulation (LLE)''' seeks to simulate the original hardware more faithfully instead of trying to emulate its features. They simulate the inner workings of the console or computer, sometimes even gate-by-gate or down to the last processor cycle. Higan, formerly known as bsnes, is one such example of an LLE, where author byuu took the herculean effort of reverse-engineering every single enhancement chip used on SNES games. Another key point in Higan is it syncs up every piece of hardware its emulating at the original input clock speed of the SNES at ~21-24 MHz where most other emulators sync at a much slower rate. This synchronization rate allows games with programming tricks (such as messing with the PPU while its drawing something on the screen) or odd bugs (mostly timing related issues) to actually work.

to:

* '''High-level emulation (HLE)''' implements the system's features rather than the hardware itself. For example, rather than emulate a UsefulNotes/GraphicsProcessingUnit of a console, intercept the emulator intercepts the instructions the game sends out to it a "GPU" and translate translates it to a UsefulNotes/GraphicsAPI that the host computer can run. This started becoming popular during the UsefulNotes/TheFifthGenerationOfConsoleVideoGames, made famous by [[https://en.wikipedia.org/wiki/Bleem! Bleem!]], a UsefulNotes/PlayStation emulator, and [[http://www.emulator-zone.com/doc.php/n64/ultrahle.html [=UltraHLE=]]], a UsefulNotes/Nintendo64 emulator which [[http://books.google.com/books?id=-0zuAAAAMAAJ made]] [[https://books.google.com/books?id=LrYxAQAAIAAJ&q=ultrahle&dq=ultrahle&hl=en headlines]] for running (major) Nintendo 64 titles at a playable framerate on hardware of the time. Used almost exclusively by emulators of UsefulNotes/TheFifthGenerationOfConsoleVideoGames and after due to increasing hardware complexity.
* '''Low-level emulation (LLE)''' seeks to simulate the original hardware more faithfully instead of trying to emulate its features. They simulate the inner workings of the console or computer, sometimes even gate-by-gate or down to the last processor cycle. Higan, formerly known as bsnes, is one such example of an LLE, where author byuu took the herculean effort of reverse-engineering every single enhancement chip used on SNES games. Another key point in Higan is it syncs up every piece of hardware its emulating at the original input clock speed of the SNES at ~21-24 MHz [=MHz=] where most other emulators sync at a much slower rate. This synchronization rate allows games with programming tricks (such as messing with the PPU while its drawing something on the screen) or odd bugs (mostly timing related issues) to actually work.


* '''Low-level emulation (LLE)''' seeks to simulate the original hardware more faithfully instead of trying to emulate its features. They simulate the inner workings of the console or computer, sometimes [[UpToEleven even gate-by-gate]] or down to the last processor cycle. Higan, formerly known as bsnes, is one such example of an LLE, where author byuu took the herculean effort of reverse-engineering every single enhancement chip used on SNES games. Another key point in Higan is it syncs up every piece of hardware its emulating at the original input clock speed of the SNES at ~21-24 MHz where most other emulators sync at a much slower rate. This synchronization rate allows games with programming tricks (such as messing with the PPU while its drawing something on the screen) or odd bugs (mostly timing related issues) to actually work.

to:

* '''Low-level emulation (LLE)''' seeks to simulate the original hardware more faithfully instead of trying to emulate its features. They simulate the inner workings of the console or computer, sometimes [[UpToEleven even gate-by-gate]] gate-by-gate or down to the last processor cycle. Higan, formerly known as bsnes, is one such example of an LLE, where author byuu took the herculean effort of reverse-engineering every single enhancement chip used on SNES games. Another key point in Higan is it syncs up every piece of hardware its emulating at the original input clock speed of the SNES at ~21-24 MHz where most other emulators sync at a much slower rate. This synchronization rate allows games with programming tricks (such as messing with the PPU while its drawing something on the screen) or odd bugs (mostly timing related issues) to actually work.


Emulators are also a popular way to make a port or UpdatedRerelease on sufficiently powerful hardware, especially given that making a native port can be far more difficult for a variety of reasons. Many older games were coded using assembly language or other hardware-specific tools, meaning that porting them to run natively on other systems would essentially require rewriting them from scratch. The source code for some games--even big ones--is outright lost (either due to misplacement, uncontrollable damage, human error, or just plain throwing it out due to it not being seen as practical to keep) further makes emulation a favorable method of porting, provided that the emulator itself can faithfully run the game(s) in question[[note]]to give an idea of how much work it takes to make a good-quality native port without using source code, it took several years for a downright massive team of fans to port ''VideoGame/SuperMario64'' to PC-- most of that time was spent decompiling the game's files into something that could be converted to C code (the high-profile leak of part of the game's actual source code only occurred after the port was already complete), and it was considered an ''easy'' project to take on given that it didn't use any particularly fancy compilation techniques; taking that long to port even an old game to a current console risks releasing the port once the target system is already obsolete, given that most consoles are only relevant for a handful of years, and when factoring in the likely greater time needed to decompile a more complexly put-together game, the risk only increases[[/note]]. This can be done officially, or sometimes unofficially in the case of [[GameMod ROM hacks]] that expand a game beyond the original size of its cartridge, for example. Emulation can also make {{Compilation Rerelease}}s or services like Virtual Console easier to implement, as it means only having to create one piece of new software instead of porting each game individually.

to:

Emulators are also a popular way to make a port or UpdatedRerelease on sufficiently powerful hardware, especially given that making a native port can be far more difficult for a variety of reasons. Many older games were coded using assembly language or other hardware-specific platform-specific tools, meaning that porting them to run natively on other systems would essentially require rewriting them from scratch. The source code for some games--even big ones--is outright lost (either due to misplacement, uncontrollable damage, human error, or just plain throwing it out due to it not being seen as practical to keep) further makes emulation a favorable method of porting, provided that the emulator itself can faithfully run the game(s) in question[[note]]to give an idea of how much work it takes to make a good-quality native port without using source code, it took several years for a downright massive team of fans to port ''VideoGame/SuperMario64'' to PC-- most of that time was spent decompiling the game's files into something that could be converted to C code (the high-profile leak of part of the game's actual source code only occurred after the port was already complete), and it was considered an ''easy'' project to take on given that it didn't use any particularly fancy compilation techniques; taking that long to port even an old game to a current console risks releasing the port once the target system is already obsolete, given that most consoles are only relevant for a handful of years, and when factoring in the likely greater time needed to decompile a more complexly put-together game, the risk only increases[[/note]]. This can be done officially, or sometimes unofficially in the case of [[GameMod ROM hacks]] that expand a game beyond the original size of its cartridge, for example. Emulation can also make {{Compilation Rerelease}}s or services like Virtual Console easier to implement, as it means only having to create one piece of new software instead of porting each game individually.


* '''Low-level emulation (LLE)''' seeks to simulate the original hardware more faithfully instead of trying to emulate its features. They simulate the inner workings of the console or computer, sometimes [[UpToEleven even gate-by-gate]] or down to the last processor cycle. Higan, formerly known as bsnes, is one such example of an LLE, where author byuu took the herculean effort of reverse-engineering every single enhancement chip used on SNES games. Another key point in Higan is it syncs up every piece of hardware its emulating at the same bus speed as the SNES, i.e., ~24MHz.

to:

* '''Low-level emulation (LLE)''' seeks to simulate the original hardware more faithfully instead of trying to emulate its features. They simulate the inner workings of the console or computer, sometimes [[UpToEleven even gate-by-gate]] or down to the last processor cycle. Higan, formerly known as bsnes, is one such example of an LLE, where author byuu took the herculean effort of reverse-engineering every single enhancement chip used on SNES games. Another key point in Higan is it syncs up every piece of hardware its emulating at the same bus original input clock speed as of the SNES, i.e., ~24MHz.
SNES at ~21-24 MHz where most other emulators sync at a much slower rate. This synchronization rate allows games with programming tricks (such as messing with the PPU while its drawing something on the screen) or odd bugs (mostly timing related issues) to actually work.


Emulators are also a popular way to make a port or UpdatedRerelease on sufficiently powerful hardware, especially given that making a native port can be far more difficult for a variety of reasons. Many older games were coded in hardware-specific assembly language, meaning that porting them to run natively on other systems would essentially require rewriting them from scratch. The source code for some games--even big ones--is outright lost (either due to misplacement, uncontrollable damage, human error, or just plain throwing it out due to it not being seen as practical to keep) further makes emulation a favorable method of porting, provided that the emulator itself can faithfully run the game(s) in question[[note]]to give an idea of how much work it takes to make a good-quality native port without using source code, it took several years for a downright massive team of fans to port ''VideoGame/SuperMario64'' to PC-- most of that time was spent decompiling the game's files into something that could be converted to C code (the high-profile leak of part of the game's actual source code only occurred after the port was already complete), and it was considered an ''easy'' project to take on given that it didn't use any particularly fancy compilation techniques; taking that long to port even an old game to a current console risks releasing the port once the target system is already obsolete, given that most consoles are only relevant for a handful of years, and when factoring in the likely greater time needed to decompile a more complexly put-together game, the risk only increases[[/note]]. This can be done officially, or sometimes unofficially in the case of [[GameMod ROM hacks]] that expand a game beyond the original size of its cartridge, for example. Emulation can also make {{Compilation Rerelease}}s or services like Virtual Console easier to implement, as it means only having to create one piece of new software instead of porting each game individually.

to:

Emulators are also a popular way to make a port or UpdatedRerelease on sufficiently powerful hardware, especially given that making a native port can be far more difficult for a variety of reasons. Many older games were coded in using assembly language or other hardware-specific assembly language, tools, meaning that porting them to run natively on other systems would essentially require rewriting them from scratch. The source code for some games--even big ones--is outright lost (either due to misplacement, uncontrollable damage, human error, or just plain throwing it out due to it not being seen as practical to keep) further makes emulation a favorable method of porting, provided that the emulator itself can faithfully run the game(s) in question[[note]]to give an idea of how much work it takes to make a good-quality native port without using source code, it took several years for a downright massive team of fans to port ''VideoGame/SuperMario64'' to PC-- most of that time was spent decompiling the game's files into something that could be converted to C code (the high-profile leak of part of the game's actual source code only occurred after the port was already complete), and it was considered an ''easy'' project to take on given that it didn't use any particularly fancy compilation techniques; taking that long to port even an old game to a current console risks releasing the port once the target system is already obsolete, given that most consoles are only relevant for a handful of years, and when factoring in the likely greater time needed to decompile a more complexly put-together game, the risk only increases[[/note]]. This can be done officially, or sometimes unofficially in the case of [[GameMod ROM hacks]] that expand a game beyond the original size of its cartridge, for example. Emulation can also make {{Compilation Rerelease}}s or services like Virtual Console easier to implement, as it means only having to create one piece of new software instead of porting each game individually.


* '''High-level''' emulation basically approximates the system's reaction to software instructions, e.g. intercept instructions by the game, and respond to it using [=APIs=] by the operating system, as opposed to simulating the hardware in a granular and more detailed manner. Made infamous by [[http://www.emulator-zone.com/doc.php/n64/ultrahle.html [=UltraHLE=]]], a UsefulNotes/Nintendo64 emulator which [[http://books.google.com/books?id=-0zuAAAAMAAJ made]] [[https://books.google.com/books?id=LrYxAQAAIAAJ&q=ultrahle&dq=ultrahle&hl=en headlines]] for running (major) Nintendo 64 titles at a playable framerate on hardware of the time, and is used by post-SNES era emulators due to increasing computational demands. The official emulators used on the UsefulNotes/Xbox360, UsefulNotes/XboxOne, along with UsefulNotes/PlayStation3 and UsefulNotes/PlayStation4, are said to make use of HLE, mostly for reasons of complexity. Even if the Xbone and [=PS4=] is several times faster than their predecessors, it still takes considerable resources to emulate them at a low level.
* '''Low-level''' emulation seeks to simulate the original hardware more faithfully, as instead of merely reacting to an instruction by the game or software, they simulate the inner workings of the console or computer, sometimes [[UpToEleven even gate-by-gate]] or down to the last processor cycle[[note]]i.e. cycle-accuracy[[/note]]. Higan, formerly known as bsnes, is one such example of an LLE, where author byuu took the herculean effort of reverse-engineering every single enhancement chip used on SNES games.

The choice between high or low-level emulation has led to some arguments from casual players and purists, the former arguing that HL emulators could be developed faster and often could potentialy run better on lower-end hardware, and so as long as popular titles can be played, HLE is enough, while the latter campaign for preservation and conservation of what can now be seen as a cultural legacy-- as HLE emulators don't provide an accurate reference on the inner workings of a device, it therefore is unsuitable for purposes of recreating and/or documenting vintage hardware. They also argue that while HLE is easier to get start running, time spent on LLE pays itself better in the long run. In practice most modern emulators use some combination of both approches.

to:

* '''High-level''' '''High-level emulation basically approximates (HLE)''' implements the system's reaction to software instructions, e.g. features rather than the hardware itself. For example, rather than emulate a UsefulNotes/GraphicsProcessingUnit of a console, intercept the instructions by the game, and respond game sends out to it using [=APIs=] by and translate it to a UsefulNotes/GraphicsAPI that the operating system, as opposed to simulating host computer can run. This started becoming popular during the hardware in UsefulNotes/TheFifthGenerationOfConsoleVideoGames, made famous by [[https://en.wikipedia.org/wiki/Bleem! Bleem!]], a granular UsefulNotes/PlayStation emulator, and more detailed manner. Made infamous by [[http://www.emulator-zone.com/doc.php/n64/ultrahle.html [=UltraHLE=]]], a UsefulNotes/Nintendo64 emulator which [[http://books.google.com/books?id=-0zuAAAAMAAJ made]] [[https://books.google.com/books?id=LrYxAQAAIAAJ&q=ultrahle&dq=ultrahle&hl=en headlines]] for running (major) Nintendo 64 titles at a playable framerate on hardware of the time, and is used time. Used almost exclusively by post-SNES era emulators of UsefulNotes/TheFifthGenerationOfConsoleVideoGames and after due to increasing computational demands. The official emulators used on the UsefulNotes/Xbox360, UsefulNotes/XboxOne, along with UsefulNotes/PlayStation3 and UsefulNotes/PlayStation4, are said to make use of HLE, mostly for reasons of complexity. Even if the Xbone and [=PS4=] is several times faster than their predecessors, it still takes considerable resources to emulate them at a low level.
hardware complexity.
* '''Low-level''' '''Low-level emulation (LLE)''' seeks to simulate the original hardware more faithfully, as faithfully instead of merely reacting trying to an instruction by the game or software, they emulate its features. They simulate the inner workings of the console or computer, sometimes [[UpToEleven even gate-by-gate]] or down to the last processor cycle[[note]]i.cycle. Higan, formerly known as bsnes, is one such example of an LLE, where author byuu took the herculean effort of reverse-engineering every single enhancement chip used on SNES games. Another key point in Higan is it syncs up every piece of hardware its emulating at the same bus speed as the SNES, i.e. cycle-accuracy[[/note]]. Higan, formerly known as bsnes, is one such example of an LLE, where author byuu took the herculean effort of reverse-engineering every single enhancement chip used on SNES games.\n\n, ~24MHz.

The choice between high or low-level emulation has led to some arguments from casual players and purists, the former arguing that HL emulators [=HLEs=] could be developed faster and often could potentialy potentially run better on lower-end hardware, and so as hardware or can run games better than the original hardware (e.g., the {{UsefulNotes/GameCube}}/{{UsefulNotes/Wii}} emulator Dolphin can play games at HD resolutions just fine even though the original consoles can't). So long as popular titles can be played, HLE is enough, while the latter campaign enough. LLE proponents argue for preservation and conservation of what can now be seen as a cultural legacy-- as HLE emulators [=HLEs=] don't provide an accurate reference on the inner workings of a device, it therefore is unsuitable for purposes of recreating and/or documenting vintage hardware. They also argue that while HLE is easier to get start running, time spent on LLE pays itself better in the long run. In practice most modern emulators use some combination of both approches.
approaches. Typically the CPU portion is LLE while everything else is HLE.


Emulators are also a popular way to make a port or UpdatedRerelease on sufficiently powerful hardware, especially given the far greater difficulty of making a native port. Many older games were coded in hardware-specific assembly language, meaning that porting them to run natively on other systems would essentially require rewriting them from scratch. The source code for some games--even big ones--is outright lost (either due to misplacement, uncontrollable damage, human error, or just plain throwing it out due to it not being seen as practical to keep) further makes emulation a favorable method of porting, provided that the emulator itself can faithfully run the game(s) in question[[note]]to give an idea of how much work it takes to make a good-quality native port without using source code, it took several years for a downright massive team of fans to port ''VideoGame/SuperMario64'' to PC-- most of that time was spent decompiling the game's files into something that could be converted to C code (the high-profile leak of part of the game's actual source code only occurred after the port was already complete), and it was considered an ''easy'' project to take on given that it didn't use any particularly fancy compilation techniques; taking that long to port even an old game to a current console risks releasing the port once the target system is already obsolete, given that most consoles are only relevant for a handful of years, and when factoring in the likely greater time needed to decompile a more complexly put-together game, the risk only increases[[/note]]. This can be done officially, or sometimes unofficially in the case of [[GameMod ROM hacks]] that expand a game beyond the original size of its cartridge, for example. Emulation can also make {{Compilation Rerelease}}s or services like Virtual Console easier to implement, as it means only having to create one piece of new software instead of porting each game individually.

to:

Emulators are also a popular way to make a port or UpdatedRerelease on sufficiently powerful hardware, especially given the far greater difficulty of that making a native port.port can be far more difficult for a variety of reasons. Many older games were coded in hardware-specific assembly language, meaning that porting them to run natively on other systems would essentially require rewriting them from scratch. The source code for some games--even big ones--is outright lost (either due to misplacement, uncontrollable damage, human error, or just plain throwing it out due to it not being seen as practical to keep) further makes emulation a favorable method of porting, provided that the emulator itself can faithfully run the game(s) in question[[note]]to give an idea of how much work it takes to make a good-quality native port without using source code, it took several years for a downright massive team of fans to port ''VideoGame/SuperMario64'' to PC-- most of that time was spent decompiling the game's files into something that could be converted to C code (the high-profile leak of part of the game's actual source code only occurred after the port was already complete), and it was considered an ''easy'' project to take on given that it didn't use any particularly fancy compilation techniques; taking that long to port even an old game to a current console risks releasing the port once the target system is already obsolete, given that most consoles are only relevant for a handful of years, and when factoring in the likely greater time needed to decompile a more complexly put-together game, the risk only increases[[/note]]. This can be done officially, or sometimes unofficially in the case of [[GameMod ROM hacks]] that expand a game beyond the original size of its cartridge, for example. Emulation can also make {{Compilation Rerelease}}s or services like Virtual Console easier to implement, as it means only having to create one piece of new software instead of porting each game individually.

Showing 15 edit(s) of 47

Top