{"id":15716071,"url":"https://github.com/ix/lazyboy","last_synced_at":"2025-04-14T06:43:32.387Z","repository":{"id":56845436,"uuid":"151104247","full_name":"ix/lazyboy","owner":"ix","description":"An EDSL implemented in Haskell for programming the Nintendo Game Boy.","archived":false,"fork":false,"pushed_at":"2023-10-06T16:14:58.000Z","size":154,"stargazers_count":48,"open_issues_count":4,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-27T20:23:21.861Z","etag":null,"topics":["dsl","edsl","game-boy","gameboy","games","gaming","haskell","homebrew","videogames"],"latest_commit_sha":null,"homepage":"","language":"Haskell","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/ix.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":null,"patreon":"evrdrm","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2018-10-01T14:40:15.000Z","updated_at":"2025-01-13T15:55:26.000Z","dependencies_parsed_at":"2023-12-15T20:09:02.285Z","dependency_job_id":"81a49ee5-4d0c-4087-bf4b-5f8d449adff5","html_url":"https://github.com/ix/lazyboy","commit_stats":{"total_commits":122,"total_committers":5,"mean_commits":24.4,"dds":0.0901639344262295,"last_synced_commit":"36b0e00b6b8477b14c6f94a00c71659e4603bea0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ix%2Flazyboy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ix%2Flazyboy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ix%2Flazyboy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ix%2Flazyboy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ix","download_url":"https://codeload.github.com/ix/lazyboy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248837264,"owners_count":21169373,"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":["dsl","edsl","game-boy","gameboy","games","gaming","haskell","homebrew","videogames"],"created_at":"2024-10-03T21:43:58.641Z","updated_at":"2025-04-14T06:43:32.358Z","avatar_url":"https://github.com/ix.png","language":"Haskell","readme":"![LAZYBOY](meta/logo.png)\n[![Build Status](https://travis-ci.org/ix/lazyboy.svg?branch=master)](https://travis-ci.org/ix/lazyboy)\n[![Coverage Status](https://coveralls.io/repos/github/ix/lazyboy/badge.svg?branch=master)](https://coveralls.io/github/ix/lazyboy?branch=master)\n[![Hackage](https://img.shields.io/hackage/v/lazyboy.svg?color=mediumpurple)](https://hackage.haskell.org/package/lazyboy)\n---\n\nAn embedded domain-specific language + compiler written in Haskell for producing code to run on the Nintendo Game Boy.\n\nAlso features a library for manipulating constructs such as memory and graphics.\n\nCurrently, RGBASM is the only output target, but in the future native machine code generation is planned.\n\nSyntax example (will be updated as more complex constructs are added):\n\n```haskell\nmain :: IO ()\nmain = rom \u003e\u003e= T.putStrLn\n    where rom = compileROM $ do\n            byte A 0xDE\n            byte B 0xDE\n            if' ((A == (0xDE :: Word8)) \u0026\u0026 (A == B)) $ do\n                write (Address wram0) 0xDE\n            freeze\n```\n\nSee `app/Main.hs` for a full usage example.\n\nBuild a ROM (output will be named `main.gb`):\n```\nstack run \u003e examples/main.asm\ncd examples \u0026\u0026 make NAME=main\n```\n\n# About issues\nI mostly use the issue tracker on here as a place to write about planned features and compiler development, \ndon't take the count as an indicator of active bugs, and be sure to filter to show only issues that are bugs if you are curious on the state of the project.\n\n# Contributing\nPlease see the [Contributing](https://github.com/ix/lazyboy/wiki/Contributing) page on the Wiki.\n\nAdditional information about the project can also be found on the Wiki.\n\n# Special thanks\nThanks to [Francesco149](https://github.com/Francesco149) and [Bonzi](https://github.com/bnzis) for kindly devoting their time and knowledge to the project. The graphics functionality in particular would not be where it is without their assistance.\n","funding_links":["https://patreon.com/evrdrm"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fix%2Flazyboy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fix%2Flazyboy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fix%2Flazyboy/lists"}