What useful permanent peripherals via the expansion port?

Discuss hardware-related topics, such as development cartridges, CopyNES, PowerPak, EPROMs, or whatever.

Moderator: Moderators

User avatar
FrankenGraphics
Formerly WheelInventor
Posts: 2064
Joined: Thu Apr 14, 2016 2:55 am
Location: Gothenburg, Sweden
Contact:

Re: What useful permanent peripherals via the expansion port

Post by FrankenGraphics »

In a way it would be realistic for the purpose of golf/minigolf: If you don't control your breathing, your swing will risk being off. :wink:

A ribbon controller could actually be a relatively interesting peripheral. More easily precise than a theremin, but unlike a potentiometer (arkanoid controller), you can make direct jumps with your fingers. The slew rate would be controllable in software rather than capped by the inertia/travel of the pot. You could layer it with a pressure sensor. But what sort of game would benefit from it? My first thought is some sort of player-controlled-scrolling sniper game.
User avatar
rainwarrior
Posts: 8732
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: What useful permanent peripherals via the expansion port

Post by rainwarrior »

Would some kind of IRQ be of any use? Or is that too much easier to just build into the cartridge?


I'm reminded that the RetroAVS has a scoreboard feature built into it, so that's maybe an example of a permanent extension already in use.

Maybe an expansion port adapter could connect to lots of stuff, but if there were to be one "pack in" device that comes with it I can't see it being anything other than an ethernet adapter of some sort. Aside from the RetroAVS' scoreboard, there have been other instances like the ConnectedNES demonstration, the ENIO, etc.

If it had a cable that plugged into the expansion adapter it could be easily swapped for something else, if there was some other device people wanted to use, but that's really the only thing I've noticed multiple people wanting to do. It also kind of covers the requests for real time clock, additional storage, etc.

