I was wondering, has anybody ever used this for any of their demos? Does anybody know how to use this? I couldn't even get this working with a family Basic ROM that I had. I've never really dealt with it, and I'm interested, because I'm working on a project that's like a NES PC (Personal Computer, not Program Counter.). It would have many different functions, but it would just be a cartridge, not like any new hardware. I've thought about calling it Nintendows, but I was wondering if there's anything with that name already. So yeah, does anyone know anything about this keyboard?
Celius wrote:
I'm working on a project that's like a NES PC (Personal Computer, not Program Counter.).
What kind of mapper would that have? Even a simple organizer app would need at least some sort of mass storage.
Quote:
So yeah, does anyone know anything about this keyboard?
Apart from
goroh's doc translated?
tepples wrote:
Celius wrote:
I'm working on a project that's like a NES PC (Personal Computer, not Program Counter.).
What kind of mapper would that have? Even a simple organizer app would need at least some sort of mass storage.
I was thinking of having like MMC1, because you can use SRAM. But, I was thinking of like Memory Card type things, that would just be an SRAM chip that you could stick into a slot where the SRAM would usually be. I think this is possible. It's like the concept of floppy disks, except it's more like chips. It's just a battery packed SRAM chip, maybe in cool looking Memory card type looking case. Thanks for the link!
EDIT:
Okay, so I'm looking at this doc, and I'm just missing something here.
Like this:
3.How to control the keyboard
(1)Initialization
the next read after initializing keyboard will be the first scan.
$4016 <- #$05
(2) the 1st scan
$4016 <- #$04
$4016 -> D1a
$4016 <- #$06
$4016 -> D1b
(3) 2nd - 10th scan
same as (2)
$4016 <- #$04 at this point it will automatically moves on to the
next scan
$4016 -> D2a
$4016 <- #$06
$4016 -> D2b
I have no idea what any of this means. Like, what the heck? I'm looking at everything in the doc, and looking at this, and saying, "What are they talking about?". I think I'm missing something here. Can somebody help me out?
Actually, that document has a significant error - you read the keys back from $4017,
not $4016.
The keyboard is mostly like a normal controller, but with the following differences:
- When you write to $4016, you always have D2 set - if you leave it clear, you end up sending commands to the tape recorder instead.
- You read 4 bits at a time out of $4017 D4-D1, rather than $4016/$4017 D0.
- In between each read from $4017, you need to write again to $4016 and toggle D1 to advance it to the next set of keys.
- You read $4017 a total of 20 times (with a $4016 write in between each one), rather than only 8.
Thanks, that cleared up a whole lot. But just one more thing: Do you do the strobe like you do on the regular controller? Like this:
lda #1
sta $4016
lda #0
sta $4016
And you said you have to keep D2 always set, because you'll just be sending stuff to the tape recorder, and you have to keep D2 set in between the writes to $4017? And you flip D1 to move to A1-A4 or B1-B4 like said in the doc?
Celius wrote:
Thanks, that cleared up a whole lot. But just one more thing: Do you do the strobe like you do on the regular controller? Like this:
lda #1
sta $4016
lda #0
sta $4016
Yes, except you do
LDA #$05
STA $4016
LDA #$04
STA $4016
Celius wrote:
And you said you have to keep D2 always set, because you'll just be sending stuff to the tape recorder, and you have to keep D2 set in between the writes to $4017? And you flip D1 to move to A1-A4 or B1-B4 like said in the doc?
The overall process is like this:
LDA #$05
STA $4016
LDA #$04
STA $4016
LDA $4017
STA keys+0
LDA #$06
STA $4016
LDA $4017
STA keys+1
LDA #$04
STA $4016
LDA $4017
STA keys+2
LDA #$06
STA $4016
LDA $4017
STA keys+3
...
Okay, that clears up everything. Now it all works fine. Thanks for all your help, I really do appreciate it!
tepples wrote:
What kind of mapper would that have? Even a simple organizer app would need at least some sort of mass storage.
wasn't there some talk about creating a NES cartridge with CF-adapter for reading/writing here some month ago? can't find it thought as the search allways says that there where no finds regardless of what I search for
edit:
found it
http://nesdev.com/bbs/viewtopi ... 30&start=0
not exactly the same.. as I was thinking of but it's something ^^
I have another question... Would it be possible to connect the keyboard to the US NES? I was talking about NES level editors a while back, and I think tepples mentioned the idea of using the SNES mouse on the NES, and this would be great for Nintendows, because you could use the keyboard and mouse. Maybe if you could hook up the SNES mouse the the FC, or the keyboard to the US NES, you could use both.
I'd rather find a way to use a
PS/2 keyboard, perhaps with a PIC in the middle to translate protocols.
tepples wrote:
I'd rather find a way to use a
PS/2 keyboard, perhaps with a PIC in the middle to translate protocols.
That'd be great, as a Family Basic Keyboard is hard to come by. But there is a catch. The Family Basic Keyboard had an audio port for a tap drive that could be used to save digital data via modulation. Do any emulators even support this feature? What games actually used it?
Jagasian wrote:
The Family Basic Keyboard had an audio port for a tape drive that could be used to save digital data via modulation. Do any emulators even support this feature? What games actually used it?
I seem to recall that Excitebike uses it for its "custom track" stuff. The Family Basic cartridges almost definitely used it.
I think maybe I'll look in to either hooking the mouse up to the FC or the Family keyboard up to the NES. I'd like to stick with NES/FC hardware, but thanks for the suggestion. Please don't tell me if you think it's impossible, because I'd like to see for myself.
The new Famicom takes NES 7-pin controllers. The SFC/SNES mouse shows up as a 32-bit data stream on D0, and it would plug in to the new FC in the same way that a SFC/SNES controller would plug in to an NES.
Does the new FC have an expansion port? I have an old FC with the controllers attatched.
Yes it does. Because of this, I doubt it has the expansion lines on controller 2.
tepples wrote:
I'd rather find a way to use a
PS/2 keyboard, perhaps with a PIC in the middle to translate protocols.
This works on Squeedo (it's how the cart's menu is operated, actually). You just run a terminal program on PC, and the PIC buffers up to 256 bytes and gives it to the NES with IRQs. Of course it's just ASCII-format this way, but I imagine a custom PC program could handle all the keys in a similar way.
Quietust wrote:
Jagasian wrote:
The Family Basic Keyboard had an audio port for a tape drive that could be used to save digital data via modulation. Do any emulators even support this feature? What games actually used it?
I seem to recall that Excitebike uses it for its "custom track" stuff. The Family Basic cartridges almost definitely used it.
I think Lode Runner and Wrecking Crew used it also. And Mach Rider.
Is there some error on the 8x10 matrix on the Family Keyboard page? Because it seems that my PoultrySoft Word program (The equivelent to Microsoft Word, just on the NES) proves it. If I type J, it puts K, if I type H, it puts J. That's not all, because if you look at the grid on the page, K is right above J, and J is right above H. It like everything on the first half (column) of the 2 dimensional grid is one line down than what it should be. Once I applied changes that took out the first half of the second row on the table, and moved everything up a line on that half, it worked just fine. I had similiar problems in my previous attempt at making this program. This is hard to explain I'm sorry, but do you know what I mean?
EDIT: I think that A1-A4 on S2 on the grid should be at S0, not S2. So everything A1-A4 S3 should be S2, S4 should be S3, S5 should be S4, etc. I think that's a little more understandable than what I was saying before.
Before you accuse that document of being incorrect, you should first test your Family Keyboard emulation with a ROM that uses it natively (such as Family Basic) to make sure it works properly.
I was just saying that, because I think I have evidence that proves it to be so. I may be wrong, I know. I have my code storing the status of $4017 20 times in $20-$33 ($20 is A1-A4 S1, $21 is B1-B4 S1, $22 is A1-A4 S2, etc.). When I press F8, $20 and $32 change, not $20 and $22, which should be the case if the document is correct. I know I COULD be doing something incorrectly, but I really really do not think that is the case. Everything B1-B4 in the document is fine, but just that part I think might be incorrect.
EDIT: Sorry, I had a typo. I said $20 and $34 change. It was $20 and $32. And I have it set up so $4017s status goes from $20-$33, not $20-$34.
Simple test - run Family Basic (2.0, 2.1, or 3.0) and try typing some text. If it shows up correctly, there's an error in your test ROM. If it shows up incorrectly, there's an error in your keyboard emulation code.
Did you mean vice versa? It doesn't really make sense how you said it...
The one I have is from rom hustler, and it came with 5 different ones. One has this computer screen with a bunch of colors flashing all over the place, and one has a kind of DOS startup looking thing. Which one's the actual thing? And there's a line that says "Kasetto no bakkappu suichi o OFF ni shite kudasai". Does that translate to "Please turn the backup switch OFF"? I'm not really sure what to do here, because I've never really dealt with this game, if you call it that.
Quote:
That'd be great, as a Family Basic Keyboard is hard to come by. But there is a catch. The Family Basic Keyboard had an audio port for a tap drive that could be used to save digital data via modulation. Do any emulators even support this feature? What games actually used it?
Latest version of Famtasia supports tapedrive.
Celius wrote:
The one I have is from rom hustler, and it came with 5 different ones. One has this computer screen with a bunch of colors flashing all over the place, and one has a kind of DOS startup looking thing. Which one's the actual thing? And there's a line that says "Kasetto no bakkappu suichi o OFF ni shite kudasai". Does that translate to "Please turn the backup switch OFF"? I'm not really sure what to do here, because I've never really dealt with this game, if you call it that.
I discovered that when it prints that message, it's actually complaining that it can't write to SRAM at $6000-$7FFF - evidently, it has a memory protection switch on it. Family Basic is one of the few "mapper 0" games that actually
needs to have PRG RAM.
I think it may have worked in the past when I changed it to Mapper 1, and enabled SRAM. I think, at least.
Edit: Yeah, that was all my fault about the shift thing. Works fine. I was checking if a certain read of $4017 was the one that meant left shift, and only left shift was pressed. Not a good plan, beings as if anything else in that read is pressed, it will act like shift isn't pressed. So yeah, that was dumb.
Edit 2: What the heck! The left shift won't work in Nintendulator! help!
The key mapping in Nintendulator is a bit non-standard - when I get a chance, I'll update the keyboard Configuration to at least show the default key mappings (and possibly allow customizing it, though that'll take a bit of work).
It'd be nice if it at least showed which keys are which on the Family Keyboard. Is left shift not left shift on the FK? If not, then... You should make it so it is. I think customizing it would be good. You should place a diagram where you can just customize it, but a diagram below showing which squares are which keys. In FCEUXD, they show just a diagram with key numbers on it, and I don't know which squares are which keys. I have to go search on google images for pictures of the family keyboard to see which square matches which key, and it's annoying.
I've uploaded a new build of my emulator with 2 changes:
1. Family Basic Keyboard [Config] now shows the layout in relation to a 104-key US keyboard (with Windows and App keys)
2. A bunch of keys (left shift, Graph, underscore) actually WORK properly now - I had originally folowed Goroh's document, and it incorrectly listed several bits as being mapped to multiple keys.
Was A1-A4 on S2 screwed up?
Edit: Umm, something's wrong with the colors... $3F is showing up mint green, and some other colors are not really close at all to what they're supposed to be. In the newest Nintendulator, that is. I tried a couple of ROMs. They were all homebrew, but they didn't look like that before.
Yeah, the colors are very off, Tetris's background is white, and it's all pink and ugly. But I really like the new features added (Well, I really like 2 features added..) I like full screen mode. I played in FCEUXD all the time because of it's full screen mode, but now I think I'll be playing in Nintendulator!
Oh, and keyboard emulation is great! Thanks!
Celius wrote:
Was A1-A4 on S2 screwed up?
Edit: Umm, something's wrong with the colors... $3F is showing up mint green, and some other colors are not really close at all to what they're supposed to be. In the newest Nintendulator, that is. I tried a couple of ROMs. They were all homebrew, but they didn't look like that before.
Try fixing your palette settings - it's probably using a VS palette by mistake (as an artifact of me reorganizing the settings a few months while ago).
It was, thanks. Hey, did you put a JPEG type effect over the screen? It used to be really defined, but now it's like FCEUXD, where it looks like a JPEG screenshot. It's not bad, I'm just wondering if that's the case.
I moved the graphics buffer from system memory to video memory in order to improve performance; however, this has the side effect of turning on bilinear filtering (i.e. 'smoothing' the image when you stretch it), and there's no way to turn it off within DirectDraw 7.0.
You can implement support for software pixel doubling filters such as Scale2x and hq2x, and then put in a software nearest-neighbor pixel doubler at the same time. VisualBoyAdvance uses this technique.
Doubling pixels in software quadruples the amount of data sent to the video card.
And modern video cards handle this amount of data just fine. We're up to, what, 8X AGP?
I dislike filters such as Scale2x, hq3x, and probably partially because I lack understanding why many people do like them. They don't compare well to my mental image of (NES) games, especially on in-game backdrops and sprites, makes me think of bad Flash games created by teenagers who grew up with post-8bit-generation videogames. Though I do think they can look good on titlescreens and text.
example:
http://mednafen.com/screenshots/hq2x.png Mario looks plain wrong, but the upscaled titlescreen graphic and text don't annoy me.
Support for software upscaling also paves the way for emulation of the PPU's NTSC modulator and the TV's demodulator, like Nestopia, for proper colors in Blaster Master.
tepples wrote:
And modern video cards handle this amount of data just fine. We're up to, what, 8X AGP?
I think blargg was hinting that quadrupling the data sent to the video card is harder on CPU usage. Not really that it's hard on the video card (even really old video cards can handle a 640x480 display surface -- that's not the issue).
Software stretching (even nearest neighbor) is slow. Sending the 1x scale image to the video card and having it do the stretching is much, much faster.
As for the side-effect of filtering when doing hardware stretching, this is often an option which is enabled/disabled by messing with your video settings. Right-click on desktop | Properties | Settings tab | Advanced and look around for such an option. I typically disable
all forms of automatic filtering and antialiasing and leave it up to the program to determine which modes are best.