Difference between pages "Arcade LaserDisc emulators" and "Project Nested"

From Emulation General Wiki
(Difference between pages)
Jump to navigation Jump to search
m
 
(Information from a Sharopolis video about the emulator, featuring an interview with the developer, has been added, and the information is presented more professionally.)
 
Line 1: Line 1:
{{Infobox console
+
{{Infobox emulator
|title = Arcade LaserDisc
+
|logo =  
|logo = dragons-lair-classic-arcade.jpg
+
|logowidth =
|developer = Misc
+
|version = v1.3
|type = [[:Category:Arcade|Arcade systems]]
+
|active = Yes
|release = 1982
+
|platform = [[Super Nintendo emulators|Super Famicom (SNES)]]
|discontinued = 1995
+
|target = [[Nintendo Entertainment System emulators|NES]]
|emulated = {{✓}}
+
|developer = Myself086 (Lorraine Corville)
 +
|prog-lang = 65C816 assembly, C#
 +
|website = [https://github.com/Myself086/Project-Nested GitHub page]
 +
|license = MIT License
 +
|source = [https://github.com/Myself086/Project-Nested Git]
 
}}
 
}}
 +
'''Project Nested''' is an open-source [[Nintendo Entertainment System emulators|Famicom (NES)]] emulator for the [[Super Nintendo emulators|Super Famicom (SNES)]] written in 65C816 assembly and C#.
  
A [[LaserDisc]] video game is an [[arcade emulators|arcade]] game that uses pre-recorded video (either live-action or animation) played from a [[wikipedia:LaserDisc|LaserDisc]]. The first LaserDisc video game was Sega's
+
==Download==
[http://www.dragons-lair-project.com/games/pages/ab.asp Astron Belt] released in 1983. The genre was popularized by [http://www.dragons-lair-project.com/games/pages/dl.asp Dragon's Lair] released shortly after in the same year. The usage of LaserDiscs provided graphics close to an animated or live-action film which was vastly ahead of other arcade games at the time. However, with the drawback of limited interactivity compared to regular arcade games.
+
{| cellpadding="4"
 
 
==Emulators==
 
{| class="wikitable" style="text-align:center;"
 
! scope="col"|Name
 
! scope="col"|Platform(s)
 
! scope="col"|Latest Version
 
! scope="col"|[[libretro|Libretro Core]]
 
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr>
 
! scope="col"|Active
 
! scope="col"|[[Recommended Emulators|Recommended]]
 
|-
 
! colspan="7"|PC / x86
 
|-
 
|[[DAPHNE]]
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[http://www.daphne-emu.com/ 1.0.12]
 
|{{~}} <small>(WIP)</small> ||{{✓}} ||{{✗}} ||{{✓}}
 
|-
 
|[[MAME]]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[http://www.mamedev.org/release.html {{MAMEVer}}]
 
|{{✓}} ||{{✓}} ||{{✓}} ||{{✓}}
 
 
|-
 
|-
 +
|align=center|{{Icon|SNES-big}}
 +
|'''[https://github.com/Myself086/Project-Nested/releases Official releases]'''<br/><small>GitHub releases</small>
 
|}
 
|}
  
=== Comparisons ===
+
==History==
*'''[[DAPHNE]]''' is the primary emulator for LaserDisc arcade games. Supports more games than MAME. Use DaphneLoader to update DAPHNE and auto download games. The [[libretro]] core currently only works for Android, so if you want libretro on PC, see [[Android emulators]].
+
The project began in 2015 as a NES emulator on PC. The emulator was running at full speed, and development was going "pretty well", but was not considered challenging, so it was decided to move it to the SNES. After three years of casual development and thinking about how to achieve 100% performance (otherwise it would have been considered pointless) until summer 2018, the emulator began official development.
*'''[[MAME]]''' has support for six LaserDisc games and two that DAPHNE doesn't support; Cube Quest and Firefox. The reason MAME doesn't emulate many LaserDisc-based systems, is largely due to indecisions regarding the disc preservation method and format. This will hopefull be fixed in the future thanks to the [https://www.domesday86.com/ Domesday Project 86] which employs a combination of specialized hardware and open-source software to preserve the discs in a far more faithful manner than ever before.
+
 
 +
The current model has been improved since, but not by much. The speed was calculated by multiplying the average amount of times each instruction executed each frame and the overhead. However, the maths were 5 percent off on first implementation. Most implementations were made after approximately one month.
 +
 
 +
==Overview==
 +
The emulator was inspired by the SNES originally being designed to be backwards-compatible with the NES and Myself086 wanting to code a JIT (Just-In-Time) compiler.
 +
 
 +
Emulation works by converting NES ROMs into SNES ROMs using a JIT (Just-In-Time) and AOT (Ahead-of-Time) compiler (with various options) for Windows, allowing them to run on SNES hardware.
 +
 
 +
Save files are created after the software title runs for a while. These can then be added to the ROM, often improving performance, vastly with some titles, and not much with others.
 +
 
 +
The following are required:
 +
* Up to 8MB of fast HiROM (slow HiROM support planned)
 +
* 16KB of SRAM (support for anywhere up to 256KB of SRAM, depending on the software title and settings, planned)
 +
* A battery if required by the software title
 +
 
 +
===Compatibility===
 +
Emulation occurs at up to 60FPS (frames per second) with audio support, but occasional minor slowdown may occur. Software titles that use mappers 0-2 and 4 are playable, with mappers 1 and 4 having minor glitches, which may reduce compatibility levels with titles that use them, mappers 3, 5-8, 11, 12, 16, 18, 21-26, 32-34, 36-38, 40, 42 and 66 unplayable and mappers 9 and 10 unlikely to be supported due to it being declared impossible to accurately emulate CHR bank switching, performed by both mappers. Additionally, iNES 2.0 is not supported.
 +
 
 +
Out of the 456 tested titles, 31 (6.80%) are fully playable, 93 (20.39%) are playable but need a full playthrough to test, 29 (8.73%) are mostly playable, 157 (34.43%) crash in the intro or early in-game, 128 (28.07%) are unplayable and 1 (0.22%) is unlikely to be supported. For example:
 +
* Punch-Out!!! is unlikely to be supported due to using mapper 9/MMC2, as it hard to emulate because memory banks can be changed mid-scanline when it draws characters FE or FD, or sprites, the hardest to implement. This is not as problematic with the background, as the window can be used to draw and switch the characters.
 +
* One fully playable title, Battle City, was mostly playable from v1.1 until v1.3, when it hung after the game over screen with visual glitches.
 +
 
 +
Others run with minor glitches or require certain options, such as NMI at vblank or stack native return, to be disabled. Overall, at least 50% of games are expected to run in the future. The official compatibility list is available [https://docs.google.com/spreadsheets/d/1xKZIyNz1DSI3ZBdMfaTEaa_9b6IEABx-ZPwOb6XqcLQ/edit#gid=253005073 here].
 +
 
 +
=== Future ===
 +
The following support is being worked on:
 +
* The graphics in Super Mario Bros. 2 display incorrectly and the American version resets after hitting a Shy Guy. The latter issue has been reverse engineered and figured out. Fixing this would also fix many other games that mistakenly reset.
 +
* Elite is being used as a model to "aggressively" optimize the EXE, specifically in AOT compilation, to make emulation run at the same speed, or faster if possible.
  
==Games==
+
==See also==
{| class="wikitable sortable" style="text-align:center;"
+
* [[NeMul]]
! scope="col"|Game
 
! scope="col"|DAPHNE
 
! scope="col"|MAME
 
! scope="col"|Ports*
 
|-
 
|Astron Belt
 
|{{✓}} ||{{✗}} ||{{✓}}
 
|-
 
|Badlands
 
|{{✓}} ||{{✗}} ||{{✓}}
 
|-
 
|Bega's Battle
 
|{{✓}} ||{{✗}} ||{{✗}}
 
|-
 
|Chantze's Stone
 
|{{✗}} ||{{✗}} ||{{✓}}
 
|-
 
|Cliff Hanger
 
|{{✓}} ||{{✓}} ||{{✗}}
 
|-
 
|Cobra Command / Thunder Storm
 
|{{✓}} ||{{✓}} ||{{✓}}
 
|-
 
|Cosmos Circuit
 
|{{✗}} ||{{✗}} ||{{✓}}
 
|-
 
|Crime Patrol
 
|{{✗}} ||{{✗}} ||{{✓}}
 
|-
 
|Crime Patrol 2: Drug Wars
 
|{{✗}} ||{{✗}} ||{{✓}}
 
|-
 
|Cube Quest
 
|{{✗}} ||{{✓}} ||{{✗}}
 
|-
 
|Dragon's Lair
 
|{{✓}} ||{{✗}} ||{{✓}}
 
|-
 
|Dragon's Lair II: TimeWarp
 
|{{✓}} ||{{✗}} ||{{✓}}
 
|-
 
|Esh's Aurunmilla
 
|{{✓}} ||{{✗}} ||{{✓}}
 
|-
 
|Fast Draw Showdown
 
|{{✗}} ||{{✗}} ||{{✓}}
 
|-
 
|Firefox
 
|{{✗}} ||{{✓}} ||{{✗}}
 
|-
 
|Freedom Fighter
 
|{{✗}} ||{{✗}} ||{{✓}}
 
|-
 
|Galaxian 3
 
|{{✗}} ||{{✗}} ||{{✓}}
 
|-
 
|Galaxian 3: Attack of the Zolgear
 
|{{✗}} ||{{✗}} ||{{✗}}
 
|-
 
|Galaxy Ranger / Star Blazer
 
|{{✓}} ||{{✗}} ||{{✗}}
 
|-
 
|GP World
 
|{{✓}} ||{{✗}} ||{{✗}}
 
|-
 
|Interstellar Laser Fantasy
 
|{{✓}} ||{{✗}} ||{{✓}}
 
|-
 
|The Last Bounty Hunter
 
|{{✗}} ||{{✗}} ||{{✓}}
 
|-
 
|M.A.C.H. 3
 
|{{✓}} ||{{✓}} ||{{✗}}
 
|-
 
|Mad Dog McCree
 
|{{✗}} ||{{✗}} ||{{✓}}
 
|-
 
|Mad Dog II: The Lost Gold
 
|{{✗}} ||{{✗}} ||{{✓}}
 
|-
 
|NFL Football
 
|{{✗}} ||{{✗}} ||{{✓}}
 
|-
 
|Ninja Hayate
 
|{{✗}} ||{{✗}} ||{{✓}}
 
|-
 
|Road Blaster
 
|{{✓}} ||{{✗}} ||{{✓}}
 
|-
 
|Space Ace
 
|{{✓}} ||{{✗}} ||{{✓}}
 
|-
 
|Space Pirates
 
|{{✗}} ||{{✗}} ||{{✓}}
 
|-
 
|Star Rider
 
|{{✗}} ||{{✗}} ||{{✗}}
 
|-
 
|Super Don Quix·ote
 
|{{✓}} ||{{✗}} ||{{✗}}
 
|-
 
|Thayer's Quest
 
|{{✓}} ||{{✗}} ||{{✓}}
 
|-
 
|Time Gal
 
|{{✗}} ||{{✗}} ||{{✓}}
 
|-
 
|Time Traveler
 
|{{✗}} ||{{✗}} ||{{✓}}
 
|-
 
|Us vs. Them
 
|{{✓}} ||{{✓}} ||{{✗}}
 
|-
 
|Who Shot Johnny Rock?
 
|{{✗}} ||{{✗}} ||{{✓}}
 
|-
 
|Zorton Brothers
 
|{{✗}} ||{{✗}} ||{{✓}}
 
|}
 
<small>This list is updated as of MAME 0.197 and DAPHNE 1.0.12.</small>
 
  
<nowiki>*</nowiki> '''Ports:''' for a list of what systems the games have been ported to check [http://www.dragons-lair-project.com/games/related/ports.asp this link].
+
{{Nes}}
  
[[Category:Arcade]]
+
[[Category:Emulators]]
 +
[[Category:Nintendo Entertainment System emulators]]
 +
[[Category:Super Nintendo emulation software]]

Revision as of 10:27, 11 July 2021

Project Nested
Developer(s) Myself086 (Lorraine Corville)
Latest version v1.3
Active Yes
Platform(s) Super Famicom (SNES)
Emulates NES
Website GitHub page
Programmed in 65C816 assembly, C#
License MIT License
Source code Git

Project Nested is an open-source Famicom (NES) emulator for the Super Famicom (SNES) written in 65C816 assembly and C#.

Download

Super Nintendo Official releases
GitHub releases

History

The project began in 2015 as a NES emulator on PC. The emulator was running at full speed, and development was going "pretty well", but was not considered challenging, so it was decided to move it to the SNES. After three years of casual development and thinking about how to achieve 100% performance (otherwise it would have been considered pointless) until summer 2018, the emulator began official development.

The current model has been improved since, but not by much. The speed was calculated by multiplying the average amount of times each instruction executed each frame and the overhead. However, the maths were 5 percent off on first implementation. Most implementations were made after approximately one month.

Overview

The emulator was inspired by the SNES originally being designed to be backwards-compatible with the NES and Myself086 wanting to code a JIT (Just-In-Time) compiler.

Emulation works by converting NES ROMs into SNES ROMs using a JIT (Just-In-Time) and AOT (Ahead-of-Time) compiler (with various options) for Windows, allowing them to run on SNES hardware.

Save files are created after the software title runs for a while. These can then be added to the ROM, often improving performance, vastly with some titles, and not much with others.

The following are required:

  • Up to 8MB of fast HiROM (slow HiROM support planned)
  • 16KB of SRAM (support for anywhere up to 256KB of SRAM, depending on the software title and settings, planned)
  • A battery if required by the software title

Compatibility

Emulation occurs at up to 60FPS (frames per second) with audio support, but occasional minor slowdown may occur. Software titles that use mappers 0-2 and 4 are playable, with mappers 1 and 4 having minor glitches, which may reduce compatibility levels with titles that use them, mappers 3, 5-8, 11, 12, 16, 18, 21-26, 32-34, 36-38, 40, 42 and 66 unplayable and mappers 9 and 10 unlikely to be supported due to it being declared impossible to accurately emulate CHR bank switching, performed by both mappers. Additionally, iNES 2.0 is not supported.

Out of the 456 tested titles, 31 (6.80%) are fully playable, 93 (20.39%) are playable but need a full playthrough to test, 29 (8.73%) are mostly playable, 157 (34.43%) crash in the intro or early in-game, 128 (28.07%) are unplayable and 1 (0.22%) is unlikely to be supported. For example:

  • Punch-Out!!! is unlikely to be supported due to using mapper 9/MMC2, as it hard to emulate because memory banks can be changed mid-scanline when it draws characters FE or FD, or sprites, the hardest to implement. This is not as problematic with the background, as the window can be used to draw and switch the characters.
  • One fully playable title, Battle City, was mostly playable from v1.1 until v1.3, when it hung after the game over screen with visual glitches.

Others run with minor glitches or require certain options, such as NMI at vblank or stack native return, to be disabled. Overall, at least 50% of games are expected to run in the future. The official compatibility list is available here.

Future

The following support is being worked on:

  • The graphics in Super Mario Bros. 2 display incorrectly and the American version resets after hitting a Shy Guy. The latter issue has been reverse engineered and figured out. Fixing this would also fix many other games that mistakenly reset.
  • Elite is being used as a model to "aggressively" optimize the EXE, specifically in AOT compilation, to make emulation run at the same speed, or faster if possible.

See also