Enhanced Mode

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
noyen1973
Posts: 27
Joined: Sat Oct 06, 2018 10:15 am

Enhanced Mode

Post by noyen1973 » Fri Apr 05, 2019 2:04 pm

Has anyone considered implementing an enhanced mode in an emulator that adds extra registers for accessing a computers physical hardware? For example mapping in new registers at $2xxx/$4xxx for keyboard, time/date, math functions, networking, extra I/O lines etc... Cartridges came with specialty chips onboard so why not lay out the plan and someone down the line might actually be able to make a real plugin cartridge with the enhancements.

lidnariq
Posts: 8782
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: Enhanced Mode

Post by lidnariq » Fri Apr 05, 2019 3:17 pm

I mean, sure, but why? Developing the assets and software is already the hardest part, and restricting that result to just emulators and scarce hard-to-build hardware largely defeats the purpose of writing software for an old device. The MSP1 is something in this direction; to the best of my knowledge, it's only been used to add FMV to existing games, and can only be used on the sd2snes and emulators.

If you make something emulator-only, why bother constraining yourself to the SNES in the first place? It's kind of a pain, and accurate emulation is incredibly resource intensive.

(Extra I/O lines are useless without something designed to be connected to them. e.g. the FDS has seven; nothing ever used them. The Famicom also has seven; other than Nintendo's own first-party peripherals, the remainder are all rare and came at a significant price premium. The Gamecube has three expansion ports on the bottom; two had corresponding first-party peripherals and were only used for that and the last was never used and was removed from later models)

tepples
Posts: 21751
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Enhanced Mode

Post by tepples » Fri Apr 05, 2019 7:52 pm

Super NES Mouse exists. XBAND keyboard existed, as did whatever dial-up network the XBAND's modem provided. A bunch of coprocessors existed to provide extra math registers: DSP-1, CX4, GSU, and more.

User avatar
tokumaru
Posts: 11466
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Re: Enhanced Mode

Post by tokumaru » Fri Apr 05, 2019 8:13 pm

I too fail to see the point... If you're going to create expansions that are emulator-only, why not break free of all SNES restrictions (or at least the restrictions that are getting in the way of what you want to do) and just code games using a modern multi-platform framework?

tepples
Posts: 21751
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Enhanced Mode

Post by tepples » Fri Apr 05, 2019 8:18 pm

One plausible intent is to make the expansions temporarily emulator-only to allow testing the software during the development of the matching hardware.

User avatar
tokumaru
Posts: 11466
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Re: Enhanced Mode

Post by tokumaru » Fri Apr 05, 2019 8:27 pm

But then you need to design this fantasy hardware in a way that's feasible to implement using physical parts, not just add whatever you think would be cool without any sort of planning.

IIRC, some guys once created a magical mapper for Atari 2600 cartridges with all sorts of features and made it work in emulators, but when it came the time to implement it in hardware, it just wasn't possible, because the necessary signals weren't present in the cartridge connector.

User avatar
Memblers
Site Admin
Posts: 3770
Joined: Mon Sep 20, 2004 6:04 am
Location: Indianapolis
Contact:

Re: Enhanced Mode

Post by Memblers » Sat Apr 06, 2019 12:07 am

I have a project that is much like that for NES, it would be adaptable to SNES as well. But with mine it's using the controller port, with the disadvantage that the communication is slower, and advantage that you could use it with any cartridge.

The server software is written in C, and is connects to a USB virtual serial port. The emulator can connect to it through a "null modem" like com0com.

Do any of the SNES flashcarts have a USB port? They may be usable with this.

There's not any completely working application for it so it's not really in a releasable state. The complexity of the project has expanded over time as I've designed multiple layers of protocols, hardware, firmware, emulation of the UART hardware.. plus my notes are scattered all over the place.

noyen1973
Posts: 27
Joined: Sat Oct 06, 2018 10:15 am

Re: Enhanced Mode

Post by noyen1973 » Sat Apr 06, 2019 12:56 am

tepples wrote:One plausible intent is to make the expansions temporarily emulator-only to allow testing the software during the development of the matching hardware.
From an emulator programmers perspective I would think it'd be easier to come up with your own coprocessor/new register standard than trying to reverse engineer someone else's and mimicing it.

The limitations of the SNES would definately have to be considered in the design phase of the extra emulator features. You're still bound to the speed, video and audio of a standard SNES but you'd have extra "tools" to enhance them. That's all the coprocessors did but atleast you could have it all under a single "roof", fully documented and simplified for coders to utilize and hobbyists to enjoy the coders' feats!

"If you build it, they will come..."

The matching hardware may not precipitate but that outcome depends on the community. We're all here because in one way or another the SNES brings us some kind of enjoyment and who's to say it might be another 10-20 years, or less the way technology is advancing, before we see a plugin cartridge that would of borrowed all of our ideas and made into a reality.

Yes I'm a daydreamer but dreams are what inspire us all.

byuu
Posts: 1539
Joined: Mon Mar 27, 2006 5:23 pm
Contact:

Re: Enhanced Mode

Post by byuu » Sat Apr 06, 2019 2:31 am

The reason to expand the SNES isn't really to make new games from scratch.

It's so that when you want to add something novel to an existing game, you can do so easily instead of having to rewrite something as complex as Chrono Trigger, or as nuanced in physics as Super Mario World.

If you just want "Rockman X2 with rumble gamepad support", that's a 20 minute hack compared to a total PC rewrite being a 20 week project if you're lucky.

The reason not to expand the SNES is because for every new thing you come up with, either a) nobody will use it, or b) everyone will use it, and every other emudev will be burdened with requests to support the new expansion (like what happened with MSU1.) MSU1 was at least really easy (~30 lines of code), but still. It would add up if everyone kept doing it.

