Difference between pages "Project Nested" and "1964"

From Emulation General Wiki
(Difference between pages)
Jump to navigation Jump to search
(Categories replaced)
 
(Categories replaced)
 
Line 1: Line 1:
 
{{Infobox emulator
 
{{Infobox emulator
|logo =  
+
|title = 1964
|logowidth =  
+
|logo = 1964_vector.png
|version = 1.4.2
+
|logowidth = 150
|active = Yes
+
|version = 1.1
|platform = [[Emulators on SNES|Super Famicom (SNES)]]
+
|active = No
|target = [[Nintendo Entertainment System emulators|NES]]
+
|platform = [[Emulators on PC|Windows]]
|developer = Myself086 (Laurent Courville)
+
|target = [[Nintendo 64 emulators|Nintendo 64]]
|prog-lang = 65C816 assembly, C#
+
|developer = Rice and [https://sourceforge.net/u/schibo/profile/ schibo] <small>(Joel Middendorf)</small>
|website = [https://github.com/Myself086/Project-Nested GitHub page]
+
|prog-lang = C, C++
|license = MIT License
+
|source = [https://code.google.com/archive/p/emu-1964/ code.google.com]<br />[https://sourceforge.net/projects/schibo/ SourceForge]<br />[https://github.com/schibo/1964js GitHub] <small>(1964js)</small>
|source = [https://github.com/Myself086/Project-Nested GitHub]
+
|license = GNU GPLv2
 
}}
 
}}
  
'''Project Nested''' is an open-source [[Nintendo Entertainment System emulators|Famicom (NES)]] emulator for the [[Super Nintendo emulators|Super Famicom (SNES)]] written 3/4 in 65C816 assembly and 1/4 C#.
+
'''1964''' is an open-source [[Nintendo 64 emulators|Nintendo 64 emulator]]. It was one of the most popular emulators around, but has been superseded by more modern, accurate emulators.
  
 
==Download==
 
==Download==
 
{| cellpadding="4"
 
{| cellpadding="4"
 
|-
 
|-
|align=center|{{Icon|SNES-big}}
+
|align=center|{{Icon|Win-big}}
|'''[https://github.com/Myself086/Project-Nested/releases Official releases]'''
+
|'''[https://www.zophar.net/n64/1964.html Latest releases]'''<br/><small>r139 is the newest build</small>
 +
|-
 +
|colspan="3"|<hr/>
 +
|-
 +
|align=center|{{Icon|Win-big}}
 +
|[http://www.emulation64.com/files/info/197/1964.html/ Older 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.
 
 
As of v1.3, the 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==
 
==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.
+
The graphics engine (plugin?) supplied with it is co-author Rice's work based on the one from Daedalus and is today infamous for its inaccuracy in many games. Back in the 2000's decade, it was the most famous alternative to Project64's support for so many games; although its low-end system support and GUI stability on some processors were weak. Among the elder N64 emulators, this one featured the strongest NetPlay implementation next to only the replaced [[Mupen64Plus|Mupen64k]] project. It also had at its peak popularity the widest support for GameShark cheat codes and features the ability of assigning certain plugins to certain games (very useful for N64 emulation in particular).
 
 
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)
 
* 8KB to 256KB of SRAM (at least 16KB is required to create feedback for the exe)
 
* A battery if required by the software title
 
 
 
===Compatibility===
 
* [https://docs.google.com/spreadsheets/d/1xKZIyNz1DSI3ZBdMfaTEaa_9b6IEABx-ZPwOb6XqcLQ/edit?usp=sharing Compatibility List]
 
 
 
Emulation occurs at up to 60FPS (frames per second) with audio support, but occasional minor slowdown may occur. Software titles that use mappers 0-4 and 7 are playable, with mappers 1 and 4 having minor glitches, which may reduce compatibility levels with titles that use them, mappers 5, 6, 8, 11, 12, 16, 18, 21-26, 32-34, 36-38, 40, 42 and 66 unplayable, mappers 9 and 10 unlikely to be supported due to it being declared impossible to accurately emulate CHR bank switching, and 14 and 17 due to being "copier mappers", and the rest, up to 255, being unknown. Additionally, iNES 2.0 is not supported.
 
 
 
Out of the 456 tested titles, 37 (7.96%) are fully playable, 92 (19.78%) are playable but need a full playthrough to test, 47 (10.11%) are mostly playable, 161 (34.62%) crash in the intro or early in-game, 127 (27.31%) 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, due to difficulties in implementing mid-scanline memory bank changes when drawing 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.
 
* The graphics in Super Mario Bros. 2 displayed incorrectly and the American version reset after hitting a Shy Guy until v1.4. Some time before the [https://www.youtube.com/watch?v=TthFh27Mx5k Sharopolis interview] on July 10, 2021, the latter issue was reverse engineered and figured out, also fixing many other games that mistakenly reset.
 
* Elite is being used as a model to "aggressively" optimize the EXE in AOT compilation, making emulation run at the same speed, or faster if possible. The game runs slowly with flicker and does not support shooting as of v1.3.
 
  
Additionally, 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 in [[Mesen]].
+
==1964js==
 +
1964js is the first N64 emulator written in JavaScript (CoffeeScript to JS). It is (kind of) a port of the N64 emulator for Windows called 1964. 1964 was written in C and C++ for Windows. Its GitHub page is still active as of 2018.
  
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].
+
To quote the authors at Schibo's official blog, the initial goal of this project was to see how well Google Chrome's V8 JavaScript compiler performs. Instead of building a traditional dynarec (JIT compiler) as they did for '''1964''' for Windows which translated MIPS directly to x86, '''1964js''' dynamically writes JavaScript to the web page by reversing MIPS code to JavaScript. This JavaScript represents blocks of rom code. Then, if using Chrome for instance, Google's V8 compiler compiles the JavaScript to native code for the authors automatically.
  
==See also==
+
By pure coincidence, another JavaScript N64 emulator, [http://hulkholden.github.io/n64js/ '''n64js'''], also came out at around the same time as 1964js as well!. It was developed by [http://strmnnrmn.blogspot.com/ StrmnNrmn] (Full: Storming Norman. Real name: Paul Holden from the UK, aka '[https://github.com/hulkholden hulkholden]' at his GitHub profile), author of Daedalus, another old N64 emulator. Its [https://github.com/hulkholden/n64js GitHub page] was last updated at end of 2016, as of 2019.
* [[NeMul]]
 
* [https://www.youtube.com/watch?v=zUSTG--CkSA&t=1s Project Nested -- Play NES games on the SNES!]
 
  
{{Nes}}
+
==External links==
 +
* [http://emu-1964.appspot.com/blog/index.html Official blog for 1964js] (By schibo. Last updated on December 9, 2012.)
  
 
[[Category:Emulators]]
 
[[Category:Emulators]]
 
[[Category:Console emulators]]
 
[[Category:Console emulators]]
 
[[Category:Home console emulators]]
 
[[Category:Home console emulators]]
[[Category:Nintendo Entertainment System emulators]]
+
[[Category:Nintendo 64 emulators]]
[[Category:Super Nintendo emulation software]]
+
[[Category:Windows emulation software]]

Revision as of 03:38, 14 October 2021

1964
1964 vector.png
Developer(s) Rice and schibo (Joel Middendorf)
Latest version 1.1
Active No
Platform(s) Windows
Emulates Nintendo 64
Programmed in C, C++
License GNU GPLv2
Source code code.google.com
SourceForge
GitHub (1964js)

1964 is an open-source Nintendo 64 emulator. It was one of the most popular emulators around, but has been superseded by more modern, accurate emulators.

Download

Windows Latest releases
r139 is the newest build

Windows Older releases

Overview

The graphics engine (plugin?) supplied with it is co-author Rice's work based on the one from Daedalus and is today infamous for its inaccuracy in many games. Back in the 2000's decade, it was the most famous alternative to Project64's support for so many games; although its low-end system support and GUI stability on some processors were weak. Among the elder N64 emulators, this one featured the strongest NetPlay implementation next to only the replaced Mupen64k project. It also had at its peak popularity the widest support for GameShark cheat codes and features the ability of assigning certain plugins to certain games (very useful for N64 emulation in particular).

1964js

1964js is the first N64 emulator written in JavaScript (CoffeeScript to JS). It is (kind of) a port of the N64 emulator for Windows called 1964. 1964 was written in C and C++ for Windows. Its GitHub page is still active as of 2018.

To quote the authors at Schibo's official blog, the initial goal of this project was to see how well Google Chrome's V8 JavaScript compiler performs. Instead of building a traditional dynarec (JIT compiler) as they did for 1964 for Windows which translated MIPS directly to x86, 1964js dynamically writes JavaScript to the web page by reversing MIPS code to JavaScript. This JavaScript represents blocks of rom code. Then, if using Chrome for instance, Google's V8 compiler compiles the JavaScript to native code for the authors automatically.

By pure coincidence, another JavaScript N64 emulator, n64js, also came out at around the same time as 1964js as well!. It was developed by StrmnNrmn (Full: Storming Norman. Real name: Paul Holden from the UK, aka 'hulkholden' at his GitHub profile), author of Daedalus, another old N64 emulator. Its GitHub page was last updated at end of 2016, as of 2019.

External links