Reading of the cartridge did not give consistent results (few bytes in each bank was always non-stable).
So I dumped it, found most similar roms and then analyzed manually it versus the official roms
* single bytes that were different I replaced with the values from original rom
* two or more continous values I left intact (two of the games were converted from MMC1 to MMC3 and also some copyright
info was removd).
+-----------------number of different bytes compared to original ROM
| +--------original ROM size
PRG | |
000000 | 228 | 131072 | d:\!EMU\Fceu\GRY\8820.Nes.Nintendo.Games\Japan\Top Gun - Dual Fighters (J).nes
020000 | 1256 | 131072 | d:\!EMU\Fceu\GRY\8820.Nes.Nintendo.Games\Japan\Airwolf (J).nes
040000 | 266 | 131072 | d:\!EMU\Fceu\GRY\8820.Nes.Nintendo.Games\USA\Silk Worm (U).nes
060000 | 2054 | 131072 | d:\!EMU\Fceu\GRY\8820.Nes.Nintendo.Games\USA\Gun Nac (U).nes
CHR
000000 | 3572 | 131072 | d:\!EMU\Fceu\GRY\8820.Nes.Nintendo.Games\USA\Gun Nac (U).nes
020000 | 10 | 131072 | d:\!EMU\Fceu\GRY\8820.Nes.Nintendo.Games\Japan\Top Gun - Dual Fighters (J).nes
040000 | 495 | 131072 | d:\!EMU\Fceu\GRY\8820.Nes.Nintendo.Games\Japan\Airwolf (J).nes
060000 | 16 | 131072 | d:\!EMU\Fceu\GRY\8820.Nes.Nintendo.Games\USA\Silk Worm (U).nes
At this moment I had working rom, after selecting each game from menu, bank code was writing to $6000/$6002/$6001.
I couldnt find any pattern so again analzyed for each possible value of $6001 how the PRG and CHR banking behaves
(by reading for example $8000-$9fff and comparing it with one of the chunks from previously dumped ROM that has the
least differences, i was able to figute out what bank is set)
$6000 $6002 $6001 (mask: $E003)
Top Gun 00000000 00000000 10110011
Air Wolf 00000000 00000000 01111011
Simk Worm 00000000 00000000 10111111
Gun Nac 00000000 00000000 01110111
abcdefgh
|||||||+- 1=block further writes to those regs
|+|+|++-- PRG
+-+-+---- CHR
| CHR-A | PRG-A
| 111111111 | 111111
c | 876543210 dg | 876543
0 | e######## (256kB) 00 | ###### (512kB)
1 | ea####### (128kB) 01 | f##### (256kB)
11 | fb#### (128kB)
# - comes from MMC3 10 | #b#### (weird 128kB)