Name | nesrs JSON |
Version |
0.1.2
JSON |
| download |
home_page | None |
Summary | NES (Nintendo Entertainment System) emulator written in Rust with Python bindings |
upload_time | 2025-08-04 22:41:11 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.8 |
license | MIT |
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"
}