Smallest MSX ROMS

Page 1/3
| 2 | 3

By Leo

Paragon (1236)

Leo's picture

25-04-2006, 20:25

Hi

what are the smallest MSX ROMs ?

They all occupy the 32768 first byte of the Z80.
But I guess some are filled with more or less zeros at the end.

Ideally I want a rom size that is : 32768 - 2048xn

Is C-BIOS the smallest ?

Login or register to post comments

By Manuel

Ascended (19298)

Manuel's picture

25-04-2006, 20:32

Do you mean only BIOS/BASIC ROMs?

Why do you want to know anyway?

By Leo

Paragon (1236)

Leo's picture

25-04-2006, 20:54

in fact I am coding in VHDL an MSX on fpga and I need a small boot
'that shows something on the screen'.
This boot romm being mapped inside the FPGA , I need it small , I am
using right now a 32768bytes rom for MSX1 but it fills all the FPGA
memory blocks, I would like to reduce this size by steps of 2kbytes ( one blockram )

It is not clear for me if c-bios is a 16kb file that is enough to show a MSX2 boot logo.

By ARTRAG

Enlighted (6931)

ARTRAG's picture

25-04-2006, 20:59

By Manuel

Ascended (19298)

Manuel's picture

25-04-2006, 21:12

ARTRAG - I doubt these work without a BIOS...

Leo: C-BIOS has a different boot screen than the normal (proprietary) BIOS. The files are filled up to 16k blocks to make them as normal ROM sizes. I'm sure the C-BIOS developers can tell you more about it. Check out the #openMSX channel on irc.Freenode.net, where most of them reside. (Or wait for them to reply here...)

By Manuel

Ascended (19298)

Manuel's picture

25-04-2006, 22:18

<BiFiMSX> I think the MSX2 mainrom would be about 8 KB unpadded
<BiFiMSX> the subrom would be about 5 KB then
<BiFiMSX> the diskrom 1.2K Smile
<BiFiMSX> the logo is about 3 KB

By Leo

Paragon (1236)

Leo's picture

25-04-2006, 23:26

I noticed in the C-BIOS rom that most of the space was filled with 00 or FF.
I dont know really where I can cut it out .
Disk rom is only 1.2k !! really ?!!
...
I am not sure but the MSX BIOS is enough to run MSX-ROM games for instance.
While MSX-BASIC is only necessary fro basic.
In order too have an MSX to boot on MSX DOS , the MSX BASIC is necessary ?
I guess it is more interesting to have MSX2 BIOS rather than MSX1BASIC.

By mars2000you

Enlighted (6430)

mars2000you's picture

25-04-2006, 23:35

Some MSX-ROM games use actually the MSX-BASIC.

By mth

Champion (507)

mth's picture

26-04-2006, 00:56

The disk ROM is so small because it is not finished yet.

Although some ROM games need BASIC, the majority does not, so you can run hundreds of games without it. MSX-DOS can also run without BASIC.

The routines at the end of the C-BIOS main ROM are only needed for certain software that jumps directly to implementation addresses (see comments in the code). In general, these are not needed, so you can just remove them. Also you can remove the include of "statements.asm", since that is only needed for C-BASIC (unfinished as well). If you do that, the C-BIOS main ends at about 0x2780, so less than 10K.

For MSX2 support, you need the sub ROM as well, which is less than 5K.

The logo is optional: if no logo ROM is found during booting, C-BIOS just skips the displaying of the logo and will go straight to booting cartridges.

There are several MSX1 games of 8K, both old commercial ones and games from the MSXDEV competitions. But I think MSX2 games are all larger, most are 128K or more. I don't know if you have a cartridge slot already or whether you have to insert the game in the FPGA as well?

You could create your customised version of C-BIOS and test it in an emulator like openMSX or blueMSX. Once you have the memory map correct, you can put everything in FPGA.

About the main and sub ROM: the main ROM must be in page 0 (0x0000-0x3FFF) slot 0 or 0.0 (if slot 0 is expanded). The sub ROM can be in any slot, but it must be in page 0 as well. I'm not sure if you already have the MSX's slot structure implemented in FPGA. If not, you could fake it for some games by changing the EXTROM routine (0x015F) to call for example 0x3000 + <address> instead of <address> in the subrom slot.

In any case, I think it's easier to first test MSX1 (no sub ROM needed) and once that works move up to MSX2.

By mth

Champion (507)

mth's picture

26-04-2006, 01:55

I made an example:
http://www.treewalker.org/temp/cbios_mini.zip

This archive contains a slightly modified C-BIOS MSX1 ROM, which has the main ROM and the logo ROM combined in 16K. It also contains an example openMSX config which runs C-BIOS and Seleniak in slot 0, using a total of 24K of ROM data.

The included config has 64K of RAM, but it also works with 32K or with 16K (see comments in hardwareconfig.xml). In theory MSX1 could work even with 8K of RAM, but it seems C-BIOS won't boot anymore with less than 16K.

By Leo

Paragon (1236)

Leo's picture

26-04-2006, 07:58

thanks for the rom. I will try it this evening.

I have quite simple slot structure ( not expanded ), and it is not well tested.
Right now I am tracking the cpu to see how well it boots, and trying to understand
why the video output is desesperately black : i guess I have problems with sdram timings,
it is not simple.

Page 1/3
| 2 | 3