nesrs


Namenesrs JSON
Version 0.1.2 PyPI version JSON
download
home_pageNone
SummaryNES (Nintendo Entertainment System) emulator written in Rust with Python bindings
upload_time2025-08-04 22:41:11
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT
keywords python rust emulation
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # NES Emulator in Rust with Python Bindings

## Overview

This project contains a NES (Nintendo Entertainment System) emulator written in Rust with Python bindings. It emulates
the 6502 CPU, PPU (Picture Processing Unit), and other hardware components of the NES, allowing you to play classic NES
games.

## Features

- Full 6502 CPU emulation with all documented and many undocumented opcodes
- PPU emulation with basic rendering capabilities
- Cartridge loading support for NES 1.0 ROM format
- Save state functionality
- Keyboard input handling

## Usage

```python
import nesrs

emu = nesrs.Emulator("/path/to/game.nes", True)

while True:
    emu.step_emulation()
    
    frame = emu.get_current_frame()
    
    value = emu.get_value_at_address(0x1234)
    
    emu.set_key_event(KEY_UP, True)
```

## Key bindings

When keyboard input is enabled:

- Arrow keys: Directional pad
- Space: Select button
- Enter: Start button
- A: A button
- S: B button
- Escape: Quit emulator

## File Formats

- .nes files - NES 1.0 ROMs
- .cpu files - Serialized CPU states (save states)

## Limitations

- Audio is not yet implemented
- Memory mappers are not supported
- No support for NES 2.0 ROM format
- Some undocumented CPU opcodes are not implemented
- Render order may not be correct

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "nesrs",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "python, rust, emulation",
    "author": null,
    "author_email": "Stefan Jovanovic <s.jovanovic3107@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/f8/81/c8e77c621b936fa0976b7b708cbdedd579582c1f9696c45b0d00c5ae0a92/nesrs-0.1.2.tar.gz",
    "platform": null,
    "description": "# NES Emulator in Rust with Python Bindings\n\n## Overview\n\nThis project contains a NES (Nintendo Entertainment System) emulator written in Rust with Python bindings. It emulates\nthe 6502 CPU, PPU (Picture Processing Unit), and other hardware components of the NES, allowing you to play classic NES\ngames.\n\n## Features\n\n- Full 6502 CPU emulation with all documented and many undocumented opcodes\n- PPU emulation with basic rendering capabilities\n- Cartridge loading support for NES 1.0 ROM format\n- Save state functionality\n- Keyboard input handling\n\n## Usage\n\n```python\nimport nesrs\n\nemu = nesrs.Emulator(\"/path/to/game.nes\", True)\n\nwhile True:\n    emu.step_emulation()\n    \n    frame = emu.get_current_frame()\n    \n    value = emu.get_value_at_address(0x1234)\n    \n    emu.set_key_event(KEY_UP, True)\n```\n\n## Key bindings\n\nWhen keyboard input is enabled:\n\n- Arrow keys: Directional pad\n- Space: Select button\n- Enter: Start button\n- A: A button\n- S: B button\n- Escape: Quit emulator\n\n## File Formats\n\n- .nes files - NES 1.0 ROMs\n- .cpu files - Serialized CPU states (save states)\n\n## Limitations\n\n- Audio is not yet implemented\n- Memory mappers are not supported\n- No support for NES 2.0 ROM format\n- Some undocumented CPU opcodes are not implemented\n- Render order may not be correct\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "NES (Nintendo Entertainment System) emulator written in Rust with Python bindings",
    "version": "0.1.2",
    "project_urls": {
        "Homepage": "https://github.com/StefanJo3107/nesrs",
        "Issues": "https://github.com/StefanJo3107/nesrs/issues",
        "Repository": "https://github.com/StefanJo3107/nesrs"
    },
    "split_keywords": [
        "python",
        " rust",
        " emulation"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "dbe47a59f6a1f76234ef22007c6881515e2a670182f7c8bd09a76a1ac3223ab8",
                "md5": "10e9d98f61f91c7447d82a0ec5d0e3df",
                "sha256": "8295f9960029a0c97041469db62a909a5c248fbe1480951e91c676e69920c814"
            },
            "downloads": -1,
            "filename": "nesrs-0.1.2-cp38-abi3-manylinux_2_34_x86_64.whl",
            "has_sig": false,
            "md5_digest": "10e9d98f61f91c7447d82a0ec5d0e3df",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 1213792,
            "upload_time": "2025-08-04T22:41:05",
            "upload_time_iso_8601": "2025-08-04T22:41:05.657917Z",
            "url": "https://files.pythonhosted.org/packages/db/e4/7a59f6a1f76234ef22007c6881515e2a670182f7c8bd09a76a1ac3223ab8/nesrs-0.1.2-cp38-abi3-manylinux_2_34_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f881c8e77c621b936fa0976b7b708cbdedd579582c1f9696c45b0d00c5ae0a92",
                "md5": "827c8750ae3655abac7b804ac567754a",
                "sha256": "a63725b2606e7ec8773321ef164d9644129f53ae36f1b1cb6ca042d79c8f564a"
            },
            "downloads": -1,
            "filename": "nesrs-0.1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "827c8750ae3655abac7b804ac567754a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 244407,
            "upload_time": "2025-08-04T22:41:11",
            "upload_time_iso_8601": "2025-08-04T22:41:11.177912Z",
            "url": "https://files.pythonhosted.org/packages/f8/81/c8e77c621b936fa0976b7b708cbdedd579582c1f9696c45b0d00c5ae0a92/nesrs-0.1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-04 22:41:11",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "StefanJo3107",
    "github_project": "nesrs",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "nesrs"
}
        
Elapsed time: 1.89097s