{"id":15491787,"url":"https://github.com/tristanpenman/asteroids64","last_synced_at":"2025-04-22T19:22:32.862Z","repository":{"id":74415839,"uuid":"494477462","full_name":"tristanpenman/asteroids64","owner":"tristanpenman","description":"Nintendo 64 port of my Asteroids clone","archived":false,"fork":false,"pushed_at":"2023-04-29T11:49:57.000Z","size":998,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-19T10:23:55.556Z","etag":null,"topics":["asteroids","c","n64","retro"],"latest_commit_sha":null,"homepage":"https://github.com/tristanpenman/asteroids64/blob/master/misc/asteroids.z64","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tristanpenman.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":"2022-05-20T13:35:58.000Z","updated_at":"2024-02-17T22:20:19.000Z","dependencies_parsed_at":"2023-06-05T04:30:23.015Z","dependency_job_id":null,"html_url":"https://github.com/tristanpenman/asteroids64","commit_stats":{"total_commits":95,"total_committers":1,"mean_commits":95.0,"dds":0.0,"last_synced_commit":"659bfe68d477afe66858c3fdf04c0900970c5c34"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tristanpenman%2Fasteroids64","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tristanpenman%2Fasteroids64/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tristanpenman%2Fasteroids64/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tristanpenman%2Fasteroids64/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tristanpenman","download_url":"https://codeload.github.com/tristanpenman/asteroids64/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250306817,"owners_count":21408973,"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":["asteroids","c","n64","retro"],"created_at":"2024-10-02T07:56:24.806Z","updated_at":"2025-04-22T19:22:32.839Z","avatar_url":"https://github.com/tristanpenman.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Asteroids 64\n\nThis is the code for a work-in-progress N64 port of my [Asteroids clone](https://github.com/tristanpenman/asteroids).\n\nThe general approach that I've taken is to gradually refactor the code so that platform-specific code is well encapsulated, before back-porting those changes to the original codebase. My plan is to eventually merge the two codebases, and build both versions from the same set of source and data files.\n\nYou can get the latest build [here](misc/asteroids.z64).\n\n## Emulator Support\n\nThe code is frequently tested using [cen64](https://github.com/n64dev/cen64). It has also been tested using [Sixtyforce](https://sixtyforce.com/) on macOS and [Project64](https://www.pj64-emu.com/) on Windows.\n\nHere's the game running in cen64:\n\n![Screenshot in cen64](misc/screenshot.png)\n\n## Real Hardware\n\nThe ROM can simply be copied to a flash cart such as the [EverDrive-64](https://krikzz.com/store/home/55-everdrive-64-x7.html). I've tested this using an X7 cart, however it should work on any flash cart.\n\n## Rumble Pak\n\nThe game is compatible with Rumble Paks and Controller Paks.\n\nWhen a Rumble Pak is inserted, it will be activated by ship explosions.\n\n## Controller Pak\n\nWhen an Controller Pak is inserted, high scores will be saved into a file on the Controller Pak.\n\n## Compiling the ROM\n\nThis code has been written to compile using the original Nintendo 64 SDK on Windows (or Wine), and also using CrashOverride95's [Modern SDK](https://crashoveride95.github.io/n64hbrew/modernsdk/index.html) which is Linux port of the SDK.\n\nTo compile on Windows or Wine, you can run `compile.bat`. A script for running via wine has also been included in `build.sh`.\n\nTo compile on Linux using the Modern SDK, simply run `make`.\n\n### UNFLoader\n\nThe ROM can also be loaded via USB.\n\nThis repo contains a heavily modified version of the USB and Debug Library from [UNFLoader](https://github.com/buu342/N64-UNFLoader/) (see [usb.c](usb.c) and [debug.c](./debug.c)). I have removed code that was not relevant to this project, and modified some function signatures to better fit with the cross-platform needs of this project.\n\nEven with the changes, you can still load the ROM using the original `UNFLoader` executable:\n\n    UNFLoader -d -r asteroids.n64\n\nThe `-d` flag enables debug mode, and will show the output of `debug_printf` calls from the ROM in your terminal.\n\n### Loader64\n\nBefore I discovered UNFLoader, I used a small C program called [loader64](https://github.com/tristanpenman/loader64). This was based on code written by [James Friend](https://github.com/jsdf), who has made a number of great contributions to the N64 Homebrew community.\n\n## License\n\nThis code has been released under the MIT License. See the [LICENSE](LICENSE) file for more information.\n\n### Assets\n\nGame assets are under copyright by Atari.\n\nThe graphics and audio that have been reproduced here are all used in good faith. The clone is intentionally incomplete, so as to not detract from the value of any Atari releases of the game.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftristanpenman%2Fasteroids64","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftristanpenman%2Fasteroids64","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftristanpenman%2Fasteroids64/lists"}