PC Engine controllers used 74157 4 to 2 muxer, and SNES controllers used dual 4021 8 to 1 shift register to encode total of 16 input (only 12 used, 4 tied to +5v). If you used something like 74164 1 in to 8 out, chained to get 16 total output you can decode SNES controller data, and you have up to 12 usable functions (plus that 4 more bits that are always HIGH) that you can wire to 74157 like a normal PCE or TG16 controller to get proper data encoding.
A few chips or use something like microprocessor like ATMega or CPLD, PAL, whatever. It's all easy for one who knows electronics. If it was up to me, I'd just program ATMega to read SNES controller via readily available library, check the SELECT (or CLOCK or whatever depending on which schematic, from pin 6 on PCE controller) to determine which mode (A on low, or B oh high) and feed the specific controller function from SNES side to the 4 data pins unless enable line (pin 7 on PCE controller) is HIGH. If the enable is HIGH, ATMega can tristate the 4 data outputs to avoid bus conflict. ATMega should have internal pullup resistor enabled on the 4 data outputs. Minimum of 9 I/O pins would be needed so just about any ATMega chips other than ATTiny can work. (ATMega2560 would be serious overkill even if you're trying to build 5 SNES to PCE multi-tap type adapter with switchable 1 player or 5 players mode, 70 total I/O pins!)