What useful permanent peripherals via the expansion port?
Moderator: Moderators
- 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
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.
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 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.
- rainwarrior
- Posts: 8732
- Joined: Sun Jan 22, 2012 12:03 pm
- Location: Canada
- Contact:
Re: What useful permanent peripherals via the expansion port
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:
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.
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).
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.
Re: What useful permanent peripherals via the expansion port
That's exactly the kind of musing I was hoping to elicit.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.
- rainwarrior
- Posts: 8732
- Joined: Sun Jan 22, 2012 12:03 pm
- Location: Canada
- Contact:
Re: What useful permanent peripherals via the expansion port
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.
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.
Re: What useful permanent peripherals via the expansion port
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.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.
- 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
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.
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.
-
- Posts: 780
- Joined: Tue Nov 23, 2004 9:35 pm
Re: What useful permanent peripherals via the expansion port
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
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
Re: What useful permanent peripherals via the expansion port
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.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.
Smash TV and other twin-stick shooters could be adapted to work the same way.Rotary Encoder and Joystick
Guerrilla War
Heavy Barrel
Ikari Warriors
Ikari Warriors II
Ikari III
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.Trackball
Blades of Steel
Cabal
Marble Madness
Millipede
Rampart
Mouse
Deja Vu
Maniac Mansion (most PC versions)
Shadowgate
Uninvited
- rainwarrior
- Posts: 8732
- Joined: Sun Jan 22, 2012 12:03 pm
- Location: Canada
- Contact:
Re: What useful permanent peripherals via the expansion port
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.FrankenGraphics wrote:Would a screenshot extractor be possible w/o too much hardware?
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?
Re: What useful permanent peripherals via the expansion port
All raster effects would be lost though, so I can't see this being particularly useful.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.
- rainwarrior
- Posts: 8732
- Joined: Sun Jan 22, 2012 12:03 pm
- Location: Canada
- Contact:
Re: What useful permanent peripherals via the expansion port
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.tokumaru wrote:All raster effects would be lost though, so I can't see this being particularly useful.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.
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.
Re: What useful permanent peripherals via the expansion port
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.rainwarrior wrote:There's really no reason you couldn't dump information about raster effects as well.
- 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
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.tepples wrote:If Millipede can be adapted to use a mouse, trackball, or trackpad, so can any shmup.
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.
You might want subpixel precision, though.great hierophant wrote:A graphics tablet only needs to give 8-bits of data for X and Y.
Re: What useful permanent peripherals via the expansion port
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.FrankenGraphics wrote:Trackballs and mouse are largely interchangeable, but trackballs have the additional property of being able to spin.tepples wrote:If Millipede can be adapted to use a mouse, trackball, or trackpad, so can any shmup.
- 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
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
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