VRC5

Discuss technical or other issues relating to programming the Nintendo Entertainment System, Famicom, or compatible systems.

Moderator: Moderators

GreyRogue
Posts: 37
Joined: Fri Dec 08, 2017 5:12 pm

VRC5

Post by GreyRogue » Tue Aug 27, 2019 6:21 pm

Neat. The missing VRC (5) chip has been found.

https://www.youtube.com/watch?v=1rnf13b3dG4

(English subtitles are there)

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

Re: VRC5

Post by lidnariq » Tue Aug 27, 2019 10:38 pm

Screengrab from the linked video:
https://youtu.be/1rnf13b3dG4?t=1202
https://youtu.be/1rnf13b3dG4?t=1202
CaH4e3's writeup: http://cah4e3.shedevr.org.ru/dumping_2019.php#190827

User avatar
dougeff
Posts: 2614
Joined: Fri May 08, 2015 7:17 pm
Location: DIGDUG
Contact:

Re: VRC5

Post by dougeff » Wed Aug 28, 2019 3:08 pm

Since some people don't want to watch YouTube videos, or perhaps it will be missing some day... this is what I gathered from the video.

The VRC5 chip is on the Q Ta adapter for the Space School (it says Space College on the box) series of educational games made by Konami. It is especially rare since they were never sold to the general public.

At the end, it says that VRC5 emulation has been added to FCEUX.

(edit. as of this post, there is no wiki entry for VRC5 nor VRCV)
nesdoug.com -- blog/tutorial on programming for the NES

User avatar
Banshaku
Posts: 2328
Joined: Tue Jun 24, 2008 8:38 pm
Location: Fukuoka, Japan
Contact:

Re: VRC5

Post by Banshaku » Wed Aug 28, 2019 8:10 pm

It will be interesting to see what it does since it felt odd that there was no VRC5 with the VCRC6 used in Madara/Castleviana but it will be mostly for educational purpose since it's so rare that it cannot be used anyway ^-^;;; But maybe infiniteneslive could make a compatible one if the mapper is that good :lol:

User avatar
rainwarrior
Posts: 7669
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: VRC5

Post by rainwarrior » Wed Aug 28, 2019 9:12 pm

Cool!

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

Re: VRC5

Post by Pokun » Thu Aug 29, 2019 5:00 am

This is great! :D

From what I gathered from the the video it's an adapter called the Q太 (the core meaning of 太 is something like "greatest", "grand", "very", "thick" or "fat") where 太 is read as "ta" ("tai" is also possible, but it looks like there are furigana above it which explains the reading).

Initially only the six Space School titles was known: 小学校の算数4年生 下 (Shougakkou no Sansuu yo-nensei ge, "Elementary School Arithmetic grade 4 - lower"), 小学校の算数4年生 上 (Elementary School Arithmetic grade 4 - upper), 小学校の算数5年生 下 (Elementary School Arithmetic grade 5 - lower), 小学校の算数5年生 上 (Elementary School Arithmetic grade 5 - upper), 小学校の算数6年生 下 (Elementary School Arithmetic grade 6 - lower), 小学校の算数6年生 上 (Elementary School Arithmetic grade 6 - upper). They where sold to schools and not in retail stores which is why they are so rare. In the video they seem to mix up "part 1" with "part 2", at least in the subtitles (下 "lower" should be basic and 上 "upper" should be advanced).

A seventh game was later discovered known as 危険物のやさしい物理と科学 (Kikenbutsu no Yasashii Butsuri to Kagaku, translated by Kotaku as: "The Gentle Physics and Science of Hazardous Materials"). It's also not a retail game but was made for the oil company Idemitsu Kosan, which used it to teach their employees. It's seems to be the only known game in the Space College series and possibly only a very few copies (or possibly only one) exists.

CaH4e3 managed to reverse engineer the Q太 adapter and dumped the ROMs. The VRC5 chip was discovered to be in the adapter, but not much technical info was mentioned in the video. I guess he added support for it in his own version of FCE Ultra? So far, dumped games seems to include the lower and upper version of Space School games for grade 6 previously dumped, upper version of grade 5 that the guy in the video got and the ultra rare Space College game which was also previously dumped.

It seems you need to enter your student number to be able to start the game for the first time. For upper grade 5 that they showed in the video, they got it to work with "012000000".
Last edited by Pokun on Mon Sep 02, 2019 1:58 am, edited 2 times in total.

CaH4e3
Posts: 72
Joined: Thu Oct 13, 2005 10:39 am

Re: VRC5

