{"id":15036042,"url":"https://github.com/baekalfen/pyboy","last_synced_at":"2026-10-18T23:49:25.760Z","repository":{"id":32906774,"uuid":"36501634","full_name":"Baekalfen/PyBoy","owner":"Baekalfen","description":"Game Boy emulator written in Python","archived":false,"fork":false,"pushed_at":"2026-10-14T10:34:59.000Z","size":51050,"stargazers_count":5224,"open_issues_count":20,"forks_count":543,"subscribers_count":76,"default_branch":"master","last_synced_at":"2026-10-14T10:35:17.128Z","etag":null,"topics":["cython","emulator","gameboy","gameboy-emulator","gameboy-emulator-library","pypy","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Baekalfen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2015-05-29T11:58:11.000Z","updated_at":"2026-10-14T07:33:48.000Z","dependencies_parsed_at":"2023-10-23T11:36:03.807Z","dependency_job_id":"c989503d-c4fc-4393-a321-2d12a58918e8","html_url":"https://github.com/Baekalfen/PyBoy","commit_stats":{"total_commits":740,"total_committers":37,"mean_commits":20.0,"dds":0.7608108108108108,"last_synced_commit":"8cf3f1f11dd34e6838174ac3680553bf962e4171"},"previous_names":[],"tags_count":59,"template":false,"template_full_name":null,"purl":"pkg:github/Baekalfen/PyBoy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Baekalfen%2FPyBoy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Baekalfen%2FPyBoy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Baekalfen%2FPyBoy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Baekalfen%2FPyBoy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Baekalfen","download_url":"https://codeload.github.com/Baekalfen/PyBoy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Baekalfen%2FPyBoy/sbom","scorecard":{"id":19861,"data":{"date":"2025-08-11","repo":{"name":"github.com/Baekalfen/PyBoy","commit":"02fe4f3b363bae413d9b81f34338c110c49ff409"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Maintained","score":10,"reason":"23 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 1/16 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/pr-test.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE.md:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pr-test.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/Baekalfen/PyBoy/pr-test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pr-test.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/Baekalfen/PyBoy/pr-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pr-test.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/Baekalfen/PyBoy/pr-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pr-test.yml:108: update your workflow using https://app.stepsecurity.io/secureworkflow/Baekalfen/PyBoy/pr-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pr-test.yml:123: update your workflow using https://app.stepsecurity.io/secureworkflow/Baekalfen/PyBoy/pr-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pr-test.yml:167: update your workflow using https://app.stepsecurity.io/secureworkflow/Baekalfen/PyBoy/pr-test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pr-test.yml:169: update your workflow using https://app.stepsecurity.io/secureworkflow/Baekalfen/PyBoy/pr-test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pr-test.yml:173: update your workflow using https://app.stepsecurity.io/secureworkflow/Baekalfen/PyBoy/pr-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pr-test.yml:232: update your workflow using https://app.stepsecurity.io/secureworkflow/Baekalfen/PyBoy/pr-test.yml/master?enable=pin","Warn: containerImage not pinned by hash: extras/Dockerfile.dev:1: pin your Docker image by updating ubuntu:20.04 to ubuntu:20.04@sha256:8feb4d8ca5354def3d8fce243717141ce31e2c428701f6682bd2fafe15388214","Warn: pipCommand not pinned by hash: extras/Dockerfile.dev:20","Warn: pipCommand not pinned by hash: extras/Dockerfile.dev:20","Warn: pipCommand not pinned by hash: .github/workflows/pr-test.yml:35","Warn: pipCommand not pinned by hash: .github/workflows/pr-test.yml:36","Warn: pipCommand not pinned by hash: .github/workflows/pr-test.yml:37","Warn: pipCommand not pinned by hash: .github/workflows/pr-test.yml:38","Warn: pipCommand not pinned by hash: .github/workflows/pr-test.yml:82","Warn: pipCommand not pinned by hash: .github/workflows/pr-test.yml:239","Warn: pipCommand not pinned by hash: .github/workflows/pr-test.yml:245","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned","Info:   0 out of   9 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 18 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"28 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2018-34 / GHSA-2fc2-6r4j-p65h","Warn: Project is vulnerable to: PYSEC-2021-856 / GHSA-5545-2q6w-2gh6","Warn: Project is vulnerable to: PYSEC-2019-108 / GHSA-9fq2-x9r6-wfmf","Warn: Project is vulnerable to: PYSEC-2018-33 / GHSA-cw6w-4rcx-xphc","Warn: Project is vulnerable to: PYSEC-2021-857 / GHSA-f7c7-j99h-c22f","Warn: Project is vulnerable to: GHSA-fpfv-jqm9-f5jm","Warn: Project is vulnerable to: PYSEC-2017-1 / GHSA-frgw-fgh6-9g52","Warn: Project is vulnerable to: PYSEC-2025-49 / GHSA-5rjg-fvgr-3xxf","Warn: Project is vulnerable to: GHSA-cx63-2mw6-8hw5","Warn: Project is vulnerable to: PYSEC-2022-43012 / GHSA-r9hx-vwmv-q579","Warn: Project is vulnerable to: GHSA-3ww4-gg4f-jr7f","Warn: Project is vulnerable to: GHSA-9v9h-cgj8-h64p","Warn: Project is vulnerable to: PYSEC-2021-62 / GHSA-hggm-jpg3-v476","Warn: Project is vulnerable to: PYSEC-2017-8 / GHSA-q3cj-2r34-2cwc","Warn: Project is vulnerable to: PYSEC-2024-4 / GHSA-2mqj-m65w-jghx","Warn: Project is vulnerable to: PYSEC-2023-165 / GHSA-cwvm-v4w8-q58c","Warn: Project is vulnerable to: PYSEC-2022-42992 / GHSA-hcpj-qp55-gfph","Warn: Project is vulnerable to: PYSEC-2023-137 / GHSA-pr76-5cm5-w9cj","Warn: Project is vulnerable to: PYSEC-2023-161 / GHSA-wfm5-v35h-vwf4","Warn: Project is vulnerable to: GHSA-3f63-hfp8-52jq","Warn: Project is vulnerable to: GHSA-44wm-f244-xhp3","Warn: Project is vulnerable to: PYSEC-2023-227 / GHSA-8ghj-p4vj-mr35","Warn: Project is vulnerable to: PYSEC-2022-43145 / GHSA-hr8g-f6r6-mr22","Warn: Project is vulnerable to: GHSA-j7hp-h8jx-5ppr","Warn: Project is vulnerable to: PYSEC-2022-42979 / GHSA-m2vv-5vj5-2hm7","Warn: Project is vulnerable to: OSV-2022-1074","Warn: Project is vulnerable to: OSV-2022-715","Warn: Project is vulnerable to: PYSEC-2023-175"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-14T16:32:53.073Z","repository_id":32906774,"created_at":"2025-08-14T16:32:53.073Z","updated_at":"2025-08-14T16:32:53.073Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":344872684,"owners_count":38343425,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-10-03T21:59:58.778Z","status":"online","status_checked_at":"2026-10-18T02:00:06.448Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["cython","emulator","gameboy","gameboy-emulator","gameboy-emulator-library","pypy","python"],"created_at":"2024-09-24T20:29:59.006Z","updated_at":"2026-10-18T23:49:25.753Z","avatar_url":"https://github.com/Baekalfen.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/Baekalfen/PyBoy/master/extras/README/pyboy10.svg\" width=\"800\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003cstrong\u003eIf you have any questions, or just want to chat, \u003ca href=\"https://discord.gg/wUbag3KNqQ\"\u003ejoin us on Discord\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://trendshift.io/repositories/3811?utm_source=repository-badge\u0026amp;utm_medium=badge\u0026amp;utm_campaign=badge-repository-3811\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cimg src=\"https://trendshift.io/api/badge/repositories/3811\" alt=\"Baekalfen%2FPyBoy | Trendshift\" width=\"250\" height=\"55\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\n\u003c!---\nGenerate GIF with the layout and captions\n--\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd colspan=2 align=\"center\"\u003e\u003ca href=https://github.com/PWhiddy/PokemonRedExperiments\u003eTrain RL agents to play Pokemon Red\u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\u003ca href=https://docs.pyboy.dk/plugins/index.html#rewind-time\u003eRewind any game\u003c/a\u003e\u003cbr\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd colspan=2 align=\"center\"\u003e\n        \u003cdiv align=\"center\"\u003e\n        \u003ca href=\"http://www.youtube.com/watch?feature=player_embedded\u0026v=DcYLT37ImBY\" target=\"_blank\"\u003e\n        \u003cimg src=\"https://img.youtube.com/vi/DcYLT37ImBY/maxresdefault.jpg\" alt=\"Watch the video\" width=\"500\" border=\"10\" /\u003e\n        \u003c!-- \u003cimg src=\"http://img.youtube.com/vi/DcYLT37ImBY/hqdefault.jpg\" alt=\"Watch the video\" width=\"500\" border=\"10\" /\u003e --\u003e\n        \u003c/a\u003e\n        \u003c!-- https://www.youtube.com/watch?v=DcYLT37ImBY --\u003e\n        \u003c!-- \u003cimg src=\"extras/README/8.gif\" width=\"400\"\u003e\u003cbr\u003e --\u003e\n        \u003c/div\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/Baekalfen/PyBoy/master/extras/README/5.gif\" width=\"250\"\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\"\u003ePlay the classics\u003cbr\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\u003ca href=https://github.com/NicoleFaye/PokemonPinballRL\u003eCreate your own AI\u003c/a\u003e\u003cbr\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\u003ca href=https://github.com/Baekalfen/PyBrosAI\u003eTeach Mario to win\u003c/a\u003e\u003cbr\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/Baekalfen/PyBoy/master/extras/README/1.gif\" width=\"250\"\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/Baekalfen/PyBoy/master/extras/README/pinball.gif\" width=\"250\"\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/Baekalfen/PyBoy/master/extras/README/pybrosai.gif\" width=\"250\"\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\nGetting Started\n===============\nThe instructions are simple:\n\n```sh\n$ pip install pyboy\n```\n\nFor platform-specific instructions, see the\n[installation guide](https://docs.pyboy.dk/wiki/development/index.html).\n\nNow you're ready! Either use PyBoy directly from the terminal\n```sh\n$ pyboy game_rom.gb\n```\n\nOr use it in your Python scripts:\n```python\nfrom pyboy import PyBoy\npyboy = PyBoy('game_rom.gb')\nwhile pyboy.tick():\n    pass\npyboy.stop()\n```\n\n\u003c!-- Or using the context manager:\n```python\nfrom pyboy import PyBoy\nwith PyBoy('game_rom.gb') as pyboy:\n    while pyboy.tick():\n        pass\n``` --\u003e\n\n\nThe API\n=======\n\nIf you are looking to make a bot or AI, then these resources are a good place to start:\n * [PyBoy API Documentation](https://docs.pyboy.dk/api/index.html)\n * [Using PyBoy with Gym](https://docs.pyboy.dk/wiki/using-pyboy-with-gym.html)\n * [Example: Kirby](https://docs.pyboy.dk/wiki/examples/kirby.html)\n * [Example: Tetris](https://docs.pyboy.dk/wiki/examples/tetris.html)\n * [Example: Super Mario Land](https://docs.pyboy.dk/wiki/examples/super-mario-land.html)\n * [Code Examples](https://github.com/Baekalfen/PyBoy/tree/master/extras/examples)\n * [Discord](https://discord.gg/wUbag3KNqQ)\n\n\nWhen the emulator is running, you can easily access [PyBoy's API](https://docs.pyboy.dk/api/index.html):\n```python\npyboy.set_emulation_speed(0) # No speed limit\npyboy.button('down')\npyboy.button('a')\npyboy.tick() # Process at least one frame to let the game register the input\nvalue_of_interest = pyboy.memory[0xC345]\n\npil_image = pyboy.screen.image\npil_image.save('screenshot.png')\n```\n\nThe [documentation homepage](https://docs.pyboy.dk/) shows how to interface with PyBoy from your own project.\n\nPerformance\n===========\n\nPerformance is a priority for PyBoy, to make your AI training and scripts as fast as possible.\n\nThe easiest way to improve your performance, is to skip rendering of unnecessary frames. If you know your\ncharacter takes X frames to move, or the game doesn't take input every frame, you can skip those to potentially triple\nyour performance. All game logic etc. will still process.\n\nHere is a simple comparison of rendering every frame, rendering every 15th frame, and not rendering any frames (higher is better). See [`pyboy.tick`](https://docs.pyboy.dk/#pyboy.PyBoy.tick) for how it works. Your performance will depend on the game.\n\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\"\u003e\n        Full rendering\n      \u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\n        Frame-skip 15\n      \u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\n        No rendering\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n      x124 realtime\n      \u003c/td\u003e\n      \u003ctd\u003e\n      x344 realtime\n      \u003c/td\u003e\n      \u003ctd\u003e\n      x395 realtime\n      \u003c/td\u003e\n    \u003c/tr\u003e\n\u003ctr\u003e \u003c!-- Markdown/HTML broken after this --\u003e\n\u003ctd\u003e\n\n```python\nfor _ in range(target):\n    pyboy.tick()\n\n```\n\u003c/td\u003e\n\u003ctd \u003e\n\n```python\nfor _ in range(target//15):\n    pyboy.tick(15)\n\n```\n\u003c/td\u003e\n\u003ctd \u003e\n\n```python\npyboy.tick(target, False)\n\n```\n\u003c/td\u003e\n\u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\nThe Game Boy was originally running at 60 frames per second, so a speed-up of 100x realtime is 6,000 frames per\nsecond. And trivially from the table above, simulating 395 hours of gameplay can be done in 1 hour with no rendering.\n\nIt's also recommended to be running multiple instances of PyBoy in parallel. On an 8-core machine, you could potentially\ndo 3160 hours of gameplay in 1 hour.\n\nContributing\n============\nFor development setup, testing, and pull request guidance, see the\n[Contributing guide](https://docs.pyboy.dk/wiki/development/contributing.html).\nYou can browse [open issues](https://github.com/Baekalfen/PyBoy/issues) or\ndiscuss larger proposals on the [PyBoy Discord](https://discord.gg/wUbag3KNqQ).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaekalfen%2Fpyboy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbaekalfen%2Fpyboy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaekalfen%2Fpyboy/lists"}