Joined: 3/31/2010
Posts: 1466
Location: Not playing Puyo Tetris
I wanted to ask, why does Bizhawk and other more accurate emulators, require the enhancement chip ROM files for running those enhanced games (Mega Man X 2/3, Pilotwings, Super Mario Kart, ect.) while the only real "enhancement" chip for the Genesis (per say) was the SVP chip (Virtua Racing) but there is no requirement for an SVP ROM file. What is the difference here?
I am NOT asking for ROMs. I am asking, Why these ROMs must be used. It's from a legal and technical standpoint, I am looking for.
When TAS does Quake 1, SDA will declare war.
The Prince doth arrive he doth please.
Joined: 3/2/2010
Posts: 2178
Location: A little to the left of nowhere (Sweden)
I will assume that in the Genesis case, the SVP chip is emulated on a high-level. While in the SNES case the chips are emulated on a low-level.
The difference here is that high-level simulates the chips operations as a black box. Data X goes in, therefor we should give back result Y. The results are usually correct, but the timing may be completely wrong.
Low-level on the other hand actually simulates the tiny computation unit inside the chip, and executes the instructions from the ROM, to yield the result instead, while doing it in the amount of time it was supposed to.
In other words, there's no BSNES equivalent of Gens. I wish Genesis emulation was a bit more geared to faithful recreation of the system rather than the quick-and-dirty let's go now that it is now.
Joined: 3/31/2010
Posts: 1466
Location: Not playing Puyo Tetris
So BSNES and BizHawk do this:
Mega Man X2/3 requests that special function (Trigonometry?)
The Emulator, then passes that function to the Enhancement ROM file.
The Enhancement ROM does it's thing
The Emulator takes the output from the Enhancement ROM file and passes it back to Mega Man X2/3 and then keeps going doing it's thing.
Does that sound right? I think it does sound about right to me at least.
I wish Genesis emulation was more accurate as well.
When TAS does Quake 1, SDA will declare war.
The Prince doth arrive he doth please.
Joined: 3/2/2010
Posts: 2178
Location: A little to the left of nowhere (Sweden)
hegyak wrote:
So BSNES and BizHawk do this:
Mega Man X2/3 requests that special function (Trigonometry?)
The Emulator, then passes that function to the Enhancement ROM file.
The Enhancement ROM does it's thing
The Emulator takes the output from the Enhancement ROM file and passes it back to Mega Man X2/3 and then keeps going doing it's thing.
Does that sound right? I think it does sound about right to me at least.
Almost correct, it passes the function to the simulated computation unit of the chip, which in turn executes the enhancement ROM binary to do the necessary operations.
There's (roughly?) timing-accurate emulation of various things going on:
- SNES CPU
- SNES APU
- SNES PPU
- Bus clock delays
With another chip, it emulates that too. The ROM is just code that runs in that chip, as Warepire said. If the chip had no ROM / execution unit for a ROM, then it would still need to be emulated. Because there is no ROM in this case you just don't see it. A good example of this is NES mappers.
It has little to do with SNES vs Genesis and more to do with time and interest spent developing accurate emulators