Post by CaH4e3 » Thu Aug 29, 2019 8:08 am

rainwarrior wrote:Cool!
can I have a full version of nes lizard as reward, please? ;)

yaros
Posts: 145
Joined: Tue Aug 28, 2018 8:54 am
Location: Edmonton, Canada

Re: VRC5

Post by yaros » Thu Aug 29, 2019 12:34 pm

CaH4e3 wrote:can I have a full version of nes lizard as reward, please? ;)
Only when you update this wiki page http://wiki.nesdev.com/w/index.php/VRC5 :) (joking)

NewRisingSun
Posts: 1045
Joined: Thu May 19, 2005 11:30 am

Re: VRC5

Post by NewRisingSun » Thu Aug 29, 2019 1:22 pm

I have started a wiki page based on my working emulation derived from how I understand the relevant FCEUX source code parts.

I have spent some time trying to understand the idea behind the character code to CHR-ROM offset translation. Doing so is not necessary for emulation, of course.

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

Re: VRC5

Post by Memblers » Thu Aug 29, 2019 3:19 pm

That is pretty neat. It was cool that CaH4e3 appears in the video, demonstrating his method for RE'ing the mapper. It reminded me a little bit of hanging out with kevtris and watching him RE mappers, in the early days of CopyNES (all that was missing was some QBASIC action). It's a rare day when get to see a new mapper. And from Konami, at that!

ccovell
Posts: 1006
Joined: Sun Mar 19, 2006 9:44 pm
Location: Japan
Contact:

Re: VRC5

Post by ccovell » Sat Aug 31, 2019 5:40 pm

Pokun wrote:(the core meaning of 太 is something like "greatest", "grand", "very", "thick" or "fat") where 太 is read as "ta" ("tai" is also possible, but it looks like there are furigana above it which explains the reading).
No, it's more like sound association with the words "compuTER" and "kid" or "boy". Think of the name "Taro" 太郎 which is the genericized boy's name in Japanese, like John or Dick (of "Dick and Jane") are in English.

There's also the Tomy computer ぴゅう太 "pyuu-ta" which came out several years earlier. It was released in the West, not coincidentally, as the "Tutor".

So I think barring any actual instruction manuals from the Q-Ta, "Kids' Tutoring Computer" is the feeling the name is going for.

Great Hierophant
Posts: 745
Joined: Tue Nov 23, 2004 9:35 pm

Re: VRC5

Post by Great Hierophant » Sat Aug 31, 2019 7:28 pm

ccovell wrote:
Pokun wrote:(the core meaning of 太 is something like "greatest", "grand", "very", "thick" or "fat") where 太 is read as "ta" ("tai" is also possible, but it looks like there are furigana above it which explains the reading).
No, it's more like sound association with the words "compuTER" and "kid" or "boy". Think of the name "Taro" 太郎 which is the genericized boy's name in Japanese, like John or Dick (of "Dick and Jane") are in English.

There's also the Tomy computer ぴゅう太 "pyuu-ta" which came out several years earlier. It was released in the West, not coincidentally, as the "Tutor".

So I think barring any actual instruction manuals from the Q-Ta, "Kids' Tutoring Computer" is the feeling the name is going for.
I discern from this that we should be pronouncing this as the "Konami 'kew-ta"

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

Re: VRC5

Post by byuu » Sun Sep 01, 2019 5:29 am

It always bugged my OCD tendencies to have VRC1-4 + VRC6-7 support, so of course I had to add this for the heck of it.

Thanks for the Wiki article, NewRisingSun! I'll try to help out a bit in return: here's an implementation of the VRC5 in C++ code:

https://github.com/byuu/higan/blob/mast ... i-vrc5.cpp

It should be nicer than the FCEUX version to read, as FCEU hides a *ton* of details about how the mappers actually work behind FCEU-only abstractions. But maybe my .bit() stuff will confuse people, so YMMV.

Things from the Wiki:

1. "Character Translation Output ($DC00/$DD00, read). Mask: probably $FF00 (ROM data filled with $FF from $D400-DFFF)"

Bank $c000-dfff can be remapped, so it *can* be something other than $FF. I didn't bother to check if the games ever set it to something where $d400-dfff aren't $FF. But, whatever.

It'd probably be nice if we can ask CaH4e3 to please verify the address masks for this mapper.

2. "Character Translation Operation"

I may well have made a mistake, but try as I might, I couldn't get your formula to work and had to use the FCEUX version.

Code: Select all

tile =glyph *4;
ciramByte =(tile &0xFF) | (reg[0xDB00] &3);
qtramByte =(tile >>8) |

