Megarom how do they work konami 8kbyte ?

By nikodr

Paladin (750)

nikodr's picture

27-04-2021, 00:30

Hello .I am trying to understand how megaroms work specially konami megaroms without scc.
From what i understood we have addresses
Bank 1: 4000h - 5FFFh
Bank 2: 6000h - 7FFFh
Bank 3: 8000h - 9FFFh
Bank 4: A000h - BFFFh
(These are 8kbyte segments.)

And the address to change banks:

Bank 1:
Bank 2: 6000h - 7FFFh (6000h used)
Bank 3: 8000h - 9FFFh (8000h used)
Bank 4: A000h - BFFFh (A000h used)

I am trying to understand which part of the rom never change.Do the first bank remain ?like the first 8kbyte mapped at location 4000-5fff is it always the same?
if the rom is 128kbytes then we have 4 banks of 32kbytes divided in 8kbytes each to switch?
or is it a different numbering scheme?llike 4000 to 5fff is bank 0 and we only change banks 1-2-3 that are respectively 6000-7fff,8000-9fff,a000-bfff ?

Login or register to post comments

By gdx

Enlighted (6436)

gdx's picture

27-04-2021, 02:19

Answers in order:
4 pages of 8kB (between 4000h - BFFFh) selected among 16 segments (8 x 16 = 128)
See here for original cartridges

By Briqunullus

Paladin (768)

Briqunullus's picture

27-04-2021, 18:38

You can have a look at some cracked megaroms to see which combinations of segments are being used. For instance, I found a Nemesis 2 version that did it this way:

- segments 0, 1, 2 and 3
- segments 0, 1, 2 and a
- segments 0, 1, 2 and b
- segments 0, 1, 2 and c
- segments 0, 4, 5 and 6
- segments 0, 7, 8 and 9
- segments 0, d, e and f

(edit: of course Nemesis 2 is a cartridge with scc, but the idea of which segments are being used together remains the same)

By nikodr

Paladin (750)

nikodr's picture

28-04-2021, 00:04

Thank you for your replies.I am trying to understand how megarom works.
So segment 0 always remains unchanged .All other segments can be manipulated by switching the addresses and calling 8kbyte segments right after the adresss like 6000 8000 a000 ?
So the game logic and the custom konami interrupt handler ,the one that is definied in fd9f is supposed to always reside within the $4000-5fff area.
In cracked versions now for 128kbyte memory mapper i assume data and stuff is loaded into the areas that are supposed to be empty like c000 area and after and on vram?
I assume that's how many cracked games were on 128kbyte ram machines if the original megarom was 128kbytes.

By Grauw

Ascended (10821)

Grauw's picture

28-04-2021, 00:11

The Konami mapper does not allow bank selection on the first page, but most MegaROM mapper types do (Konami SCC, ASCII8 and ASCII16 for example). In practice though you will often keep the same general-purpose code in the first page anyway, so it’s not a big restriction.

By thegeps

Paragon (1251)

thegeps's picture

28-04-2021, 12:58

Well, you can set isr hooked code even in other pages.
Actually I do this in Freedom Fighter during prologue and epilogue sequences (recently added)