I managed to make it work. ket_matsuriver.bin is already decrypted. Just declare a machine that does not decrypt the cpu rom
void pgm_arm_type1_state::init_ket_matsuri()
{
pgm_basic_init(false);
arm_sim_handler = &pgm_arm_type1_state::command_handler_ddp3;
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x400000, 0x400005, read16sm_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_r)), write16sm_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_w)));
}
ROM_LOAD16_WORD_SWAP("ket_matsuriver.bin", 0x000000, 0x200000, CRC(D6DBD74D) SHA1(dc9f90445ddfc4db6ba8ab1d71c862437dfb3a36))
//ROM_LOAD16_WORD_SWAP("ketsui_v100.u38", 0x000000, 0x200000, CRC(dfe62f3b) SHA1(baa58d1ce47a707f84f65779ac0689894793e9d9))
GAME( 2007, ketmatsuri, ket, pgm_arm_type1_cave, ddp3, pgm_arm_type1_state, init_ket_matsuri, ROT270, "hack (trap15)", "Ketsui: Kizuna Jigoku Tachi (IKD 2007 SPECIAL (2007 CAVE MATSURI VER.))", MACHINE_SUPPORTS_SAVE )
You seem to have way more expertise so you should be good with that. If not feel free to send me a PM.