Sik wrote:
For the Game Genie, I guess you could argue that if you use the Game Genie ROM then it'd also make sense for it to have its own mapper number, but in this case you're looking at an emulator capable of dealing with two cartridges simultaneously.
Yes, if it is applicable to the emulator; not all emulators would work this way, but some can find it useful.
Also, I am considering in this case the Game Genie is in the
primary slot; the game then goes in the secondary slot.
If the BIOS ROM are stored with NES 2.0 headers, then the FDS BIOS needs to be twice and the Game Genie ROM four times (unless it is not mirrored?), since the NES 2.0 header specifies in multiple of 16K PRG ROM. (Emulators that use headerless files, or a different kind of header, don't need to do this.)
Of course not all emulators would necessarily do this; these are two different "styles" and some people may prefer one over the other. At least I prefer the one that I am proposing and find the current style less useful!!
tepples wrote:
Emulators supporting
mapper 68 already need to include an "option ROM" image for the Double Cassette connector in that one baseball game. Emulators supporting FDS need to include an option disc image that can be swapped during "SET SIDE" prompts. So the same general "lock-on" principle could apply to all three: FDS takes a disc image, the baseball game takes a Double Cassette, and Game Genie takes an iNES image. But it does start to get complicated if your emulator supports connecting the FDS system card or the baseball game to a Game Genie through an NES-JOINT, and the case of a cartridge with another full cartridge on it might just be different enough.
In all of these cases, they could be implemented as "command-line parameters" to the mapper (if the command-line parameter happens to be another cartridge, that one can take its own command-line parameters). For example:
Code:
famicom-emulator gamegenie.nes gamegenie.nes mario.nes
famicom-emulator disksys.nes -b 1 -pc mahjong_1A.qdi
famicom-emulator nantettatte_baseball.nes extrom1.bin
famicom-emulator dripgame.nes -s -D 30
Connecting the FDS system card or the baseball game to a Game Genie through an NES-JOINT (and other combinations) is a reason to have mapper numbers and command-line interface; this combination of features is useful for emulators that would implement such a thing. (I don't actually know what NES-JOINT is, but I think I understand what is being meant anyways.)
It is not necessary that emulators implement it in this way (not all might want a command-line interface, but I prefer command-line interfaces); it is just a possibililty, and is the way I intend to do it, at least.
In the case of FDS, disk can also be changed at runtime; I do not really like the current way and would like another way, which can be, there is one "eject" command, and another command to select a .QDI file to load, all without resetting the system. (.QDI is a QuickDisk image for a single side of a single disk.)
Also in the case of FDS, starting it with no disk image specified is like turning it on with no disk, so that can be emulated too, since it does in fact do something in such a case.
Another thing of note is that it would also be possible to write an emulator supporting both methods of loading these things. (For example, in the case of FDS: If you select a ".FDS" file to run, it will find a file called "disksys.rom" and use that as the (headerless) BIOS ROM, load disk 1A from the .FDS, and then run it and allow selecting disk sides from that one file. If you select a ".NES" file specifying mapper #20, then it treats the high 8K of that as the BIOS ROM, and allows loading disk sides from individual files. A similar thing is possible with Game Genie, for example to have a checkmark in the open dialog box to allow loading Game Genie at first (or a menu to type in the cheat codes you want); if you instead load the ".NES" file specifying the Game Genie mapper number, that work too but then needs to load another file too, which can be specified as a command-line parameter is one way to do so.)