{"id":16774513,"url":"https://github.com/parasyte/n64rd","last_synced_at":"2025-08-09T03:46:40.318Z","repository":{"id":18593430,"uuid":"21798036","full_name":"parasyte/n64rd","owner":"parasyte","description":"Nintendo 64 Remote Debugger","archived":false,"fork":false,"pushed_at":"2017-09-25T01:02:44.000Z","size":159,"stargazers_count":34,"open_issues_count":3,"forks_count":4,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-18T06:22:44.589Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/parasyte.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-07-13T19:11:40.000Z","updated_at":"2024-05-26T23:53:50.000Z","dependencies_parsed_at":"2022-09-11T20:31:32.109Z","dependency_job_id":null,"html_url":"https://github.com/parasyte/n64rd","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parasyte%2Fn64rd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parasyte%2Fn64rd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parasyte%2Fn64rd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parasyte%2Fn64rd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/parasyte","download_url":"https://codeload.github.com/parasyte/n64rd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244890102,"owners_count":20527030,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-13T06:49:21.335Z","updated_at":"2025-03-22T00:30:46.127Z","avatar_url":"https://github.com/parasyte.png","language":"C","funding_links":[],"categories":["Tools and Libraries"],"sub_categories":["Debugging"],"readme":"n64rd\n=====\n\nNintendo 64 Remote Debugger\n---------------------------\n\nBuilding\n--------\n\n### Requirements ###\n\n* [Python](http://www.python.org/) - For SCons\n* [SCons](http://www.scons.org/) - Build system\n\n### To build a release version ###\n\n    $ scons\n\n### To build a debug version ###\n\n    $ scons debug=1\n\n### To clean ###\n\n    $ scons -c\n\nRunning\n-------\n\n    $ n64rd -h\n    n64rd v0.2\n    By Parasyte (parasyte@kodewerx.org)\n    Website: http://www.kodewerx.org/\n    Build date: Aug 10 2014, 12:31:45\n\n    Usage: n64rd [options]\n    Options:\n      -h            Print usage and quit.\n      -p \u003cport\u003e     Specify port number (default 0x378).\n                    Linux systems with PPDev can use a path.\n                    e.g. \"/dev/parport0\"\n      -v            Detect GS firmware version.\n      -a \u003caddress\u003e  Specify address (default 0x80000000).\n      -l \u003clength\u003e   Specify length (default 0x00400000).\n      -d[file]      Dump memory 32-bits at a time;\n                    Copy \u003clength\u003e bytes from memory \u003caddress\u003e (to [file]).\n      -r[file]      Read memory;\n                    Copy \u003clength\u003e bytes from memory \u003caddress\u003e (to [file]).\n      -w \u003cfile\u003e     Write memory;\n                    Copy from \u003cfile\u003e to memory \u003caddress\u003e.\n      -u \u003cfile\u003e     Upgrade ROM with given file.\n\nPoints of Interest\n------------------\n\n### Differences between `-r` and `-d` ###\n\nThe main differences between the `-r` and `-d` options are:\n\n* `-r` reads one byte at a time. `-d` reads one word at a time.\n  This makes `-d` suitable for reading from ROM space, while `-r` is not.\n* `-r` is restricted to reading valid addresses only. The \"invalid\" address\n  ranges are listed below. `-d` is completely unrestricted; they didn't even\n  try!\n* `-r` keeps the game paused when it is finished. `-d` unpauses immediately when\n  finished.\n* `-r` can only be used in-game. `-d` can be used in the menu or in-game.\n\n#### Invalid read ranges ####\n\n      0x80780000 - 0x807FFFFF\n      0xBDFFFFFF - 0xFFFFFFFF\n\nNote that the mirrored address range 0xA0780000 - 0xA07FFFFF is VALID, so it can\nbe read easily. It also does not take into account the length of the data being\nread. Therefore it's possible to read these invalid ranges by starting at a\nlower address and reading more data. Reading 0x80000000 - 0x807FFFFF is\nperfectly acceptable. (Something, something horrible programming.)\n\nIf it sounds like the `-d` option is more useful, you're probably right. The\nonly exception is when you want to read memory but leave the game paused. And\nthat is easy to patch into the `-d` options, anyway. (Patches are forthcoming!)\n\n### Dumping N64 ROMs ###\n\nDump the cartridge ROM with:\n\n    $ ./n64rd -dgame.n64 -a 0xB0000000 -l 0x0E000000\n\nYou will then have game.n64 file that is 224MB in size. This should be large\nenough for ANY N64 ROM. But it will be way too much for the majority of games.\nThe ROM data will repeat in well-defined intervals. You can adjust `-l` to save\na lot of time, if you know the exact ROM size.\n\n#### Dumping the GS ROM ####\n\nDump the GS ROM with:\n\n    $ ./n64rd -dgs.n64 -a 0xBEC00000 -l 0x00040000\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparasyte%2Fn64rd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fparasyte%2Fn64rd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparasyte%2Fn64rd/lists"}