Skip to main content
added 2 characters in body
Source Link
NobodyNada
  • 5.5k
  • 1
  • 24
  • 35

Most flashcarts (including the Everdrive) use an FPGA to emulate mappers, which is essentially a programmable ASIC -- a developer writes code in a hardware description language specifying the behavior of the chip. So yes, the mapper is emulated -- but at a lower level than if the entire NES was being emulated through software, since it can't "cheat" in ways that a software emulator can. For example, an FPGA implementing scanline interrupts on the NES must watch the VRAM bus for specific access patterns just like a real mapper would, whereas a software emulator can just directly read the internal state of the PPU to achieve the same effect.

Just like with a pure-software emulator, an FPGA implementation of a mapper can still have bugs, or other differences from the original hardware. However, emulating just a mapper is a lot easier than emulating an entire system. Most mappers are quite simple and well-documented, so there's not really a lot that could go wrong (besides maybe an occasional minute difference in timing, which would result in symptoms like "that one"the glitchy line at the top of the status bar in SMB3 is one pixel shorter")


As a side note: I'm wondering what, specifically, have you found to be inaccurate with emulators? I don't have much experience with SNES or N64 emulation, but the best NES emulators are...just about perfect at this point. The CPU and PPU have been decapped, scanned, and reverse-engineered, and nearly every quirk of the hardware -- even really obscure ones -- is documented and implemented in emulators. If you use a high-quality emulator, the only difference you are likely to encounter is that pixels might look sharp instead of blurry -- but you can fix that with an NTSC filter.

Most flashcarts (including the Everdrive) use an FPGA to emulate mappers, which is essentially a programmable ASIC -- a developer writes code in a hardware description language specifying the behavior of the chip. So yes, the mapper is emulated -- but at a lower level than if the entire NES was being emulated through software, since it can't "cheat" in ways that a software emulator can. For example, an FPGA implementing scanline interrupts on the NES must watch the VRAM bus for specific access patterns just like a real mapper would, whereas a software emulator can just directly read the internal state of the PPU to achieve the same effect.

Just like with a pure-software emulator, an FPGA implementation of a mapper can still have bugs, or other differences from the original hardware. However, emulating just a mapper is a lot easier than emulating an entire system. Most mappers are quite simple and well-documented, so there's not really a lot that could go wrong (besides maybe an occasional minute difference in timing, which would in symptoms like "that one glitchy line at the top of the status bar in SMB3 is one pixel shorter")


As a side note: I'm wondering what, specifically, have you found to be inaccurate with emulators? I don't have much experience with SNES or N64 emulation, but the best NES emulators are...just about perfect at this point. The CPU and PPU have been decapped, scanned, and reverse-engineered, and nearly every quirk of the hardware -- even really obscure ones -- is documented and implemented in emulators. If you use a high-quality emulator, the only difference you are likely to encounter is that pixels might look sharp instead of blurry -- but you can fix that with an NTSC filter.

Most flashcarts (including the Everdrive) use an FPGA to emulate mappers, which is essentially a programmable ASIC -- a developer writes code in a hardware description language specifying the behavior of the chip. So yes, the mapper is emulated -- but at a lower level than if the entire NES was being emulated through software, since it can't "cheat" in ways that a software emulator can. For example, an FPGA implementing scanline interrupts on the NES must watch the VRAM bus for specific access patterns just like a real mapper would, whereas a software emulator can just directly read the internal state of the PPU to achieve the same effect.

Just like with a pure-software emulator, an FPGA implementation of a mapper can still have bugs, or other differences from the original hardware. However, emulating just a mapper is a lot easier than emulating an entire system. Most mappers are quite simple and well-documented, so there's not really a lot that could go wrong (besides maybe an occasional minute difference in timing, which would result in symptoms like "the glitchy line at the top of the status bar in SMB3 is one pixel shorter")


As a side note: I'm wondering what, specifically, have you found to be inaccurate with emulators? I don't have much experience with SNES or N64 emulation, but the best NES emulators are...just about perfect at this point. The CPU and PPU have been decapped, scanned, and reverse-engineered, and nearly every quirk of the hardware -- even really obscure ones -- is documented and implemented in emulators. If you use a high-quality emulator, the only difference you are likely to encounter is that pixels might look sharp instead of blurry -- but you can fix that with an NTSC filter.

Source Link
NobodyNada
  • 5.5k
  • 1
  • 24
  • 35

Most flashcarts (including the Everdrive) use an FPGA to emulate mappers, which is essentially a programmable ASIC -- a developer writes code in a hardware description language specifying the behavior of the chip. So yes, the mapper is emulated -- but at a lower level than if the entire NES was being emulated through software, since it can't "cheat" in ways that a software emulator can. For example, an FPGA implementing scanline interrupts on the NES must watch the VRAM bus for specific access patterns just like a real mapper would, whereas a software emulator can just directly read the internal state of the PPU to achieve the same effect.

Just like with a pure-software emulator, an FPGA implementation of a mapper can still have bugs, or other differences from the original hardware. However, emulating just a mapper is a lot easier than emulating an entire system. Most mappers are quite simple and well-documented, so there's not really a lot that could go wrong (besides maybe an occasional minute difference in timing, which would in symptoms like "that one glitchy line at the top of the status bar in SMB3 is one pixel shorter")


As a side note: I'm wondering what, specifically, have you found to be inaccurate with emulators? I don't have much experience with SNES or N64 emulation, but the best NES emulators are...just about perfect at this point. The CPU and PPU have been decapped, scanned, and reverse-engineered, and nearly every quirk of the hardware -- even really obscure ones -- is documented and implemented in emulators. If you use a high-quality emulator, the only difference you are likely to encounter is that pixels might look sharp instead of blurry -- but you can fix that with an NTSC filter.