Dear members,
My name is TAKEDA, toshiya.
I am the developer of Super Cassette Vision emulator.
http://www1.interq.o.../scv/index.html
This comment except CPU is the result of reverse-engineering
by I and Mr.Enri (
http://www2.odn.ne.j.../Scv/EnrScv.htm)
and is not authorized by any official documents.
But I believe it is not wrong because my emulator looks working fine.
Well, I once wrote the technical information about this console.
http://www1.interq.o...eda/scv/scv.pdf
It is written in Japanese, but you can refer some pictures in it.
-----
CPU)
NEC uPD780C1 is a well-known Z80 clone CPU, but it is NOT the CPU of this console.
NEC uPD7801G is the first CPU of uCOM-87 series.
It is the old single chip CPU with internal 4KB ROM, 128B RAM and some I/O ports
for embedded market and was used for example as the controller of printer device.
It has the instructions like 8080 and a couple of registers like Z80,
but also has the unique condition instructions.
8080 and Z80 have the instructions to branch in the condition of previously
executed instruction, for example jump if zero,
uCOM-87 has the complex instruction, operate values of registers
and skip next one instruction in the condition for example
ADDNCX A,reg: A <- A + [reg], and skip next instruction if non carry.
This CPU has many other unique and complex specifications.
I could not find the datasheet of uPD7801G, but you can find uPD78C10
in www.datasheetarchive.com/
It is also one of uCOM-87 family and very similar to uPD7801G.
(A/D converter and some 16bit operation instructions are added.)
Video Controller)
The custom LSI called "EPOCH TV-1" is the video controller.
It is said it was designed by NEC.
It supports 128 (really 128!) monochrome 16x16 sprites and Text/BG screen.
I could not clarify how many sprites can be displayed in one line,
but another analyzer called Mr.333 said it is 30.
It does not support the sprite collision checker, so each game must refer
and compare the sprite attributes (locations) to check collisions.
There are a couple of 2KB SRAM chip (uPD4016C-2) on the main PCB
and they are connected to this video controller, not to CPU. (*)
These SRAM are probabbly used for the pattern of sprites.
And EPOCH TV-1 has probabbly also 2KB and more RAM in the package
for Text/BG screen VRAM and the sprite attributes.
There are 128 blocks of 4byte sprite attribute for the pattern number,
locations(X/Y), colour number and some additional bits.
(*) This means almost games use only 128B RAM in CPU to control the game.
Some games for example SHOUGI NYUUMON (Japanese Chess), BASIC NYUUMON
and Dragon Slayer, have external 8KB SRAM on their cartridge PCB.
It is used for the work memory and also the buttery-backuped RAM.
This chip has vsync signal and is connected to the interrupt of CPU.
uPD7801G can detect the interrupt by both edges Low->High and High->Low
and the interrupt occurs twice for one video frame.
Text/BG screen)
EPOCH TV-1 has one Text/BG screen.
We can divide one screen to 2 areas for text and BG.
Considering the VRAM size, the screen size must be 256x256, NOT 309x246.
But the resolution really displayed on the TV monitor seems to be about 192x222.
(In the case Japanese NTSC TV monitor, I dont know PAL case.)
In the text screen, the text characters are displayed only by writing the codes to VRAM.
It is same as the old computers' text screen for example Apple][.
The character pattern must be registerd in EPOCH-TV1, no character ROM is on PCB.
The character and backgroud colour can be specifyed only for whole of screen,
we cannot specify different colour for each character.
In the BG screen, there are 2 modes:
- 32x32 low resolution/16 colour mode
- 64x64 high resolution/monochrome mode
In the low resolution mode, the size of one pixel is 8x8 dot
but the different colour can be specified for each pixel.
This mode is mainly used for the multi color back ground.
(Because only one colour can be specified in the text screen.)
Please refer page 7 in my technical document.
In Lupin 3rd, the sky colour is set to light cyan, the sewer is set to blue.
In the high resolution mode, the size of one pixel is 4x4 dot
but only one pair of dot/bg colour can be specified for whole of screen.
Please refer also page 7 in my technical document.
In Star Speeder, the line of the road are displayed with this mode.
Sprite)
It supports 128 sprites, and they are divied to 2 gruops for the purpose.
The sprites no.0-31 and 64-95 are for the back ground for example the floor,
And no.32-63 and 96-127 are for the moving obect for example hero and enemies.
The differences are the meanings of additional attribute bits.
For the back ground sprites, the connection function is supported.
The sprite size is 16x16, but another sprites can be connected at the right and bottom
and we can display 16x32, 32x16 and 32x32 sprite only specifying one attribute block.
Please refer page 8 in my technical document.
The title screen of Elevator Fight is displayed by this connection function.
For the moving sprites, the 2-colours sprite and the division function are supported.
2-colours sprite are realized by putting another pattern and colour sprite upon
off course by spcifying only one attribute block.
Please refer also page 8 in my technical document.
The hero and enemies of Elevator Fight is displayed by this function.
The division function is, to divite the sprite to left and right or top and bottom,
and select whitch side is dispayed.
In this case, the sprite size is changed to 8x16 or 16x8.
Please refer page 9 in my technical document.
In Nekketus Kung-Fu Load, both left-side and right-side face patterns are in one sprite.
In Lupin 3rd, the flapping patterns of the bat are also in one sprite dividing top and bottom.
(NOTE: this function is disabled for these pictures to describe the specification of function,
and my emulator can display these scenes correctly.)
Sound Generator)
It seems that uPD1771C is the sound generator.
I could not find the datasheet, but I heared it is the old signal processor.
It supports at least 3 types of sound, tone, noise and 1bit PCM,
but only one sound can be generated.
So for example Sky Kid, when we shoot and the sound effect BOMB are played,
the back ground music is stopped.
Tone)
There are at least 8 patterns of wave.
We can specify the wave pattern, frequency, detune and volume parameters.
Noise)
At least 2 types of noise are supported.
They are the whilte noise and the sawtooth wave-like noise.
1bit PCM)
Yes, to our surprise, this console supports 1bit PCM!
The sound rate is about 9KHz.
It seems that uPD1771C does not have enough PCM buffer,
so CPU must send the PCM data continuously while PCM is playing.
Thanks,
TAKEDA, toshiya
-----
http://www1.interq.or.jp/~t-takeda/
Edited by TAKEDA, toshiya, Sat Oct 25, 2008 9:49 AM.