Floating IPS is a patcher for IPS and BPS files.
Go to file
2020-10-02 15:55:39 +02:00
.github/workflows Create codeql-analysis.yml 2020-10-02 15:53:38 +02:00
.vscode Implement #5 2018-04-02 14:21:40 +02:00
data Flips isn't shell, also losslessly recompress the screenshots 2020-02-24 11:48:22 +01:00
flatpak Use the GNOME 3.38 SDK 2020-09-17 12:54:07 +02:00
libdivsufsort-2.0.1 Clean out configure artifacts from libdivsufsort (except config.h and divsufsort.h) 2020-06-14 03:36:45 +02:00
profile Let's just check in the PGO Firefox binaries, one build step less 2020-01-26 05:21:31 +01:00
.gitattributes Add a fake configure script to point people to make.sh 2020-03-20 13:05:37 +01:00
.gitignore Let's just check in the PGO Firefox binaries, one build step less 2020-01-26 05:21:31 +01:00
appveyor.yml Add AppVeyor file for CI 2019-04-29 01:38:45 +02:00
bps_spec.md Add BPS spec 2020-06-04 02:14:59 +02:00
bps.ico Initial commit - version 1.31 2016-01-17 18:14:53 +01:00
configure Misc cleanups, add performance regression test 2020-03-29 06:40:28 +02:00
COPYING Let's make use of this new config. 2016-05-03 21:04:25 +02:00
COPYING.gpl3 Rename those to something more normal. 2016-05-01 17:43:43 +02:00
crc32.cpp Clean up formatting a bit. 2016-01-19 09:43:19 +01:00
crc32.h Clean up formatting a bit. 2016-01-19 09:43:19 +01:00
divsufsort.c and of course I forgot adding the new files. 2016-01-17 18:16:54 +01:00
divsufsort.h and of course I forgot adding the new files. 2016-01-17 18:16:54 +01:00
flips-cli.cpp Testing CodeQL 2020-10-02 15:55:39 +02:00
flips-gtk.cpp Replace flatpak define with runtime test, should make reproducible builds work better (except I don't have that configured, but maybe one of my users do.) 2020-04-15 01:41:59 +02:00
flips-w32.cpp Fix 'Run in emulator' option with mingw-w64 8.1.0 2019-04-28 18:29:14 +02:00
flips.cpp Fix exit code, clarify behavior with --ignore-checksum; fixes #36 2020-09-23 14:17:43 +02:00
flips.h Delete version number, to clarify that there will be no more releases 2020-09-23 14:17:43 +02:00
flips.ico Initial commit - version 1.31 2016-01-17 18:14:53 +01:00
flips.Manifest Initial commit - version 1.31 2016-01-17 18:14:53 +01:00
flips.rc Delete version number, to clarify that there will be no more releases 2020-09-23 14:17:43 +02:00
global.h Move bps_create_delta_inmem to a .cpp, close #30 2020-03-23 13:14:02 +01:00
ips.ico Initial commit - version 1.31 2016-01-17 18:14:53 +01:00
libbps-suf.cpp Misc cleanups, add performance regression test 2020-03-29 06:40:28 +02:00
libbps.cpp Switch to smaller profiling data - seems to give better results, anyways 2018-12-30 19:15:29 +01:00
libbps.h Move bps_create_delta_inmem to a .cpp, close #30 2020-03-23 13:14:02 +01:00
libips.cpp This warning isn't needed 2018-09-17 04:18:22 +02:00
libips.h Move bps_create_delta_inmem to a .cpp, close #30 2020-03-23 13:14:02 +01:00
libups.cpp Fix #1 2017-01-13 16:36:25 +01:00
libups.h Move bps_create_delta_inmem to a .cpp, close #30 2020-03-23 13:14:02 +01:00
make-maintainer.sh Misc cleanups, add performance regression test 2020-03-29 06:40:28 +02:00
make.sh -fprofile-generate isn't thread safe 2020-04-26 18:13:30 +02:00
Makefile Might as well add a 'use make.sh' notice here too 2020-04-26 17:46:48 +02:00
README.md Delete version number, to clarify that there will be no more releases 2020-09-23 14:17:43 +02:00
special.sh Initial commit - version 1.31 2016-01-17 18:14:53 +01:00

Floating IPS (or Flips) is a patcher for IPS and BPS files, aiming for a simple interface yet plenty of power under the hood.

Features:

  • Creates the smallest BPS patches of any known tool in existence, and is faster than any other comparable creator
  • Creates the smallest IPS patches of any known tool in existence, too (but only a little smaller, Lunar IPS is quite good)
  • Fully-featured GUIs under Windows and GTK+, including command line support; can also be a pure command line program
  • Can apply multiple patches to the same ROM, creating a huge pile of ROMs (GUI only)
  • Can remembers which ROMs you've used, and use them again if it thinks it's correct (BPS only, GUI only)
  • Can launch other programs after patching the ROMs; together with the above, this allows you to double click a BPS to launch an emulator (GUI only)

Floating IPS is in maintenance mode. Bug reports and pull requests will be processed, but feature requests are unlikely to be implemented. There will be no formal releases within any forseeable future; users should consider every commit a release.

Third-party forks, or separate tools, covering usecases this version doesn't (this only acknowledges their existence, and is not an endorsement; I haven't used most of them):

  • Floating IPS; the original Floating IPS, in case you're currently looking at a fork
  • MultiPatch, OSX, applies BPS/IPS/UPS/PPF/Xdelta/bsdiff/Ninja2, creates BPS/IPS/XDelta/bsdiff
  • QtFloatingIPS, Flips port to OSX (may work on others too)
  • Wh0ba Floating IPS, Flips port to iOS/Cydia
  • CPS, JavaScript, applies BPS, creates nothing
  • There are many tools that offer a strict subset of Flips functionality (Lunar IPS, beat, etc). I'm not listing them here.

Compilation - Linux (Debian/Ubuntu):

  • sudo apt-get install g++ build-essential; for GUI support, also sudo apt-get install libgtk-3-dev pkg-config
  • ./make.sh to build an optimized binary; for development, use make CFLAGS=-g (ignore make-maintainer.sh)

Compilation - other Linux:

  • Install make and g++; for GUI support, also install pkg-config and GTK+ 3 headers; for profiling support, also install curl or wget
  • ./make.sh to build an optimized binary; for development, use make CFLAGS=-g (ignore make-maintainer.sh)

Compilation - OSX, other Unix, or anything else with a C++ compiler:

  • Install a C++ compiler
  • clang++ *.c *.cpp -O3 -o flips (with changes as appropriate)
  • For GTK GUI support, use some suitable variant of clang++ *.c *.cpp -O3 -o flips -DFLIPS_GTK -lgtk3
  • For better optimizations (profiling/etc), extract the appropriate commands from Makefile and make.sh

Compilation - Windows:

  • Install mingw-w64, or similar
  • mingw32-make CFLAGS=-O3 (GUI is automatically enabled), or extract the appropriate optimization commands from make.sh
  • Alternatively, here's a binary (though it's quite outdated).

Usage:

  • If GUI is enabled, just run the program. File pickers' window titles tell what they want; Enable automatic ROM picker and Run in Emulator can cause file pickers to appear and disappear depending on the chosen patch, making usage less predictable, so it's disabled by default.
  • For CLI use, see ./flips --help. Available both with or without GUI support (though Windows CLI use from interactive prompts is slightly screwy, due to OS limitations).