// Indicate CHR-ROM
qtramByte |=0x40;

// Indicate alternate attribute
if (reg[0xDB00] &0x04) qtramByte |=0x80;
The third line is cut off. Presuming you want to turn the | into a ; here, which is what I tried. Didn't work.

3. "CHR Banking Operation" -- "The Konami VRC5 ASIC intercepts this process: Whenever the NES PPU fetches a background nametable byte from CIRAM, the VRC5 fetches an additional byte from QTRAM that indicates whether the next CHR pattern data that will be fetched should come from CHR-ROM or CHR-RAM and from which 4 KiB bank."

I always wonder *how* these ASICs do this. I'm aware there's a clear pattern to fetches for each scanline: $2xxx, $23xx, $(0000-1fff), $(0000-1fff) -- repeat 32 times; sprite stuff for a bit; two more tile fetches; some end-of-line stuff.

But let's say a game enables force blanking for a time, how would these ASICs react?

I wasn't in the mood for trying to guess how the VRC5 did this (it was quite a lot of pain with my MMC5 emulation, and is likely wrong there too), so I just made it steal the PPU cycle position to intercept these fetches for now.

Still, it'd be lovely to know for sure, if it could be determined without decapping and destroying priceless carts.

4. "1: Force CHR pattern data to $FF if CHR A3=1, only if CHR-ROM is used (C=1)"

The reason for this is to control the background color behind kanji. On the title and space screens, this isn't done so you get black backgrounds. In the game menus it does this so you get the blue background behind the kanji. Such a weird way of doing things, but ... yeah that's what it's for.
Last edited by byuu on Sun Sep 01, 2019 6:12 am, edited 1 time in total.

NewRisingSun
Posts: 1045
Joined: Thu May 19, 2005 11:30 am

Re: VRC5

Post by NewRisingSun » Sun Sep 01, 2019 5:59 am

Thank-you for your comment.
byuu wrote:Bank $c000-dfff can be remapped, so it *can* be something other than $FF.
Correct. I tried to express that the game is careful in its ROM layout and bankswitch register content choice not to put anything important there, which suggests that programmers were aware that the register does not respond only at the $DC00/$DD00 address, but likely across the entire 256-byte range.
byuu wrote:The third line is cut off. Presuming you want to turn the | into a ; here, which is what I tried. Didn't work.
I have attached my NintendulatorNRS source code snippet, based on which I wrote the wiki page. Since it works nicely here, either I have made a mistake in transcribing it to the wiki, our you have made some mistake applying the wiki description. I replaced the stray pipe character with a semicolon on the wiki.

I have not considered what happens when the PPU goes blank for an extended period of time, but I did add a heuristic to differentiate BG versus OBJ fetches based on the last nametable address (lastNTAddr).

When deciding on the NES 2.0 ROM layout, I chose to follow the precedent set by Bandai Karaoke Studio, Nantettatte Baseball and Family Noraebang. That does not constitute a substantive defense, of course. It is more an appeal to consistency with precedent. Admittedly, the precedents are different in those unexpanded cartridges being usable alone, while the Q-Tai adapter cannot be used alone.
Attachments
mapper547.cpp
(4.9 KiB) Downloaded 166 times

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

Re: VRC5

Post by Pokun » Sun Sep 01, 2019 9:18 am

Great Hierophant wrote:
ccovell wrote:
Pokun wrote:(the core meaning of 太 is something like "greatest", "grand", "very", "thick" or "fat") where 太 is read as "ta" ("tai" is also possible, but it looks like there are furigana above it which explains the reading).
No, it's more like sound association with the words "compuTER" and "kid" or "boy". Think of the name "Taro" 太郎 which is the genericized boy's name in Japanese, like John or Dick (of "Dick and Jane") are in English.

There's also the Tomy computer ぴゅう太 "pyuu-ta" which came out several years earlier. It was released in the West, not coincidentally, as the "Tutor".

So I think barring any actual instruction manuals from the Q-Ta, "Kids' Tutoring Computer" is the feeling the name is going for.
I discern from this that we should be pronouncing this as the "Konami 'kew-ta"
Yeah or even "cuter" if you will. Possibly related to both "cute" and "computer" as suggested by Covell.
I don't think it contradicts anything I said, but I've also seen 太 often used as ateji (using kanji for its sound and disregarding its meaning) for a [ta] sound. I bet the furigana on the package (which I can't read due to all photos having too little detail) says "kyuuta".

The documentation seems to have stuck with "Q-TAI" for now though.

Post Reply