Floating IPS is a patcher for IPS and BPS files.
Go to file
2018-04-25 18:45:30 +02:00
.vscode Implement #5 2018-04-02 14:21:40 +02:00
libdivsufsort-2.0.1 Include this one. 2016-01-17 18:17:20 +01:00
profile Allow using /dev/stderr as output under GTK, per #9 2018-04-20 18:32:52 +02:00
.gitignore Implement #5 2018-04-02 14:21:40 +02:00
bps.ico Initial commit - version 1.31 2016-01-17 18:14:53 +01: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 Use more mmap, per #10 2018-04-21 11:20:12 +02:00
flips-gtk.cpp Use more mmap, per #10 2018-04-21 11:20:12 +02:00
flips-w32.cpp Use more mmap, per #10 2018-04-21 11:20:12 +02:00
flips.cpp this segfault isn't really needed either. 2018-04-21 11:21:32 +02:00
flips.h Fix #2 again, and finish the emu config panel 2017-05-16 20:02:16 +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 Add bps-in-memory creator, also update version 2018-04-25 18:45:30 +02:00
global.h Use more mmap, per #10 2018-04-21 11:20:12 +02:00
ips.ico Initial commit - version 1.31 2016-01-17 18:14:53 +01:00
libbps-suf.cpp Random minor cleanups 2016-05-11 15:58:56 +02:00
libbps.cpp Get rid of some segfaults (#10) 2018-04-21 10:00:18 +02:00
libbps.h Add bps-in-memory creator, also update version 2018-04-25 18:45:30 +02:00
libips.cpp Implement #5 2018-04-02 14:21:40 +02:00
libips.h Whatever changes I made since 1.31 2016-01-17 18:15:18 +01:00
libups.cpp Fix #1 2017-01-13 16:36:25 +01:00
libups.h Fix UPS header a little. Also add non-plans. 2016-01-19 01:59:09 +01:00
make.bat Implement #5 2018-04-02 14:21:40 +02:00
make.sh (#7) Redownload the Firefox tarballs if truncated, rather than profiling with corrupt data 2018-04-17 22:25:07 +02:00
Makefile Turns out I broke the Windows build a while ago, how amusing. 2018-04-21 10:08:50 +02:00
README.md Add hardening support and some other fixes, per #7 2018-04-16 23:21:24 +02:00
special.sh Initial commit - version 1.31 2016-01-17 18:14:53 +01:00

Floating IPS 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)
  • Remembers which ROMs you've used, and will use them again if it thinks it's correct (BPS only, GUI only)
  • Can launch other programs after patching the ROMs, allowing you to double click a BPS to launch an emulator (GUI only)

Planned:

  • Automatically enable ROM guesser (open a message box the first time it guesses a ROM, asking if you want that)
  • Different emulators for different filetypes (check the extension, or default to the OS default handler?)
  • Better support for ROM database in CLI; the -d flag, or DB enabling from the GUI (for pure-CLI, existence of flipsdb.bin file beside Flips), will store ROMs in the database; the filename "." will read from it, and "wrong ROM" will look for the right one (but not automatically use it)
  • Use path of patch as output filename, not the ROM path
  • Better autodetection for command line; if the first two files have same extension, create, else apply

Not planned (if your plans are different, send a PR):

  • OSX GUI support; I'm not interested in OSX, and with MultiPatch existing and the Windows version working in Wine, there's no real need
  • Qt GUI support; my distro prefers GTK+, and all distros I've seen can run both GTK+ and Qt, not worth the effort (and QString's UTF-16 irritates me)

To compile (Linux):

  • Install g++ and build-essential (names may vary on non-Debian-based distros). If you want a GUI, install libgtk-3-dev and pkg-config as well.
  • To build an optimized binary, use ./make.sh; for development, use make CFLAGS=-g

To compile (other Unix):

  • Install make and a C++ compiler, then use make CXX=clang++ CFLAGS=-O3 (may require GNU make, not tested; ./make.sh may work, not tested)

To compile (Windows):