The megarom starts at 04000h. My question is since we do all VDP accesses directly and not perform disk access this BIOS area is a waste. Can I get rid of it at page 0 and use it as RAM from 0100h to 3FFFF ?
I was looking for some threads like this:
I know the ENASLT is at page 0, so we have to clone it in page 1 or 2. But how to find where the RAM is to be changed ? Is there a msx slot for dummies doc anywhere???
ram in page 0 is possible. i have my int hook at $38 and my engine starts at $3e (no need to start at $100)
But... What exactly do you want ? If you want to you can also check out #msxdev on irc Rizon.
People there are really kind and full of knowledge.
I want more ram
Of course you can do it ...
That's what happens with DOS anyway.
You do not need to clone anything.
Since you throw away the BIOS, your code and your code alone will be in charge of everything.
You just need to take care of the IHS at $38.
Yes, it can be done. If you're convinced that it will be necessary, your best option is to change it from MegaROM to a DOS disk game. This way you'll have the full RAM at your disposal and will also be able to load all the stage data from the disk. And the 720K disk is much bigger than most MegaROMs.
Just remember that the MSX is not an ZX-Spectrum, please so don't code it like one. No offense meant to the speccy (which is a nice machine), but both machines were designed with completely different philosophies in mind.
The BIOS isn't that slow. It's perfectly possible to code fast action games using it, it's just up to the programmers competence on solving the challenge. The majority of Konami games follow the MSX coding guidelines, and Space Manbow proves that a fast-Paced game is perfectly possible using the BIOS.
FireHawk HDD proves that too, including using the BIOS to translate the OPLL commands on the fly.
That secondary slot register at memory FFFF does not work global like the primary one.
Instead it is like every slot got its own FFFF register.
So first select in port A8 the desired slot to appear in page 3, then poke FFFF.
I use a lot of ROM animation. It can't be done as msx-dos unless I use memory mapper.
Don't get me wrong, I mean no offense, but using a MegaROM, are you sure you need that much RAM for a SMB3 game? The NES has only 2KB of RAM and the original SMB3 runs without any trouble.
Why that much RAM is needed on the MSX version? Even MG2 and Space Manbow use only 16KB of RAM. The rest is left untouched.
The reason is: ROM got a mapper, MSX1 doesn't.
Things written to cycle thru a mapper are a pain to rewrite.
I think this is most universal:
A disk game which as a ROM version loads from ROM like a file (then maybe the ROM can even be compressed). Disk version not using DOS, but BASIC bload. bload can also go over casette port.
After painful makefile etc work, the game is available as
.wav sound file, to get it on the real machine in these diskless days you only need a console + sound cable
The original NES game has also 8Kb more RAM through MMC3. Also, the MMC3 has extra things like character rom switch leaving the CPU for other jobs. My CPU spends a lot of time switching sprites from rom to vram. I need to use more ram to put the entire map on it.
You don't need to have your map in RAM ... Unless it's a dynamic one.
Just leave it in ROM and access it when you need it thru the mapper.
Don't you have an account yet? Become an MSX-friend and register an account!