Tools for applying bps patches:
Online patcher: https://media.smwcentral.net/Alcaro/bps/
Flips (Windows): https://www.smwcentral.net/?p=section&a=details&id=11474
Flips (source code): https://github.com/Alcaro/Flips
multipatch (macOS): https://projects.sappharad.com/tools/multipatch.html
mltipatch (macOS, source code): https://github.com/Sappharad/MultiPatch

How to use a patcher:
Obviously it's a bit different for each program, but you generally just select a source rom (nds), a patch file (bps), and it produces a patched rom for you.
For Flips you may need to set the file selector to "all file types."

For anybody who wants to verify their files:
Hashes of the original, untouched rom (67108864 bytes/64MB):
(from https://segaretro.org/Puyo_Puyo!!)
CRC32	AAE3A6B9
MD5		f8d7bd7073fa384561888c8e4624174a
SHA-1	fd7694296a093a8620e11eadb2c5938cc13fa753

Hashes from Japanese antipiracy-fix rom (67108864 bytes/64MB):
CRC32	062CE822
MD5		c1d1fcd56c2eb34411c9c736ba8d7cd0
SHA-1	8fd8d1e6143f9daceb93fc531e0c4ce43af894f1

Hashes for the final English patched rom (??? bytes/??MB):
CRC32	2A71CE78
MD5		b2883c0d17298907f65cb88227b80dd2
SHA-1	a003fdefdb665400c663f41f9f048d8672ce79d8

Notes:
pp20th-en-patch-cleanSource.bps - Apply this patch if you have a clean rom.
pp20th-en-b-puyo20th_apfixSource.bps - Apply this patch if your rom already has the anti-piracy patch on it.
hash - Algorithm that takes a file, process it, and produces an output unique to that file input. Used to verify two files are identical. They are useful for anybody trying to make sure they have the correct source rom.