A little known detail is that when I made MSU1, there was an existing similar project idea: a ZSNES Windows patch to connect it to Winamp to play MP3 background music there, and a Chrono Trigger hack to go along with it. People are gonna do stuff like this whether we think it's a good idea or not.

lidnariq
Posts: 8782
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: Enhanced Mode

Post by lidnariq » Sat Apr 06, 2019 12:07 pm

noyen1973 wrote:From an emulator programmers perspective I would think it'd be easier to come up with your own coprocessor [...] than trying to reverse engineer someone else's and mimicing it.
No. You're always mimicking someone else's CPU. Fast CPUs aren't simple easily-and-accurately emulated devices. Unless you design something that can't be built in hardware, in which case, again, why bother? It's not a SNES game if you can't plug it into a physical SNES.
That's all the coprocessors did but at least you could have it all under a single "roof", fully documented and simplified for coders to utilize and hobbyists to enjoy the coders' feats!
You're both overestimating the utility of a novel coprocessor and underestimating how restrictive the SNES is in the first place. The CX4 is already your math accelerator. The SA1 is already your faster main CPU. The MSU1 is already your streaming audio unit.
The matching hardware may not precipitate but that outcome depends on the community.
The reproduction cost of software is cheap. Hardware isn't. Hardware must be the reference design. Otherwise there's no constraint on what one could justifiably call a SNES game.
who's to say it might be another 10-20 years, or less the way technology is advancing, before we see a plugin cartridge that would of borrowed all of our ideas and made into a reality.
Me. I'll say it. It won't happen. Transistors won't get meaningfully smaller or cheaper. There are no more than a small handful of upcoming process shrinks, high-performance hardware won't get usefully faster. There's no pie-in-the-future-sky. Connecting what high-performance hardware we have to 5V systems will only get harder with time. Design for manufacturability or go home.


byuu wrote:A little known detail is that when I made MSU1, there was an existing similar project idea: a ZSNES Windows patch to connect it to Winamp to play MP3 background music there, and a Chrono Trigger hack to go along with it.
It also filled a niche that wasn't meaningfully handled. What niches still aren't meaningfully handled for which hardware could be built? Of those, which would meaningfully improve a preexisting game?

byuu
Posts: 1539
Joined: Mon Mar 27, 2006 5:23 pm
Contact:

Re: Enhanced Mode

Post by byuu » Sat Apr 06, 2019 12:44 pm

What niches still aren't meaningfully handled for which hardware could be built? Of those, which would meaningfully improve a preexisting game?
Rumble controllers (special writes to IObit would control it) and an internet connection (download updates/daily levels, upload scores, etc.)

There's no rule that it has to run on real hardware. That opens the door to anything at all. Think the Wonder Boy III remake for one example.

I'm thinking if someone really wants to do this, they should treat the end result as a PC game itself, rather than enhancing a general purpose emulator.

lidnariq
Posts: 8782
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: Enhanced Mode

Post by lidnariq » Sat Apr 06, 2019 12:53 pm

byuu wrote:I'm thinking if someone really wants to do this, they should treat the end result as a PC game itself, rather than enhancing a general purpose emulator.
[...reversing order...]
There's no rule that it has to run on real hardware. That opens the door to anything at all. Think the Wonder Boy III remake for one example.
I mean, that's the same thing. If it's not real hardware, it's not a SNES: it's just a painful and roundabout way of writing a game for the PC.

byuu
Posts: 1539
Joined: Mon Mar 27, 2006 5:23 pm
Contact:

Re: Enhanced Mode

Post by byuu » Sat Apr 06, 2019 1:02 pm

I ... feel like I keep explaining this, and it's not being understood. I'll try again ...

The point is that you only have to hack up an existing game, rather than porting 100% of it to C++ first.

Pokun
Posts: 1271
Joined: Tue May 28, 2013 5:49 am
Location: Hokkaido, Japan

Re: Enhanced Mode

Post by Pokun » Sun Apr 07, 2019 7:53 am

Using existing hardware before making your own as much as possible is probably better. The XBAND keyboard isn't as common as the Family BASIC keyboard so you probably want to be able to clone it if possible (I think I've seen at least one homebrew supporting the keyboard). For a real time clock you have the SPC7110 (Far East of Eden Zero) and the S-RTC (Daikaijuu Monogatari II) co-processors. The SD2SNES is the only flashcart that supports S-RTC, it even uses it for the OS (so you can set the time). SPC7110 is not yet supported even on the SD2SNES though.
Memblers wrote: Do any of the SNES flashcarts have a USB port? They may be usable with this.
The SD2SNES has USB by default.
byuu wrote: There's no rule that it has to run on real hardware.
I never thought I'd hear that coming from the author of bsnes.
The original non-clone Super Famicom/NES hardware is what defines SNES. Anything that is not compatible with it could not possibly be called SNES anymore.

Post Reply