https://github.com/althonos/flips.rs

Rust bindings to Flips, the Floating IPS patcher.

https://github.com/althonos/flips.rs

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.3%) to scientific vocabulary

Keywords

bps ips patcher rom rust-bindings rust-ffi
Last synced: 5 months ago · JSON representation

Repository

Rust bindings to Flips, the Floating IPS patcher.

Basic Info
Statistics
  • Stars: 4
  • Watchers: 3
  • Forks: 2
  • Open Issues: 2
  • Releases: 3
Topics
bps ips patcher rom rust-bindings rust-ffi
Created almost 6 years ago · Last pushed almost 3 years ago
Metadata Files
Readme Changelog License

README.md

flips.rs Star me

Rust bindings to Flips, the Floating IPS patcher.

TravisCI Codecov License Source Crate Documentation Changelog GitHub issues

🗺️ Overview

Flips is a popular patcher for the IPS, BPS and UPS formats, typically used to patch ROMs of video game cartridges. It is known to create the smallest BPS and IPS files among all widely used patchers. This library provides a safe API to create and apply patches to arbitrary sources.

| Format | Apply | Create | Metadata | Study | | ------ | ----- | ------ | -------- | ----- | | UPS | ✔️ | | | | | IPS | ✔️ | ✔️ | | ✔️ | | BPS | ✔️ | ✔️ | ✔️ | |

🔌 Usage

Load a ROM and a patch from two files, apply the patch to the ROM, and then write it back to a file:

```rust extern crate flips;

// get the input ROM and patch let patch = std::fs::read("FELonelyMirrorv3_3.ups").unwrap(); let rom = std::fs::read("Fire Emblem 8.rom").unwrap();

// apply the patch and write the output let output = flips::UpsPatch::new(patch).apply(rom) .expect("could not apply patch"); std::fs::write("FE_LonelyMirror.rom", output).unwrap(); ```

Check the online documentation for more examples about how to use this library.

📝 Features

📦 no_std support

no_std support for this crate can be opted-in by disabling the std feature. It will disable support of std::error::Error and Vec<u8>. It will also disable dynamic dispatch of hardware-accelerated CRC32 implementation.

🧩 CRC32

Flips is patched to use the crc32fast crate instead of the naive algorithm it used, which greatly improves performances when creating or applying BPS and UPS patches, since both of this formats will compute the checksum for their inputs and outputs every time.

📋 Changelog

This project adheres to Semantic Versioning and provides a changelog in the Keep a Changelog format.

📜 License

This library is provided under the GNU General Public License v3.0, since Flips itself is GPLv3 software.

Owner

  • Name: Martin Larralde
  • Login: althonos
  • Kind: user
  • Location: Heidelberg, Germany
  • Company: EMBL / LUMC, @zellerlab

PhD candidate in Bioinformatics, passionate about programming, SIMD-enthusiast, Pythonista, Rustacean. I write poems, and sometimes they are executable.

GitHub Events

Total
Last Year

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 38
  • Total Committers: 1
  • Avg Commits per committer: 38.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Martin Larralde m****e@e****r 38
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 2
  • Total pull requests: 1
  • Average time to close issues: about 2 hours
  • Average time to close pull requests: N/A
  • Total issue authors: 2
  • Total pull request authors: 1
  • Average comments per issue: 2.5
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • MightyCreak (1)
  • sporchia (1)
Pull Request Authors
  • MightyCreak (1)
Top Labels
Issue Labels
bug (1) fixed (1)
Pull Request Labels

Packages

  • Total packages: 2
  • Total downloads:
    • cargo 12,041 total
  • Total dependent packages: 1
    (may contain duplicates)
  • Total dependent repositories: 2
    (may contain duplicates)
  • Total versions: 6
  • Total maintainers: 1
crates.io: flips-sys

Raw FFI bindings to Flips, the Floating IPS patcher.

  • Versions: 3
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 6,236 Total
Rankings
Dependent repos count: 16.5%
Dependent packages count: 18.2%
Average: 26.3%
Forks count: 26.3%
Downloads: 31.6%
Stargazers count: 38.7%
Maintainers (1)
Last synced: 6 months ago
crates.io: flips

Rust bindings to Flips, the Floating IPS patcher.

  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 5,805 Total
Rankings
Dependent repos count: 16.8%
Forks count: 26.3%
Average: 32.0%
Dependent packages count: 36.2%
Downloads: 38.5%
Stargazers count: 42.2%
Maintainers (1)
Last synced: 6 months ago

Dependencies

flips-sys/Cargo.toml cargo
  • quickcheck 0.9 development
  • quickcheck_macros 0.9 development
  • crc32fast 1.2.0
  • libc 0.2.68
Cargo.toml cargo