OK thanks for the answers.
I think the BIOS is pretty good documented, and thanks oRBIT2002 for your tools, they seems they'd be usefull to me.
Quote:
Actually the FDS and Disks are not expensive. Really for most players they are undesirable. Loading times, reliability issues, importing issues. So I think that keeps demand down and the FDS wasn't some total failure, so there is a good supply of FDS stuff.
Well maybe your are right, I haven't checked prices, but here only collectors have this kind of hardware, and they take a game at buying and selling stuff very expensive. I think it could be inexpensive if you import it from Japan, but then the port would be very expensive.
Not to mention I'd probably have trouble to insert the RAM adapter in a frontloader NES, even if I'd somehow get back the 60->72 pin converter from by bro in law.
Quote:
If someone were to take the time to implement a freely redistributable clone of the FDS BIOS, I'd be in favor of FDS homebrew.
I don't know how you could do that. It seems MUCH more a violation of a copiright to write sofware identical to the original than to call routines of the original. And since the FDS BIOS lacks a jump table, all routines would have to be exactly the same # of bytes.
Honestly, the C64 scene has gone pretty far, and I think the Kernal is copyrighted too. That don't prevent people from makings calls to it - and even distribute fully commented disassembles of it. I don't know much about the other platforms tough - I just know I was able to make my own dump of the GBA bios easily using someone else's software - and it would seems this would increase the accuracy of emulators.
Back to my original problem : The main difference between the FDS and the cartridge is that in the FDS you load files into RAM, while in the cart you bankswitch banks of data.
With a cart you can bankswitch data as much as you like, but with the disk, you can only load data you really need for this level.
So it would be basically like that (it's just an exemple):
1) Cart
Bank #0 : Sound engine, all music & SFX data
Bank #1 : Map scrolling engine, map data
Bank #2 : Metatile data, graphics
Bank #3 : Text engine, text data
Bank #4 : ....
Bank #2^n-1 : Interrupt code, main game engine
2) FDS
$6000-$7FFF : SFX data, current level music
$8000-$affff : Current level map & metatile data
$b000-$dfff : Interrupt code, main game engine
So all it'd take for a NES cart to be able to be converted to FDS, is that the sum of the "current level data", plus what is resident in RAM, shouldn't exceed 32kb.