Warning: Undefined array key "REMOTE_USER" in /usr/share/dokuwiki/feed.php on line 37
Warning: Undefined array key "media" in /usr/share/dokuwiki/feed.php on line 226
Warning: Undefined array key "media" in /usr/share/dokuwiki/feed.php on line 305
Warning: Undefined array key "media" in /usr/share/dokuwiki/feed.php on line 419
Warning: Undefined array key "media" in /usr/share/dokuwiki/feed.php on line 226
Warning: Undefined array key "media" in /usr/share/dokuwiki/feed.php on line 305
Warning: Undefined array key "media" in /usr/share/dokuwiki/feed.php on line 419
Warning: Undefined array key "media" in /usr/share/dokuwiki/feed.php on line 226
Warning: Undefined array key "media" in /usr/share/dokuwiki/feed.php on line 305
Warning: Undefined array key "media" in /usr/share/dokuwiki/feed.php on line 419
Warning: Undefined array key "media" in /usr/share/dokuwiki/feed.php on line 226
Warning: Undefined array key "media" in /usr/share/dokuwiki/feed.php on line 305
Warning: Undefined array key "media" in /usr/share/dokuwiki/feed.php on line 419
Warning: Undefined array key "media" in /usr/share/dokuwiki/feed.php on line 226
Warning: Undefined array key "media" in /usr/share/dokuwiki/feed.php on line 305
Warning: Undefined array key "media" in /usr/share/dokuwiki/feed.php on line 419
Warning: Undefined array key "media" in /usr/share/dokuwiki/feed.php on line 226
Warning: Undefined array key "media" in /usr/share/dokuwiki/feed.php on line 305
Warning: Undefined array key "media" in /usr/share/dokuwiki/feed.php on line 419
Warning: Undefined array key "media" in /usr/share/dokuwiki/feed.php on line 226
Warning: Undefined array key "media" in /usr/share/dokuwiki/feed.php on line 305
Warning: Undefined array key "media" in /usr/share/dokuwiki/feed.php on line 419
Warning: Undefined array key "media" in /usr/share/dokuwiki/feed.php on line 226
Warning: Undefined array key "media" in /usr/share/dokuwiki/feed.php on line 305
Warning: Undefined array key "media" in /usr/share/dokuwiki/feed.php on line 419 vtech.pulkomandy.tk
http://vtech.pulkomandy.tk/
2024-03-19T13:54:54+00:00vtech.pulkomandy.tk
http://vtech.pulkomandy.tk/
http://vtech.pulkomandy.tk/lib/tpl/arctic/images/favicon.icotext/html2023-12-31T16:49:38+00:00pulkomandy (pulkomandy@undisclosed.example.com)instruction_encoding - [ALU instructions]
http://vtech.pulkomandy.tk/doku.php?id=instruction_encoding&rev=1704037778&do=diff
The instructions are 16 bit words. Most instructions use a single word, however, some of them use a second word to store an immediate 16-bit value.
The general format is as follows:
Bits 15-12 11-9 8-6 5-3 2-0 ContentsOpcode0text/html2023-06-05T16:50:06+00:00simer (simer@undisclosed.example.com)controllers - [Checksum/keepalive]
http://vtech.pulkomandy.tk/doku.php?id=controllers&rev=1685976606&do=diff
Controller port
6 pin mini DIN (like PS/2 keyboards and mouse). It is a serial port at 4800 baud, 8N1.
Pinout (using the standard numbering for mini-DIN connectors) :
* VCC
* CTS (from V.Smile)
* Tx (from V.Smile)
* GND
* Rx (from controller)text/html2023-05-29T19:40:57+00:00pulkomandy (pulkomandy@undisclosed.example.com)04_idle_mergedbytes.png - created
http://vtech.pulkomandy.tk/doku.php?image=04_idle_mergedbytes.png&ns=&rev=1685382057&tab_details=history&mediado=diff&do=media
<img src="http://vtech.pulkomandy.tk/lib/exe/fetch.php?w=500&h=237&t=1685382057&tok=31fdca&media=04_idle_mergedbytes.png" alt="04_idle_mergedbytes.png" />text/html2023-04-23T11:36:24+00:00pulkomandy (pulkomandy@undisclosed.example.com)development_tools - [C compilers]
http://vtech.pulkomandy.tk/doku.php?id=development_tools&rev=1682242584&do=diff
C compilers
Official compiler
SunPlus released sources for the C compiler. It doesn't include the assembler and is based on GCC 2.95 so quite hard to compile: <https://github.com/vsmile-dev/unsp-gcc>
* µ'nSP IDE is the official IDE for the CPU used. It can still be downloaded from GeneralPlus website -text/html2023-04-23T11:27:51+00:00pulkomandy (pulkomandy@undisclosed.example.com)homebrew
http://vtech.pulkomandy.tk/doku.php?id=homebrew&rev=1682242071&do=diff
* <https://github.com/vsmile-dev/vsmile-rom> - Early work when no assembler was available. It seems to run on emulators but not real hardware?
* <https://github.com/bmx/vsmilestuff/tree/main/examples/hello> - Hello world showing minimal init of the PPU and video output, using un-asm.
* <https://github.com/bmx/vsmilestuff/tree/main/examples/awwsum> - another minimal Hello world example using un-asm.
* <https://github.com/sp1187/vsmile-demos> - Small examples usingtext/html2023-04-23T11:24:19+00:00pulkomandy (pulkomandy@undisclosed.example.com)links
http://vtech.pulkomandy.tk/doku.php?id=links&rev=1682241859&do=diff
* <https://github.com/vsmile-dev> - The github org with all the things we're doing
* <https://vtech.fandom.com/wiki/VTech_Wiki> - A less technical oriented wiki about VTech products
* <https://www.generalplus.com> - The SPG2xx CPU manufacturer
* <https://hackmii.com/2010/04/sunplus-the-biggest-chip-company-youve-never-heard-of/> - The blog post that started it all
* <https://bitbucket.org/SpritesMind/workspace/projects/VSMIL> VSmile BIOS disassembly using Ghidra, and another hello world…text/html2023-04-16T10:15:32+00:00pulkomandy (pulkomandy@undisclosed.example.com)memory_map - [External bus configuration]
http://vtech.pulkomandy.tk/doku.php?id=memory_map&rev=1681632932&do=diff
Start End Description 0x000000 0x0027FF RAM 0x002800 0x002FFF PPU 0x003000 0x0037FF Sound 0x003D00 0x003DFF IO 0x003E00 0x003E03 DMA
External memory starts at 0x4000. It can be mapped to the internal ROM and the two possible chips in the cartridges.text/html2022-11-12T14:57:34+00:00pulkomandy (pulkomandy@undisclosed.example.com)cpu - [Registers]
http://vtech.pulkomandy.tk/doku.php?id=cpu&rev=1668261454&do=diff
Sources of information
Instruction set documentation archived from “unSP Programmer's Guide” PDF from the unSP IDE installation - [local copy].
A good overview can also be found in [ this document].
CPU
The V-Smile processor is a Sunplus µ'nSP implementing version 1.1 of the ISA (source: this is how the SPG200 projects in µ'nSP IDE are configured).text/html2022-11-11T15:33:30+00:00pulkomandy (pulkomandy@undisclosed.example.com)io - [ROM and cartridge]
http://vtech.pulkomandy.tk/doku.php?id=io&rev=1668177210&do=diff
This information was extracted from the V.Smile Motion schematics which was (accidentally?) published by the FCC with the certification for the console.
Local copy of the document:
Port A
The use of Port A changes a bit on various generations of machinestext/html2022-08-17T18:50:38+00:00simer (simer@undisclosed.example.com)unsp_isa-1.2.pdf - created
http://vtech.pulkomandy.tk/doku.php?image=unsp_isa-1.2.pdf&ns=&rev=1660755038&tab_details=history&mediado=diff&do=media
text/html2022-06-26T17:23:39+00:00simer (simer@undisclosed.example.com)unspide_v4.0.1.zip - created
http://vtech.pulkomandy.tk/doku.php?image=unspide_v4.0.1.zip&ns=&rev=1656257019&tab_details=history&mediado=diff&do=media
text/html2022-06-26T14:22:45+00:00simer (simer@undisclosed.example.com)unsp_programmer_s_guide.pdf - created
http://vtech.pulkomandy.tk/doku.php?image=unsp_programmer_s_guide.pdf&ns=&rev=1656246165&tab_details=history&mediado=diff&do=media
text/html2021-08-26T21:20:34+00:00pulkomandy (pulkomandy@undisclosed.example.com)fcc:vsmile-motion-schematics.pdf - created
http://vtech.pulkomandy.tk/doku.php?image=fcc%3Avsmile-motion-schematics.pdf&ns=fcc&rev=1630005634&tab_details=history&mediado=diff&do=media
text/html2021-08-26T17:52:13+00:00pulkomandy (pulkomandy@undisclosed.example.com)sunplus:sunplus_spce1600.pdf - created
http://vtech.pulkomandy.tk/doku.php?image=sunplus%3Asunplus_spce1600.pdf&ns=sunplus&rev=1629993133&tab_details=history&mediado=diff&do=media
text/html2021-08-26T17:51:58+00:00pulkomandy (pulkomandy@undisclosed.example.com)sunplus:sunplus_uart.png - created
http://vtech.pulkomandy.tk/doku.php?image=sunplus%3Asunplus_uart.png&ns=sunplus&rev=1629993118&tab_details=history&mediado=diff&do=media
<img src="http://vtech.pulkomandy.tk/lib/exe/fetch.php?w=500&h=81&t=1629993118&tok=298d38&media=sunplus:sunplus_uart.png" alt="sunplus:sunplus_uart.png" />text/html2021-08-26T17:51:58+00:00pulkomandy (pulkomandy@undisclosed.example.com)sunplus:sunplus_timer.png - created
http://vtech.pulkomandy.tk/doku.php?image=sunplus%3Asunplus_timer.png&ns=sunplus&rev=1629993118&tab_details=history&mediado=diff&do=media
<img src="http://vtech.pulkomandy.tk/lib/exe/fetch.php?w=500&h=359&t=1629993118&tok=906b2c&media=sunplus:sunplus_timer.png" alt="sunplus:sunplus_timer.png" />text/html2021-08-26T17:51:58+00:00pulkomandy (pulkomandy@undisclosed.example.com)sunplus:sunplus_sprites.png - created
http://vtech.pulkomandy.tk/doku.php?image=sunplus%3Asunplus_sprites.png&ns=sunplus&rev=1629993118&tab_details=history&mediado=diff&do=media
<img src="http://vtech.pulkomandy.tk/lib/exe/fetch.php?w=412&h=454&t=1629993118&tok=3ace75&media=sunplus:sunplus_sprites.png" alt="sunplus:sunplus_sprites.png" />text/html2021-08-26T17:51:58+00:00pulkomandy (pulkomandy@undisclosed.example.com)sunplus:sunplus_sio.png - created
http://vtech.pulkomandy.tk/doku.php?image=sunplus%3Asunplus_sio.png&ns=sunplus&rev=1629993118&tab_details=history&mediado=diff&do=media
<img src="http://vtech.pulkomandy.tk/lib/exe/fetch.php?w=500&h=176&t=1629993118&tok=0896ae&media=sunplus:sunplus_sio.png" alt="sunplus:sunplus_sio.png" />text/html2021-08-26T17:51:58+00:00pulkomandy (pulkomandy@undisclosed.example.com)sunplus:sunplus_pwm.png - created
http://vtech.pulkomandy.tk/doku.php?image=sunplus%3Asunplus_pwm.png&ns=sunplus&rev=1629993118&tab_details=history&mediado=diff&do=media
<img src="http://vtech.pulkomandy.tk/lib/exe/fetch.php?w=500&h=93&t=1629993118&tok=c0574e&media=sunplus:sunplus_pwm.png" alt="sunplus:sunplus_pwm.png" />text/html2021-08-26T17:51:57+00:00pulkomandy (pulkomandy@undisclosed.example.com)sunplus:sunplus_io.png - created
http://vtech.pulkomandy.tk/doku.php?image=sunplus%3Asunplus_io.png&ns=sunplus&rev=1629993117&tab_details=history&mediado=diff&do=media
<img src="http://vtech.pulkomandy.tk/lib/exe/fetch.php?w=500&h=287&t=1629993117&tok=d061cf&media=sunplus:sunplus_io.png" alt="sunplus:sunplus_io.png" />