Maybe just thinking about what pins on the expansion port only have a single feature, and which have many... some of the audio and joystick ports seem like they only really have one allocation to me:
  • Audio expansion: already a given.
  • Famicom microphone: though personally I don't think there's much interesting use of it in games it's probably a marketable hardware feature.
  • Famicom multitap: more obscure than the microphpone (and I can't remember if the "multitap" famicom games even work properly).
Aside from the CPU data pins, and the remaining EXP pins, there's still a few joystick ones left too. I guess you could make a connector that takes these out to the "prime" device, which might be ethernet (or ethernet + keyboard like the ENIO was trying to do), and any other new peripherals might just swap cables to replace it, or it could even be a breakout box device that you can plug more things into? Depends on how fancy you want it.

The problem of ethernet and/or keyboard is doable through a controller port of course, but after tepples mentioned second-controller conflicts I started to think of how attractive a "permanently attached" device that is otherwise out of the way could be. A nice package of wifi NES + expansion audio + demo software all in one box? If it had a Famicom expansion port alternative version even the RetroAVS could use it, maybe?

It'd be a great theme for an NESDev compo too. (A compo cart bundle with very viable self-flashing DLC?? Or even just WRAM you could download "NESDev BASIC" programs to? This is almost PICO-8 territory.)


Sorry if that's getting out of the way of the original question but I'm beginning to really see the appeal of this.
lidnariq
Posts: 11432
Joined: Sun Apr 13, 2008 11:12 am

Re: What useful permanent peripherals via the expansion port

Post by lidnariq »

rainwarrior wrote:Sorry if that's getting out of the way of the original question but I'm beginning to really see the appeal of this.
That's exactly the kind of musing I was hoping to elicit. :)
User avatar
rainwarrior
Posts: 8732
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: What useful permanent peripherals via the expansion port

Post by rainwarrior »

Actually it's making me think that an "NESDev BASIC" might be a fun project for me to enter in the next compo, whether or not there can be hardware support (easy to add incrementally later on).

I guess the most compatible thing would be just using controller 2 D3/D4, allowing connection via NES or Famicom expansion ports or directly through NES controller 2 port. Bandwidth wouldn't be optimal, but should be enough to fill up a 16k block in a few seconds anyway?

Doing that wouldn't make the expansion adapter so "essential" but it could still help get the foot in the door. The expansion port adapter itself would probably be a low cost part in this equation anyway, but a good piggyback.
tepples
Posts: 22708
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: What useful permanent peripherals via the expansion port

Post by tepples »

FrankenGraphics wrote:A ribbon controller could actually be a relatively interesting peripheral. More easily precise than a theremin, but unlike a potentiometer (arkanoid controller), you can make direct jumps with your fingers. The slew rate would be controllable in software rather than capped by the inertia/travel of the pot. You could layer it with a pressure sensor. But what sort of game would benefit from it? My first thought is some sort of player-controlled-scrolling sniper game.
A 2D ribbon controller is called a "graphics tablet", and something like Videomation would benefit. So would Thwaite or Operation Wolf or anything else that's point and click. Heck, so would Marble Madness, using the tablet as a trackpad to replace the arcade game's trackball.
User avatar
FrankenGraphics
Formerly WheelInventor
Posts: 2064
Joined: Thu Apr 14, 2016 2:55 am
Location: Gothenburg, Sweden
Contact:

Re: What useful permanent peripherals via the expansion port

Post by FrankenGraphics »

Re rainwarriors' idea: Something like a game patcher for homebrew could definitely have some value. Throw a patch at an app icon, and done.

Would a screenshot extractor be possible w/o too much hardware?


Re: Tepples: Right! Then there's shadowgate, maniac mansion, etc (provided an adapter is hacked in), + that game m-tee has shown teasers of. It'd also work well for my little submarine periscope project.

On the subject of peripherals, how about an endless rotary encoder? It measuring change cw/ccw rather than a position should make it straightforward to interface. Any game or app that could benefit from precise movement or adjustment could also benefit from it. For games like marble madness, a graphics tablet/trackpad/trackball is better, but pinching an encoder knob would be more precise for 1d-aiming/adjusting/positioning/steering/delta-velocity types of games.
Great Hierophant
Posts: 780
Joined: Tue Nov 23, 2004 9:35 pm

Re: What useful permanent peripherals via the expansion port

Post by Great Hierophant »

Do you really need the expansion port for these kinds of controllers? Using the built-in controller ports you have access to $4016 and $4017 D0, D3 & D4. That gives you 24-bits of serial data for eight reads.
The SNES Mouse only uses one data line, so a trackball and a rotary dial should act similarly. A graphics tablet only needs to give 8-bits of data for X and Y.

Rotary Encoder
Arkanoid
Arkanoid II

Rotary Encoder and Joystick
Guerrilla War
Heavy Barrel
Ikari Warriors
Ikari Warriors II
Ikari III

Trackball
Blades of Steel
Cabal
Marble Madness
Millipede
Rampart

Mouse
Deja Vu
Maniac Mansion (most PC versions)
Shadowgate
Uninvited

Steering Yoke + Shifter + Pedals
Spy Hunter

Steering Wheel + Pedals
Danny Sullivan's Indy Heat
Final Lap
Hard Drivin' Prototype
Ironman Ivan Stewart's Super Off Road

Throttle Lever
After Burner II

Analog Joystick
After Burner II
John Elway's Quarterback
tepples
Posts: 22708
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: What useful permanent peripherals via the expansion port

Post by tepples »

Great Hierophant wrote:Do you really need the expansion port for these kinds of controllers? Using the built-in controller ports you have access to $4016 and $4017 D0, D3 & D4. That gives you 24-bits of serial data for eight reads.
The SNES Mouse only uses one data line, so a trackball and a rotary dial should act similarly.
In fact, given that PC trackballs appear to the computer as a mouse, an NES trackball could use exactly the same protocol as the Super NES Mouse.
Rotary Encoder and Joystick
Guerrilla War
Heavy Barrel
Ikari Warriors
Ikari Warriors II
Ikari III
Smash TV and other twin-stick shooters could be adapted to work the same way.
Trackball
Blades of Steel
Cabal
Marble Madness
Millipede
Rampart

Mouse
Deja Vu
Maniac Mansion (most PC versions)
Shadowgate
Uninvited
If Millipede can be adapted to use a mouse, trackball, or trackpad, so can any shmup. (Touhou Project anyone?) Many games using a trackball or mouse would work well with an analog joystick as well. Blades of Steel, for instance, could use the control scheme of Wayne Gretzky's 3D Hockey.
User avatar
rainwarrior
Posts: 8732
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: What useful permanent peripherals via the expansion port

Post by rainwarrior »

FrankenGraphics wrote:Would a screenshot extractor be possible w/o too much hardware?
If you mean through an ethernet device, sure you could dump the current CHR / nametables / OAM / palettes over that (~10k of data) and send it wherever it needs to go to be re-synthesized (emulated) into a screenshot, or you could even convert it to a BMP or something right on the NES if you wanted, and send that, though it would be a lot more data.

If you mean capturing the video signal via the pin on the expansion port, I think you could do that too, but it would basically be the same as just connecting the regular video output cable to a capture device?
User avatar
tokumaru
Posts: 12427
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Re: What useful permanent peripherals via the expansion port

Post by tokumaru »

rainwarrior wrote:If you mean through an ethernet device, sure you could dump the current CHR / nametables / OAM / palettes over that (~10k of data) and send it wherever it needs to go to be re-synthesized (emulated) into a screenshot, or you could even convert it to a BMP or something right on the NES if you wanted, and send that, though it would be a lot more data.
All raster effects would be lost though, so I can't see this being particularly useful.
User avatar
rainwarrior
Posts: 8732
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: What useful permanent peripherals via the expansion port

Post by rainwarrior »

tokumaru wrote:
rainwarrior wrote:If you mean through an ethernet device, sure you could dump the current CHR / nametables / OAM / palettes over that (~10k of data) and send it wherever it needs to go to be re-synthesized (emulated) into a screenshot, or you could even convert it to a BMP or something right on the NES if you wanted, and send that, though it would be a lot more data.
All raster effects would be lost though, so I can't see this being particularly useful.
There's really no reason you couldn't dump information about raster effects as well. This isn't an actual PPU capture. You can send whatever information you think is necessary to re-synthesize the "screenshot" on the other end.

I'm reminded of an older thread where an "NES video codec" was being proposed as a way to compactly store NES video information. (An idea I liked, but didn't think would fly.)

