Programming 16K games ROM in AM27C128

Pagina 2/2
1 |

Van gdx

Enlighted (4693)

afbeelding van gdx

12-12-2020, 14:10

Wiki speaks only about the software part. The mirrors and how the headers work are explained so as soon as we understand how the headers are sought and how the ROMs are executed, the possible effects which result from them becomes obvious. So it is implicit but everything is there.

I thought the explanation of the hardware about the ROMs was preferable apart but I may be wrong.

Van mjnman

Supporter (11)

afbeelding van mjnman

08-01-2021, 12:34

I'm sorry for the stupid question, can I put a 48KB rom file game in 64KB eprom? It might work on MSX1?....or is the limit is 8K, 16K and 32K?

Van zeilemaker54

Champion (311)

afbeelding van zeilemaker54

08-01-2021, 16:12

mjnman wrote:

I'm sorry for the stupid question, can I put a 48KB rom file game in 64KB eprom? It might work on MSX1?....or is the limit is 8K, 16K and 32K?

There is no limit. It is just a question how the ROM is addressed and connected to the MSX bus. The MSX bus has standard (simple) addressing lines for 16KB and 32KB ROM, but if you must, you can take the whole 64KB address space of a slot. But using a ROM in page 0 (0000H-3FFFH) is difficult, because you must swap out the BIOS. And page 3 (C000H-FFFFH) is even harder, because then the system variables are swapped out. So that is why most ROMs use the page 1 (4000H-7FFFH) and/or page 2 (8000H-BFFFH) area. If 32 KB ROM space is not enough, mostly a ROM mapper is used (Konami or ASCII style).

Van zeilemaker54

Champion (311)

afbeelding van zeilemaker54

08-01-2021, 16:32

gdx wrote:

as soon as we understand how the headers are sought and how the ROMs are executed

That is common knowledge from my point of view:
Only page 1 and page 2 are checked for the ROM header (041H,042H on 4000H or 8000H). If the header is found, and the ROM has an INIT address defined (either at 4002H or 8002H depending on which page), it is executed. Normally, the INIT routine is in the same page as the ROM header. But this is not required and not checked either. So a ROM with a header on page 1 could use a INIT routine in page 2 (32 KB ROM is this case).
ROMs are search from slot 0 to slot 3 (including secundairy slots (also from 0-3), if the slot is expanded). Page 1 first, then page 2 (in a slot).

Pagina 2/2
1 |