{"id":13727631,"url":"https://github.com/velipso/gvasm","last_synced_at":"2025-08-21T07:32:14.396Z","repository":{"id":41549565,"uuid":"349545976","full_name":"velipso/gvasm","owner":"velipso","description":"Assembler and disassembler designed specifically for Game Boy Advance homebrew.","archived":false,"fork":false,"pushed_at":"2024-12-07T00:59:00.000Z","size":14785,"stargazers_count":52,"open_issues_count":9,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-12-16T01:49:29.660Z","etag":null,"topics":["arm7-tdmi","assembler","assembly-language","game-boy-advance","game-boy-advance-development","gameboy-advance","gameboy-advance-development","gba","homebrew"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"0bsd","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/velipso.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-19T20:20:53.000Z","updated_at":"2024-12-07T00:57:22.000Z","dependencies_parsed_at":"2024-01-07T16:27:01.463Z","dependency_job_id":"bdead9b5-032d-4990-9dbb-042e40685ecc","html_url":"https://github.com/velipso/gvasm","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/velipso%2Fgvasm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/velipso%2Fgvasm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/velipso%2Fgvasm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/velipso%2Fgvasm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/velipso","download_url":"https://codeload.github.com/velipso/gvasm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230501172,"owners_count":18236061,"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":["arm7-tdmi","assembler","assembly-language","game-boy-advance","game-boy-advance-development","gameboy-advance","gameboy-advance-development","gba","homebrew"],"created_at":"2024-08-03T02:00:27.948Z","updated_at":"2024-12-19T21:08:40.044Z","avatar_url":"https://github.com/velipso.png","language":"TypeScript","funding_links":[],"categories":["编译程序","Compilers"],"sub_categories":["Other places"],"readme":"gvasm\n=====\n\nAssembler and disassembler designed specifically for Game Boy Advance homebrew.\n\nThe assembler works for ARM and Thumb code, and has features like conditional compilation, defined\nconstants and functions, struct layout, compile-time scripts, literal pools, and incremental builds.\n\nThe disassembler is experimental, and includes a partially implemented ARM emulator.\n\nInstall\n=======\n\nYou'll need to install [deno](https://deno.land) on your operating system.\n\nThen run:\n\n```bash\n# install the latest release of deno\ndeno upgrade\n\n# install the latest release of gvasm\ndeno install -g --allow-read --allow-write --allow-run -f -r \\\n  https://raw.githubusercontent.com/velipso/gvasm/main/gvasm.ts\n```\n\nIf this is your first time running `deno install`, you will need to add the deno binary directory to\nyour path.  See the page on [deno install](https://deno.land/manual@v1.27.2/tools/script_installer)\nfor more information.\n\nIn order to upgrade, simply run the above command again -- it will redownload the latest version and\ninstall it.\n\nYou can verify everything installed correctly by running the internal test suite:\n\n```bash\ngvasm itest\n```\n\nEvery test should pass!\n\nAssembler\n=========\n\nRead [the assembler manual](./docs/assembler/README.md).\n\nStart by initializing a new file:\n\n```bash\ngvasm init MyGame.gvasm\n```\n\nThis will create `MyGame.gvasm` in your current directory with a small example program.\n\nYou can build this file via:\n\n```bash\ngvasm make MyGame.gvasm\n```\n\nThis will output `MyGame.gba`, which can be ran inside emulators.  The example program just sets the\nbackground color to green.\n\nDisassember and Emulator [WIP]\n==============================\n\nIf you want to play with the disassembler, you can try:\n\n```bash\ngvasm dis gba_bios.bin\n```\n\nThe emulator can run code, which is useful for quickly debugging a section of code.  For example,\nthis works:\n\n```\n// test.gvasm\n.thumb\nldr   r0, =300\nagain:\n_log  \"r0 = %d\", r0\nsubs  r0, #1\ncmp   r0, #250\nbne   again\n_log  \"done\"\n_exit\n.pool\n```\n\nThen:\n\n```bash\ngvasm run test.gvasm\n```\n\nThis will execute the code, along with debug statements like `_log` and `_exit`, producing the\noutput:\n\n```\nr0 = 300\nr0 = 299\n...\nr0 = 251\ndone\n```\n\nInstalling Older Version\n========================\n\nIf your project uses the older gvasm v1, you can still install the latest release prior to v2 by\nusing the `v1.9.4` tag:\n\n```bash\ndeno install --allow-read --allow-write -f -r \\\n  https://raw.githubusercontent.com/velipso/gvasm/v1.9.4/gvasm.ts\n```\n\nReferences\n==========\n\n* [Assembler Manual](./docs/assembler/README.md)\n* [GBA Instruction Set](https://cdn.githubraw.com/velipso/gvasm/main/docs/assembler/asm.html)\n\nGBA Technical Docs\n==================\n\n* [ARM7TDMI Tech Spec](https://developer.arm.com/documentation/ddi0210/c) ([mirror](https://github.com/velipso/gvasm/blob/main/mirror/arm7tdmi-tech.pdf))\n* [ARM7TDMI Data Sheet](https://www.dwedit.org/files/ARM7TDMI.pdf) ([mirror](https://github.com/velipso/gvasm/blob/main/mirror/arm7tdmi-data.pdf))\n* [ARM7TDMI Instruction Set](https://www.ecs.csun.edu/~smirzaei/docs/ece425/arm7tdmi_instruction_set_reference.pdf) ([mirror](https://github.com/velipso/gvasm/blob/main/mirror/arm7tdmi-inst.pdf))\n  * Error on PDF page 18 (labeled \"Page 16\"), it gives the incorrect encoding for CMN instruction\n* [CowBite Hardware Spec](https://www.cs.rit.edu/~tjh8300/CowBite/CowBiteSpec.htm) ([mirror](https://cdn.githubraw.com/velipso/gvasm/main/mirror/cowbite.html))\n* [GBATEK No$GBA](http://problemkaputt.de/gbatek.htm) ([mirror](https://cdn.githubraw.com/velipso/gvasm/main/mirror/gbatek.html))\n\nFlash Cart Docs\n===============\n\n* [M29W128GH/M29W128GL](https://media-www.micron.com/-/media/client/global/documents/products/data-sheet/nor-flash/parallel/m29w/m29w128g.pdf?rev=d22b70b2c0494a7187cd45dda03ceb9a) ([mirror](https://github.com/velipso/gvasm/blob/main/mirror/m29w128gx.pdf))\n* [S29GL128N/S29GL256N/S29GL512N](https://www.cypress.com/file/219941/download) ([mirror](https://github.com/velipso/gvasm/blob/main/mirror/s29glxxxn.pdf))\n* [M36W0R6030T0/M36W0R6030B0](https://www.datasheetarchive.com/pdf/download.php?id=b575903d0cf639dddc354c69571d90ff1b6021\u0026type=M\u0026term=M36W0R6030T) ([mirror](https://github.com/velipso/gvasm/blob/main/mirror/m36w0r6030x0.pdf))\n* [M58WR064FT/M58WR064FB](https://pdf1.alldatasheet.com/datasheet-pdf/view/155760/STMICROELECTRONICS/M58WR064FT.html) ([mirror](https://github.com/velipso/gvasm/blob/main/mirror/m58wr064fx.pdf))\n* [CFI Publication 100](https://netwinder.osuosl.org/pub/netwinder/docs/nw/flash/cfi100.pdf) ([mirror](https://github.com/velipso/gvasm/blob/main/mirror/cfi100.pdf))\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvelipso%2Fgvasm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvelipso%2Fgvasm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvelipso%2Fgvasm/lists"}