{"id":17196532,"url":"https://github.com/cottsay/arm_asm_emu","last_synced_at":"2025-07-06T13:06:47.345Z","repository":{"id":17536680,"uuid":"20339328","full_name":"cottsay/arm_asm_emu","owner":"cottsay","description":"Gameboy Emulator in ARM Assembly","archived":false,"fork":false,"pushed_at":"2022-02-07T00:51:12.000Z","size":145,"stargazers_count":102,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-06-16T07:51:12.923Z","etag":null,"topics":["arm","assembly","emulator","gameboy","z80"],"latest_commit_sha":null,"homepage":"","language":"Assembly","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cottsay.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-05-30T19:01:03.000Z","updated_at":"2025-06-06T22:53:56.000Z","dependencies_parsed_at":"2022-09-13T15:52:14.511Z","dependency_job_id":null,"html_url":"https://github.com/cottsay/arm_asm_emu","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/cottsay/arm_asm_emu","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cottsay%2Farm_asm_emu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cottsay%2Farm_asm_emu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cottsay%2Farm_asm_emu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cottsay%2Farm_asm_emu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cottsay","download_url":"https://codeload.github.com/cottsay/arm_asm_emu/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cottsay%2Farm_asm_emu/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260251116,"owners_count":22980971,"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":["arm","assembly","emulator","gameboy","z80"],"created_at":"2024-10-15T01:53:33.252Z","updated_at":"2025-07-06T13:06:47.310Z","avatar_url":"https://github.com/cottsay.png","language":"Assembly","funding_links":[],"categories":[],"sub_categories":[],"readme":"# arm\\_asm\\_emu\nA Game Boy emulator written entirely in ARM assemly language.\n\nWhy assembly language? Why not.\n\n[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/cottsay/arm_asm_emu/arm_asm_emu%20CI/main?event=push\u0026logo=github)](https://github.com/cottsay/arm_asm_emu/actions?query=workflow%3A%22arm_asm_emu+CI%22+branch%3Amain+event%3Apush)\n\n\n## Cross-assembling\nThe Makefile is set up for both native building on an ARM platform as well as\ncross-compling. Pass your favorite cross-compiling prefix to the `make`\ninvocation with something like `CROSS=arm-none-eabi-`.\n\nThe testing harness can also be invoked on a non-arm platform using QEMU.\nSpecify something like `TEST_WRAPPER=qemu-arm` during the `make test`\ninvocation to use QEMU when running tests.\n\n\n## Testing\nA test harness has been created which runs a ROM for a given number of cycles\nand checks a CRC32 of the screen contents against a set value. If the value\ndoesn't match, a capture of the screen is saved as a `.bmp` file and the\nprocess returns non-zero.\n\nAt present, only the Blargg tests are targeted. Here are the current passing\ntests:\n\n| cpu\\_instrs        | passing            |\n| ------------------ | ------------------ |\n| special            | :heavy_check_mark: |\n| interrupts         | :heavy_check_mark: |\n| op sp,hl           | :heavy_check_mark: |\n| op r,imm           | :heavy_check_mark: |\n| op rp              | :heavy_check_mark: |\n| ld r,r             | :heavy_check_mark: |\n| jr,jp,call,ret,rst | :heavy_check_mark: |\n| misc instrs        | :heavy_check_mark: |\n| op r,r             | :heavy_check_mark: |\n| bit ops            | :heavy_check_mark: |\n| op a,(hl)          | :heavy_check_mark: |\n\n| timing             | passing            |\n| ------------------ | ------------------ |\n| instr\\_timing      | :heavy_check_mark: |\n| mem\\_timing        | :heavy_check_mark: |\n| mem\\_timing-2      | :heavy_check_mark: |\n\n| misc               | passing            |\n| ------------------ | ------------------ |\n| oam_bug causes     | :heavy_check_mark: |\n| oam_bug non_causes | :heavy_check_mark: |\n| oam_bug timing_bug | :heavy_check_mark: |\n\n\n## Interface\n\n### Supported graphics interfaces\n* Null\n* Linux framebuffer\n* Bitmap (capture)\n\n### Supported control interfaces\n* Null\n* Linux evdev\n\n### Sound\n(not implemented)\n\n\n## License\nAll code is published under the BSD-3-Clause License. See [LICENSE](LICENSE)\nfor more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcottsay%2Farm_asm_emu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcottsay%2Farm_asm_emu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcottsay%2Farm_asm_emu/lists"}