Cycle-Accurate Nintendo 64 Emulator
Go to file
2018-09-10 21:10:06 +01:00
ai Fix macOS builds. 2017-03-18 22:11:42 -04:00
arch Remove debug information from VMOV code 2018-09-03 22:54:57 -04:00
assets Initial commit. 2014-03-08 11:12:15 -05:00
bus dd: identify IPL and add support for all known dumped IPLs 2016-08-31 18:33:15 -07:00
cmake Add macOS cross-build support. 2017-03-18 22:16:35 -04:00
common Remove unused cen64_context_* calls. 2016-06-22 09:15:10 -04:00
dd dd: identify IPL and add support for all known dumped IPLs 2016-08-31 18:33:15 -07:00
debugger See long description 2015-07-01 18:44:21 -05:00
device Revert "Remove wrong 'const' qualifier for is_viewer pointer" 2018-09-10 20:58:18 +01:00
os Enable implicit-function-declaration as a error 2018-09-09 00:10:25 +03:00
pi Fix segfault when DMAing past the end of cart ROM. 2018-05-23 23:23:45 -04:00
rdp n64video.c: Sync up to r107. 2017-02-15 18:38:28 -05:00
ri Implement izy's SSE audio processing idea. 2016-02-27 18:06:18 -05:00
rsp Add shuffling to VMOV instruction 2018-09-03 22:52:18 -04:00
si Add remaining iQue Bootcode CRCs 2018-04-28 01:36:31 +01:00
vi OpenGL AA & Resample emulation 2018-04-29 20:30:21 +01:00
vr4300 Correct T5 register identifier 2018-01-19 04:49:13 +00:00
.gitattributes See long description 2015-07-01 18:44:21 -05:00
.gitignore See long description 2015-07-01 18:44:21 -05:00
cen64.c Fix thread_setname handling for macOS and older Windows APIs 2018-05-05 23:01:35 +02:00
cen64.h See long description 2015-07-01 18:44:21 -05:00
CMakeLists.txt Revert "Remove wrong 'const' qualifier for is_viewer pointer" 2018-09-10 20:58:18 +01:00
common.h.in Add space between string literal and a macro 2018-09-09 21:43:20 +03:00
CONTRIBUTORS Update contributors and README.md. 2016-02-27 16:04:24 -05:00
LICENSE See long description 2015-07-01 18:44:21 -05:00
README.md Add cen64 Usage to README.md 2018-01-10 00:22:53 +00:00
VERSION Initial commit. 2014-03-08 11:12:15 -05:00

Just give me a copy!

Buildbot: https://github-buildbot.cen64.com/builders

About

Yes, another Nintendo 64 emulator. This one, however, aims for perfect emulation by emulating the hardware inside of the Nintendo 64 itself, down to the register-transfer level (RTL). At the same time, I've tried to keep things as optimized as possible in hopes that CEN64 will someday run ROMs at full speed, even on modest systems.

Why?

CEN64 is my pet project. It's something I pick up whenever I get bored. To me, what Nintendo and SGI did with this console is nothing short of amazing. The ingenuity and design of the hardware was well-ahead of it's time, and it is an absolute blast to reverse-engineer and study. I started this project in order to learn more about what really went on at the hardware level back in the (good old) days.

Thank you to every single one of you developers for filling my childhood with excellent memories. I'd also like to thank the community on all their hard work and effort spent reverse-engineering this little gem. Without further ado... "Get N or get out"!

Development

If you want to contribute, please do! Pull requests are most certainly welcome. Feel free to add yourself to the CONTRIBUTORS file as well.

Keyboard controls

  • 3D stick: arrow keys
  • A button: X
  • B button: C
  • Z button: Z
  • Start button: enter
  • L/R buttons: A/S
  • C-pad: TFGH
  • D-pad: IJKL

Build requirements

  • iconv
  • OpenAL
  • OpenGL

Usage

  • How do I run cen64?
    You will need a valid pifdata.bin file (NTSC or PAL), & a ROM in .z64 format (in big-endian format).

To run cen64 without multithreading (slower):
cen64 pifdata.bin ROM.z64

To run cen64 with multithreading (faster):
cen64 -multithread pifdata.bin ROM.z64

  • How do I run 64DD games?
    You will need a valid 64ddipl.bin file (NTSC JPN or USA), & a 64DD disk image file in .ndd format.

cen64 -ddipl 64ddipl.bin -ddrom DISK.ndd pifdata.bin

  • How do I setup save files for games?
    N64 has various types of save formats used in games...
    You will need to specify the save type yourself, cen64 will create the file if it does not exist.

EEP4K:
cen64 -eep4k eep4k.bin pifdata.bin ROM.z64

EEP16K:
cen64 -eep16k eep16k.bin pifdata.bin ROM.z64

FLASH:
cen64 -flash flash.bin pifdata.bin ROM.z64

SRAM:
cen64 -sram sram.bin pifdata.bin ROM.z64

  • The game runs, but I get strange errors, like multiple ocarinas in Majora's Mask.

You can fix the issue by using the -flash option on the command line:
cen64 -flash flash.bin pifdata.bin majora.z64