I noticed LCSC and JLCPCB do not have many parallel SRAM IC's in stock; currently only 7 different models, of which only two are suitable, and cost 30€+. Ouch.
I thought of pulldown the 4 pins to have initial address bank of 0
Sure.
please check attached initial rough drawing for the whole suggested system.
Displaying the bank number in anything except binary is a bit of a chore. CD4511 and similar can do 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 using 7 LEDs (7-segment display) based on the four address lines, but would be blank for the last five. Decoders like 74'138D can decode three address lines into 8 LEDs, so you'd need two of those, and one logic inverter (for the extra bit, a single MOSFET will do).
Hmmm....
The access time of the Sharp LH52256C/CH is 70ns, which corresponds to slightly over 9 clock cycles at 133 MHz. It seems to me you might be able to use an RP2040 (C2040 at LCSC, about 1€ at LCSC and JLCPCB) to emulate parallel SRAM using PIO via (15+8+3) 26 I/O pins, two pins for I2C (128×32 OLED display), and two pins for buttons – perhaps an I2C slave, shift register, or something. See various "PicoRAM" projects.
The 26 I/O pins do need (unidirectional) level shifting between 5V (N64) and 3.3V (RP2040) – perhaps four 74LVC4245APW,118 (C6091 at LCSC).
RP2040 uses an external QSPI Flash chip, up to 16 MBytes (Winbond W25Q128JVS is used in examples, C97521 at LCSC; minimum 100,000 erase cycles); some of this would be reserved for code and bootloader, but we're talking a three to five hundred "banks", easy. And since it has an USB connection, you could transfer the saved states to/from a computer, each 32k long and corresponding to a separate Pak.
The
Hardware Design with RP2040 includes a minimal example. The power section would differ in that you'd use two diodes or a dual common-cathode diode in front of the 3.3V regulator, to select between USB and N64 5V sources. (Some '1117 series regulators fail short circuit, so I'd suggest carefully selecting which one to use.) The level translators would be powered from the N64 5V. You also need a 12 MHz crystal (Abracon ABM8-272-T3, C20625731 at LCSC). The USB D+ and D- lines need 27.4Ω resistors in series, between RP2040 and the USB connector. So, in addition to the minimal example schematic (page 25), we'd need the voltage translators, I2C pull-up resistors (two 2.2kΩ, or at least pads for two 0603 resistors), and say a TI TCA6408A (C181499 at LCSC) or TCA9555PWR (C465732 at LCSC) as an I2C expander, providing 8 or 16 additional I/O pins that you could use for buttons or LEDs.
Essentially, the RP2040 would keep a single Pak (32kbytes of RAM) in memory as long as it was powered on, but whenever a button is pressed, copy it to Flash. (Another option would be to use another PIO to observe the /WR pin, to auto-trigger a save a half a second to second after the last write.)
Additional buttons would be used to select which Pak is currently active. Since there are so many Paks to choose from, you probably want at least three buttons (next, previous, select), but note that additional modes like "read-only Pak, changes not saved to Flash" and auto-allocating a Pak to a new slot whenever changed, would be easy to implement in software, so at least one more button to select between configuration and Pak is needed. So, say five buttons. A TCA6408A provides eight additional I/O pins, perfect for buttons.
going MCU is a no-go for me since i won't be getting the production boards here to my country (Jordan) due to excessive customs charging and the complicated stuff I need to do. All my other products which are being sold now come from PCBway directly to my shipment and fulfillment company (Next Smart Ship) which is linked to my store... then I ship with press of a button.
Ah, okay.
how much bom cost do you expect after this?
I'd expect under 10€ in any case, but that assumes you could get the SRAM chip at Mouser prices (~ 6€ or less) somehow.