As for the utility of it, the current generation of consoles all have a screenshot button right on the controller. People do seem to like posting screenshots to the internet.
User avatar
tokumaru
Posts: 12427
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Re: What useful permanent peripherals via the expansion port

Post by tokumaru »

rainwarrior wrote:There's really no reason you couldn't dump information about raster effects as well.
Yeah, since each game is aware of how it generates its images, it's possible to have custom screenshot routines that send whatever information might be necessary to reconstruct everything (like a log of changes with pixel coordinates). I was just pointing out that a generic solution wouldn't work for all cases.
User avatar
FrankenGraphics
Formerly WheelInventor
Posts: 2064
Joined: Thu Apr 14, 2016 2:55 am
Location: Gothenburg, Sweden
Contact:

Re: What useful permanent peripherals via the expansion port

Post by FrankenGraphics »

tepples wrote:If Millipede can be adapted to use a mouse, trackball, or trackpad, so can any shmup.
Trackballs and mouse are largely interchangeable, but trackballs have the additional property of being able to spin. But, since the mass, intertia and friction will be different between manufacturers and even models, it is precarious to make software which is overly dependent on this feature. It can be done, but risk being inconsistent. Unless it's a limited run cabinet/kiosk, which is what i sometimes do, but touch screens have largely replaced trackballs in this field as they're a more direct medium for info/experience/browsing type of apps and come cheap. Else the "spin" could be used to move quickly through a large assortment of items in this field; something the swipe has replaced.

If one can accept that results regarding free spin will vary in a more or less decentralized production model of a new controller including a trackball, it'd be a fun thing to take advantage of. I've experienced something similar live on an old soviet arcade machine where the steering wheel of a racer game was very heavy and freespinning, meaning the spin had some force/weight to it. It really enhanced the fun beyond the software's simple premise: avoid smashing into other things until the stage is clear.

Trackball HW (on Mouser, for example) often come with an optional encoder-to-usb-mouse pcb, complete with pins for normally up to three switches (read as mouse buttons).

If human interaction peripherals don't require the expansion port, though, maybe a branch is in order, if there's enough interest to continue the subtopic.
great hierophant wrote:A graphics tablet only needs to give 8-bits of data for X and Y.
You might want subpixel precision, though.
tepples
Posts: 22708
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: What useful permanent peripherals via the expansion port

Post by tepples »

FrankenGraphics wrote:
tepples wrote:If Millipede can be adapted to use a mouse, trackball, or trackpad, so can any shmup.
Trackballs and mouse are largely interchangeable, but trackballs have the additional property of being able to spin.
Good point. This inertial behavior is also familiar to users of Android and iOS, who expect scrolling to slow gradually after lifting a moving finger. I guess this makes a trackpad a better match to a trackball than a mouse is in some ways.
User avatar
FrankenGraphics
Formerly WheelInventor
Posts: 2064
Joined: Thu Apr 14, 2016 2:55 am
Location: Gothenburg, Sweden
Contact:

Re: What useful permanent peripherals via the expansion port

Post by FrankenGraphics »

Here's something "useful" for the video out pin and/or separate graphics elements as raw data:

Send it to a touch screen built into a hand control (with a headphone output). NES U. I don't know if i'm serious or joking.
Maybe homebrew could exploit this to upload a map/menu to one nametable and have a game screen on another. A small memory onboard could be used to configure it to either mirror the video out or sent graphics data.

While i'm at it:
-Include a gyroscope (or other controller elements) for some mario kart wii action in your 2d racer.
-RFID/NFC reader/writer to store/read game data for the compleete "U" experience. Trade them at school :lol:
Post Reply