It is currently Sun Jun 16, 2019 1:48 pm

All times are UTC - 7 hours



Forum rules





Post new topic Reply to topic  [ 14 posts ] 
Author Message
 Post subject: Enhanced Mode
PostPosted: Fri Apr 05, 2019 2:04 pm 
Offline

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


Top
 Profile  
 
 Post subject: Re: Enhanced Mode
PostPosted: Fri Apr 05, 2019 3:17 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 8379
Location: Seattle
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)


Top
 Profile  
 
 Post subject: Re: Enhanced Mode
PostPosted: Fri Apr 05, 2019 7:52 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 21439
Location: NE Indiana, USA (NTSC)
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.

_________________
Pin Eight | Twitter | GitHub | Patreon


Top
 Profile  
 
 Post subject: Re: Enhanced Mode
PostPosted: Fri Apr 05, 2019 8:13 pm 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 11369
Location: Rio de Janeiro - Brazil
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?


Top
 Profile  
 
 Post subject: Re: Enhanced Mode
PostPosted: Fri Apr 05, 2019 8:18 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 21439
Location: NE Indiana, USA (NTSC)
One plausible intent is to make the expansions temporarily emulator-only to allow testing the software during the development of the matching hardware.

_________________
Pin Eight | Twitter | GitHub | Patreon


Top
 Profile  
 
 Post subject: Re: Enhanced Mode
PostPosted: Fri Apr 05, 2019 8:27 pm 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 11369
Location: Rio de Janeiro - Brazil
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.


Top
 Profile  
 
 Post subject: Re: Enhanced Mode
PostPosted: Sat Apr 06, 2019 12:07 am 
Offline
Site Admin
User avatar

Joined: Mon Sep 20, 2004 6:04 am
Posts: 3688
Location: Indianapolis
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.


Top
 Profile  
 
 Post subject: Re: Enhanced Mode
PostPosted: Sat Apr 06, 2019 12:56 am 
Offline

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


Top
 Profile  
 
 Post subject: Re: Enhanced Mode
PostPosted: Sat Apr 06, 2019 2:31 am 
Offline

Joined: Mon Mar 27, 2006 5:23 pm
Posts: 1475
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.


Top
 Profile  
 
 Post subject: Re: Enhanced Mode
PostPosted: Sat Apr 06, 2019 12:07 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 8379
Location: Seattle
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.

Quote:
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.

Quote:
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.

Quote:
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?


Top
 Profile  
 
 Post subject: Re: Enhanced Mode
PostPosted: Sat Apr 06, 2019 12:44 pm 
Offline

Joined: Mon Mar 27, 2006 5:23 pm
Posts: 1475
Quote:
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.


Top
 Profile  
 
 Post subject: Re: Enhanced Mode
PostPosted: Sat Apr 06, 2019 12:53 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 8379
Location: Seattle
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.


Top
 Profile  
 
 Post subject: Re: Enhanced Mode
PostPosted: Sat Apr 06, 2019 1:02 pm 
Offline

Joined: Mon Mar 27, 2006 5:23 pm
Posts: 1475
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.


Top
 Profile  
 
 Post subject: Re: Enhanced Mode
PostPosted: Sun Apr 07, 2019 7:53 am 
Offline

Joined: Tue May 28, 2013 5:49 am
Posts: 1172
Location: Hokkaido, Japan
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.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 14 posts ] 

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group