I did some more research.
To me it seems all the dumps that are public are encrypted and the versions by mr. hotglue are either re-encrypted or patched so that they don't care about the ARM. (They use init_ket or init_ddp2 for example)
The process would be something like
- Modify MAME so that the rom is decrypted and the decrypted region can be saved.
- Modify MAME so that the read/writes to shared ram are logged, or dig thru the code. Patch them out.
- Set up a new machine in mame which is PGM + no encryption + no shared ram, test the game to the death..
I'm not sure if the protection is _just_ startup protection, i didn't have enough time to dig into it. Others may comment. Games can read/write to the arm at any point? Not sure..
Once the protection is patched you can just stick the unencrypted code on a 27C322 or 160 and run on a cart without arm/prot device, i think the main pgm unit can run unencrypted code as-is. Others pls. comment
As for the carts out there, probably they are re-encrypted to match whatever pcb they need to run on, which also sort-of protects the work done by others.
Obviously this is not the case with the version from
@lydz as it seems unprotected and unencrypted code as no arm is present.
Edit: Yep, all is in src/mame/machine/pgmcrypt.cpp and to re-encrypt we just apply it all in reverse order i'd say.
DDP3, KET and ESPGAL all use the same arm type handler 1, (DDPDOJ is an unknown at this point.) (See pgmprot_igs027a_type1.cpp)
I did not look close enough to confirm if this is just using decryption and nothing else.
Seems there was(is?) at least one emulator called "CAVEUI" which runs unencrypted program roms for some cave titles.
"CAVEUI Is An Emulator With Cave/SH3 & Other Cave Shooters Of PGM/IGS Board."