Hardware-implementable emulator inaccuracies

Discussion of hardware and software development for Super NES and Super Famicom.

Moderator: Moderators

Forum rules
  • For making cartridges of your Super NES games, see Reproduction.
Post Reply
tepples
Posts: 22345
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Hardware-implementable emulator inaccuracies

Post by tepples »

Ice Man wrote: Mon Feb 17, 2020 8:08 am If [games made for ZSNES] don't work on real hardware they certainly shouldn't be allowed to work on an emulator either.
Then the obvious solution is to build real hardware that runs them :twisted:

Expand ARAM to 128K
Option to put echo buffer in top half ($10000-$1FFFF).

No incomplete results for CPU multiplier and divider
Make $4203 and $4206 finish in 4 cycles before the CPU can get around to reading the result, or at least stall the CPU until it finishes. The DMA function already stalls the CPU by internally pulling RDY low.

Genesis-style VRAM access slots
Writes to VRAM outside vertical or forced blanking go to a FIFO. While the FIFO is full, the PPU tells the CPU to stall. The PPU commits a write to VRAM when any of the following is true:
  1. Background fetch from a background layer that is not enabled in TM, TS, TMW, TSW
  2. Background fetch from a (tile number, Y) combination identical to the previous tile on the same layer (will help with large blank areas in HUD)
  3. The 34th background fetch
  4. Half the sprite pattern fetches (for a momentary increase in sprite dropout)
What other noticeable inaccuracies exist in versions of ZSNES and Snes9x popular in the ROM hacking community, so I can continue this thought experiment of extending an FPGA reimplementation of the Super NES chipset to accommodate them in a period-appropriate manner?
User avatar
Bregalad
Posts: 8036
Joined: Fri Nov 12, 2004 2:49 pm
Location: Caen, France

Re: Hardware-implementable emulator inaccuracies

Post by Bregalad »

Why not just have a mini-PC disguised as a console, and running the ZSNES emulator then ? It's real hardware running the game made for innacurate emulators.

Also works for NESticle :)
Ice Man
Posts: 546
Joined: Fri Jul 04, 2014 2:34 pm

Re: Hardware-implementable emulator inaccuracies

Post by Ice Man »

Agree. I see no point in doing such thing unless it's for your own hobby to make a FPGA based console supporting broken games.
nocash
Posts: 1405
Joined: Fri Feb 24, 2012 12:09 pm
Contact:

Re: Hardware-implementable emulator inaccuracies

Post by nocash »

VRAM writes won't need to stall anything, assuming that modern RAM is fast enough to complete read & write in "one cycle". But it's not so much of a good idea to try to overcome the original hardware restrictions & to encourage people to make games that are incompatible with original hardware ... unless you have hopes that the new hardware will set a new standard and outperform the sales of nintendo's original console ; )

Also, there are software bugs that rely on hardware restrictions, so the improved hardware might be able to play crappy homebrews, but may be unable to play some really neat original titles. The only workaround would be asking homebrewers to explicitely enable the new extended mode in their nonstandard games (but most of them are probably unable and/or unwilling to implement any such enable functions).

EDIT: Then on the other hand... I like the queer and non-conservative idea of adopting perceived issues instead of rejecting them.
homepage - patreon - you can think of a bit as a bottle that is either half full or half empty
Post Reply